annotate DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/polynomial/tests/test_polyutils.py @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2a2c65a20a8b
children
rev   line source
Chris@87 1 """Tests for polyutils module.
Chris@87 2
Chris@87 3 """
Chris@87 4 from __future__ import division, absolute_import, print_function
Chris@87 5
Chris@87 6 import numpy as np
Chris@87 7 import numpy.polynomial.polyutils as pu
Chris@87 8 from numpy.testing import (
Chris@87 9 TestCase, assert_almost_equal, assert_raises,
Chris@87 10 assert_equal, assert_, run_module_suite)
Chris@87 11
Chris@87 12
Chris@87 13 class TestMisc(TestCase):
Chris@87 14
Chris@87 15 def test_trimseq(self):
Chris@87 16 for i in range(5):
Chris@87 17 tgt = [1]
Chris@87 18 res = pu.trimseq([1] + [0]*5)
Chris@87 19 assert_equal(res, tgt)
Chris@87 20
Chris@87 21 def test_as_series(self):
Chris@87 22 # check exceptions
Chris@87 23 assert_raises(ValueError, pu.as_series, [[]])
Chris@87 24 assert_raises(ValueError, pu.as_series, [[[1, 2]]])
Chris@87 25 assert_raises(ValueError, pu.as_series, [[1], ['a']])
Chris@87 26 # check common types
Chris@87 27 types = ['i', 'd', 'O']
Chris@87 28 for i in range(len(types)):
Chris@87 29 for j in range(i):
Chris@87 30 ci = np.ones(1, types[i])
Chris@87 31 cj = np.ones(1, types[j])
Chris@87 32 [resi, resj] = pu.as_series([ci, cj])
Chris@87 33 assert_(resi.dtype.char == resj.dtype.char)
Chris@87 34 assert_(resj.dtype.char == types[i])
Chris@87 35
Chris@87 36 def test_trimcoef(self):
Chris@87 37 coef = [2, -1, 1, 0]
Chris@87 38 # Test exceptions
Chris@87 39 assert_raises(ValueError, pu.trimcoef, coef, -1)
Chris@87 40 # Test results
Chris@87 41 assert_equal(pu.trimcoef(coef), coef[:-1])
Chris@87 42 assert_equal(pu.trimcoef(coef, 1), coef[:-3])
Chris@87 43 assert_equal(pu.trimcoef(coef, 2), [0])
Chris@87 44
Chris@87 45
Chris@87 46 class TestDomain(TestCase):
Chris@87 47
Chris@87 48 def test_getdomain(self):
Chris@87 49 # test for real values
Chris@87 50 x = [1, 10, 3, -1]
Chris@87 51 tgt = [-1, 10]
Chris@87 52 res = pu.getdomain(x)
Chris@87 53 assert_almost_equal(res, tgt)
Chris@87 54
Chris@87 55 # test for complex values
Chris@87 56 x = [1 + 1j, 1 - 1j, 0, 2]
Chris@87 57 tgt = [-1j, 2 + 1j]
Chris@87 58 res = pu.getdomain(x)
Chris@87 59 assert_almost_equal(res, tgt)
Chris@87 60
Chris@87 61 def test_mapdomain(self):
Chris@87 62 # test for real values
Chris@87 63 dom1 = [0, 4]
Chris@87 64 dom2 = [1, 3]
Chris@87 65 tgt = dom2
Chris@87 66 res = pu. mapdomain(dom1, dom1, dom2)
Chris@87 67 assert_almost_equal(res, tgt)
Chris@87 68
Chris@87 69 # test for complex values
Chris@87 70 dom1 = [0 - 1j, 2 + 1j]
Chris@87 71 dom2 = [-2, 2]
Chris@87 72 tgt = dom2
Chris@87 73 x = dom1
Chris@87 74 res = pu.mapdomain(x, dom1, dom2)
Chris@87 75 assert_almost_equal(res, tgt)
Chris@87 76
Chris@87 77 # test for multidimensional arrays
Chris@87 78 dom1 = [0, 4]
Chris@87 79 dom2 = [1, 3]
Chris@87 80 tgt = np.array([dom2, dom2])
Chris@87 81 x = np.array([dom1, dom1])
Chris@87 82 res = pu.mapdomain(x, dom1, dom2)
Chris@87 83 assert_almost_equal(res, tgt)
Chris@87 84
Chris@87 85 # test that subtypes are preserved.
Chris@87 86 dom1 = [0, 4]
Chris@87 87 dom2 = [1, 3]
Chris@87 88 x = np.matrix([dom1, dom1])
Chris@87 89 res = pu.mapdomain(x, dom1, dom2)
Chris@87 90 assert_(isinstance(res, np.matrix))
Chris@87 91
Chris@87 92 def test_mapparms(self):
Chris@87 93 # test for real values
Chris@87 94 dom1 = [0, 4]
Chris@87 95 dom2 = [1, 3]
Chris@87 96 tgt = [1, .5]
Chris@87 97 res = pu. mapparms(dom1, dom2)
Chris@87 98 assert_almost_equal(res, tgt)
Chris@87 99
Chris@87 100 # test for complex values
Chris@87 101 dom1 = [0 - 1j, 2 + 1j]
Chris@87 102 dom2 = [-2, 2]
Chris@87 103 tgt = [-1 + 1j, 1 - 1j]
Chris@87 104 res = pu.mapparms(dom1, dom2)
Chris@87 105 assert_almost_equal(res, tgt)
Chris@87 106
Chris@87 107
Chris@87 108 if __name__ == "__main__":
Chris@87 109 run_module_suite()