diff options
author | Damien George <damien.p.george@gmail.com> | 2015-02-02 12:52:38 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-02-02 12:52:38 +0000 |
commit | ae3150cb5c7d39da1a3b4cd70fdfb92d36b9ce57 (patch) | |
tree | 0b609302159c5a172ee3f32ee0855e087d5c51a5 /tests/float | |
parent | f49782f0058b0c7bdf21471a9265117089439124 (diff) | |
download | micropython-ae3150cb5c7d39da1a3b4cd70fdfb92d36b9ce57.tar.gz micropython-ae3150cb5c7d39da1a3b4cd70fdfb92d36b9ce57.zip |
tests: Add test for cmath module.
Diffstat (limited to 'tests/float')
-rw-r--r-- | tests/float/cmath_fun.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/float/cmath_fun.py b/tests/float/cmath_fun.py new file mode 100644 index 0000000000..e13271372e --- /dev/null +++ b/tests/float/cmath_fun.py @@ -0,0 +1,57 @@ +# test the functions imported from cmath + +try: + from cmath import * +except ImportError: + print("SKIP") + import sys + sys.exit() + +# make sure these constants exist in cmath +print("%.5g" % e) +print("%.5g" % pi) + +test_values_non_zero = [] +base_values = (0.0, 0.5, 1.23456, 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), + ('log10', log10, 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)) |