1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
from pynwb import NWBHDF5IO
from pynwb.testing.mock.file import mock_Subject, mock_NWBFile
from pynwb.testing.mock.base import mock_TimeSeries
from pynwb.testing.mock.ophys import (
mock_ImagingPlane,
mock_OnePhotonSeries,
mock_TwoPhotonSeries,
mock_RoiResponseSeries,
mock_PlaneSegmentation,
mock_OpticalChannel,
mock_Fluorescence,
mock_DfOverF,
mock_ImageSegmentation,
)
from pynwb.testing.mock.ogen import (
mock_OptogeneticStimulusSite,
mock_OptogeneticSeries
)
from pynwb.testing.mock.device import mock_Device
from pynwb.testing.mock.behavior import (
mock_Position,
mock_PupilTracking,
mock_CompassDirection,
mock_SpatialSeries,
)
from pynwb.testing.mock.ecephys import (
mock_ElectrodeGroup,
mock_ElectrodeTable,
mock_ElectricalSeries,
mock_SpikeEventSeries,
mock_Units,
)
from pynwb.testing.mock.icephys import (
mock_IntracellularElectrode,
mock_CurrentClampSeries,
mock_IZeroClampSeries,
mock_VoltageClampSeries,
mock_VoltageClampStimulusSeries,
mock_CurrentClampStimulusSeries,
mock_IntracellularRecordingsTable,
)
import pytest
from pynwb.testing.mock.utils import name_generator, name_generator_registry
mock_functions = [
mock_ImagingPlane,
mock_OnePhotonSeries,
mock_TwoPhotonSeries,
mock_RoiResponseSeries,
mock_PlaneSegmentation,
mock_OpticalChannel,
mock_Fluorescence,
mock_DfOverF,
mock_ImageSegmentation,
mock_OptogeneticStimulusSite,
mock_OptogeneticSeries,
mock_Device,
mock_Position,
mock_PupilTracking,
mock_CompassDirection,
mock_SpatialSeries,
mock_ElectrodeGroup,
mock_ElectrodeTable,
mock_ElectricalSeries,
mock_SpikeEventSeries,
mock_Subject,
mock_NWBFile,
mock_TimeSeries,
mock_CurrentClampSeries,
mock_IZeroClampSeries,
mock_VoltageClampSeries,
mock_VoltageClampStimulusSeries,
mock_IntracellularElectrode,
mock_CurrentClampStimulusSeries,
mock_IntracellularRecordingsTable,
mock_Units,
]
@pytest.mark.parametrize("mock_function", mock_functions)
def test_mock(mock_function):
mock_function()
def test_mock_TimeSeries_w_timestamps():
ts = mock_TimeSeries(timestamps=[0, 1, 2, 3])
assert ts.timestamps is not None
assert len(ts.timestamps) == 4
def test_mock_TimeSeries_w_no_time():
ts = mock_TimeSeries()
assert ts.rate == 10.0
@pytest.mark.parametrize("mock_function", mock_functions)
def test_mock_write(mock_function, tmp_path):
if mock_function is mock_NWBFile:
return
nwbfile = mock_NWBFile()
assert mock_function(nwbfile=nwbfile) is not None
test_file = tmp_path / (mock_function.__name__ + ".nwb")
with NWBHDF5IO(test_file, "w") as io:
io.write(nwbfile)
def test_name_generator():
name_generator_registry.clear() # reset registry
assert name_generator("TimeSeries") == "TimeSeries"
assert name_generator("TimeSeries") == "TimeSeries2"
|