##// END OF EJS Templates
Spectrogram wrapper allow to set values from python...
Spectrogram wrapper allow to set values from python Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r66:e718ad47d2bc
r66:e718ad47d2bc
Show More
TestVariables.py
119 lines | 3.8 KiB | text/x-python | PythonLexer
import sys
import os
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)
import sciqlopqt
import pysciqlopcore
import numpy as np
import pandas as pds
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),
(pysciqlopcore.SpectrogramTimeSerie,[10,10])
)
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.)
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.)
def test_build_ScalarTimeSerie_from_np_arrays(self):
ts = pysciqlopcore.ScalarTimeSerie(np.arange(10), np.arange(10)*10)
for i in range(len(ts)):
self.assertEqual(ts[i],i*10.)
def test_build_VectorTimeSerie_from_np_arrays(self):
v=np.ones((3,10))
for i in range(3):
v[:][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.)
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.)
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):
v=np.ones((4,10))
for i in range(4):
v[:][i] = np.arange(10)*10**i
ts = pysciqlopcore.SpectrogramTimeSerie(np.arange(10), v)
for i in range(len(ts)):
for j in range(4):
self.assertEqual(ts[i][j], i*10**j)
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)
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"))
if __name__ == '__main__':
unittest.main(exit=False)