import unittest import numpy as np from damaris.data.MeasurementResult import MeasurementResult class TestMeasurementResult(unittest.TestCase): def test_add_zero_preserves_data(self): """mr + 0 must return a MeasurementResult with identical data.""" mr = MeasurementResult("test_quantity") for i in range(3): mr[i] = float(i * i) mr2 = mr + 0 self.assertIsInstance(mr2, MeasurementResult) self.assertEqual(mr2.quantity_name, "test_quantity") np.testing.assert_array_equal(mr2.get_xdata(), mr.get_xdata()) np.testing.assert_array_equal(mr2.get_ydata(), mr.get_ydata()) def test_add_zero_returns_independent_copy(self): """Changing the copy must not change the original.""" mr = MeasurementResult("q") mr[1.0] = 5.0 mr2 = mr + 0 self.assertIsNot(mr2[1.0], mr[1.0]) mr2[1.0] = mr2[1.0] + 100.0 self.assertEqual(mr[1.0].mean(), 5.0) def test_add_nonzero_raises(self): mr = MeasurementResult("q") self.assertRaises(Exception, mr.__add__, 1) if __name__ == "__main__": unittest.main()