#!/usr/bin/env python
""" """
# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2011 Hendrix Demers"
__license__ = ""
# Standard library modules.
import unittest
import logging
import os.path
import tempfile
import shutil
# Third party modules.
import numpy as np
# Local modules.
# Project modules
import pymcxray.serialization.SerializationNumpy as SerializationNumpy
# Globals and constants variables.
[docs]class TestSerializationNumpy(unittest.TestCase):
[docs] def setUp(self):
unittest.TestCase.setUp(self)
self.tempPath = tempfile.mkdtemp(prefix="Test_Serialization_")
[docs] def tearDown(self):
unittest.TestCase.tearDown(self)
try:
shutil.rmtree(self.tempPath)
except OSError as message:
logging.error(message)
[docs] def testSkeleton(self):
#self.fail("Test if the testcase is working.")
self.assert_(True)
[docs] def test_loadSaveSerializationNumpy(self):
dataRef = np.arange(1.0, 10.0)
serialization = SerializationNumpy.SerializationNumpy()
filepath = os.path.join(self.tempPath, "SerializationNumpy.dat")
serialization.setFilepath(filepath)
serialization.save(dataRef)
data = serialization.load()
self.assertEquals(len(dataRef), len(data))
for valueRef, value in zip(dataRef, data):
self.assertAlmostEquals(valueRef, value)
#self.fail("Test if the testcase is working.")
[docs] def test_loadSaveSerializationNumpyTxt(self):
dataRef = np.arange(1.0, 10.0)
serialization = SerializationNumpy.SerializationNumpyTxt()
filepath = os.path.join(self.tempPath, "SerializationNumpy.dat")
serialization.setFilepath(filepath)
serialization.save(dataRef)
data = serialization.load()
self.assertEquals(len(dataRef), len(data))
for valueRef, value in zip(dataRef, data):
self.assertAlmostEquals(valueRef, value)
#self.fail("Test if the testcase is working.")
[docs] def test_loadSaveSerializationNumpyTxtGz(self):
dataRef = np.arange(1.0, 10.0)
serialization = SerializationNumpy.SerializationNumpyTxtGz()
filepath = os.path.join(self.tempPath, "SerializationNumpy.dat")
serialization.setFilepath(filepath)
serialization.save(dataRef)
data = serialization.load()
self.assertEquals(len(dataRef), len(data))
for valueRef, value in zip(dataRef, data):
self.assertAlmostEquals(valueRef, value)
#self.fail("Test if the testcase is working.")
[docs] def test_loadSaveSerializationNumpyNPY(self):
dataRef = np.arange(1.0, 10.0)
serialization = SerializationNumpy.SerializationNumpyNPY()
filepath = os.path.join(self.tempPath, "SerializationNumpy.npy")
serialization.setFilepath(filepath)
serialization.save(dataRef)
data = serialization.load()
self.assertEquals(len(dataRef), len(data))
for valueRef, value in zip(dataRef, data):
self.assertAlmostEquals(valueRef, value)
#self.fail("Test if the testcase is working.")
[docs] def test_loadSaveSerializationNumpyNPZ(self):
dataRef = {}
dataRef['x'] = np.arange(1.0, 10.0)
dataRef['Raw'] = np.ones((20, 3))
serialization = SerializationNumpy.SerializationNumpyNPZ()
filepath = os.path.join(self.tempPath, "SerializationNumpy.npz")
serialization.setFilepath(filepath)
serialization.save(dataRef)
data = serialization.load()
self.assertEquals(len(dataRef), len(data))
for key in data:
self.assertEquals(len(dataRef[key]), len(data[key]))
self.assertEquals(dataRef[key].shape, data[key].shape)
self.assertEquals(dataRef[key].ndim, data[key].ndim)
self.assertEquals(dataRef[key].dtype, data[key].dtype)
for valueRef, value in zip(dataRef[key].flat, data[key].flat):
self.assertAlmostEquals(valueRef, value)
#self.fail("Test if the testcase is working.")
if __name__ == '__main__': #pragma: no cover
logging.getLogger().setLevel(logging.DEBUG)
from pymcxray.Testings import runTestModule
runTestModule()