test_spike2io.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # -*- coding: utf-8 -*-
  2. """
  3. Tests of neo.io.spike2io
  4. """
  5. # needed for python 3 compatibility
  6. from __future__ import absolute_import, division
  7. import unittest
  8. import quantities as pq
  9. from neo.io import Spike2IO
  10. from neo.test.iotest.common_io_test import BaseTestIO
  11. class TestSpike2IO(BaseTestIO, unittest.TestCase, ):
  12. ioclass = Spike2IO
  13. files_to_test = [
  14. 'File_spike2_1.smr',
  15. 'File_spike2_2.smr',
  16. 'File_spike2_3.smr',
  17. '130322-1LY.smr', # this is for bug 182
  18. 'multi_sampling.smr', # this is for bug 466
  19. ]
  20. files_to_download = files_to_test
  21. def test_multi_sampling(self):
  22. """
  23. Some file can have several sampling_rate.
  24. This one contain 3 differents signals sampling rate
  25. """
  26. filename = self.get_filename_path('multi_sampling.smr')
  27. reader = Spike2IO(filename=filename)
  28. bl = reader.read_block(signal_group_mode='group-by-same-units')
  29. assert len(bl.segments) == 10
  30. seg = bl.segments[0]
  31. # 7 group_id one per channel
  32. assert len(seg.analogsignals) == 7
  33. # 1 channel for 1kHz
  34. assert seg.analogsignals[0].shape == (14296, 1)
  35. assert seg.analogsignals[0].sampling_rate == 1000 * pq.Hz
  36. # 4 channel for 2kHz
  37. for c in range(1, 5):
  38. assert seg.analogsignals[c].shape == (28632, 1)
  39. assert seg.analogsignals[c].sampling_rate == 2000 * pq.Hz
  40. # 2 channel for 10kHz
  41. for c in range(5, 7):
  42. assert seg.analogsignals[c].shape == (114618, 1)
  43. assert seg.analogsignals[c].sampling_rate == 10000 * pq.Hz
  44. if __name__ == "__main__":
  45. unittest.main()