Skip to content
Snippets Groups Projects
Commit 37a8a825 authored by Mads M. Pedersen's avatar Mads M. Pedersen
Browse files

flex test bugfix

parent 4f6d0c50
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -7,7 +7,16 @@ import struct
import numpy as np
import os
def load(filename, dtype=np.float):
def load(filename, name_stop=8, dtype=np.float):
"""
Parameters
----------
- filename
- name_stop : int or str
if int: Number of characters for name
if str: name-description delimiter, e.g. " "
- dtype
"""
if isinstance(filename, str):
fid = open(filename,'rb')
elif hasattr(filename, "name"):
......@@ -50,7 +59,7 @@ def load(filename, dtype=np.float):
sensor_filename = os.path.join(os.path.dirname(filename), "sensor")
sensor_info = {info[0]:info[1:] for info in read_sensor_info(sensor_filename) }
sensor_info = {info[0]:info[1:] for info in read_sensor_info(sensor_filename, name_stop) }
# set gain and offset for "Time"
gains = []
......@@ -83,7 +92,15 @@ def load(filename, dtype=np.float):
return time, data, info
def read_sensor_info(sensor_file):
def read_sensor_info(sensor_file, name_stop=8):
"""
Parameters
----------
- sensor_file
- name_stop : int or str
if int: Number of characters for name
if str: name-description delimiter, e.g. " "
"""
if hasattr(sensor_file, 'readlines'):
sensor_info_lines = sensor_file.readlines()[2:]
......@@ -99,12 +116,15 @@ def read_sensor_info(sensor_file):
gain = float(line[1])
offset = float(line[2])
unit = line[5]
name_desc = " ".join(line[6:])
name = name_desc[:8].split()[0]
description = name_desc[8:]
# name = line[6]
# description = " ".join(line[7:])
if isinstance(name_stop,int):
name_desc = " ".join(line[6:])
name = name_desc[:name_stop].strip()
description = name_desc[name_stop:].strip()
elif isinstance(name_stop,str):
name_desc = (" ".join(line[6:])).split(name_stop)
name = name_desc[0].strip()
description = name_stop.join(name_desc[1:]).strip()
sensor_info.append((nr, name, unit, description, gain, offset))
return sensor_info
......
......@@ -15,9 +15,9 @@ class Test(unittest.TestCase):
def test_load(self):
time, data, info = flex.load(tfp+"test1/test.int")
self.assertEqual(data.shape, (800,7))
self.assertEqual(info['attribute_names'][1], "WSP_gl._")
self.assertEqual(info['attribute_units'][1], "m/s")
self.assertEqual(info['attribute_descriptions'][1], " Free wind speed Vy, gl. coo, of gl. pos 0.75, 0.00, -40.75")
self.assertEqual(info['attribute_names'][0], "WSP_gl._")
self.assertEqual(info['attribute_units'][0], "m/s")
self.assertEqual(info['attribute_descriptions'][0], "Free wind speed Vy, gl. coo, of gl. pos 0.75, 0.00, -40.75")
self.assertAlmostEqual(data[0, 1], 12.037,3)
......
......@@ -16,10 +16,17 @@ class Test(unittest.TestCase):
sensor_info = read_sensor_info(tfp + "test_sensor_info/sensor")
nr, name, unit, description, _, _ = sensor_info[17]
self.assertEqual(nr, 18)
self.assertEqual(name, "Mz coo: ")
self.assertEqual(name, "Mz coo:")
self.assertEqual(unit, "kNm")
self.assertEqual(description, "MomentMz Mbdy:tower nodenr: 1 coo: tower tower base flange")
def test_sensor_load_name_stop(self):
sensor_info = read_sensor_info(tfp + "test_sensor_info/sensor"," ")
nr, name, unit, description, _, _ = sensor_info[17]
self.assertEqual(nr, 18)
self.assertEqual(name, "Mz")
self.assertEqual(unit, "kNm")
self.assertEqual(description, "coo: MomentMz Mbdy:tower nodenr: 1 coo: tower tower base flange")
if __name__ == "__main__":
#import sys;sys.argv = ['', 'Test.test_sensor_load']
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment