Пример #1
0
def test_read_analogs(
    usecols,
    shape_val,
    first_last_val,
    mean_val,
    median_val,
    sum_val,
    nans_val,
    extension,
):
    if extension == "csv":
        data = Analogs.from_csv(**analogs_csv_kwargs, usecols=usecols)
        decimal = 0
    elif extension == "c3d":
        data = Analogs.from_c3d(MARKERS_ANALOGS_C3D,
                                prefix_delimiter=".",
                                usecols=usecols)
        decimal = 4
    else:
        raise ValueError("wrong extension provided")

    if usecols and isinstance(usecols[0], str):
        np.testing.assert_array_equal(x=data.channel, y=usecols)

    is_expected_array(
        data,
        shape_val,
        first_last_val,
        mean_val,
        median_val,
        sum_val,
        nans_val,
        decimal=decimal,
    )
Пример #2
0
def test_proc_center():
    is_expected_array(MARKERS_DATA.meca.center(), **EXPECTED_VALUES[5])
    is_expected_array(MARKERS_DATA.meca.center(MARKERS_DATA.isel(time=0)),
                      **EXPECTED_VALUES[6])

    is_expected_array(ANALOGS_DATA.meca.center(), **EXPECTED_VALUES[7])
    is_expected_array(ANALOGS_DATA.meca.center(mu=2), **EXPECTED_VALUES[8])
    is_expected_array(ANALOGS_DATA.meca.center(ANALOGS_DATA.isel(time=0)),
                      **EXPECTED_VALUES[9])
Пример #3
0
def test_csv_without_header():
    is_expected_array(
        Analogs.from_csv(ANALOGS_CSV, first_row=5, first_column=2),
        **EXPECTED_VALUES[59],
    )

    is_expected_array(
        Markers.from_csv(MARKERS_CSV_WITHOUT_HEADER, first_column=2),
        **EXPECTED_VALUES[58],
    )
Пример #4
0
def test_read_xlsx():
    is_expected_array(
        Markers.from_excel(**{
            **markers_csv_kwargs,
            **dict(filename=MARKERS_XLSX)
        }),
        **EXPECTED_VALUES[60],
    )
    is_expected_array(
        Analogs.from_excel(**{
            **analogs_csv_kwargs,
            **dict(filename=ANALOGS_XLSX)
        }),
        **EXPECTED_VALUES[61],
    )
Пример #5
0
def test_proc_detect_outliers():
    is_expected_array(MARKERS_DATA.meca.detect_outliers(threshold=3),
                      **EXPECTED_VALUES[51])
    is_expected_array(MARKERS_DATA.meca.detect_outliers(threshold=1),
                      **EXPECTED_VALUES[52])

    is_expected_array(ANALOGS_DATA.meca.detect_outliers(threshold=3),
                      **EXPECTED_VALUES[53])
    is_expected_array(ANALOGS_DATA.meca.detect_outliers(threshold=1),
                      **EXPECTED_VALUES[54])
Пример #6
0
def test_proc_fft():
    is_expected_array(ANALOGS_DATA.meca.fft(freq=ANALOGS_DATA.rate),
                      **EXPECTED_VALUES[40])
    is_expected_array(
        ANALOGS_DATA.meca.fft(freq=ANALOGS_DATA.rate, only_positive=False),
        **EXPECTED_VALUES[41])

    is_expected_array(MARKERS_DATA.meca.fft(freq=ANALOGS_DATA.rate),
                      **EXPECTED_VALUES[42])
    is_expected_array(
        MARKERS_DATA.meca.fft(freq=ANALOGS_DATA.rate, only_positive=False),
        **EXPECTED_VALUES[43])
