diff options
author | Hernan Grecco <hernan.grecco@gmail.com> | 2014-03-31 21:21:27 -0300 |
---|---|---|
committer | Hernan Grecco <hernan.grecco@gmail.com> | 2014-03-31 21:21:27 -0300 |
commit | d41f3d218285603129dd4d95389ff2abdd127d61 (patch) | |
tree | d323a865297b46cafafa5110123ee6d06fd3a8d7 | |
parent | c13fdad84e7f5fc23468bc4be8cc0a87b6b712bb (diff) | |
download | pint-d41f3d218285603129dd4d95389ff2abdd127d61.tar.gz |
Fixed tests
-rw-r--r-- | pint/testsuite/__init__.py | 44 | ||||
-rw-r--r-- | pint/testsuite/test_issues.py | 10 | ||||
-rw-r--r-- | pint/testsuite/test_numpy.py | 4 |
3 files changed, 37 insertions, 21 deletions
diff --git a/pint/testsuite/__init__.py b/pint/testsuite/__init__.py index 4ae59a5..2254653 100644 --- a/pint/testsuite/__init__.py +++ b/pint/testsuite/__init__.py @@ -44,6 +44,24 @@ class TestCase(unittest.TestCase): cls.ureg = UnitRegistry(force_ndarray=cls.FORCE_NDARRAY) cls.Q_ = cls.ureg.Quantity + def _get_comparable_magnitudes(self, first, second, msg): + if isinstance(first, _Quantity) and isinstance(second, _Quantity): + second = second.to(first) + self.assertEqual(first.units, second.units, msg=msg + 'Units are not equal.') + m1, m2 = first.magnitude, second.magnitude + elif isinstance(first, _Quantity): + self.assertTrue(first.dimensionless, msg=msg + 'The first is not dimensionless.') + first = first.to('') + m1, m2 = first.magnitude, second + elif isinstance(second, _Quantity): + self.assertTrue(second.dimensionless, msg=msg + 'The second is not dimensionless.') + second = second.to('') + m1, m2 = first, second.magnitude + else: + m1, m2 = first, second + + return m1, m2 + def assertSequenceEqual(self, seq1, seq2, msg=None, seq_type=None): if isinstance(seq1, _Quantity): if isinstance(seq2, _Quantity): @@ -63,24 +81,22 @@ class TestCase(unittest.TestCase): seq2 = seq2.tolist() unittest.TestCase.assertSequenceEqual(self, seq1, seq2, msg, seq_type) - def assertQuantityAlmostEqual(self, first, second, places=None, msg=None, delta=None): + def assertQuantityEqual(self, first, second, msg=None): if msg is None: msg = 'Comparing %r and %r. ' % (first, second) - if isinstance(first, _Quantity) and isinstance(second, _Quantity): - second = second.to(first) - m1, m2 = first.magnitude, second.magnitude - self.assertEqual(first.units, second.units, msg=msg + 'Units are not equal.') - elif isinstance(first, _Quantity): - self.assertTrue(first.dimensionless, msg=msg + 'The first is not dimensionless.') - first = first.to('') - m1, m2 = first.magnitude, second - elif isinstance(second, _Quantity): - self.assertTrue(second.dimensionless, msg=msg + 'The second is not dimensionless.') - second = second.to('') - m1, m2 = first, second.magnitude + m1, m2 = self._get_comparable_magnitudes(first, second, msg) + + if isinstance(m1, ndarray) or isinstance(m2, ndarray): + np.testing.assert_array_equal(m1, m2, err_msg=msg) else: - m1, m2 = first, second + unittest.TestCase.assertEqual(self, m1, m2, msg, ) + + def assertQuantityAlmostEqual(self, first, second, places=None, msg=None, delta=None): + if msg is None: + msg = 'Comparing %r and %r. ' % (first, second) + + m1, m2 = self._get_comparable_magnitudes(first, second, msg) if isinstance(m1, ndarray) or isinstance(m2, ndarray): if delta is not None: diff --git a/pint/testsuite/test_issues.py b/pint/testsuite/test_issues.py index 8420104..a08f276 100644 --- a/pint/testsuite/test_issues.py +++ b/pint/testsuite/test_issues.py @@ -70,7 +70,7 @@ class TestIssues(TestCase): self.assertRaises(ValueError, Q_, '', 'meter') self.assertRaises(ValueError, Q_, '') - @helpers.requires_numpy() + @helpers.requires_not_numpy() def test_issue61_notNP(self): ureg = UnitRegistry() Q_ = ureg.Quantity @@ -331,8 +331,8 @@ class TestIssuesNP(TestCase): def test_issue74(self): ureg = UnitRegistry() - v1 = np.asarray([1, 2, 3]) - v2 = np.asarray([3, 2, 1]) + v1 = np.asarray([1., 2., 3.]) + v2 = np.asarray([3., 2., 1.]) q1 = v1 * ureg.ms q2 = v2 * ureg.ms @@ -353,8 +353,8 @@ class TestIssuesNP(TestCase): def test_issue75(self): ureg = UnitRegistry() - v1 = np.asarray([1, 2, 3]) - v2 = np.asarray([3, 2, 1]) + v1 = np.asarray([1., 2., 3.]) + v2 = np.asarray([3., 2., 1.]) q1 = v1 * ureg.ms q2 = v2 * ureg.ms diff --git a/pint/testsuite/test_numpy.py b/pint/testsuite/test_numpy.py index 17fc957..28fd42f 100644 --- a/pint/testsuite/test_numpy.py +++ b/pint/testsuite/test_numpy.py @@ -202,8 +202,8 @@ class TestNumpyMethods(TestCase): self.assertSequenceEqual(q, [1000, 1,2,3]) q = [0.,1.,2.,3.] * self.ureg.m/self.ureg.mm - q[0] = 1 - self.assertSequenceEqual(q, [0.001,1,2,3]*self.ureg.m/self.ureg.mm) + q[0] = 1. + self.assertQuantityEqual(q, [0.001,1,2,3]*self.ureg.m/self.ureg.mm) def test_iterator(self): for q, v in zip(self.q.flatten(), [1, 2, 3, 4]): |