mirror of
https://github.com/echemdata/galvani.git
synced 2025-12-14 09:15:34 +00:00
Added unit tests for the VMPdata_dtype_from_colIDs function
This commit is contained in:
@@ -8,7 +8,7 @@ import numpy as np
|
|||||||
from numpy.testing import assert_array_almost_equal, assert_array_equal
|
from numpy.testing import assert_array_almost_equal, assert_array_equal
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from galvani import MPTfile, MPRfile
|
from galvani import BioLogic, MPTfile, MPRfile
|
||||||
from galvani.BioLogic import MPTfileCSV, str3 # not exported
|
from galvani.BioLogic import MPTfileCSV, str3 # not exported
|
||||||
|
|
||||||
testdata_dir = os.path.join(os.path.dirname(__file__), 'testdata')
|
testdata_dir = os.path.join(os.path.dirname(__file__), 'testdata')
|
||||||
@@ -44,6 +44,37 @@ def test_open_MPT_csv_fails_for_bad_file():
|
|||||||
MPTfileCSV(os.path.join(testdata_dir, 'bio_logic1.mpr'))
|
MPTfileCSV(os.path.join(testdata_dir, 'bio_logic1.mpr'))
|
||||||
|
|
||||||
|
|
||||||
|
def test_colID_map_uniqueness():
|
||||||
|
"""Check some uniqueness properties of the VMPdata_colID_xyz maps."""
|
||||||
|
field_colIDs = set(BioLogic.VMPdata_colID_dtype_map.keys())
|
||||||
|
flag_colIDs = set(BioLogic.VMPdata_colID_flag_map.keys())
|
||||||
|
field_names = [v[0] for v in BioLogic.VMPdata_colID_dtype_map.values()]
|
||||||
|
flag_names = [v[0] for v in BioLogic.VMPdata_colID_flag_map.values()]
|
||||||
|
assert not field_colIDs.intersection(flag_colIDs)
|
||||||
|
# 'I/mA' and 'dQ/mA.h' are duplicated
|
||||||
|
# assert len(set(field_names)) == len(field_names)
|
||||||
|
assert len(set(flag_names)) == len(flag_names)
|
||||||
|
assert not set(field_names).intersection(flag_names)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('colIDs, expected', [
|
||||||
|
([1, 2, 3], [('flags', 'u1')]),
|
||||||
|
([4, 6], [('time/s', '<f8'), ('Ewe/V', '<f4')]),
|
||||||
|
([1, 4, 21], [('flags', 'u1'), ('time/s', '<f8')]),
|
||||||
|
([4, 6, 4], [('time/s', '<f8'), ('Ewe/V', '<f4'), ('time/s 2', '<f8')]),
|
||||||
|
([4, 9999], NotImplementedError),
|
||||||
|
])
|
||||||
|
def test_colID_to_dtype(colIDs, expected):
|
||||||
|
"""Test converting column ID to numpy dtype."""
|
||||||
|
if isinstance(expected, type) and issubclass(expected, Exception):
|
||||||
|
with pytest.raises(expected):
|
||||||
|
BioLogic.VMPdata_dtype_from_colIDs(colIDs)
|
||||||
|
return
|
||||||
|
expected_dtype = np.dtype(expected)
|
||||||
|
dtype, flags_dict = BioLogic.VMPdata_dtype_from_colIDs(colIDs)
|
||||||
|
assert dtype == expected_dtype
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('filename, startdate, enddate', [
|
@pytest.mark.parametrize('filename, startdate, enddate', [
|
||||||
('bio_logic1.mpr', '2011-10-29', '2011-10-31'),
|
('bio_logic1.mpr', '2011-10-29', '2011-10-31'),
|
||||||
('bio_logic2.mpr', '2012-09-27', '2012-09-27'),
|
('bio_logic2.mpr', '2012-09-27', '2012-09-27'),
|
||||||
|
|||||||
Reference in New Issue
Block a user