Skip to content

Commit 3d9e558

Browse files
committed
fix tests
1 parent 87fc7da commit 3d9e558

File tree

6 files changed

+36
-66
lines changed

6 files changed

+36
-66
lines changed

devtests.ipynb

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -449,50 +449,6 @@
449449
" \n",
450450
" return fields, t"
451451
]
452-
},
453-
{
454-
"cell_type": "code",
455-
"execution_count": 7,
456-
"metadata": {
457-
"collapsed": true
458-
},
459-
"outputs": [],
460-
"source": [
461-
"import wfdb\n",
462-
"\n",
463-
"x = wfdb.Record()\n"
464-
]
465-
},
466-
{
467-
"cell_type": "code",
468-
"execution_count": 2,
469-
"metadata": {
470-
"collapsed": false
471-
},
472-
"outputs": [
473-
{
474-
"data": {
475-
"text/plain": [
476-
"True"
477-
]
478-
},
479-
"execution_count": 2,
480-
"metadata": {},
481-
"output_type": "execute_result"
482-
}
483-
],
484-
"source": [
485-
"type(5.4) == float"
486-
]
487-
},
488-
{
489-
"cell_type": "code",
490-
"execution_count": null,
491-
"metadata": {
492-
"collapsed": true
493-
},
494-
"outputs": [],
495-
"source": []
496452
}
497453
],
498454
"metadata": {

tests/test_records.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def test_1(self):
1818
def test_2(self):
1919
record = wfdb.rdsamp('sampledata/100', sampfrom=1,
2020
sampto=10800, channels=[1], physical=False)
21-
sig = record.signals
21+
sig = record.d_signals
2222
targetsig = np.genfromtxt('tests/targetoutputdata/target2')
2323
targetsig = targetsig.reshape(len(targetsig), 1)
2424
assert np.array_equal(sig, targetsig)
@@ -28,7 +28,7 @@ def test_2(self):
2828
# target3
2929
def test_3(self):
3030
record = wfdb.rdsamp('sampledata/test01_00s', physical=False)
31-
sig = record.signals
31+
sig = record.d_signals
3232
targetsig = np.genfromtxt('tests/targetoutputdata/target3')
3333
assert np.array_equal(sig, targetsig)
3434

@@ -48,7 +48,7 @@ def test_4(self):
4848
def test_5(self):
4949
record = wfdb.rdsamp('sampledata/a103l',
5050
sampfrom=20000, channels=[0, 1], physical=False)
51-
sig = record.signals
51+
sig = record.d_signals
5252
targetsig = np.genfromtxt('tests/targetoutputdata/target5')
5353
assert np.array_equal(sig, targetsig)
5454

@@ -68,7 +68,7 @@ def test_6(self):
6868
# target7
6969
def test_7(self):
7070
record= wfdb.rdsamp('sampledata/s0010_re', physical=False)
71-
sig = record.signals
71+
sig = record.d_signals
7272
targetsig = np.genfromtxt('tests/targetoutputdata/target7')
7373
assert np.array_equal(sig, targetsig)
7474

@@ -87,7 +87,7 @@ def test_8(self):
8787
# target9
8888
def test_9(self):
8989
record = wfdb.rdsamp('sampledata/03700181', physical=False)
90-
sig = record.signals
90+
sig = record.d_signals
9191
# The WFDB library rdsamp does not return the final N samples for all
9292
# channels due to the skew.
9393
sig = sig[:-4, :]

wfdb/annotations.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ class Annotation():
2727
annotations that are not one of the codes go in the 'aux' field rather than the 'anntype'
2828
field.
2929
"""
30-
def __init__(self, recordname, annotator, annsamp, anntype, num = None, subtype = None, chan = None, aux = None, fs = None):
30+
def __init__(self, recordname, annotator, annsamp, anntype, subtype = None, chan = None, num = None, aux = None, fs = None):
3131
self.recordname = recordname
3232
self.annotator = annotator
3333

3434
self.annsamp = annsamp
3535
self.anntype = anntype
36-
self.num = num
3736
self.subtype = subtype
3837
self.chan = chan
38+
self.num = num
3939
self.aux = aux
4040
self.fs = fs
4141

@@ -408,7 +408,8 @@ def rdann(recordname, annotator, sampfrom=0, sampto=None):
408408

409409
AT = filebytes[bpi, 1] >> 2
410410

411-
while (AT > 59): # Process any other fields belonging to this annotation
411+
# Process any other fields belonging to this annotation
412+
while (AT > 59):
412413

413414
subtype,bpi,num,chan,cpychan,cpynum,aux = proc_extra_fields(AT,
414415
subtype,ai,filebytes,bpi,num,chan,cpychan,cpynum,aux)
@@ -435,7 +436,7 @@ def rdann(recordname, annotator, sampfrom=0, sampto=None):
435436
# Process the fields if there are custom annotation types
436437
allannsyms,annsamp,anntype,num,subtype,chan,aux = proccustomtypes(annsamp,anntype,num,subtype,chan,aux)
437438

438-
# Apply annotation range (from X to Y)
439+
# Apply annotation range
439440
annsamp,anntype,num,subtype,chan,aux = apply_annotation_range(annsamp,
440441
sampfrom,sampto,anntype,num,subtype,chan,aux)
441442

wfdb/plots.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import numpy as np
2+
import sys
3+
import matplotlib.pyplot as plt
24
from . import records
35
from . import _headers
46
from . import annotations
5-
import matplotlib.pyplot as plt
7+
68

79
# Plot a WFDB record's signals
810
def plotrec(record=None, signals = None, fields = None, title = None, timeunits='samples', returnfig = False):
@@ -176,11 +178,11 @@ def checkannplotitems(annotation, title, timeunits):
176178
if timeunits == 'samples':
177179
plotvals = annotation.annsamp
178180
elif timeunits == 'seconds':
179-
plotvals = annotation.annsamp
181+
plotvals = annotation.annsamp/annotation.fs
180182
elif timeunits == 'minutes':
181-
plotvals = annotation.annsamp
182-
else:
183-
t = np.linspace(0, siglen-1, siglen)/fs/3600
183+
plotvals = annotation.annsamp/(annotation.fs*60)
184+
elif timeunits == 'hours':
185+
plotvals = annotation.annsamp/(annotation.fs*3600)
184186

185187
# title
186188
if title is not None and type(title) != str:

wfdb/records.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def checkfield(self, field):
150150
for f in self.segname:
151151
if f == '~':
152152
continue
153-
acceptedstring = re.match('[-\w]+',f).string
153+
acceptedstring = re.match('[-\w]+',f)
154154
if not acceptedstring or acceptedstring.string != f:
155155
sys.exit("Non-null segment names may only contain alphanumerics. Null segment names must be equal to '~'")
156156
elif field == 'seglen':

wfdbdemo.ipynb

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,28 @@
5151
},
5252
{
5353
"cell_type": "code",
54-
"execution_count": null,
54+
"execution_count": 1,
5555
"metadata": {
5656
"collapsed": false
5757
},
58-
"outputs": [],
58+
"outputs": [
59+
{
60+
"data": {
61+
"image/png": "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\nAABJRU5ErkJggg==\n",
62+
"text/plain": [
63+
"<matplotlib.figure.Figure at 0x7fcea07b99b0>"
64+
]
65+
},
66+
"metadata": {},
67+
"output_type": "display_data"
68+
}
69+
],
5970
"source": [
60-
"# Demo 3 - Read a WFDB annotation and plot the samples\n",
71+
"# Demo 3 - Read part of a WFDB annotation file and plot the samples\n",
6172
"import wfdb\n",
62-
"annotation = wfdb.rdann('sampledata/12726', 'wabp')\n",
63-
"wfdb.plotann(annotation)\n",
64-
"annotation.__dict__"
73+
"annotation = wfdb.rdann('sampledata/12726', 'wabp', sampfrom = 100000, sampto = 110000)\n",
74+
"annotation.fs = 120\n",
75+
"wfdb.plotann(annotation, timeunits = 'seconds')"
6576
]
6677
},
6778
{
@@ -72,7 +83,7 @@
7283
},
7384
"outputs": [],
7485
"source": [
75-
"# Demo 4 - Read a WFDB record and annotation and plot them together.\n",
86+
"# Demo 4 - Read a WFDB record and annotation, and plot them together.\n",
7687
"\n",
7788
"signals, fields=wfdb.srdsamp('sampledata/100')\n",
7889
"annotation = wfdb.rdann('sampledata/100', 'atr')\n",

0 commit comments

Comments
 (0)