test_exampleio.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. """
  2. Tests of neo.io.exampleio
  3. """
  4. import unittest
  5. from neo.io.exampleio import ExampleIO # , HAVE_SCIPY
  6. from neo.test.iotest.common_io_test import BaseTestIO
  7. from neo.io.proxyobjects import (AnalogSignalProxy,
  8. SpikeTrainProxy, EventProxy, EpochProxy)
  9. from neo import (AnalogSignal, SpikeTrain)
  10. import quantities as pq
  11. import numpy as np
  12. # This run standart tests, this is mandatory for all IO
  13. class TestExampleIO(BaseTestIO, unittest.TestCase, ):
  14. ioclass = ExampleIO
  15. files_to_test = ['fake1',
  16. 'fake2',
  17. ]
  18. files_to_download = []
  19. class Specific_TestExampleIO(unittest.TestCase):
  20. def test_read_segment_lazy(self):
  21. r = ExampleIO(filename=None)
  22. seg = r.read_segment(lazy=True)
  23. for ana in seg.analogsignals:
  24. assert isinstance(ana, AnalogSignalProxy)
  25. ana = ana.load()
  26. assert isinstance(ana, AnalogSignal)
  27. for st in seg.spiketrains:
  28. assert isinstance(st, SpikeTrainProxy)
  29. st = st.load()
  30. assert isinstance(st, SpikeTrain)
  31. seg = r.read_segment(lazy=False)
  32. for anasig in seg.analogsignals:
  33. assert isinstance(ana, AnalogSignal)
  34. self.assertNotEqual(anasig.size, 0)
  35. for st in seg.spiketrains:
  36. assert isinstance(st, SpikeTrain)
  37. self.assertNotEqual(st.size, 0)
  38. # annotations
  39. assert 'seg_extra_info' in seg.annotations
  40. assert seg.name == 'Seg #0 Block #0'
  41. for anasig in seg.analogsignals:
  42. assert anasig.name is not None
  43. for st in seg.spiketrains:
  44. assert st.name is not None
  45. for ev in seg.events:
  46. assert ev.name is not None
  47. for ep in seg.epochs:
  48. assert ep.name is not None
  49. def test_read_block(self):
  50. r = ExampleIO(filename=None)
  51. bl = r.read_block(lazy=True)
  52. #assert len(bl.list_units) == 3
  53. #assert len(bl.channel_indexes) == 1 + 1 # signals grouped + units grouped
  54. def test_read_segment_with_time_slice(self):
  55. r = ExampleIO(filename=None)
  56. seg = r.read_segment(time_slice=None)
  57. shape_full = seg.analogsignals[0].shape
  58. spikes_full = seg.spiketrains[0]
  59. event_full = seg.events[0]
  60. t_start, t_stop = 260 * pq.ms, 1.854 * pq.s
  61. seg = r.read_segment(time_slice=(t_start, t_stop))
  62. shape_slice = seg.analogsignals[0].shape
  63. spikes_slice = seg.spiketrains[0]
  64. event_slice = seg.events[0]
  65. assert shape_full[0] > shape_slice[0]
  66. assert spikes_full.size > spikes_slice.size
  67. assert np.all(spikes_slice >= t_start)
  68. assert np.all(spikes_slice <= t_stop)
  69. assert spikes_slice.t_start == t_start
  70. assert spikes_slice.t_stop == t_stop
  71. assert event_full.size > event_slice.size
  72. assert np.all(event_slice.times >= t_start)
  73. assert np.all(event_slice.times <= t_stop)
  74. if __name__ == "__main__":
  75. unittest.main()