From 2dfd3db372ee0b8d92b622c1c9053957a87dd2d9 Mon Sep 17 00:00:00 2001 From: ldam <ldam@passcal.nmt.edu> Date: Wed, 3 May 2023 10:00:04 -0600 Subject: [PATCH] unittest for combine_traces_except_gaps_overlaps --- .../test_handling_data_rearrange_data.py | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/tests/test_model/test_handling_data_rearrange_data.py b/tests/test_model/test_handling_data_rearrange_data.py index 325d7ef98..68fe5eac0 100644 --- a/tests/test_model/test_handling_data_rearrange_data.py +++ b/tests/test_model/test_handling_data_rearrange_data.py @@ -1,7 +1,9 @@ +import numpy as np from unittest import TestCase from sohstationviewer.model.handling_data import ( - sort_data, check_related_gaps, squash_gaps + sort_data, check_related_gaps, squash_gaps, + combine_traces_except_gaps_overlaps ) @@ -84,3 +86,60 @@ class TestSquashGaps(TestCase): def test_mixed_gaps(self): gaps = squash_gaps((self.mixed_gaps)) self.assertEqual(gaps, [[3, 8], [18, 13]]) + + +class TestCombineTracesExceptGapsOverlaps(TestCase): + def test_combine(self): + traces = [ + {'samplerate': 1, 'startTmEpoch': 1, 'endTmEpoch': 2, 'size': 2, + 'times': np.array([1, 2]), 'data': np.array([0, 0])}, + # overlap at the beginning + {'samplerate': 1, 'startTmEpoch': 1, 'endTmEpoch': 3, 'size': 3, + 'times': np.array([1, 2, 3]), 'data': np.array([1, 1, 1])}, + {'samplerate': 1, 'startTmEpoch': 4, 'endTmEpoch': 6, 'size': 3, + 'times': np.array([4, 5, 6]), 'data': np.array([2, 2, 2])}, + # gap + {'samplerate': 1, 'startTmEpoch': 8, 'endTmEpoch': 10, 'size': 3, + 'times': np.array([8, 9, 10]), 'data': np.array([3, 3, 3])}, + {'samplerate': 1, 'startTmEpoch': 11, 'endTmEpoch': 13, 'size': 3, + 'times': np.array([11, 12, 13]), 'data': np.array([4, 4, 4])}, + # overlap + {'samplerate': 1, 'startTmEpoch': 12, 'endTmEpoch': 14, 'size': 3, + 'times': np.array([12, 13, 14]), 'data': np.array([5, 5, 5])} + ] + gaps = [[2, 1], [6, 8], [13, 12]] + new_traces = combine_traces_except_gaps_overlaps(traces, gaps) + + self.assertEqual(len(new_traces), 4) + # Trace 0 + self.assertEqual(new_traces[0]['samplerate'], 1) + self.assertEqual(new_traces[0]['startTmEpoch'], 1) + self.assertEqual(new_traces[0]['endTmEpoch'], 2) + self.assertEqual(new_traces[0]['size'], 2) + self.assertEqual(new_traces[0]['times'].tolist(), [1, 2]) + self.assertEqual(new_traces[0]['data'].tolist(), [0, 0]) + + # Combine traces 1 & 2 + self.assertEqual(new_traces[1]['samplerate'], 1) + self.assertEqual(new_traces[1]['startTmEpoch'], 1) + self.assertEqual(new_traces[1]['endTmEpoch'], 6) + self.assertEqual(new_traces[1]['size'], 6) + self.assertEqual(new_traces[1]['times'].tolist(), [1, 2, 3, 4, 5, 6]) + self.assertEqual(new_traces[1]['data'].tolist(), [1, 1, 1, 2, 2, 2]) + + # Combine traces 3 & 4 + self.assertEqual(new_traces[2]['samplerate'], 1) + self.assertEqual(new_traces[2]['startTmEpoch'], 8) + self.assertEqual(new_traces[2]['endTmEpoch'], 13) + self.assertEqual(new_traces[2]['size'], 6) + self.assertEqual(new_traces[2]['times'].tolist(), + [8, 9, 10, 11, 12, 13]) + self.assertEqual(new_traces[2]['data'].tolist(), [3, 3, 3, 4, 4, 4]) + + # Trace 5 + self.assertEqual(new_traces[3]['samplerate'], 1) + self.assertEqual(new_traces[3]['startTmEpoch'], 12) + self.assertEqual(new_traces[3]['endTmEpoch'], 14) + self.assertEqual(new_traces[3]['size'], 3) + self.assertEqual(new_traces[3]['times'].tolist(), [12, 13, 14]) + self.assertEqual(new_traces[3]['data'].tolist(), [5, 5, 5]) -- GitLab