mirror of
https://github.com/echemdata/galvani.git
synced 2025-12-14 09:15:34 +00:00
Added I/mA column type = 8
Also there seems to be a duplicate of colID=23 is the same as 7 (dq/mAh)
This commit is contained in:
@@ -9,6 +9,7 @@ from os import SEEK_SET, SEEK_CUR
|
||||
import time
|
||||
from datetime import date
|
||||
from collections import OrderedDict
|
||||
from warnings import warn
|
||||
|
||||
import numpy as np
|
||||
|
||||
@@ -74,8 +75,7 @@ def MPTfile(file_or_path):
|
||||
"counter inc.", "time/s", "control/V", "Ewe/V", "<I>/mA",
|
||||
"dQ/mA.h", "P/W"])
|
||||
if fieldnames not in expected_fieldnames:
|
||||
raise ValueError("Unrecognised headers for MPT file format %s" %
|
||||
fieldnames)
|
||||
warn("Unrecognised headers for MPT file format %s" % fieldnames)
|
||||
|
||||
record_type = np.dtype(list(map(fieldname_to_dtype, fieldnames)))
|
||||
|
||||
@@ -150,8 +150,11 @@ def VMPdata_dtype_from_colIDs(colIDs):
|
||||
dtype_dict['control/V/mA'] = '<f4'
|
||||
elif colID == 6:
|
||||
dtype_dict['Ewe/V'] = '<f4'
|
||||
elif colID == 7:
|
||||
## Not sure of the difference between 7 and 23 - they seem to be the same
|
||||
elif colID == 7 or colID == 23:
|
||||
dtype_dict['dQ/mA.h'] = '<f8'
|
||||
elif colID == 8:
|
||||
dtype_dict['I/mA'] = '<f4'
|
||||
elif colID == 19:
|
||||
dtype_dict['control/V'] = '<f4'
|
||||
elif colID == 70:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os.path
|
||||
import re
|
||||
from datetime import date
|
||||
|
||||
import numpy as np
|
||||
@@ -69,6 +70,13 @@ def test_open_MPR4():
|
||||
eq_(mpr.enddate, date(2011, 11, 2))
|
||||
|
||||
|
||||
def test_open_MPR5():
|
||||
mpr = MPRfile(os.path.join(testdata_dir, 'bio-logic5.mpr'))
|
||||
## Check the dates as a basic test that it has been read properly
|
||||
eq_(mpr.startdate, date(2013, 1, 28))
|
||||
eq_(mpr.enddate, date(2013, 1, 28))
|
||||
|
||||
|
||||
@raises(ValueError)
|
||||
def test_open_MPR_fails_for_bad_file():
|
||||
mpr1 = MPRfile(os.path.join(testdata_dir, 'arbin1.res'))
|
||||
@@ -77,7 +85,7 @@ def test_open_MPR_fails_for_bad_file():
|
||||
def assert_MPR_matches_MPT(mpr, mpt):
|
||||
|
||||
def assert_field_matches(fieldname, decimal):
|
||||
if fieldname in mpt.dtype.fields:
|
||||
if fieldname in mpr.dtype.fields:
|
||||
assert_array_almost_equal(mpr.data[fieldname],
|
||||
mpt[fieldname],
|
||||
decimal=decimal)
|
||||
@@ -97,7 +105,7 @@ def assert_MPR_matches_MPT(mpr, mpt):
|
||||
|
||||
assert_array_almost_equal(mpr.data["time/s"],
|
||||
mpt["time/s"],
|
||||
decimal=5) # 5 digits in CSV
|
||||
decimal=4) # 5 digits in CSV
|
||||
|
||||
assert_field_matches("control/V/mA", decimal=6)
|
||||
assert_field_matches("control/V", decimal=6)
|
||||
@@ -111,6 +119,7 @@ def assert_MPR_matches_MPT(mpr, mpt):
|
||||
decimal=17) # 64 bit float precision
|
||||
|
||||
assert_field_matches("P/W", decimal=10) # 32 bit float precision for 1.xxE-5
|
||||
assert_field_matches("I/mA", decimal=6) # 32 bit float precision
|
||||
|
||||
|
||||
def test_MPR1_matches_MPT1():
|
||||
@@ -132,4 +141,11 @@ def test_MPR4_matches_MPT4():
|
||||
mpr4 = MPRfile(os.path.join(testdata_dir, 'bio-logic4.mpr'))
|
||||
mpt4, comments = MPTfile(os.path.join(testdata_dir, 'bio-logic4.mpt'))
|
||||
assert_MPR_matches_MPT(mpr4, mpt4)
|
||||
|
||||
|
||||
|
||||
def test_MPR5_matches_MPT5():
|
||||
mpr = MPRfile(os.path.join(testdata_dir, 'bio-logic5.mpr'))
|
||||
mpt, comments = MPTfile((re.sub(b'\tXXX\t', b'\t0\t', line) for line in
|
||||
open(os.path.join(testdata_dir, 'bio-logic5.mpt'),
|
||||
mode='rb')))
|
||||
assert_MPR_matches_MPT(mpr, mpt)
|
||||
|
||||
Reference in New Issue
Block a user