Пример #7
0
def test_proc_detect_onset():
    m = MARKERS_DATA[0, 0, :]
    r = xr.DataArray(m.meca.detect_onset(threshold=m.mean() + m.std()))
    is_expected_array(r, **EXPECTED_VALUES[49])

    r = xr.DataArray(
        m.meca.detect_onset(threshold=m.mean(),
                            n_below=10,
                            threshold2=m.mean() + m.std()))
    is_expected_array(r, **EXPECTED_VALUES[50])

    np.testing.assert_array_equal(x=m.meca.detect_onset(threshold=m.mean() *
                                                        10),
                                  y=0)

    with pytest.raises(ValueError):
        MARKERS_DATA[0, :, :].meca.detect_onset(threshold=0)

    with pytest.raises(ValueError):
        MARKERS_DATA[:, :, :].meca.detect_onset(threshold=0)
Пример #8
0
def test_proc_norm():
    n_frames = 100
    n_markers = 10
    m = Markers(np.random.rand(3, n_markers, n_frames))

    # norm by hand
    expected_norm = np.linalg.norm(m[:3, ...], axis=0)

    # norm with pyomeca
    computed_norm = m.meca.norm(dim="axis")

    np.testing.assert_almost_equal(computed_norm, expected_norm, decimal=10)

    is_expected_array(MARKERS_DATA.meca.norm(dim="axis"),
                      **EXPECTED_VALUES[44])
    is_expected_array(MARKERS_DATA.meca.norm(dim="channel"),
                      **EXPECTED_VALUES[45])
    is_expected_array(MARKERS_DATA.meca.norm(dim="time"),
                      **EXPECTED_VALUES[46])

    is_expected_array(ANALOGS_DATA.meca.norm(dim="channel"),
                      **EXPECTED_VALUES[47])
    is_expected_array(ANALOGS_DATA.meca.norm(dim="time"),
                      **EXPECTED_VALUES[48])
Пример #9
0
def test_proc_time_normalize():
    is_expected_array(MARKERS_DATA.meca.time_normalize(),
                      **EXPECTED_VALUES[26])
    is_expected_array(MARKERS_DATA.meca.time_normalize(n_frames=1000),
                      **EXPECTED_VALUES[27])
    time_vector = np.linspace(MARKERS_DATA.time[0], MARKERS_DATA.time[100],
                              100)
    is_expected_array(
        MARKERS_DATA.meca.time_normalize(time_vector=time_vector),
        **EXPECTED_VALUES[28])
    is_expected_array(
        MARKERS_DATA.meca.time_normalize(norm_time=True).time,
        **EXPECTED_VALUES[55])

    is_expected_array(ANALOGS_DATA.meca.time_normalize(),
                      **EXPECTED_VALUES[29])
    is_expected_array(ANALOGS_DATA.meca.time_normalize(n_frames=1000),
                      **EXPECTED_VALUES[30])
    time_vector = np.linspace(ANALOGS_DATA.time[0], ANALOGS_DATA.time[100],
                              100)
    is_expected_array(
        ANALOGS_DATA.meca.time_normalize(time_vector=time_vector),
        **EXPECTED_VALUES[31])
Пример #10
0
def test_proc_filters():
    freq = ANALOGS_DATA.rate
    order = 2

    is_expected_array(
        ANALOGS_DATA.meca.low_pass(order=order, cutoff=5, freq=freq),
        **EXPECTED_VALUES[32],
    )
    is_expected_array(
        ANALOGS_DATA.meca.low_pass(order=order, cutoff=5),
        **EXPECTED_VALUES[32],
    )
    is_expected_array(
        ANALOGS_DATA.meca.high_pass(order=order, cutoff=100),
        **EXPECTED_VALUES[33],
    )
    is_expected_array(
        ANALOGS_DATA.meca.band_pass(order=order, cutoff=[10, 200]),
        **EXPECTED_VALUES[34],
    )
    is_expected_array(
        ANALOGS_DATA.meca.band_stop(order=order, cutoff=[40, 60]),
        **EXPECTED_VALUES[35],
    )

    freq = MARKERS_DATA.rate
    is_expected_array(
        MARKERS_DATA.meca.low_pass(freq=freq, order=order, cutoff=5),
        **EXPECTED_VALUES[36],
    )
    is_expected_array(
        MARKERS_DATA.meca.low_pass(order=order, cutoff=5),
        **EXPECTED_VALUES[36],
    )
    is_expected_array(
        MARKERS_DATA.meca.high_pass(order=order, cutoff=10),
        **EXPECTED_VALUES[37],
    )
    is_expected_array(
        MARKERS_DATA.meca.band_pass(order=order, cutoff=[1, 10]),
        **EXPECTED_VALUES[38],
    )
    is_expected_array(
        MARKERS_DATA.meca.band_stop(order=order, cutoff=[5, 6]),
        **EXPECTED_VALUES[39],
    )

    with pytest.raises(ValueError):
        Analogs.from_random_data().meca.band_stop(order=order, cutoff=[5, 6])
