Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SOHViewer
Manage
Activity
Members
Labels
Plan
Issues
11
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
3
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Software Public
PASSOFT
SOHViewer
Commits
37e48c7e
Commit
37e48c7e
authored
2 years ago
by
Kien Le
Browse files
Options
Downloads
Patches
Plain Diff
Add tests for readWaveformMSeed
parent
16a930fa
No related branches found
No related tags found
1 merge request
!27
Draft: Add tests for functions in handling_data.py
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tests/test_model/test_handling_data.py
+105
-5
105 additions, 5 deletions
tests/test_model/test_handling_data.py
with
105 additions
and
5 deletions
tests/test_model/test_handling_data.py
+
105
−
5
View file @
37e48c7e
...
@@ -13,10 +13,13 @@ from sohstationviewer.model.handling_data import (
...
@@ -13,10 +13,13 @@ from sohstationviewer.model.handling_data import (
readSOHTrace
,
readSOHTrace
,
readMPTrace
,
readMPTrace
,
readWaveformTrace
,
readWaveformTrace
,
readWaveformMSeed
,
)
)
from
sohstationviewer.model.reftek.from_rt2ms.core
import
Reftek130
from
sohstationviewer.model.reftek.from_rt2ms.core
import
Reftek130
TEST_DATA_DIR
=
Path
(
__file__
).
parent
.
parent
.
joinpath
(
'
test_data
'
)
TEST_DATA_DIR
=
Path
(
__file__
).
parent
.
parent
.
joinpath
(
'
test_data
'
)
# tempfile.tempdir = './tempdir'
# tempfile.tempdir = './tempdir'
...
@@ -31,16 +34,19 @@ class TestHandlingData(TestCase):
...
@@ -31,16 +34,19 @@ class TestHandlingData(TestCase):
cls
.
rt130_trace
=
cls
.
rt130_stream
[
0
]
cls
.
rt130_trace
=
cls
.
rt130_stream
[
0
]
q330_dir
=
TEST_DATA_DIR
.
joinpath
(
'
Q330-sample/day_vols_AX08
'
)
q330_dir
=
TEST_DATA_DIR
.
joinpath
(
'
Q330-sample/day_vols_AX08
'
)
cls
.
q330_file
=
q330_dir
.
joinpath
(
'
AX08.XA..VKI.2021.186
'
)
cls
.
q330_soh_file
=
q330_dir
.
joinpath
(
'
AX08.XA..VKI.2021.186
'
)
cls
.
mseed_stream
=
read_ms
(
cls
.
q330_file
)
cls
.
mseed_soh_stream
=
read_ms
(
cls
.
q330_soh_file
)
cls
.
mseed_trace
=
cls
.
mseed_stream
[
0
]
cls
.
mseed_soh_trace
=
cls
.
mseed_soh_stream
[
0
]
cls
.
q330_waveform_file
=
q330_dir
.
joinpath
(
'
AX08.XA..LHE.2021.186
'
)
cls
.
mseed_waveform_stream
=
read_ms
(
cls
.
q330_waveform_file
)
cls
.
mseed_waveform_trace
=
cls
.
mseed_waveform_stream
[
0
]
# @expectedFailure
# @expectedFailure
# def test_read_sohmseed(self):
# def test_read_sohmseed(self):
# self.fail()
# self.fail()
def
test_read_soh_trace_processed_trace_have_all_needed_info
(
self
):
def
test_read_soh_trace_processed_trace_have_all_needed_info
(
self
):
processed_trace
=
readSOHTrace
(
self
.
mseed_trace
)
processed_trace
=
readSOHTrace
(
self
.
mseed_
soh_
trace
)
with
self
.
subTest
(
'
test_processed_trace_have_all_needed_info
'
):
with
self
.
subTest
(
'
test_processed_trace_have_all_needed_info
'
):
expected_key_list
=
[
expected_key_list
=
[
'
chanID
'
,
'
chanID
'
,
...
@@ -55,7 +61,7 @@ class TestHandlingData(TestCase):
...
@@ -55,7 +61,7 @@ class TestHandlingData(TestCase):
)
)
def
test_read_soh_trace_times_calculated_correctly
(
self
):
def
test_read_soh_trace_times_calculated_correctly
(
self
):
processed_trace
=
readSOHTrace
(
self
.
mseed_trace
)
processed_trace
=
readSOHTrace
(
self
.
mseed_
soh_
trace
)
if
isclose
(
processed_trace
[
'
startTmEpoch
'
],
0
,
abs_tol
=
0.0001
):
if
isclose
(
processed_trace
[
'
startTmEpoch
'
],
0
,
abs_tol
=
0.0001
):
self
.
assertAlmostEqual
(
processed_trace
[
'
times
'
][
0
],
0
)
self
.
assertAlmostEqual
(
processed_trace
[
'
times
'
][
0
],
0
)
else
:
else
:
...
@@ -175,3 +181,97 @@ class TestHandlingData(TestCase):
...
@@ -175,3 +181,97 @@ class TestHandlingData(TestCase):
# @skip
# @skip
# def test_find_tpstm(self):
# def test_find_tpstm(self):
# self.fail()
# self.fail()
class
TestReadWaveformMSeed
(
TestCase
):
@classmethod
def
setUpClass
(
cls
)
->
None
:
q330_dir
=
TEST_DATA_DIR
.
joinpath
(
'
Q330-sample/day_vols_AX08
'
)
cls
.
q330_waveform_file
=
q330_dir
.
joinpath
(
'
AX08.XA..LHE.2021.186
'
)
cls
.
mseed_waveform_stream
=
read_ms
(
cls
.
q330_waveform_file
)
cls
.
mseed_waveform_trace
=
cls
.
mseed_waveform_stream
[
0
]
def
setUp
(
self
)
->
None
:
self
.
station_id
=
self
.
mseed_waveform_trace
.
stats
[
'
station
'
]
self
.
channel_id
=
self
.
mseed_waveform_trace
.
stats
[
'
channel
'
]
# This list is only ever written to, so we can keep it empty
self
.
traces_info
=
[]
self
.
temp_dir
=
tempfile
.
TemporaryDirectory
()
patcher
=
patch
(
'
sohstationviewer.model.handling_data.readWaveformTrace
'
)
self
.
addCleanup
(
patcher
.
stop
)
self
.
mock_readWaveformTrace
=
patcher
.
start
()
self
.
mock_readWaveformTrace
.
return_value
=
{
'
startTmEpoch
'
:
0
,
'
endTmEpoch
'
:
0
,
}
def
tearDown
(
self
)
->
None
:
self
.
temp_dir
.
cleanup
()
def
test_all_traces_are_processed
(
self
):
data_time
=
[
12512512
,
12215125121
]
readWaveformMSeed
(
self
.
q330_waveform_file
,
self
.
q330_waveform_file
.
name
,
self
.
station_id
,
self
.
channel_id
,
self
.
traces_info
,
data_time
,
self
.
temp_dir
.
name
)
self
.
assertEqual
(
len
(
self
.
traces_info
),
len
(
self
.
mseed_waveform_stream
))
def
test_readWaveformTrace_called
(
self
):
data_time
=
[
12512512
,
12215125121
]
readWaveformMSeed
(
self
.
q330_waveform_file
,
self
.
q330_waveform_file
.
name
,
self
.
station_id
,
self
.
channel_id
,
self
.
traces_info
,
data_time
,
self
.
temp_dir
.
name
)
self
.
assertTrue
(
self
.
mock_readWaveformTrace
.
called
)
def
test_start_data_time_earlier_than_earliest_start_time
(
self
):
self
.
mock_readWaveformTrace
.
return_value
=
{
'
startTmEpoch
'
:
51251
,
'
endTmEpoch
'
:
2623623
,
}
start_time
=
0
data_time
=
[
start_time
,
1625532949
]
readWaveformMSeed
(
self
.
q330_waveform_file
,
self
.
q330_waveform_file
.
name
,
self
.
station_id
,
self
.
channel_id
,
self
.
traces_info
,
data_time
,
self
.
temp_dir
.
name
)
self
.
assertEqual
(
data_time
[
0
],
start_time
)
def
test_end_data_time_later_than_latest_start_time
(
self
):
# End time set to be the last second of 9999 so as to be later than the
# end time of any test data.
self
.
mock_readWaveformTrace
.
return_value
=
{
'
startTmEpoch
'
:
51251
,
'
endTmEpoch
'
:
2623623
,
}
end_time
=
253402326000
data_time
=
[
1625443222
,
end_time
]
readWaveformMSeed
(
self
.
q330_waveform_file
,
self
.
q330_waveform_file
.
name
,
self
.
station_id
,
self
.
channel_id
,
self
.
traces_info
,
data_time
,
self
.
temp_dir
.
name
)
self
.
assertEqual
(
data_time
[
1
],
end_time
)
def
test_data_time_is_between_earliest_start_and_latest_end_time
(
self
):
self
.
mock_readWaveformTrace
.
return_value
=
{
'
startTmEpoch
'
:
51251
,
'
endTmEpoch
'
:
2623623
,
}
start_time
=
512579
end_time
=
2623616
data_time
=
[
start_time
,
end_time
]
expected_updated_data_time
=
[
51251
,
2623623
]
readWaveformMSeed
(
self
.
q330_waveform_file
,
self
.
q330_waveform_file
.
name
,
self
.
station_id
,
self
.
channel_id
,
self
.
traces_info
,
data_time
,
self
.
temp_dir
.
name
)
self
.
assertEqual
(
data_time
,
expected_updated_data_time
)
# Test that dataTime is updated correctly
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment