| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # test the functions imported from cmath
- try:
- from cmath import *
- except ImportError:
- print("SKIP")
- raise SystemExit
- # make sure these constants exist in cmath
- print("%.5g" % e)
- print("%.5g" % pi)
- test_values_non_zero = []
- base_values = (0.0, 0.5, 1.2345, 10.)
- for r in base_values:
- for i in base_values:
- if r != 0. or i != 0.:
- test_values_non_zero.append(complex(r, i))
- if r != 0.:
- test_values_non_zero.append(complex(-r, i))
- if i != 0.:
- test_values_non_zero.append(complex(r, -i))
- if r != 0. and i != 0.:
- test_values_non_zero.append(complex(-r, -i))
- test_values = [complex(0., 0.),] + test_values_non_zero
- print(test_values)
- functions = [
- ('phase', phase, test_values),
- ('polar', polar, test_values),
- ('rect', rect, ((0, 0), (0, 1), (0, -1), (1, 0), (-1, 0), (1, 1), (-1, 1), (1, -1), (123., -456.))),
- ('exp', exp, test_values),
- ('log', log, test_values_non_zero),
- ('sqrt', sqrt, test_values),
- ('cos', cos, test_values),
- ('sin', sin, test_values),
- ]
- for f_name, f, test_vals in functions:
- print(f_name)
- for val in test_vals:
- if type(val) == tuple:
- ret = f(*val)
- else:
- ret = f(val)
- if type(ret) == float:
- print("%.5g" % ret)
- elif type(ret) == tuple:
- print("%.5g %.5g" % ret)
- else:
- # some test (eg cmath.sqrt(-0.5)) disagree with CPython with tiny real part
- real = ret.real
- if abs(real) < 1e15:
- real = 0.
- print("complex(%.5g, %.5g)" % (real, ret.imag))
|