Test safe time masking.
()
| 157 | |
| 158 | |
| 159 | def test_time_mask(): |
| 160 | """Test safe time masking.""" |
| 161 | N = 10 |
| 162 | x = np.arange(N).astype(float) |
| 163 | assert _time_mask(x, 0, N - 1).sum() == N |
| 164 | assert _time_mask(x - 1e-10, 0, N - 1, sfreq=1000.0).sum() == N |
| 165 | assert _time_mask(x - 1e-10, None, N - 1, sfreq=1000.0).sum() == N |
| 166 | assert _time_mask(x - 1e-10, None, None, sfreq=1000.0).sum() == N |
| 167 | assert _time_mask(x - 1e-10, -np.inf, None, sfreq=1000.0).sum() == N |
| 168 | assert _time_mask(x - 1e-10, None, np.inf, sfreq=1000.0).sum() == N |
| 169 | # non-uniformly spaced inputs |
| 170 | x = np.array([4, 10]) |
| 171 | assert _time_mask(x[:1], tmin=10, sfreq=1, raise_error=False).sum() == 0 |
| 172 | assert _time_mask(x[:1], tmin=11, tmax=12, sfreq=1, raise_error=False).sum() == 0 |
| 173 | assert _time_mask(x, tmin=10, sfreq=1).sum() == 1 |
| 174 | assert _time_mask(x, tmin=6, sfreq=1).sum() == 1 |
| 175 | assert _time_mask(x, tmin=5, sfreq=1).sum() == 1 |
| 176 | assert _time_mask(x, tmin=4.5001, sfreq=1).sum() == 1 |
| 177 | assert _time_mask(x, tmin=4.4999, sfreq=1).sum() == 2 |
| 178 | assert _time_mask(x, tmin=4, sfreq=1).sum() == 2 |
| 179 | # degenerate cases |
| 180 | with pytest.raises(ValueError, match="No samples remain"): |
| 181 | _time_mask(x[:1], tmin=11, tmax=12) |
| 182 | with pytest.raises(ValueError, match="must be less than or equal to tmax"): |
| 183 | _time_mask(x[:1], tmin=10, sfreq=1) |
| 184 | |
| 185 | |
| 186 | def test_freq_mask(): |
nothing calls this directly
no test coverage detected