def test_proc_filters():
    freq = ANALOGS_DATA.rate
    order = 2

    is_expected_array(
        ANALOGS_DATA.meca.low_pass(freq=freq, order=order, cutoff=5),
        **EXPECTED_VALUES[32],
    )
    is_expected_array(
        ANALOGS_DATA.meca.high_pass(freq=freq, order=order, cutoff=100),
        **EXPECTED_VALUES[33],
    )
    is_expected_array(
        ANALOGS_DATA.meca.band_pass(freq=freq, order=order, cutoff=[10, 200]),
        **EXPECTED_VALUES[34],
    )
    is_expected_array(
        ANALOGS_DATA.meca.band_stop(freq=freq, order=order, cutoff=[40, 60]),
        **EXPECTED_VALUES[35],
    )

    freq = MARKERS_DATA.rate
    is_expected_array(
        MARKERS_DATA.meca.low_pass(freq=freq, order=order, cutoff=5),
        **EXPECTED_VALUES[36],
    )
    is_expected_array(
        MARKERS_DATA.meca.high_pass(freq=freq, order=order, cutoff=10),
        **EXPECTED_VALUES[37],
    )
    is_expected_array(
        MARKERS_DATA.meca.band_pass(freq=freq, order=order, cutoff=[1, 10]),
        **EXPECTED_VALUES[38],
    )
    is_expected_array(
        MARKERS_DATA.meca.band_stop(freq=freq, order=order, cutoff=[5, 6]),
        **EXPECTED_VALUES[39],
    )
Пример #12
0
def test_proc_normalize():
    is_expected_array(MARKERS_DATA.meca.normalize(), **EXPECTED_VALUES[20])
    is_expected_array(MARKERS_DATA.meca.normalize(scale=1),
                      **EXPECTED_VALUES[21])
    is_expected_array(
        MARKERS_DATA.meca.normalize(ref=MARKERS_DATA.sel(time=5.76)),
        **EXPECTED_VALUES[22])

    is_expected_array(ANALOGS_DATA.meca.normalize(), **EXPECTED_VALUES[23])
    is_expected_array(ANALOGS_DATA.meca.normalize(scale=1),
                      **EXPECTED_VALUES[24])
    is_expected_array(
        ANALOGS_DATA.meca.normalize(ref=ANALOGS_DATA.sel(time=5.76)),
        **EXPECTED_VALUES[25])
Пример #13
0
def test_proc_abs():
    is_expected_array(ANALOGS_DATA.meca.abs(), **EXPECTED_VALUES[1])
    is_expected_array(MARKERS_DATA.meca.abs(), **EXPECTED_VALUES[2])
Пример #14
0
def test_proc_square_sqrt():
    is_expected_array(MARKERS_DATA.meca.square().meca.sqrt(),
                      **EXPECTED_VALUES[3])

    is_expected_array(ANALOGS_DATA.meca.square().meca.sqrt(),
                      **EXPECTED_VALUES[4])