-
Notifications
You must be signed in to change notification settings - Fork 11
/
test_file_read_write.py
54 lines (44 loc) · 1.54 KB
/
test_file_read_write.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
"""Test bvbabel file read write functions.
NOTES
-----
In the command line, navigate to bvbabel directory and run `pytest`.
"""
import os
import pytest
import numpy as np
import bvbabel
import pytest
import gzip
import shutil
SOURCE = "/home/faruk/Git/bvbabel/test_data/sub-test01_fileversion-2.vmr.gz"
DIRNAME = os.path.dirname(SOURCE)
BASENAME, EXT, _ = SOURCE.split(os.extsep, 2)
BASENAME = os.path.basename(BASENAME)
OUTPUTDIR = os.path.join(DIRNAME, "temp_tests")
INPUT1 = os.path.join(OUTPUTDIR, f"{BASENAME}.{EXT}")
INPUT2 = os.path.join(OUTPUTDIR, f"{BASENAME}_bvbabel.{EXT}")
# =============================================================================
# Output directory
if not os.path.exists(OUTPUTDIR):
os.makedirs(OUTPUTDIR)
print(" Output directory: {}\n".format(OUTPUTDIR))
# -----------------------------------------------------------------------------
# Unzip
with gzip.open(SOURCE, 'rb') as f_in:
with open(INPUT1, 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
def test_vmr_header_roundtrip():
"""Test VMR header read and write."""
header1, data1 = bvbabel.vmr.read_vmr(INPUT1)
bvbabel.vmr.write_vmr(INPUT2, header1, data1)
header2, data2 = bvbabel.vmr.read_vmr(INPUT2)
assert header1 == header2
def test_vmr_data_roundtrip():
"""Test VMR data read and write."""
header1, data1 = bvbabel.vmr.read_vmr(INPUT1)
bvbabel.vmr.write_vmr(INPUT2, header1, data1)
header2, data2 = bvbabel.vmr.read_vmr(INPUT2)
assert np.array_equal(data1, data2)
# Cleanup
os.remove(INPUT1)
os.remove(INPUT2)