|
12 | 12 | check_negative_spike_times, |
13 | 13 | check_electrical_series_dims, |
14 | 14 | check_electrical_series_reference_electrodes_table, |
| 15 | + check_spike_times_not_in_unobserved_interval, |
15 | 16 | ) |
16 | 17 | from nwbinspector.register_checks import InspectorMessage, Importance |
17 | 18 |
|
@@ -152,3 +153,64 @@ def test_trigger_check_electrical_series_reference_electrodes_table(self): |
152 | 153 | check_electrical_series_reference_electrodes_table(electrical_series).message |
153 | 154 | == "electrodes does not reference an electrodes table." |
154 | 155 | ) |
| 156 | + |
| 157 | + |
| 158 | +def test_check_spike_times_not_in_unobserved_interval_pass(): |
| 159 | + units_table = Units(name="TestUnits") |
| 160 | + units_table.add_unit(spike_times=[1, 2, 3], obs_intervals=[[0, 2.5], [2.7, 3.5]]) |
| 161 | + assert check_spike_times_not_in_unobserved_interval(units_table=units_table) is None |
| 162 | + |
| 163 | + |
| 164 | +def test_check_spike_times_not_in_unobserved_interval_pass_no_intervals(): |
| 165 | + units_table = Units(name="TestUnits") |
| 166 | + units_table.add_unit(spike_times=[1, 2, 3]) |
| 167 | + assert check_spike_times_not_in_unobserved_interval(units_table=units_table) is None |
| 168 | + |
| 169 | + |
| 170 | +def test_check_spike_times_not_in_unobserved_interval_1(): |
| 171 | + units_table = Units(name="TestUnits") |
| 172 | + units_table.add_unit(spike_times=[1, 2, 3], obs_intervals=[[0, 2.5], [3.5, 4]]) |
| 173 | + assert check_spike_times_not_in_unobserved_interval(units_table=units_table) == InspectorMessage( |
| 174 | + message=( |
| 175 | + "This Units table contains spike times that occur during periods of time not labeled as being " |
| 176 | + "observed intervals." |
| 177 | + ), |
| 178 | + importance=Importance.BEST_PRACTICE_VIOLATION, |
| 179 | + check_function_name="check_spike_times_not_in_unobserved_interval", |
| 180 | + object_type="Units", |
| 181 | + object_name="TestUnits", |
| 182 | + location="/", |
| 183 | + ) |
| 184 | + |
| 185 | + |
| 186 | +def test_check_spike_times_not_in_unobserved_interval_2(): |
| 187 | + units_table = Units(name="TestUnits") |
| 188 | + units_table.add_unit(spike_times=[1, 2, 3, 4, 5, 6], obs_intervals=[[0, 2.5], [3.5, 7]]) |
| 189 | + assert check_spike_times_not_in_unobserved_interval(units_table=units_table) == InspectorMessage( |
| 190 | + message=( |
| 191 | + "This Units table contains spike times that occur during periods of time not labeled as being " |
| 192 | + "observed intervals." |
| 193 | + ), |
| 194 | + importance=Importance.BEST_PRACTICE_VIOLATION, |
| 195 | + check_function_name="check_spike_times_not_in_unobserved_interval", |
| 196 | + object_type="Units", |
| 197 | + object_name="TestUnits", |
| 198 | + location="/", |
| 199 | + ) |
| 200 | + |
| 201 | + |
| 202 | +def test_check_spike_times_not_in_unobserved_interval_multiple_units(): |
| 203 | + units_table = Units(name="TestUnits") |
| 204 | + units_table.add_unit(spike_times=[1, 2, 3, 4, 5, 6], obs_intervals=[[0, 3.2], [3.5, 7]]) |
| 205 | + units_table.add_unit(spike_times=[6.5, 12, 13, 14, 15, 16], obs_intervals=[[10, 15.2], [15.8, 17]]) |
| 206 | + assert check_spike_times_not_in_unobserved_interval(units_table=units_table) == InspectorMessage( |
| 207 | + message=( |
| 208 | + "This Units table contains spike times that occur during periods of time not labeled as being " |
| 209 | + "observed intervals." |
| 210 | + ), |
| 211 | + importance=Importance.BEST_PRACTICE_VIOLATION, |
| 212 | + check_function_name="check_spike_times_not_in_unobserved_interval", |
| 213 | + object_type="Units", |
| 214 | + object_name="TestUnits", |
| 215 | + location="/", |
| 216 | + ) |
0 commit comments