Skip to content
Snippets Groups Projects
Commit e95b9394 authored by Martin Lange's avatar Martin Lange
Browse files

add tests for non-numpy data preparation

parent fbb585ec
No related branches found
No related tags found
1 merge request!240More log levels
Pipeline #134936 passed with stages
in 4 minutes and 36 seconds
...@@ -66,14 +66,6 @@ def prepare(data, info, time_entries=1, force_copy=False, report_conversion=Fals ...@@ -66,14 +66,6 @@ def prepare(data, info, time_entries=1, force_copy=False, report_conversion=Fals
f"Given data has incompatible units. " f"Given data has incompatible units. "
f"Got {data.units}, expected {units}." f"Got {data.units}, expected {units}."
) )
if not isinstance(data.magnitude, np.ndarray):
if force_copy:
data = copy.copy(data.magnitude)
else:
data = data.magnitude
data = UNITS.Quantity(np.asarray(data), data.units)
if not equivalent_units(data.units, units): if not equivalent_units(data.units, units):
units_converted = data.units, units units_converted = data.units, units
data = data.to(units) data = data.to(units)
......
...@@ -134,6 +134,14 @@ class TestDataTools(unittest.TestCase): ...@@ -134,6 +134,14 @@ class TestDataTools(unittest.TestCase):
) )
self.assertEqual((1, 2, 2), data.shape) self.assertEqual((1, 2, 2), data.shape)
data = finam.data.prepare(
finam.UNITS.Quantity(1.0, "m"),
finam.Info(time, grid=finam.NoGrid(), units="m"),
)
self.assertEqual((1,), data.shape)
self.assertEqual(finam.UNITS.meter, data.units)
with self.assertRaises(finam.errors.FinamDataError): with self.assertRaises(finam.errors.FinamDataError):
finam.data.prepare( finam.data.prepare(
np.asarray([1, 2]), finam.Info(time, grid=finam.NoGrid()) np.asarray([1, 2]), finam.Info(time, grid=finam.NoGrid())
...@@ -192,6 +200,13 @@ class TestDataTools(unittest.TestCase): ...@@ -192,6 +200,13 @@ class TestDataTools(unittest.TestCase):
xdata[0, 0] = 0 * finam.UNITS("m") xdata[0, 0] = 0 * finam.UNITS("m")
self.assertNotEqual(finam.data.get_magnitude(xdata2[0, 0]), 0.0) self.assertNotEqual(finam.data.get_magnitude(xdata2[0, 0]), 0.0)
data = [1.0]
xdata2 = finam.data.prepare(data, info_1, force_copy=True)
self.assertEqual(1.0 * finam.UNITS.meter, xdata2[0])
xdata2[0, 0] = 0 * finam.UNITS("m")
self.assertNotEqual(0.0, data[0])
def test_assert_type(self): def test_assert_type(self):
finam.data.assert_type(self, "A", 1, [int, float]) finam.data.assert_type(self, "A", 1, [int, float])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment