Public Access
fix return-value/deprecated API bugs, accumulation lock leaks, code cleanup
- raise instead of silent None for unsupported operands and empty negation - validate before acquiring lock in Accumulation operators (no RLock leak) - Accumulation._copy_provenance helper, ADC_Result._copy_metadata for all result paths - shared _sandbox_stdout_redirect contextmanager for sandboxed scripts - TemperatureMonitor dead code removal (gtk helper, traceback, unused properties) - new unit tests incl. lock-freedom regression test - gitignore sphinx generated doc/_autosummary/ and doc/damaris/
This commit is contained in:
1 parent
91ade4376c
commit
f9d8de7697
26 files changed
+590
-236
No files matched your search
@@ -0,0 +1,35 @@
|
||||
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()
|
||||
Reference in new issue
Block a user