diff --git a/quantities/quantity.py b/quantities/quantity.py index ec78385..39b8582 100644 --- a/quantities/quantity.py +++ b/quantities/quantity.py @@ -461,7 +461,10 @@ def tolist(self): #first get a dummy array from the ndarray method work_list = self.magnitude.tolist() #now go through and replace all numbers with the appropriate Quantity - self._tolist(work_list) + if isinstance(work_list, list): + self._tolist(work_list) + else: + work_list = Quantity(work_list, self.dimensionality) return work_list def _tolist(self, work_list): diff --git a/quantities/tests/test_methods.py b/quantities/tests/test_methods.py index 039fb6d..75538f4 100644 --- a/quantities/tests/test_methods.py +++ b/quantities/tests/test_methods.py @@ -11,6 +11,8 @@ def setUp(self): def test_tolist(self): self.assertEqual(self.q.tolist(), [[1*pq.m, 2*pq.m], [3*pq.m, 4*pq.m]]) + q_singleton = 1 * pq.m + self.assertEqual(q_singleton.tolist(), q_singleton) def test_sum(self): self.assertQuantityEqual(self.q.sum(), 10*pq.m) diff --git a/quantities/tests/test_umath.py b/quantities/tests/test_umath.py index f5aeb78..e1bbb75 100644 --- a/quantities/tests/test_umath.py +++ b/quantities/tests/test_umath.py @@ -154,17 +154,13 @@ def test_ceil(self): [-1., -1., -0., 1., 2., 2., 2.] * pq.m ) - @unittest.expectedFailure def test_fix(self): - try: - self.assertQuantityEqual(np.fix(3.14 * pq.degF), 3.0 * pq.degF) - self.assertQuantityEqual(np.fix(3.0 * pq.degF), 3.0 * pq.degF) - self.assertQuantityEqual( - np.fix([2.1, 2.9, -2.1, -2.9] * pq.degF), - [2., 2., -2., -2.] * pq.degF - ) - except ValueError as e: - raise self.failureException(e) + self.assertQuantityEqual(np.fix(3.14 * pq.degF), 3.0 * pq.degF) + self.assertQuantityEqual(np.fix(3.0 * pq.degF), 3.0 * pq.degF) + self.assertQuantityEqual( + np.fix([2.1, 2.9, -2.1, -2.9] * pq.degF), + [2., 2., -2., -2.] * pq.degF + ) def test_exp(self): self.assertQuantityEqual(np.exp(1*pq.dimensionless), np.e)