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
170 changes: 85 additions & 85 deletions tests/test_mmotifs.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,128 +52,128 @@

@pytest.mark.parametrize("T", test_data)
def test_mmotifs_with_default_parameters(T):
motif_distances_ref = np.array([[0.0000000e00, 1.1151008e-07]])
motif_indices_ref = np.array([[2, 9]])
motif_subspaces_ref = [np.array([1])]
motif_mdls_ref = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]
ref_motif_distances = np.array([[0.0000000e00, 1.1151008e-07]])
ref_motif_indices = np.array([[2, 9]])
ref_motif_subspaces = [np.array([1])]
ref_motif_mdls = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]

m = 4
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
P, I = naive.mstump(T, m, excl_zone)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(T, P, I)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)


@pytest.mark.parametrize("T", test_data)
def test_mmotifs_max_matches_none(T):
motif_distances_ref = np.array([[0.0000000e00, 1.1151008e-07]])
motif_indices_ref = np.array([[2, 9]])
motif_subspaces_ref = [np.array([1])]
motif_mdls_ref = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]
ref_motif_distances = np.array([[0.0000000e00, 1.1151008e-07]])
ref_motif_indices = np.array([[2, 9]])
ref_motif_subspaces = [np.array([1])]
ref_motif_mdls = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]

m = 4
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
P, I = naive.mstump(T, m, excl_zone)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(T, P, I, max_matches=None)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)


@pytest.mark.parametrize("T", test_data)
def test_mmotifs_more_motifs_when_cutoffs_3(T):
motif_distances_ref = np.array([[0.0000000e00, 1.1151008e-07]])
motif_indices_ref = np.array([[2, 9]])
motif_subspaces_ref = [np.array([1])]
motif_mdls_ref = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]
ref_motif_distances = np.array([[0.0000000e00, 1.1151008e-07]])
ref_motif_indices = np.array([[2, 9]])
ref_motif_subspaces = [np.array([1])]
ref_motif_mdls = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]

m = 4
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
P, I = naive.mstump(T, m, excl_zone)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(T, P, I, cutoffs=3, max_motifs=10)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)


@pytest.mark.parametrize("T", test_data)
def test_mmotifs_more_motifs_cutoffs_is_list(T):
motif_distances_ref = np.array([[0.0000000e00, 1.1151008e-07]])
motif_indices_ref = np.array([[2, 9]])
motif_subspaces_ref = [np.array([1])]
motif_mdls_ref = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]
ref_motif_distances = np.array([[0.0000000e00, 1.1151008e-07]])
ref_motif_indices = np.array([[2, 9]])
ref_motif_subspaces = [np.array([1])]
ref_motif_mdls = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]

m = 4
cutoffs = [2, 3, 4, 5]
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
P, I = naive.mstump(T, m, excl_zone)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(T, P, I, cutoffs=cutoffs, max_motifs=10)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)


@pytest.mark.parametrize("T", test_data)
def test_mmotifs_max_matches_2_k_1(T):
motif_distances_ref = np.array([[0.0, 0.20948156]])
motif_indices_ref = np.array([[2, 9]])
motif_subspaces_ref = [np.array([1, 3])]
motif_mdls_ref = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]
ref_motif_distances = np.array([[0.0, 0.20948156]])
ref_motif_indices = np.array([[2, 9]])
ref_motif_subspaces = [np.array([1, 3])]
ref_motif_mdls = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]

m = 4
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
P, I = naive.mstump(T, m, excl_zone)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(T, P, I, max_distance=np.inf, max_matches=2, k=1)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)


@pytest.mark.parametrize("T", test_data)
def test_mmotifs_two_motif_pairs_max_motifs_2(T):
motif_distances_ref = np.array(
[[0.00000000e00, 1.11510080e-07], [1.68587394e-07, 2.58694429e-01]]
ref_motif_distances = np.array(
[[0.00000000e00, 1.11510080e-07], [0.00000000e00, 2.58694429e-01]]
)
motif_indices_ref = np.array([[2, 9], [6, 1]])
motif_subspaces_ref = [np.array([1]), np.array([2])]
motif_mdls_ref = [
ref_motif_indices = np.array([[2, 9], [6, 1]])
ref_motif_subspaces = [np.array([1]), np.array([2])]
ref_motif_mdls = [
np.array([232.0, 250.57542476, 260.0, 271.3509059]),
np.array([264.0, 280.0, 299.01955001, 310.51024953]),
]
Expand All @@ -182,26 +182,26 @@ def test_mmotifs_two_motif_pairs_max_motifs_2(T):
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
P, I = naive.mstump(T, m, excl_zone)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(
T, P, I, cutoffs=np.inf, max_motifs=2, max_distance=np.inf, max_matches=2
)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)


@pytest.mark.parametrize("T", test_data)
def test_mmotifs_with_default_parameters_with_isconstant(T):
motif_distances_ref = np.array([[0.0000000e00, 1.1151008e-07]])
motif_indices_ref = np.array([[2, 9]])
motif_subspaces_ref = [np.array([1])]
motif_mdls_ref = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]
ref_motif_distances = np.array([[0.0000000e00, 1.1151008e-07]])
ref_motif_indices = np.array([[2, 9]])
ref_motif_subspaces = [np.array([1])]
ref_motif_mdls = [np.array([232.0, 250.57542476, 260.0, 271.3509059])]

m = 4
excl_zone = int(np.ceil(m / config.STUMPY_EXCL_ZONE_DENOM))
Expand All @@ -218,13 +218,13 @@ def test_mmotifs_with_default_parameters_with_isconstant(T):

P, I = naive.mstump(T, m, excl_zone, T_subseq_isconstant=T_subseq_isconstant)
(
motif_distances_cmp,
motif_indices_cmp,
motif_subspaces_cmp,
motif_mdls_cmp,
cmp_motif_distances,
cmp_motif_indices,
cmp_motif_subspaces,
cmp_motif_mdls,
) = mmotifs(T, P, I, T_subseq_isconstant=T_subseq_isconstant)

npt.assert_array_almost_equal(motif_distances_ref, motif_distances_cmp)
npt.assert_array_almost_equal(motif_indices_ref, motif_indices_cmp)
npt.assert_array_almost_equal(motif_subspaces_ref, motif_subspaces_cmp)
npt.assert_array_almost_equal(motif_mdls_ref, motif_mdls_cmp)
npt.assert_allclose(cmp_motif_distances, ref_motif_distances, atol=1.5e-07)
npt.assert_allclose(cmp_motif_indices, ref_motif_indices, atol=1.5e-07)
npt.assert_allclose(cmp_motif_subspaces, ref_motif_subspaces, atol=1.5e-07)
npt.assert_allclose(cmp_motif_mdls, ref_motif_mdls, atol=1.5e-07)