TestVariables.py
154 lines
| 5.3 KiB
| text/x-python
|
PythonLexer
/ tests / TestVariables.py
r63 | import sys | |||
import os | ||||
r65 | if not hasattr(sys, 'argv') or len(sys.argv)==0: | |||
sys.argv = [''] | ||||
current_script_path = os.path.dirname(os.path.realpath(__file__)) | ||||
sys.path.append(current_script_path) | ||||
r63 | ||||
import sciqlopqt | ||||
import pysciqlopcore | ||||
import numpy as np | ||||
r65 | import pandas as pds | |||
r63 | import datetime | |||
import time | ||||
import unittest | ||||
import ddt | ||||
def listify(obj): | ||||
if hasattr(obj, "__getitem__"): | ||||
return obj | ||||
return [obj] | ||||
@ddt.ddt | ||||
class TimeSeriesCtors(unittest.TestCase): | ||||
@ddt.data( | ||||
(pysciqlopcore.ScalarTimeSerie,10), | ||||
(pysciqlopcore.VectorTimeSerie,10), | ||||
r77 | (pysciqlopcore.SpectrogramTimeSerie,[10,10]), | |||
(pysciqlopcore.MultiComponentTimeSerie,[10,10]), | ||||
(pysciqlopcore.ScalarTimeSerie,0), | ||||
(pysciqlopcore.VectorTimeSerie,0), | ||||
(pysciqlopcore.SpectrogramTimeSerie,[0,10]), | ||||
(pysciqlopcore.MultiComponentTimeSerie,[0,10]) | ||||
r63 | ) | |||
def test_construct(self, case): | ||||
ts = case[0](case[1]) | ||||
self.assertEqual(ts.shape,listify(case[1])) | ||||
class TimeSeriesData(unittest.TestCase): | ||||
def test_set_ScalarTimeSerie_values(self): | ||||
ts = pysciqlopcore.ScalarTimeSerie(10) | ||||
ts.t[0]=111. | ||||
self.assertEqual(ts.t[0],111.) | ||||
ts[0]=123. | ||||
self.assertEqual(ts[0],123.) | ||||
r66 | def test_set_VectorTimeSerie_values(self): | |||
ts = pysciqlopcore.VectorTimeSerie(10) | ||||
ts.t[0]=111. | ||||
self.assertEqual(ts.t[0],111.) | ||||
ts[0].x=111. | ||||
ts[0].y=222. | ||||
ts[0].z=333. | ||||
self.assertEqual(ts[0].x,111.) | ||||
self.assertEqual(ts[0].y,222.) | ||||
self.assertEqual(ts[0].z,333.) | ||||
def test_set_SpectrogramTimeSerie_values(self): | ||||
ts = pysciqlopcore.SpectrogramTimeSerie((10,100)) | ||||
ts.t[0]=111. | ||||
self.assertEqual(ts.t[0],111.) | ||||
ts[0][11]=123. | ||||
self.assertEqual(ts[0][11],123.) | ||||
r63 | def test_build_ScalarTimeSerie_from_np_arrays(self): | |||
r65 | ts = pysciqlopcore.ScalarTimeSerie(np.arange(10), np.arange(10)*10) | |||
for i in range(len(ts)): | ||||
self.assertEqual(ts[i],i*10.) | ||||
r63 | ||||
r64 | def test_build_VectorTimeSerie_from_np_arrays(self): | |||
r78 | v=np.ones((10,3)) | |||
r65 | for i in range(3): | |||
r78 | v.transpose()[:][i] = np.arange(10)*10**i | |||
r65 | ts = pysciqlopcore.VectorTimeSerie(np.arange(10), v) | |||
for i in range(len(ts)): | ||||
self.assertEqual(ts[i].x,i) | ||||
self.assertEqual(ts[i].y,i*10.) | ||||
self.assertEqual(ts[i].z,i*100.) | ||||
r76 | ||||
def test_build_MultiComponentTimeSerie_from_np_arrays(self): | ||||
r78 | v=np.ones((10,5)) | |||
r76 | for i in range(5): | |||
r78 | v.transpose()[:][i] = np.arange(10)*10**i | |||
r76 | ts = pysciqlopcore.MultiComponentTimeSerie(np.arange(10), v) | |||
for i in range(len(ts)): | ||||
self.assertEqual(ts[i][0],i) | ||||
self.assertEqual(ts[i][1],i*10.) | ||||
self.assertEqual(ts[i][2],i*100.) | ||||
r77 | def test_build_MultiComponentTimeSerie_from_np_arrays_of_nan(self): | |||
r78 | v=np.empty((2,5)) | |||
r77 | v.fill(np.nan) | |||
ts = pysciqlopcore.MultiComponentTimeSerie(np.arange(2), v) | ||||
for i in range(len(ts)): | ||||
self.assertTrue(np.isnan(ts[i][0])) | ||||
self.assertTrue(np.isnan(ts[i][1])) | ||||
self.assertTrue(np.isnan(ts[i][2])) | ||||
self.assertTrue(np.isnan(ts[i][3])) | ||||
r65 | def test_build_VectorTimeSerie_from_np_arrays_row(self): | |||
v=np.ones((10,3)) | ||||
for i in range(3): | ||||
v.transpose()[:][i] = np.arange(10)*10**i | ||||
ts = pysciqlopcore.VectorTimeSerie(np.arange(10), v) | ||||
for i in range(len(ts)): | ||||
self.assertEqual(ts[i].x,i) | ||||
self.assertEqual(ts[i].y,i*10.) | ||||
self.assertEqual(ts[i].z,i*100.) | ||||
r78 | def test_build_ScalarTimeSerie_from_np_dataframe(self): | |||
df = pds.DataFrame(data=np.zeros((10,1)),index=np.arange(10)) | ||||
df[0] = np.arange(10) | ||||
ts = pysciqlopcore.ScalarTimeSerie(df.index.values, df.values) | ||||
for i in range(len(ts)): | ||||
self.assertEqual(ts[i],i) | ||||
r65 | def test_build_VectorTimeSerie_from_np_dataframe(self): | |||
df = pds.DataFrame(data=np.zeros((10,3)),index=np.arange(10)) | ||||
for i in range(3): | ||||
df[i] = np.arange(10)*10**i | ||||
ts = pysciqlopcore.VectorTimeSerie(df.index.values, df.values) | ||||
for i in range(len(ts)): | ||||
self.assertEqual(ts[i].x,i) | ||||
self.assertEqual(ts[i].y,i*10.) | ||||
self.assertEqual(ts[i].z,i*100.) | ||||
def test_build_SpectrogramTimeSerie_from_np_arrays(self): | ||||
r83 | v=np.ones((10,30)) | |||
for i in range(30): | ||||
v.transpose()[:][i] = np.arange(10)*10**(i/10.) | ||||
ts = pysciqlopcore.SpectrogramTimeSerie(np.arange(10),np.arange(30), v) | ||||
r65 | for i in range(len(ts)): | |||
r83 | for j in range(30): | |||
self.assertEqual(ts[i][j], i*10**(j/10.)) | ||||
for i in range(30): | ||||
self.assertEqual(ts.axis(1)[i], i) | ||||
r66 | ||||
class VariableData(unittest.TestCase): | ||||
def test_default_state(self): | ||||
v=pysciqlopcore.Variable2("hello") | ||||
self.assertEqual(str(v.name), str("hello")) | ||||
self.assertEqual(type(v.data), type(None)) | ||||
self.assertEqual(len(v), 0) | ||||
r65 | ||||
r66 | def test_set_name(self): | |||
v=pysciqlopcore.Variable2("hello") | ||||
self.assertEqual(str(v.name), str("hello")) | ||||
v.name="newName" | ||||
self.assertEqual(str(v.name), str("newName")) | ||||
r64 | ||||
r63 | if __name__ == '__main__': | |||
r65 | unittest.main(exit=False) | |||