TestCMOS.py 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import unittest
  2. import McsPy.McsCMOS
  3. import os
  4. import numpy
  5. FILENAME = os.path.join(os.path.dirname(__file__), 'TestData\\CMOSTestRec.h5')
  6. class TestMcsCMOS(unittest.TestCase):
  7. def setUp(self):
  8. self.test_file=McsPy.McsCMOS.CMOSData(FILENAME)
  9. def test_CMOSData_meta(self):
  10. #File Meta
  11. self.assertEqual(self.test_file.meta["McsHdf5ProtocolType"], "RawData")
  12. self.assertEqual(self.test_file.meta["McsHdf5ProtocolVersion"], 1)
  13. # Data Meta
  14. self.assertEqual(self.test_file.meta["ProgramName"].strip(), "CMOS-MEA-Control")
  15. self.assertEqual(self.test_file.meta["ProgramVersion"].strip(), "0.7.0.0")
  16. self.assertEqual(self.test_file.meta["MeaName"].strip(), "nMos32?")
  17. self.assertEqual(self.test_file.meta["MeaLayout"], "")
  18. self.assertEqual(self.test_file.meta["MeaSN"].strip(), "unknown")
  19. self.assertEqual(self.test_file.meta["Date"].strip(), "Tuesday, November 04, 2014")
  20. self.assertEqual(self.test_file.meta["DateInTicks"], 635506934728348929)
  21. self.assertEqual(self.test_file.meta["FileGUID"], "67ced1bf-c1a7-4a3d-9df3-2e56fd459cbd")
  22. self.assertEqual(self.test_file.meta["Comment"], "")
  23. # InfoFrame Meta
  24. self.assertEqual(self.test_file.meta["FrameID"], 1)
  25. self.assertEqual(self.test_file.meta["FrameDataID"], 0)
  26. self.assertEqual(self.test_file.meta["GroupID"], 1)
  27. self.assertEqual(self.test_file.meta["Label"], "ROI 1")
  28. self.assertEqual(self.test_file.meta["RawDataType"], "Short")
  29. self.assertEqual(self.test_file.meta["Unit"], "V")
  30. self.assertEqual(self.test_file.meta["Exponent"], -9)
  31. self.assertEqual(self.test_file.meta["ADZero"], 0)
  32. self.assertEqual(self.test_file.meta["Tick"], 50)
  33. self.assertEqual(self.test_file.meta["HighPassFilterType"], "")
  34. self.assertEqual(self.test_file.meta["HighPassFilterCutOffFrequency"], "-1")
  35. self.assertEqual(self.test_file.meta["HighPassFilterOrder"], -1)
  36. self.assertEqual(self.test_file.meta["LowPassFilterType"], "")
  37. self.assertEqual(self.test_file.meta["LowPassFilterCutOffFrequency"], "-1")
  38. self.assertEqual(self.test_file.meta["LowPassFilterOrder"], -1)
  39. self.assertEqual(self.test_file.meta["SensorSpacing"], 1)
  40. self.assertEqual(self.test_file.meta["FrameLeft"], 1)
  41. self.assertEqual(self.test_file.meta["FrameTop"], 1)
  42. self.assertEqual(self.test_file.meta["FrameRight"], 65)
  43. self.assertEqual(self.test_file.meta["FrameBottom"], 65)
  44. self.assertEqual(self.test_file.meta["ReferenceFrameLeft"], 1)
  45. self.assertEqual(self.test_file.meta["ReferenceFrameTop"], 1)
  46. self.assertEqual(self.test_file.meta["ReferenceFrameRight"], 65)
  47. self.assertEqual(self.test_file.meta["ReferenceFrameBottom"], 65)
  48. def test_CMOSData_data(self):
  49. # Dataset Dimensions
  50. self.assertEqual(self.test_file.raw_data.shape[0],65)
  51. self.assertEqual(self.test_file.raw_data.shape[1],65)
  52. self.assertEqual(self.test_file.raw_data.shape[2],2000)
  53. #Some Random Datapoints
  54. self.assertEqual(self.test_file.raw_data[56,45,33],10)
  55. self.assertEqual(self.test_file.raw_data[1,11,203],-3)
  56. self.assertEqual(self.test_file.raw_data[23,64,870],0)
  57. def test_CMOSData_conversion_factors(self):
  58. self.assertEqual(self.test_file.conv_factors[56,45],6456)
  59. self.assertEqual(self.test_file.conv_factors[1,11],1)
  60. self.assertEqual(self.test_file.conv_factors[23,64],1)
  61. def test_CMOSData_conversion_proxy(self):
  62. #Data Access
  63. self.assertEqual(self.test_file.conv_data[56,45,33],64560)
  64. self.assertEqual(self.test_file.conv_data[1,11,203],-3)
  65. self.assertEqual(self.test_file.conv_data[23,64,870],0)
  66. #Attribute proxy
  67. self.assertEqual(self.test_file.conv_data.dtype,numpy.int32)
  68. self.assertEqual(self.test_file.conv_data[23,64,870].dtype,numpy.int32)
  69. if __name__ == '__main__':
  70. unittest.main()