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

add tests that data n outputs is a copy of the pushed data

parent bfddf831
No related branches found
No related tags found
1 merge request!217Ensure data is a copy in outputs
......@@ -358,6 +358,96 @@ class TestOutput(unittest.TestCase):
with self.assertRaises(FinamStaticDataError):
out.push_data(0, None)
def test_data_copied_xarray(self):
t = datetime(2000, 1, 1)
info = Info(time=t, grid=fm.UniformGrid((1, 1)))
out = Output(name="Output")
in1 = Input(name="Input")
out >> in1
in1.ping()
out.push_info(info)
in1.exchange_info(info)
in_data = fm.data.full(0.0, "test", info, t)
out.push_data(in_data, t)
out_data = in1.pull_data(t, in1)
self.assertEqual(out_data[0, 0, 0], 0.0)
in_data[0, 0, 0] = 1.0
self.assertEqual(out_data[0, 0, 0], 0.0)
def test_data_copied_xarray_units(self):
t = datetime(2000, 1, 1)
info1 = Info(time=t, grid=fm.UniformGrid((1, 1)), units="m")
info2 = Info(time=t, grid=fm.UniformGrid((1, 1)), units="km")
out = Output(name="Output")
in1 = Input(name="Input")
out >> in1
in1.ping()
out.push_info(info1)
in1.exchange_info(info2)
in_data = fm.data.full(0.0, "test", info1, t)
out.push_data(in_data, t)
out_data = in1.pull_data(t, in1)
self.assertEqual(out_data[0, 0, 0], 0.0 * fm.UNITS("km"))
in_data[0, 0, 0] = 1.0 * fm.UNITS("m")
self.assertEqual(out_data[0, 0, 0], 0.0 * fm.UNITS("km"))
def test_data_copied_numpy(self):
t = datetime(2000, 1, 1)
info = Info(time=t, grid=fm.UniformGrid((1, 1)))
out = Output(name="Output")
in1 = Input(name="Input")
out >> in1
in1.ping()
out.push_info(info)
in1.exchange_info(info)
in_data = fm.data.strip_data(fm.data.full(0.0, "test", info, t))
out.push_data(in_data, t)
out_data = in1.pull_data(t, in1)
self.assertEqual(out_data[0, 0, 0], 0.0)
in_data[0, 0] = 1.0
self.assertEqual(out_data[0, 0, 0], 0.0)
def test_data_copied_numpy_units(self):
t = datetime(2000, 1, 1)
info1 = Info(time=t, grid=fm.UniformGrid((1, 1)), units="m")
info2 = Info(time=t, grid=fm.UniformGrid((1, 1)), units="km")
out = Output(name="Output")
in1 = Input(name="Input")
out >> in1
in1.ping()
out.push_info(info1)
in1.exchange_info(info2)
in_data = fm.data.strip_data(fm.data.full(0.0, "test", info1, t))
out.push_data(in_data, t)
out_data = in1.pull_data(t, in1)
self.assertEqual(out_data[0, 0, 0], 0.0 * fm.UNITS("km"))
in_data[0, 0] = 1.0 * fm.UNITS("m")
self.assertEqual(out_data[0, 0, 0], 0.0 * fm.UNITS("km"))
class TestInput(unittest.TestCase):
def test_fail_set_source(self):
......
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