start=0, duration=20,
channels=2)
+ def tearDown(self):
+ pass
+
+#good_numpy_data_types = [
+# 'float64',
+# 'float32',
+## 'float16',
+# 'int64',
+# 'int16',
+# 'int32',
+# 'int8',
+# 'uint16',
+# 'uint32',
+# 'uint64',
+# 'uint8',
+#]
+from timeside.analyzer.core import numpy_data_types as good_numpy_data_types
+
+bad_numpy_data_types = [
+ # not understood by json or yaml
+ 'float128',
+ # Not supported by h5py for version < 2.2
+ 'float16',
+ # complex can not be serialized in json
+ 'complex256',
+ 'complex128',
+ 'complex64',
+ # ?
+ 'datetime64',
+ 'timedelta64',
+ 'unicode_',
+ 'string_'
+ ]
+
+
+def create_good_method_func(numpy_data_type):
+ def method(self):
+ "numpy %s" % str(numpy_data_type)[7:-1]
+ self.result.data_object.value = numpy_data_type(pi)
+ return method
+
+
+def create_bad_method_func(numpy_data_type):
+ def method(self):
+ "numpy %s" % numpy_data_type
+ try:
+ data = getattr(numpy, numpy_data_type)(pi)
+ except ValueError:
+ data = getattr(numpy, numpy_data_type)()
+ self.assertRaises(TypeError, self.result.data_object.__setattr__, 'value', data)
+ return method
+
+class TestAnalyzerResultBadType(TestAnalyzerResult):
+ """ test AnalyzerResult on bad data type"""
+ pass
+
+class TestAnalyzerResultGoodType(TestAnalyzerResult):
+ """ test AnalyzerResult on good data type"""
def testOnFloat(self):
"float result"
self.result.data_object.value = 1.2
"list result"
self.result.data_object.value = [1., 2.]
+ @unittest.skip("String have to be handled through label metadata")
def testOnString(self):
"string result"
self.result.data_object.value = "hello"
+ @unittest.skip("String have to be handled through label metadata")
def testOnListOfString(self):
"list of strings result"
self.result.data_object.value = ["hello", "hola"]
"numpy 3d array of int32"
self.result.data_object.value = ones([2, 3, 2], dtype='int32')
+ @unittest.skip("String have to be handled through label metadata")
def testOnNumpyArrayOfStrings(self):
"numpy array of strings"
self.result.data_object.value = array(['hello', 'hola'])
"None"
self.result.data_object.value = None
+ @unittest.skip("String have to be handled through label metadata")
def testOnUnicode(self):
- "None"
- self.result.data_object.value = None
-
- def tearDown(self):
- pass
-
-#good_numpy_data_types = [
-# 'float64',
-# 'float32',
-## 'float16',
-# 'int64',
-# 'int16',
-# 'int32',
-# 'int8',
-# 'uint16',
-# 'uint32',
-# 'uint64',
-# 'uint8',
-#]
-from timeside.analyzer.core import numpy_data_types as good_numpy_data_types
+ "Unicode"
+ self.result.data_object.value = u'\u0107'
-bad_numpy_data_types = [
- # not understood by json or yaml
- 'float128',
- # Not supported by h5py for version < 2.2
- 'float16',
- # complex can not be serialized in json
- 'complex256',
- 'complex128',
- 'complex64',
- # ?
- 'datetime64',
- 'timedelta64',
- ]
-
-
-def create_good_method_func(numpy_data_type):
- def method(self):
- "numpy %s" % str(numpy_data_type)[7:-1]
- import numpy
- self.result.data_object.value = numpy_data_type(pi)
- return method
-
-
-def create_bad_method_func(numpy_data_type):
- def method(self):
- "numpy %s" % numpy_data_type
- import numpy
- try:
- data = getattr(numpy, numpy_data_type)(pi)
- except ValueError:
- data = getattr(numpy, numpy_data_type)()
- self.assertRaises(TypeError, self.result.data_object.__setattr__, 'value', data)
- return method
+
for numpy_data_type in good_numpy_data_types:
test_method = create_good_method_func(numpy_data_type)
str_type = str(numpy_data_type)[13:-2] # keep only type string
test_method.__name__ = 'testOnNumpy_%s' % str_type
test_method.__doc__ = 'groks a numpy %s' % str_type
- setattr(TestAnalyzerResult, test_method.__name__, test_method)
+ setattr(TestAnalyzerResultGoodType, test_method.__name__, test_method)
for numpy_data_type in bad_numpy_data_types:
test_method = create_bad_method_func(numpy_data_type)
test_method.__name__ = 'testOnNumpy_%s' % numpy_data_type
test_method.__doc__ = 'gasps on numpy %s' % numpy_data_type
- setattr(TestAnalyzerResult, test_method.__name__, test_method)
+ setattr(TestAnalyzerResultBadType, test_method.__name__, test_method)
-class TestAnalyzerResultNumpy(TestAnalyzerResult):
+
+class TestAnalyzerResultNumpy(TestAnalyzerResultGoodType):
""" test AnalyzerResult numpy serialize """
def tearDown(self):
self.assertEqual(d_numpy, results)
-class TestAnalyzerResultHdf5(TestAnalyzerResult):
+class TestAnalyzerResultHdf5(TestAnalyzerResultGoodType):
""" test AnalyzerResult hdf5 serialize """
def tearDown(self):
self.assertEqual(results, res_hdf5)
-class TestAnalyzerResultYaml(TestAnalyzerResult):
+class TestAnalyzerResultYaml(TestAnalyzerResultGoodType):
""" test AnalyzerResult yaml serialize """
def tearDown(self):
results = AnalyzerResultContainer(self.result)
self.assertEqual(results, d_yaml)
-class TestAnalyzerResultXml(TestAnalyzerResult):
+class TestAnalyzerResultXml(TestAnalyzerResultGoodType):
""" test AnalyzerResult xml serialize """
def tearDown(self):
results = AnalyzerResultContainer([self.result])
self.assertEqual(d_xml, results)
-class TestAnalyzerResultJson(TestAnalyzerResult):
+class TestAnalyzerResultJson(TestAnalyzerResultGoodType):
""" test AnalyzerResult """
def tearDown(self):
results = AnalyzerResultContainer([self.result])
self.assertEqual(d_json, results)
-class TestAnalyzerResultAsDict(TestAnalyzerResult):
+class TestAnalyzerResultAsDict(TestAnalyzerResultGoodType):
""" test AnalyzerResult as Dictionnary"""
def tearDown(self):