From 42a1d2b3eecb58863e028592af1982b92c82c591 Mon Sep 17 00:00:00 2001
From: kienle <kienle@passcal.nmt.edu>
Date: Fri, 16 Sep 2022 16:09:06 -0600
Subject: [PATCH] Add tests for readSOHTrace

Add additional test for readSOHTrace

Set up test directory

stuff
---
 tests/test_model/test_handling_data.py | 138 +++++++++++++++++++++++++
 1 file changed, 138 insertions(+)
 create mode 100644 tests/test_model/test_handling_data.py

diff --git a/tests/test_model/test_handling_data.py b/tests/test_model/test_handling_data.py
new file mode 100644
index 000000000..288f3d8cb
--- /dev/null
+++ b/tests/test_model/test_handling_data.py
@@ -0,0 +1,138 @@
+from pathlib import Path
+from math import isclose
+
+from unittest import TestCase
+
+from obspy.core import Stream, read as read_ms
+import numpy as np
+
+from sohstationviewer.model.handling_data import (
+    readSOHMSeed,
+    readSOHTrace
+)
+
+TEST_DATA_DIR = Path(__file__).parent.parent.joinpath('test_data')
+
+
+class TestHandlingData(TestCase):
+    @classmethod
+    def setUpClass(cls) -> None:
+        q330_dir = TEST_DATA_DIR.joinpath('Q330-sample/day_vols_AX08')
+        # This file is chosen because it has time info.
+        cls.q330_file = q330_dir.joinpath('AX08.XA..VKI.2021.186')
+        cls.mseed_stream = read_ms(cls.q330_file)
+        cls.trace = cls.mseed_stream[0]
+        cls.processed_trace = {
+            'chanID': '',
+            'samplerate': '',
+            'startTmEpoch': '',
+            'endTmEpoch': '',
+            'times': '',
+            'data': '',
+        }
+
+    # @expectedFailure
+    # def test_read_sohmseed(self):
+    #     self.fail()
+
+    def test_read_soh_trace_processed_trace_have_all_needed_info(self):
+        processed_trace = readSOHTrace(self.trace)
+        with self.subTest('test_processed_trace_have_all_needed_info'):
+            expected_key_list = [
+                'chanID',
+                'samplerate',
+                'startTmEpoch',
+                'endTmEpoch',
+                'times',
+                'data'
+            ]
+            self.assertTrue(
+                all(key in processed_trace for key in expected_key_list)
+            )
+
+    def test_read_soh_trace_times_calculated_correctly(self):
+        processed_trace = readSOHTrace(self.trace)
+        if isclose(processed_trace['startTmEpoch'], 0, abs_tol=0.0001):
+            self.assertAlmostEqual(processed_trace['times'][0], 0)
+        else:
+            self.assertNotAlmostEqual(processed_trace['times'][0], 0)
+
+    # @skip
+    # def test_read_mptrace(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_read_waveform_trace(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_read_waveform_mseed(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_read_waveform_reftek(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_read_ascii(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_read_text(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_save_data2file(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_check_chan(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_check_sohchan(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_check_wfchan(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_sort_data(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_squash_gaps(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_downsample(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_constant_rate(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_chunk_minmax(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_trim_downsample_sohchan(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_trim_downsample_wfchan(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_get_each_day5min_list(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_get_trim_tpsdata(self):
+    #     self.fail()
+    #
+    # @skip
+    # def test_find_tpstm(self):
+    #     self.fail()
-- 
GitLab