import numpy as np import pytest import xarray as xr SAMPLERATE = 250_000 DURATION = 0.1 TEST_FREQ = 30_000 N_SAMPLES = int(SAMPLERATE * DURATION) TIME_COORD = np.linspace( 0, DURATION, N_SAMPLES, endpoint=False, dtype=np.float32 ) @pytest.fixture def sine_wave_xr() -> xr.DataArray: """Generate a single sine wave as an xr.DataArray.""" t = TIME_COORD wav_data = np.sin(2 * np.pi * TEST_FREQ * t, dtype=np.float32) return xr.DataArray( wav_data, coords={"time": t}, dims=["time"], attrs={"samplerate": SAMPLERATE}, ) @pytest.fixture def constant_wave_xr() -> xr.DataArray: """Generate a constant signal as an xr.DataArray.""" t = TIME_COORD wav_data = np.ones(N_SAMPLES, dtype=np.float32) * 0.5 return xr.DataArray( wav_data, coords={"time": t}, dims=["time"], attrs={"samplerate": SAMPLERATE}, )