Waveform Database Software Package (WFDB) for Python 4.1.0
(3,679 bytes)
import wfdb
class TestMultiRecordRanges:
"""
Test logic that deduces relevant segments/ranges for given signals.
"""
def test_contained_ranges_simple_cases(self):
record = wfdb.MultiRecord(
segments=[
wfdb.Record(sig_name=["I", "II"], sig_len=5),
wfdb.Record(sig_name=["I", "III"], sig_len=10),
],
)
assert record.contained_ranges("I") == [(0, 15)]
assert record.contained_ranges("II") == [(0, 5)]
assert record.contained_ranges("III") == [(5, 15)]
def test_contained_ranges_variable_layout(self):
record = wfdb.rdheader(
"sample-data/multi-segment/s00001/s00001-2896-10-10-00-31",
rd_segments=True,
)
assert record.contained_ranges("II") == [
(3261, 10136),
(4610865, 10370865),
(10528365, 14518365),
]
assert record.contained_ranges("V") == [
(3261, 918261),
(920865, 4438365),
(4610865, 10370865),
(10528365, 14518365),
]
assert record.contained_ranges("MCL1") == [
(10136, 918261),
(920865, 4438365),
]
assert record.contained_ranges("ABP") == [
(14428365, 14450865),
(14458365, 14495865),
]
def test_contained_ranges_fixed_layout(self):
record = wfdb.rdheader(
"sample-data/multi-segment/041s/041s",
rd_segments=True,
)
for sig_name in record.sig_name:
assert record.contained_ranges(sig_name) == [(0, 2000)]
def test_contained_combined_ranges_simple_cases(self):
record = wfdb.MultiRecord(
segments=[
wfdb.Record(sig_name=["I", "II", "V"], sig_len=5),
wfdb.Record(sig_name=["I", "III", "V"], sig_len=10),
wfdb.Record(sig_name=["I", "II", "V"], sig_len=20),
],
)
assert record.contained_combined_ranges(["I", "II"]) == [
(0, 5),
(15, 35),
]
assert record.contained_combined_ranges(["II", "III"]) == []
assert record.contained_combined_ranges(["I", "III"]) == [(5, 15)]
assert record.contained_combined_ranges(["I", "II", "V"]) == [
(0, 5),
(15, 35),
]
def test_contained_combined_ranges_variable_layout(self):
record = wfdb.rdheader(
"sample-data/multi-segment/s00001/s00001-2896-10-10-00-31",
rd_segments=True,
)
assert record.contained_combined_ranges(["II", "V"]) == [
(3261, 10136),
(4610865, 10370865),
(10528365, 14518365),
]
assert record.contained_combined_ranges(["II", "MCL1"]) == []
assert record.contained_combined_ranges(["II", "ABP"]) == [
(14428365, 14450865),
(14458365, 14495865),
]
assert record.contained_combined_ranges(["II", "V", "ABP"]) == [
(14428365, 14450865),
(14458365, 14495865),
]
assert (
record.contained_combined_ranges(["II", "V", "MCL1", "ABP"]) == []
)
def test_contained_combined_ranges_variable_layout(self):
record = wfdb.rdheader(
"sample-data/multi-segment/041s/041s",
rd_segments=True,
)
for sig_1 in record.sig_name:
for sig_2 in record.sig_name:
if sig_1 == sig_2:
continue
assert record.contained_combined_ranges([sig_1, sig_2]) == [
(0, 2000)
]