Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 86 additions & 32 deletions tests/test_aamp.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,15 @@ def test_aamp_self_join(T_A, T_B):
comp_mp = aamp(T_B, m, p=p)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)

comp_mp = aamp(pd.Series(T_B), m, p=p)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)


@pytest.mark.parametrize("T_A, T_B", test_data)
Expand All @@ -50,11 +54,15 @@ def test_aamp_A_B_join(T_A, T_B):
comp_mp = aamp(T_A, m, T_B, ignore_trivial=False, p=p)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)

comp_mp = aamp(pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False, p=p)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)


def test_aamp_constant_subsequence_self_join():
Expand All @@ -64,11 +72,15 @@ def test_aamp_constant_subsequence_self_join():
comp_mp = aamp(T_A, m, ignore_trivial=True)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices

comp_mp = aamp(pd.Series(T_A), m, ignore_trivial=True)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices


def test_aamp_one_constant_subsequence_A_B_join():
Expand All @@ -79,18 +91,24 @@ def test_aamp_one_constant_subsequence_A_B_join():
comp_mp = aamp(T_A, m, T_B, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices

comp_mp = aamp(pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices

# Swap inputs
ref_mp = naive.aamp(T_B, m, T_B=T_A)
comp_mp = aamp(T_B, m, T_A, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices


def test_aamp_two_constant_subsequences_A_B_join():
Expand All @@ -103,22 +121,30 @@ def test_aamp_two_constant_subsequences_A_B_join():
comp_mp = aamp(T_A, m, T_B, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices

comp_mp = aamp(pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices

# Swap inputs
ref_mp = naive.aamp(T_B, m, T_B=T_A)
comp_mp = aamp(T_B, m, T_A, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices

comp_mp = aamp(pd.Series(T_B), m, pd.Series(T_A), ignore_trivial=False)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp[:, 0], comp_mp[:, 0]) # ignore indices
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64), comp_mp[:, 0].astype(np.float64), atol=1.5e-07
) # ignore indices


def test_aamp_identical_subsequence_self_join():
Expand All @@ -131,14 +157,18 @@ def test_aamp_identical_subsequence_self_join():
comp_mp = aamp(T_A, m, ignore_trivial=True)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(
ref_mp[:, 0], comp_mp[:, 0], decimal=config.STUMPY_TEST_PRECISION
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64),
comp_mp[:, 0].astype(np.float64),
atol=1.5 * 10**-config.STUMPY_TEST_PRECISION,
) # ignore indices

comp_mp = aamp(pd.Series(T_A), m, ignore_trivial=True)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(
ref_mp[:, 0], comp_mp[:, 0], decimal=config.STUMPY_TEST_PRECISION
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64),
comp_mp[:, 0].astype(np.float64),
atol=1.5 * 10**-config.STUMPY_TEST_PRECISION,
) # ignore indices


Expand All @@ -153,23 +183,29 @@ def test_aamp_identical_subsequence_A_B_join():
comp_mp = aamp(T_A, m, T_B, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(
ref_mp[:, 0], comp_mp[:, 0], config.STUMPY_TEST_PRECISION
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64),
comp_mp[:, 0].astype(np.float64),
atol=1.5 * 10**-config.STUMPY_TEST_PRECISION,
) # ignore indices

comp_mp = aamp(pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(
ref_mp[:, 0], comp_mp[:, 0], config.STUMPY_TEST_PRECISION
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64),
comp_mp[:, 0].astype(np.float64),
atol=1.5 * 10**-config.STUMPY_TEST_PRECISION,
) # ignore indices

# Swap inputs
ref_mp = naive.aamp(T_B, m, T_B=T_A)
comp_mp = aamp(T_B, m, T_A, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(
ref_mp[:, 0], comp_mp[:, 0], config.STUMPY_TEST_PRECISION
npt.assert_allclose(
ref_mp[:, 0].astype(np.float64),
comp_mp[:, 0].astype(np.float64),
atol=1.5 * 10**-config.STUMPY_TEST_PRECISION,
) # ignore indices


Expand All @@ -189,11 +225,15 @@ def test_aamp_nan_inf_self_join(T_A, T_B, substitute_B, substitution_locations):
comp_mp = aamp(T_B_sub, m, ignore_trivial=True)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)

comp_mp = aamp(pd.Series(T_B_sub), m, ignore_trivial=True)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)


@pytest.mark.parametrize("T_A, T_B", test_data)
Expand All @@ -219,13 +259,17 @@ def test_aamp_nan_inf_A_B_join(
comp_mp = aamp(T_A_sub, m, T_B_sub, ignore_trivial=False)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)

comp_mp = aamp(
pd.Series(T_A_sub), m, pd.Series(T_B_sub), ignore_trivial=False
)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)


def test_aamp_nan_zero_mean_self_join():
Expand All @@ -237,7 +281,9 @@ def test_aamp_nan_zero_mean_self_join():

naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)


@pytest.mark.parametrize("T_A, T_B", test_data)
Expand All @@ -249,11 +295,15 @@ def test_aamp_self_join_KNN(T_A, T_B):
comp_mp = aamp(T_B, m, p=p, k=k)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)

comp_mp = aamp(pd.Series(T_B), m, p=p, k=k)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)


@pytest.mark.parametrize("T_A, T_B", test_data)
Expand All @@ -265,10 +315,14 @@ def test_aamp_A_B_join_KNN(T_A, T_B):
comp_mp = aamp(T_A, m, T_B, ignore_trivial=False, p=p, k=k)
naive.replace_inf(ref_mp)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)

comp_mp = aamp(
pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False, p=p, k=k
)
naive.replace_inf(comp_mp)
npt.assert_almost_equal(ref_mp, comp_mp)
npt.assert_allclose(
ref_mp.astype(np.float64), comp_mp.astype(np.float64), atol=1.5e-07
)