summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHernan Grecco <hernan.grecco@gmail.com>2014-03-31 21:21:27 -0300
committerHernan Grecco <hernan.grecco@gmail.com>2014-03-31 21:21:27 -0300
commitd41f3d218285603129dd4d95389ff2abdd127d61 (patch)
treed323a865297b46cafafa5110123ee6d06fd3a8d7
parentc13fdad84e7f5fc23468bc4be8cc0a87b6b712bb (diff)
downloadpint-d41f3d218285603129dd4d95389ff2abdd127d61.tar.gz
Fixed tests
-rw-r--r--pint/testsuite/__init__.py44
-rw-r--r--pint/testsuite/test_issues.py10
-rw-r--r--pint/testsuite/test_numpy.py4
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]):