diff --git a/tests/test_aamp.py b/tests/test_aamp.py index ac83786a9..20a62f93e 100644 --- a/tests/test_aamp.py +++ b/tests/test_aamp.py @@ -132,13 +132,17 @@ def test_aamp_identical_subsequence_self_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices @@ -154,13 +158,17 @@ def test_aamp_identical_subsequence_A_B_join(): naive.replace_inf(ref_mp) naive.replace_inf(comp_mp) npt.assert_almost_equal( - ref_mp[:, 0], comp_mp[:, 0], config.STUMPY_TEST_PRECISION + ref_mp[:, 0], + comp_mp[:, 0], + decimal=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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # Swap inputs @@ -169,7 +177,9 @@ def test_aamp_identical_subsequence_A_B_join(): naive.replace_inf(ref_mp) naive.replace_inf(comp_mp) npt.assert_almost_equal( - ref_mp[:, 0], comp_mp[:, 0], config.STUMPY_TEST_PRECISION + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices diff --git a/tests/test_aamp_motifs.py b/tests/test_aamp_motifs.py index 5859a83e3..4e01f6d3d 100644 --- a/tests/test_aamp_motifs.py +++ b/tests/test_aamp_motifs.py @@ -66,7 +66,9 @@ def test_aamp_motifs_one_motif(): ) npt.assert_array_equal(left_indices, right_indices) - npt.assert_almost_equal(left_profile_values, right_distance_values, decimal=4) + npt.assert_allclose( + left_profile_values, right_distance_values, atol=1.5e-04, rtol=0 + ) def test_aamp_motifs_two_motifs(): @@ -124,7 +126,9 @@ def test_aamp_motifs_two_motifs(): # We ignore indices because of sorting ambiguities for equal distances. # As long as the distances are correct, the indices will be too. - npt.assert_almost_equal(left_profile_values, right_distance_values, decimal=6) + npt.assert_allclose( + left_profile_values, right_distance_values, atol=1.5e-06, rtol=0 + ) def test_aamp_naive_match_exact(): @@ -248,7 +252,7 @@ def test_aamp_match_query_idx(): # `mass_absolute` zeroes the self-match distance when told where `Q` lives. D = core.mass_absolute(Q, T, query_idx=query_idx) - npt.assert_almost_equal(D[query_idx], 0.0) + npt.assert_allclose(D[query_idx], 0.0, atol=1.5e-07, rtol=0) # A `Q` that is not the subsequence at `query_idx` must still return the # self-match first, and must warn, exactly as `stumpy.match` does. @@ -256,4 +260,4 @@ def test_aamp_match_query_idx(): out = aamp_match(Q + 0.5, T, query_idx=query_idx, max_distance=1.0) assert out[0, 1] == query_idx - npt.assert_almost_equal(out[0, 0], 0.0) + npt.assert_allclose(out[0, 0], 0.0, atol=1.5e-07, rtol=0) diff --git a/tests/test_aamp_ostinato.py b/tests/test_aamp_ostinato.py index a5c1bdd80..df0272599 100644 --- a/tests/test_aamp_ostinato.py +++ b/tests/test_aamp_ostinato.py @@ -33,9 +33,9 @@ def test_random_ostinato(runs): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.aamp_ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = aamp_ostinato(Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("seed", [41, 88, 290, 292, 310, 328, 538, 556, 563, 570]) @@ -49,9 +49,9 @@ def test_deterministic_ostinato(seed): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.aamp_ostinato(Ts, m, p=p) comp_radius, comp_Ts_idx, comp_subseq_idx = aamp_ostinato(Ts, m, p=p) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("runs", range(25)) @@ -63,9 +63,9 @@ def test_random_ostinatoed(runs, dask_cluster): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.aamp_ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = aamp_ostinatoed(dask_client, Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("seed", [41, 88, 290, 292, 310, 328, 538, 556, 563, 570]) @@ -82,9 +82,11 @@ def test_deterministic_ostinatoed(seed, dask_cluster): dask_client, Ts, m, p=p ) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose( + ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0 + ) def test_input_not_overwritten_ostinato(): @@ -102,7 +104,9 @@ def test_input_not_overwritten_ostinato(): for i in range(len(Ts)): T_ref = Ts[i] T_comp = Ts_input[i] - npt.assert_almost_equal(T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)]) + npt.assert_allclose( + T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)], atol=1.5e-07, rtol=0 + ) def test_extract_several_consensus_ostinato(): @@ -135,8 +139,11 @@ def test_extract_several_consensus_ostinato(): Ts_comp[i][idx : idx + m] = np.nan Ts_ref[i][idx : idx + m] = np.nan - npt.assert_almost_equal( - Ts_ref[i][np.isfinite(Ts_ref[i])], Ts_comp[i][np.isfinite(Ts_comp[i])] + npt.assert_allclose( + Ts_ref[i][np.isfinite(Ts_ref[i])], + Ts_comp[i][np.isfinite(Ts_comp[i])], + atol=1.5e-07, + rtol=0, ) @@ -156,8 +163,11 @@ def test_input_not_overwritten_ostinatoed(dask_cluster): for i in range(len(Ts)): T_ref = Ts[i] T_comp = Ts_input[i] - npt.assert_almost_equal( - T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)] + npt.assert_allclose( + T_ref[np.isfinite(T_ref)], + T_comp[np.isfinite(T_comp)], + atol=1.5e-07, + rtol=0, ) @@ -195,7 +205,9 @@ def test_extract_several_consensus_ostinatoed(dask_cluster): Ts_comp[i][idx : idx + m] = np.nan Ts_ref[i][idx : idx + m] = np.nan - npt.assert_almost_equal( + npt.assert_allclose( Ts_ref[i][np.isfinite(Ts_ref[i])], Ts_comp[i][np.isfinite(Ts_comp[i])], + atol=1.5e-07, + rtol=0, ) diff --git a/tests/test_aamp_stimp.py b/tests/test_aamp_stimp.py index 3e83724ab..59e064860 100644 --- a/tests/test_aamp_stimp.py +++ b/tests/test_aamp_stimp.py @@ -68,7 +68,7 @@ def test_aamp_stimp_1_percent(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -85,7 +85,7 @@ def test_aamp_stimp_1_percent(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", T) @@ -126,7 +126,7 @@ def test_aamp_stimp_max_m(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -143,7 +143,7 @@ def test_aamp_stimp_max_m(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", T) @@ -178,7 +178,7 @@ def test_aamp_stimp_100_percent(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -195,7 +195,7 @@ def test_aamp_stimp_100_percent(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", T) @@ -264,7 +264,7 @@ def test_aamp_stimped(T, dask_cluster): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -281,4 +281,4 @@ def test_aamp_stimped(T, dask_cluster): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) diff --git a/tests/test_aampdist.py b/tests/test_aampdist.py index ed361a09d..42b45e2f8 100644 --- a/tests/test_aampdist.py +++ b/tests/test_aampdist.py @@ -46,7 +46,7 @@ def test_aampdist_vect(T_A, T_B): ref_aampdist_vect = naive.aampdist_vect(T_A, T_B, m, p=p) comp_aampdist_vect = _aampdist_vect(T_A, T_B, m, p=p) - npt.assert_almost_equal(ref_aampdist_vect, comp_aampdist_vect) + npt.assert_allclose(ref_aampdist_vect, comp_aampdist_vect, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -56,7 +56,7 @@ def test_aampdist_vect_percentage(T_A, T_B, percentage): ref_aampdist_vect = naive.aampdist_vect(T_A, T_B, m, percentage=percentage) comp_aampdist_vect = _aampdist_vect(T_A, T_B, m, percentage=percentage) - npt.assert_almost_equal(ref_aampdist_vect, comp_aampdist_vect) + npt.assert_allclose(ref_aampdist_vect, comp_aampdist_vect, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -66,7 +66,7 @@ def test_aampdist_vect_k(T_A, T_B, k): ref_aampdist_vect = naive.aampdist_vect(T_A, T_B, m, k=k) comp_aampdist_vect = _aampdist_vect(T_A, T_B, m, k=k) - npt.assert_almost_equal(ref_aampdist_vect, comp_aampdist_vect) + npt.assert_allclose(ref_aampdist_vect, comp_aampdist_vect, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -76,7 +76,7 @@ def test_aampdist(T_A, T_B): ref_mpdist = naive.aampdist(T_A, T_B, m, p=p) comp_mpdist = aampdist(T_A, T_B, m, p=p) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -86,7 +86,7 @@ def test_aampdist_percentage(T_A, T_B, percentage): ref_mpdist = naive.aampdist(T_A, T_B, m, percentage=percentage) comp_mpdist = aampdist(T_A, T_B, m, percentage=percentage) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -96,7 +96,7 @@ def test_aampdist_k(T_A, T_B, k): ref_mpdist = naive.aampdist(T_A, T_B, m, k=k) comp_mpdist = aampdist(T_A, T_B, m, k=k) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:numpy.dtype size changed") @@ -111,4 +111,4 @@ def test_aampdisted(T_A, T_B, dask_cluster): ref_mpdist = naive.aampdist(T_A, T_B, m, p=p) comp_mpdist = aampdisted(dask_client, T_A, T_B, m, p=p) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) diff --git a/tests/test_aampdist_snippets.py b/tests/test_aampdist_snippets.py index c5ed74183..606132173 100644 --- a/tests/test_aampdist_snippets.py +++ b/tests/test_aampdist_snippets.py @@ -35,22 +35,31 @@ def test_aampdist_snippets(T, m, k): cmp_regimes, ) = aampdist_snippets(T, m, k, p=p) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, + cmp_snippets, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, + cmp_indices, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal( # ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION # ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal( # ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION # ) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", test_data) @@ -75,22 +84,25 @@ def test_mpdist_snippets_percentage(T, m, k, percentage): cmp_regimes, ) = aampdist_snippets(T, m, k, percentage=percentage) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, cmp_snippets, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, cmp_indices, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) # npt.assert_almost_equal( # ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION # ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal( # ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION # ) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", test_data) @@ -115,19 +127,22 @@ def test_aampdist_snippets_s(T, m, k, s): cmp_regimes, ) = aampdist_snippets(T, m, k, s=s) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, cmp_snippets, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, cmp_indices, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) # npt.assert_almost_equal( # ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION # ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal( # ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION # ) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) diff --git a/tests/test_aamped.py b/tests/test_aamped.py index 9433f99d2..aecd6d559 100644 --- a/tests/test_aamped.py +++ b/tests/test_aamped.py @@ -285,7 +285,9 @@ def test_aamped_identical_subsequence_self_join(dask_cluster): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices @@ -308,7 +310,9 @@ def test_aamped_identical_subsequence_A_B_join(dask_cluster): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices diff --git a/tests/test_aampi.py b/tests/test_aampi.py index 5aa3b1c8c..b8120dfe2 100644 --- a/tests/test_aampi.py +++ b/tests/test_aampi.py @@ -51,7 +51,7 @@ def test_aampi_self_join(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_left_I, comp_left_I) with rng.fix_state(): @@ -73,7 +73,7 @@ def test_aampi_self_join(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -103,10 +103,10 @@ def test_aampi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -129,10 +129,10 @@ def test_aampi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(n) @@ -150,8 +150,8 @@ def test_aampi_self_join_egress(): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -174,10 +174,10 @@ def test_aampi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("substitute", substitution_values) @@ -265,10 +265,10 @@ def test_aampi_init_nan_inf_self_join_egress(substitute, substitution_locations) naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -291,10 +291,10 @@ def test_aampi_init_nan_inf_self_join_egress(substitute, substitution_locations) naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): n = 30 @@ -314,8 +314,8 @@ def test_aampi_init_nan_inf_self_join_egress(substitute, substitution_locations) comp_left_P = stream.left_P_.copy() comp_left_I = stream.left_I_ - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) @@ -340,10 +340,10 @@ def test_aampi_init_nan_inf_self_join_egress(substitute, substitution_locations) naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("substitute", substitution_values) @@ -424,10 +424,10 @@ def test_aampi_stream_nan_inf_self_join_egress(substitute, substitution_location naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) if substitution_location == -1: substitution_location = T[n:].shape[0] - 1 @@ -451,10 +451,10 @@ def test_aampi_stream_nan_inf_self_join_egress(substitute, substitution_location naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(64) @@ -477,10 +477,10 @@ def test_aampi_stream_nan_inf_self_join_egress(substitute, substitution_location naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) if substitution_location == -1: # pragma: no cover substitution_location = T[n:].shape[0] - 1 T[n:][substitution_location] = substitute @@ -503,10 +503,10 @@ def test_aampi_stream_nan_inf_self_join_egress(substitute, substitution_location naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_aampi_constant_subsequence_self_join(): @@ -579,9 +579,9 @@ def test_aampi_constant_subsequence_self_join_egress(): naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) for i in range(34): @@ -604,9 +604,9 @@ def test_aampi_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) with rng.fix_state(): @@ -633,9 +633,9 @@ def test_aampi_constant_subsequence_self_join_egress(): naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) for i in range(34): @@ -658,9 +658,9 @@ def test_aampi_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -729,8 +729,8 @@ def test_aampi_update_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) T_full = pd.Series(T_full) T_stream = T_full[:10].copy() @@ -757,8 +757,8 @@ def test_aampi_update_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) def test_aampi_identical_subsequence_self_join(): @@ -833,10 +833,15 @@ def test_aampi_identical_subsequence_self_join_egress(): naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -860,10 +865,15 @@ def test_aampi_identical_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -892,10 +902,15 @@ def test_aampi_identical_subsequence_self_join_egress(): naive.replace_inf(ref_left_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -919,10 +934,15 @@ def test_aampi_identical_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -955,8 +975,8 @@ def test_aampi_profile_index_match(): T_full_subseq[idx + n + 1], T_full_subseq[stream.left_I_[idx]], axis=1 ) - npt.assert_almost_equal(stream.P_, P) - npt.assert_almost_equal(stream.left_P_, left_P) + npt.assert_allclose(stream.P_, P, atol=1.5e-07, rtol=0) + npt.assert_allclose(stream.left_P_, left_P, atol=1.5e-07, rtol=0) n += 1 @@ -997,7 +1017,7 @@ def test_aampi_self_join_KNN(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_left_I, comp_left_I) with rng.fix_state(): @@ -1019,7 +1039,7 @@ def test_aampi_self_join_KNN(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -1049,10 +1069,10 @@ def test_aampi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -1075,10 +1095,10 @@ def test_aampi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(n) @@ -1096,8 +1116,8 @@ def test_aampi_self_join_egress_KNN(): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -1120,10 +1140,10 @@ def test_aampi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_aampi_self_join_egress_passing_mp(): @@ -1153,10 +1173,10 @@ def test_aampi_self_join_egress_passing_mp(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -1179,7 +1199,7 @@ def test_aampi_self_join_egress_passing_mp(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_core.py b/tests/test_core.py index daa48c5a8..f2e6b53e6 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -205,7 +205,7 @@ def test_check_window_size_excl_zone(): def test_sliding_dot_product(Q, T): ref_mp = naive.rolling_window_dot_product(Q, T) comp_mp = core.sliding_dot_product(Q, T) - npt.assert_almost_equal(ref_mp, comp_mp) + npt.assert_allclose(ref_mp, comp_mp, atol=1.5e-07, rtol=0) def test_welford_nanvar(): @@ -214,11 +214,11 @@ def test_welford_nanvar(): ref_var = np.nanvar(T) comp_var = core.welford_nanvar(T) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) ref_var = np.nanvar(core.rolling_window(T, m), axis=1) comp_var = core.welford_nanvar(T, m) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) def test_welford_nanvar_catastrophic_cancellation(): @@ -227,7 +227,7 @@ def test_welford_nanvar_catastrophic_cancellation(): ref_var = np.nanvar(core.rolling_window(T, m), axis=1) comp_var = core.welford_nanvar(T, m) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) def test_welford_nanvar_nan(): @@ -240,11 +240,11 @@ def test_welford_nanvar_nan(): ref_var = np.nanvar(T) comp_var = core.welford_nanvar(T) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) ref_var = np.nanvar(core.rolling_window(T, m), axis=1) comp_var = core.welford_nanvar(T, m) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) def test_welford_nanstd(): @@ -253,11 +253,11 @@ def test_welford_nanstd(): ref_var = np.nanstd(T) comp_var = core.welford_nanstd(T) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) ref_var = np.nanstd(core.rolling_window(T, m), axis=1) comp_var = core.welford_nanstd(T, m) - npt.assert_almost_equal(ref_var, comp_var) + npt.assert_allclose(ref_var, comp_var, atol=1.5e-07, rtol=0) def test_rolling_std_1d(): @@ -267,11 +267,11 @@ def test_rolling_std_1d(): # welford = False (default) comp_std = core.rolling_nanstd(a, w) - npt.assert_almost_equal(ref_std, comp_std) + npt.assert_allclose(ref_std, comp_std, atol=1.5e-07, rtol=0) # welford = True comp_std = core.rolling_nanstd(a, w, welford=True) - npt.assert_almost_equal(ref_std, comp_std) + npt.assert_allclose(ref_std, comp_std, atol=1.5e-07, rtol=0) def test_rolling_std_2d(): @@ -282,11 +282,11 @@ def test_rolling_std_2d(): # welford = False (default) comp_std = core.rolling_nanstd(a, w) - npt.assert_almost_equal(ref_std, comp_std) + npt.assert_allclose(ref_std, comp_std, atol=1.5e-07, rtol=0) # welford = True comp_std = core.rolling_nanstd(a, w, welford=True) - npt.assert_almost_equal(ref_std, comp_std) + npt.assert_allclose(ref_std, comp_std, atol=1.5e-07, rtol=0) def test_rolling_nanmin_1d(): @@ -294,11 +294,11 @@ def test_rolling_nanmin_1d(): for m in range(1, 12): ref_min = np.nanmin(T) comp_min = core._rolling_nanmin_1d(T) - npt.assert_almost_equal(ref_min, comp_min) + npt.assert_allclose(ref_min, comp_min, atol=1.5e-07, rtol=0) ref_min = np.nanmin(T) comp_min = core._rolling_nanmin_1d(T) - npt.assert_almost_equal(ref_min, comp_min) + npt.assert_allclose(ref_min, comp_min, atol=1.5e-07, rtol=0) def test_rolling_nanmin(): @@ -306,11 +306,11 @@ def test_rolling_nanmin(): for m in range(1, 12): ref_min = np.nanmin(core.rolling_window(T, m), axis=1) comp_min = core.rolling_nanmin(T, m) - npt.assert_almost_equal(ref_min, comp_min) + npt.assert_allclose(ref_min, comp_min, atol=1.5e-07, rtol=0) ref_min = np.nanmin(core.rolling_window(T, m), axis=1) comp_min = core.rolling_nanmin(T, m) - npt.assert_almost_equal(ref_min, comp_min) + npt.assert_allclose(ref_min, comp_min, atol=1.5e-07, rtol=0) def test_rolling_nanmax_1d(): @@ -318,11 +318,11 @@ def test_rolling_nanmax_1d(): for m in range(1, 12): ref_max = np.nanmax(T) comp_max = core._rolling_nanmax_1d(T) - npt.assert_almost_equal(ref_max, comp_max) + npt.assert_allclose(ref_max, comp_max, atol=1.5e-07, rtol=0) ref_max = np.nanmax(T) comp_max = core._rolling_nanmax_1d(T) - npt.assert_almost_equal(ref_max, comp_max) + npt.assert_allclose(ref_max, comp_max, atol=1.5e-07, rtol=0) def test_rolling_nanmax(): @@ -330,11 +330,11 @@ def test_rolling_nanmax(): for m in range(1, 12): ref_max = np.nanmax(core.rolling_window(T, m), axis=1) comp_max = core.rolling_nanmax(T, m) - npt.assert_almost_equal(ref_max, comp_max) + npt.assert_allclose(ref_max, comp_max, atol=1.5e-07, rtol=0) ref_max = np.nanmax(core.rolling_window(T, m), axis=1) comp_max = core.rolling_nanmax(T, m) - npt.assert_almost_equal(ref_max, comp_max) + npt.assert_allclose(ref_max, comp_max, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -346,10 +346,10 @@ def test_compute_mean_std(Q, T): comp_μ_Q, comp_σ_Q = core.compute_mean_std(Q, m) comp_M_T, comp_Σ_T = core.compute_mean_std(T, m) - npt.assert_almost_equal(ref_μ_Q, comp_μ_Q) - npt.assert_almost_equal(ref_σ_Q, comp_σ_Q) - npt.assert_almost_equal(ref_M_T, comp_M_T) - npt.assert_almost_equal(ref_Σ_T, comp_Σ_T) + npt.assert_allclose(ref_μ_Q, comp_μ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_σ_Q, comp_σ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_T, comp_M_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_T, comp_Σ_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -362,10 +362,10 @@ def test_compute_mean_std_chunked(Q, T): comp_μ_Q, comp_σ_Q = core.compute_mean_std(Q, m) comp_M_T, comp_Σ_T = core.compute_mean_std(T, m) - npt.assert_almost_equal(ref_μ_Q, comp_μ_Q) - npt.assert_almost_equal(ref_σ_Q, comp_σ_Q) - npt.assert_almost_equal(ref_M_T, comp_M_T) - npt.assert_almost_equal(ref_Σ_T, comp_Σ_T) + npt.assert_allclose(ref_μ_Q, comp_μ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_σ_Q, comp_σ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_T, comp_M_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_T, comp_Σ_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -378,10 +378,10 @@ def test_compute_mean_std_chunked_many(Q, T): comp_μ_Q, comp_σ_Q = core.compute_mean_std(Q, m) comp_M_T, comp_Σ_T = core.compute_mean_std(T, m) - npt.assert_almost_equal(ref_μ_Q, comp_μ_Q) - npt.assert_almost_equal(ref_σ_Q, comp_σ_Q) - npt.assert_almost_equal(ref_M_T, comp_M_T) - npt.assert_almost_equal(ref_Σ_T, comp_Σ_T) + npt.assert_allclose(ref_μ_Q, comp_μ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_σ_Q, comp_σ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_T, comp_M_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_T, comp_Σ_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -396,10 +396,10 @@ def test_compute_mean_std_multidimensional(Q, T): comp_μ_Q, comp_σ_Q = core.compute_mean_std(Q, m) comp_M_T, comp_Σ_T = core.compute_mean_std(T, m) - npt.assert_almost_equal(ref_μ_Q, comp_μ_Q) - npt.assert_almost_equal(ref_σ_Q, comp_σ_Q) - npt.assert_almost_equal(ref_M_T, comp_M_T) - npt.assert_almost_equal(ref_Σ_T, comp_Σ_T) + npt.assert_allclose(ref_μ_Q, comp_μ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_σ_Q, comp_σ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_T, comp_M_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_T, comp_Σ_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -415,10 +415,10 @@ def test_compute_mean_std_multidimensional_chunked(Q, T): comp_μ_Q, comp_σ_Q = core.compute_mean_std(Q, m) comp_M_T, comp_Σ_T = core.compute_mean_std(T, m) - npt.assert_almost_equal(ref_μ_Q, comp_μ_Q) - npt.assert_almost_equal(ref_σ_Q, comp_σ_Q) - npt.assert_almost_equal(ref_M_T, comp_M_T) - npt.assert_almost_equal(ref_Σ_T, comp_Σ_T) + npt.assert_allclose(ref_μ_Q, comp_μ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_σ_Q, comp_σ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_T, comp_M_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_T, comp_Σ_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -434,10 +434,10 @@ def test_compute_mean_std_multidimensional_chunked_many(Q, T): comp_μ_Q, comp_σ_Q = core.compute_mean_std(Q, m) comp_M_T, comp_Σ_T = core.compute_mean_std(T, m) - npt.assert_almost_equal(ref_μ_Q, comp_μ_Q) - npt.assert_almost_equal(ref_σ_Q, comp_σ_Q) - npt.assert_almost_equal(ref_M_T, comp_M_T) - npt.assert_almost_equal(ref_Σ_T, comp_Σ_T) + npt.assert_allclose(ref_μ_Q, comp_μ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_σ_Q, comp_σ_Q, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_T, comp_M_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_T, comp_Σ_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -467,7 +467,7 @@ def test_calculate_squared_distance_profile(Q, T): Q_subseq_isconstant, T_subseq_isconstant, ) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -494,7 +494,7 @@ def test_calculate_distance_profile(Q, T): Q_subseq_isconstant, T_subseq_isconstant, ) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -504,7 +504,7 @@ def test_mueen_calculate_distance_profile(Q, T): core.z_norm(core.rolling_window(T, m), 1) - core.z_norm(Q), axis=1 ) comp = core.mueen_calculate_distance_profile(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -516,7 +516,7 @@ def test_mass(Q, T): core.z_norm(core.rolling_window(T, m), 1) - core.z_norm(Q), axis=1 ) comp = core.mass(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -532,7 +532,7 @@ def test_mass_Q_nan(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -548,7 +548,7 @@ def test_mass_Q_inf(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) T[1] = 1e10 @@ -565,7 +565,7 @@ def test_mass_T_nan(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -581,7 +581,7 @@ def test_mass_T_inf(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) T[1] = 1e10 @@ -599,7 +599,7 @@ def test_p_norm_distance_profile(Q, T): ).flatten() ref = np.power(ref, p) cmp = core._p_norm_distance_profile(Q, T, p) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -610,7 +610,7 @@ def test_mass_absolute(Q, T): for p in [1.0, 2.0, 3.0]: ref = np.linalg.norm(core.rolling_window(T, m) - Q, axis=1, ord=p) comp = core.mass_absolute(Q, T, p=p) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -624,7 +624,7 @@ def test_mass_absolute_Q_nan(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass_absolute(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -638,7 +638,7 @@ def test_mass_absolute_Q_inf(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass_absolute(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -652,7 +652,7 @@ def test_mass_absolute_T_nan(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass_absolute(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("Q, T", test_data) @@ -666,7 +666,7 @@ def test_mass_absolute_T_inf(Q, T): ref[np.isnan(ref)] = np.inf comp = core.mass_absolute(Q, T) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) def test_mass_absolute_sqrt_input_negative(): @@ -726,7 +726,7 @@ def test_mass_absolute_sqrt_input_negative(): ) ref = 0.0 comp = core.mass_absolute(Q, Q) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -739,7 +739,7 @@ def test_mass_distance_matrix(T_A, T_B): comp_distance_matrix = np.full((k, l), np.inf) core.mass_distance_matrix(T_A, T_B, m, comp_distance_matrix) - npt.assert_almost_equal(ref_distance_matrix, comp_distance_matrix) + npt.assert_allclose(ref_distance_matrix, comp_distance_matrix, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -754,7 +754,7 @@ def test_mass_absolute_distance_matrix(T_A, T_B): comp_distance_matrix = np.full((k, l), np.inf) core._mass_absolute_distance_matrix(T_A, T_B, m, comp_distance_matrix) - npt.assert_almost_equal(ref_distance_matrix, comp_distance_matrix) + npt.assert_allclose(ref_distance_matrix, comp_distance_matrix, atol=1.5e-07, rtol=0) def test_apply_exclusion_zone(): @@ -842,18 +842,22 @@ def test_preprocess(): comp_T, comp_M, comp_Σ, comp_subseq_isconstant = core.preprocess(T, m) - npt.assert_almost_equal(ref_T, comp_T) - npt.assert_almost_equal(ref_M, comp_M) - npt.assert_almost_equal(ref_Σ, comp_Σ) - npt.assert_almost_equal(ref_subseq_isconstant, comp_subseq_isconstant) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M, comp_M, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ, comp_Σ, atol=1.5e-07, rtol=0) + npt.assert_allclose( + ref_subseq_isconstant, comp_subseq_isconstant, atol=1.5e-07, rtol=0 + ) T = pd.Series(T) comp_T, comp_M, comp_Σ, comp_subseq_isconstant = core.preprocess(T, m) - npt.assert_almost_equal(ref_T, comp_T) - npt.assert_almost_equal(ref_M, comp_M) - npt.assert_almost_equal(ref_Σ, comp_Σ) - npt.assert_almost_equal(ref_subseq_isconstant, comp_subseq_isconstant) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M, comp_M, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ, comp_Σ, atol=1.5e-07, rtol=0) + npt.assert_allclose( + ref_subseq_isconstant, comp_subseq_isconstant, atol=1.5e-07, rtol=0 + ) def test_preprocess_non_normalized(): @@ -869,14 +873,18 @@ def test_preprocess_non_normalized(): comp_T, comp_T_subseq_isfinite = core.preprocess_non_normalized(T, m) - npt.assert_almost_equal(ref_T, comp_T) - npt.assert_almost_equal(ref_T_subseq_isfinite, comp_T_subseq_isfinite) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) + npt.assert_allclose( + ref_T_subseq_isfinite, comp_T_subseq_isfinite, atol=1.5e-07, rtol=0 + ) T = pd.Series(T) comp_T, comp_T_subseq_isfinite = core.preprocess_non_normalized(T, m) - npt.assert_almost_equal(ref_T, comp_T) - npt.assert_almost_equal(ref_T_subseq_isfinite, comp_T_subseq_isfinite) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) + npt.assert_allclose( + ref_T_subseq_isfinite, comp_T_subseq_isfinite, atol=1.5e-07, rtol=0 + ) def test_preprocess_diagonal(): @@ -897,10 +905,10 @@ def test_preprocess_diagonal(): comp_T_subseq_isconstant, ) = core.preprocess_diagonal(T, m) - npt.assert_almost_equal(ref_T, comp_T) - npt.assert_almost_equal(ref_M, comp_M) - npt.assert_almost_equal(ref_Σ_inverse, comp_Σ_inverse) - npt.assert_almost_equal(ref_M_m_1, comp_M_m_1) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M, comp_M, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_inverse, comp_Σ_inverse, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_m_1, comp_M_m_1, atol=1.5e-07, rtol=0) T = pd.Series(T) ( @@ -912,10 +920,10 @@ def test_preprocess_diagonal(): comp_T_subseq_isconstant, ) = core.preprocess_diagonal(T, m) - npt.assert_almost_equal(ref_T, comp_T) - npt.assert_almost_equal(ref_M, comp_M) - npt.assert_almost_equal(ref_Σ_inverse, comp_Σ_inverse) - npt.assert_almost_equal(ref_M_m_1, comp_M_m_1) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M, comp_M, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Σ_inverse, comp_Σ_inverse, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_M_m_1, comp_M_m_1, atol=1.5e-07, rtol=0) def test_replace_distance(): @@ -932,7 +940,7 @@ def test_array_to_temp_file(): right = np.load(fname, allow_pickle=False) os.remove(fname) - npt.assert_almost_equal(left, right) + npt.assert_allclose(left, right, atol=1.5e-07, rtol=0) def test_count_diagonal_ndist(): @@ -949,7 +957,9 @@ def test_count_diagonal_ndist(): comp_ndist_counts = core._count_diagonal_ndist(diags, m, n_A, n_B) - npt.assert_almost_equal(ref_ndist_counts, comp_ndist_counts) + npt.assert_allclose( + ref_ndist_counts, comp_ndist_counts, atol=1.5e-07, rtol=0 + ) def test_get_array_ranges(): @@ -958,7 +968,7 @@ def test_get_array_ranges(): ref = naive.get_array_ranges(x, n_chunks, False) cmp = core._get_array_ranges(x, n_chunks, False) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_array_ranges_exhausted(): @@ -968,7 +978,7 @@ def test_get_array_ranges_exhausted(): ref = naive.get_array_ranges(x, n_chunks, False) cmp = core._get_array_ranges(x, n_chunks, False) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_array_ranges_exhausted_truncated(): @@ -978,7 +988,7 @@ def test_get_array_ranges_exhausted_truncated(): ref = naive.get_array_ranges(x, n_chunks, True) cmp = core._get_array_ranges(x, n_chunks, True) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_array_ranges_empty_array(): @@ -988,7 +998,7 @@ def test_get_array_ranges_empty_array(): ref = naive.get_array_ranges(x, n_chunks, False) cmp = core._get_array_ranges(x, n_chunks, False) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_ranges(): @@ -996,7 +1006,7 @@ def test_get_ranges(): size = 6 n_chunks = 2 cmp = core._get_ranges(size, n_chunks, False) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_ranges_exhausted(): @@ -1004,7 +1014,7 @@ def test_get_ranges_exhausted(): size = 6 n_chunks = 8 cmp = core._get_ranges(size, n_chunks, False) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_ranges_exhausted_truncated(): @@ -1012,7 +1022,7 @@ def test_get_ranges_exhausted_truncated(): size = 6 n_chunks = 8 cmp = core._get_ranges(size, n_chunks, True) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_get_ranges_zero_size(): @@ -1020,7 +1030,7 @@ def test_get_ranges_zero_size(): size = 0 n_chunks = 8 cmp = core._get_ranges(size, n_chunks, True) - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_rolling_isfinite(): @@ -1034,11 +1044,11 @@ def test_rolling_isfinite(): ref = np.all(core.rolling_window(np.isfinite(a), w), axis=1) comp = core.rolling_isfinite(a, w) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) # test `a` as all boolean isfinite array comp = core.rolling_isfinite(np.isfinite(a), w) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) def test_rolling_isconstant(): @@ -1053,7 +1063,7 @@ def test_rolling_isconstant(): ref = naive.rolling_isconstant(a, w) comp = core.rolling_isconstant(a, w) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) def test_compare_parameters(): @@ -1118,19 +1128,19 @@ def test_idx_to_mp(): # `normalize == True` and `T_subseq_isconstant` is None (default) ref_mp = naive_idx_to_mp(I, T, m) cmp_mp = core._idx_to_mp(I, T, m) - npt.assert_almost_equal(ref_mp, cmp_mp) + npt.assert_allclose(ref_mp, cmp_mp, atol=1.5e-07, rtol=0) # `normalize == True` and `T_subseq_isconstant` is provided T_subseq_isconstant = rng.RNG.choice([True, False], l, replace=True) ref_mp = naive_idx_to_mp(I, T, m, T_subseq_isconstant=T_subseq_isconstant) cmp_mp = core._idx_to_mp(I, T, m, T_subseq_isconstant=T_subseq_isconstant) - npt.assert_almost_equal(ref_mp, cmp_mp) + npt.assert_allclose(ref_mp, cmp_mp, atol=1.5e-07, rtol=0) # `normalize == False` for p in range(1, 4): ref_mp = naive_idx_to_mp(I, T, m, normalize=False, p=p) cmp_mp = core._idx_to_mp(I, T, m, normalize=False, p=p) - npt.assert_almost_equal(ref_mp, cmp_mp) + npt.assert_allclose(ref_mp, cmp_mp, atol=1.5e-07, rtol=0) def test_total_diagonal_ndists(): @@ -1160,7 +1170,7 @@ def test_bfs_indices(n): ref_bfs_indices = naive_bfs_indices(n) cmp_bfs_indices = np.array(list(core._bfs_indices(n))) - npt.assert_almost_equal(ref_bfs_indices, cmp_bfs_indices) + npt.assert_allclose(ref_bfs_indices, cmp_bfs_indices, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("n", n) @@ -1168,7 +1178,7 @@ def test_bfs_indices_fill_value(n): ref_bfs_indices = naive_bfs_indices(n, -1) cmp_bfs_indices = np.array(list(core._bfs_indices(n, -1))) - npt.assert_almost_equal(ref_bfs_indices, cmp_bfs_indices) + npt.assert_allclose(ref_bfs_indices, cmp_bfs_indices, atol=1.5e-07, rtol=0) def test_select_P_ABBA_val_inf(): @@ -1180,7 +1190,7 @@ def test_select_P_ABBA_val_inf(): comp = core._select_P_ABBA_value(P_ABBA, k=k) p_abba.sort() ref = p_abba[k - 1] - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) def test_merge_topk_PI_without_overlap(): @@ -1210,8 +1220,8 @@ def test_merge_topk_PI_without_overlap(): naive.merge_topk_PI(ref_P, PB.copy(), ref_I, IB.copy()) core._merge_topk_PI(comp_P, PB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_PI_with_overlap(): @@ -1253,8 +1263,8 @@ def test_merge_topk_PI_with_overlap(): naive.merge_topk_PI(ref_P, PB.copy(), ref_I, IB.copy()) core._merge_topk_PI(comp_P, PB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_PI_with_1D_input(): @@ -1280,8 +1290,8 @@ def test_merge_topk_PI_with_1D_input(): naive.merge_topk_PI(ref_P, PB.copy(), ref_I, IB.copy()) core._merge_topk_PI(comp_P, PB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_PI_with_1D_input_hardcoded(): @@ -1304,8 +1314,8 @@ def test_merge_topk_PI_with_1D_input_hardcoded(): naive.merge_topk_PI(ref_P, PB.copy(), ref_I, IB.copy()) core._merge_topk_PI(comp_P, PB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_ρI_without_overlap(): @@ -1335,8 +1345,8 @@ def test_merge_topk_ρI_without_overlap(): naive.merge_topk_ρI(ref_ρ, ρB.copy(), ref_I, IB.copy()) core._merge_topk_ρI(comp_ρ, ρB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_ρ, comp_ρ) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_ρ, comp_ρ, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_ρI_with_overlap(): @@ -1378,8 +1388,8 @@ def test_merge_topk_ρI_with_overlap(): naive.merge_topk_ρI(ref_ρ, ρB.copy(), ref_I, IB.copy()) core._merge_topk_ρI(comp_ρ, ρB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_ρ, comp_ρ) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_ρ, comp_ρ, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_ρI_with_1D_input(): @@ -1405,8 +1415,8 @@ def test_merge_topk_ρI_with_1D_input(): naive.merge_topk_ρI(ref_ρ, ρB.copy(), ref_I, IB.copy()) core._merge_topk_ρI(comp_ρ, ρB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_ρ, comp_ρ) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_ρ, comp_ρ, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_merge_topk_ρI_with_1D_input_hardcoded(): @@ -1429,8 +1439,8 @@ def test_merge_topk_ρI_with_1D_input_hardcoded(): naive.merge_topk_ρI(ref_ρ, ρB.copy(), ref_I, IB.copy()) core._merge_topk_ρI(comp_ρ, ρB.copy(), comp_I, IB.copy()) - npt.assert_almost_equal(ref_ρ, comp_ρ) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_ρ, comp_ρ, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_shift_insert_at_index(): @@ -1452,7 +1462,7 @@ def test_shift_insert_at_index(): comp, idx, v, shift="right" ) # update comp in place - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) # test shift = "left" for idx, v in zip(indices, values): @@ -1464,7 +1474,7 @@ def test_shift_insert_at_index(): comp, idx, v, shift="left" ) # update comp in place - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) def test_check_P(): @@ -1561,7 +1571,7 @@ def test_apply_include(): naive.apply_include(D, include) core._apply_include(D, include) - npt.assert_almost_equal(ref_D, comp_D) + npt.assert_allclose(ref_D, comp_D, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -1580,7 +1590,7 @@ def test_mpdist_custom_func(T_A, T_B): ) comp_mpdist = core._mpdist(T_A, T_B, m, partial_stump, custom_func=partial_k_func) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -1608,7 +1618,7 @@ def test_mpdist_with_isconstant(T_A, T_B): ) comp_mpdist = core._mpdist(T_A, T_B, m, partial_stump) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -1625,7 +1635,7 @@ def test_compute_P_ABBA(T_A, T_B): partial_stump = functools.partial(stump) core._compute_P_ABBA(T_A, T_B, m, comp_P_ABBA, partial_stump) - npt.assert_almost_equal(ref_P_ABBA, comp_P_ABBA) + npt.assert_allclose(ref_P_ABBA, comp_P_ABBA, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -1672,7 +1682,7 @@ def test_compute_P_ABBA_with_isconstant(T_A, T_B): mp_func, ) - npt.assert_almost_equal(ref_P_ABBA, comp_P_ABBA) + npt.assert_allclose(ref_P_ABBA, comp_P_ABBA, atol=1.5e-07, rtol=0) def test_process_isconstant_1d(): @@ -1825,8 +1835,8 @@ def test_update_incremental_PI_egressFalse(): core._update_incremental_PI(D, P_comp, I_comp, excl_zone, n_appended=0) # assertion - npt.assert_almost_equal(P_ref, P_comp) - npt.assert_almost_equal(I_ref, I_comp) + npt.assert_allclose(P_ref, P_comp, atol=1.5e-07, rtol=0) + npt.assert_allclose(I_ref, I_comp, atol=1.5e-07, rtol=0) def test_update_incremental_PI_egressTrue(): @@ -1875,8 +1885,8 @@ def test_update_incremental_PI_egressTrue(): core._update_incremental_PI(D, P_comp, I_comp, excl_zone, n_appended=1) # assertion - npt.assert_almost_equal(P_ref, P_comp) - npt.assert_almost_equal(I_ref, I_comp) + npt.assert_allclose(P_ref, P_comp, atol=1.5e-07, rtol=0) + npt.assert_allclose(I_ref, I_comp, atol=1.5e-07, rtol=0) def test_update_incremental_PI_egressTrue_MemoryCheck(): @@ -1951,8 +1961,8 @@ def test_update_incremental_PI_egressTrue_MemoryCheck(): dist_profile, P_comp, I_comp, excl_zone, n_appended=1 ) - npt.assert_almost_equal(P_ref, P_comp) - npt.assert_almost_equal(I_ref, I_comp) + npt.assert_allclose(P_ref, P_comp, atol=1.5e-07, rtol=0) + npt.assert_allclose(I_ref, I_comp, atol=1.5e-07, rtol=0) def test_check_self_join(): diff --git a/tests/test_floss.py b/tests/test_floss.py index 8852558bf..f9a764a47 100644 --- a/tests/test_floss.py +++ b/tests/test_floss.py @@ -104,7 +104,7 @@ def naive_rea(cac, n_regimes, L, excl_factor): def test_nnmark(I): ref = naive_nnmark(I) comp = _nnmark(I) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("I", test_data) @@ -115,7 +115,7 @@ def test_cac(I): ref = naive_cac(I, L, excl_factor, custom_iac) bidirectional = True comp = _cac(I, L, bidirectional, excl_factor) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("I", test_data) @@ -126,7 +126,7 @@ def test_cac_custom_iac(I): custom_iac = naive_iac(I.shape[0]) bidirectional = True comp = _cac(I, L, bidirectional, excl_factor, custom_iac) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("I", test_data) @@ -137,7 +137,7 @@ def test_rea(I): n_regimes = 3 ref = naive_rea(cac, n_regimes, L, excl_factor) comp = _rea(cac, n_regimes, L, excl_factor) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("I", test_data) @@ -149,8 +149,8 @@ def test_fluss(I): n_regimes = 3 ref_rea = naive_rea(ref_cac, n_regimes, L, excl_factor) comp_cac, comp_rea = fluss(I, L, n_regimes, excl_factor, custom_iac) - npt.assert_almost_equal(ref_cac, comp_cac) - npt.assert_almost_equal(ref_rea, comp_rea) + npt.assert_allclose(ref_cac, comp_cac, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_rea, comp_rea, atol=1.5e-07, rtol=0) def test_floss(): @@ -208,10 +208,10 @@ def test_floss(): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_cac_1d, comp_cac_1d) + npt.assert_allclose(ref_cac_1d, comp_cac_1d, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_T, comp_T) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) def test_aamp_floss(): @@ -278,10 +278,10 @@ def test_aamp_floss(): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_cac_1d, comp_cac_1d) + npt.assert_allclose(ref_cac_1d, comp_cac_1d, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_T, comp_T) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("substitute", substitution_values) @@ -350,10 +350,10 @@ def test_floss_inf_nan(substitute, substitution_locations): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_cac_1d, comp_cac_1d) + npt.assert_allclose(ref_cac_1d, comp_cac_1d, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_T, comp_T) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("substitute", substitution_values) @@ -424,10 +424,10 @@ def test_aamp_floss_inf_nan(substitute, substitution_locations): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_cac_1d, comp_cac_1d) + npt.assert_allclose(ref_cac_1d, comp_cac_1d, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_T, comp_T) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) def test_floss_with_isconstant(): @@ -510,7 +510,7 @@ def test_floss_with_isconstant(): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_cac_1d, comp_cac_1d) + npt.assert_allclose(ref_cac_1d, comp_cac_1d, atol=1.5e-07, rtol=0) npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_T, comp_T) + npt.assert_allclose(ref_T, comp_T, atol=1.5e-07, rtol=0) diff --git a/tests/test_gpu_aamp.py b/tests/test_gpu_aamp.py index 70ae496e8..e94d9a6b2 100644 --- a/tests/test_gpu_aamp.py +++ b/tests/test_gpu_aamp.py @@ -255,7 +255,9 @@ def test_gpu_aamp_identical_subsequence_self_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # comp_mp = gpu_aamp(pd.Series(T_A), m, ignore_trivial=True) @@ -279,7 +281,9 @@ def test_gpu_aamp_identical_subsequence_A_B_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # comp_mp = gpu_aamp(pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False) @@ -294,7 +298,9 @@ def test_gpu_aamp_identical_subsequence_A_B_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # comp_mp = gpu_aamp(pd.Series(T_B), m, pd.Series(T_A), ignore_trivial=False) diff --git a/tests/test_gpu_aamp_ostinato.py b/tests/test_gpu_aamp_ostinato.py index 704c12262..3cd4aca92 100644 --- a/tests/test_gpu_aamp_ostinato.py +++ b/tests/test_gpu_aamp_ostinato.py @@ -38,9 +38,9 @@ def test_random_gpu_aamp_ostinato(runs): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.aamp_ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = gpu_aamp_ostinato(Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -56,9 +56,9 @@ def test_deterministic_gpu_aamp_ostinato(seed): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.aamp_ostinato(Ts, m, p=p) comp_radius, comp_Ts_idx, comp_subseq_idx = gpu_aamp_ostinato(Ts, m, p=p) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -78,7 +78,9 @@ def test_input_not_overwritten(): for i in range(len(Ts)): T_ref = Ts[i] T_comp = Ts_input[i] - npt.assert_almost_equal(T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)]) + npt.assert_allclose( + T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)], atol=1.5e-07, rtol=0 + ) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -113,6 +115,9 @@ def test_extract_several_consensus(): Ts_comp[i][idx : idx + m] = np.nan Ts_ref[i][idx : idx + m] = np.nan - npt.assert_almost_equal( - Ts_ref[i][np.isfinite(Ts_ref[i])], Ts_comp[i][np.isfinite(Ts_comp[i])] + npt.assert_allclose( + Ts_ref[i][np.isfinite(Ts_ref[i])], + Ts_comp[i][np.isfinite(Ts_comp[i])], + atol=1.5e-07, + rtol=0, ) diff --git a/tests/test_gpu_aamp_stimp.py b/tests/test_gpu_aamp_stimp.py index 88f5a656d..ece330a9a 100644 --- a/tests/test_gpu_aamp_stimp.py +++ b/tests/test_gpu_aamp_stimp.py @@ -59,7 +59,7 @@ def test_gpu_aamp_stimp(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -76,4 +76,4 @@ def test_gpu_aamp_stimp(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) diff --git a/tests/test_gpu_aampdist.py b/tests/test_gpu_aampdist.py index 302b08619..23e86360a 100644 --- a/tests/test_gpu_aampdist.py +++ b/tests/test_gpu_aampdist.py @@ -46,4 +46,4 @@ def test_gpu_aampdist(T_A, T_B): ref_mpdist = naive.aampdist(T_A, T_B, m, p=p) comp_mpdist = gpu_aampdist(T_A, T_B, m, p=p) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) diff --git a/tests/test_gpu_mpdist.py b/tests/test_gpu_mpdist.py index 2c1b1bd28..41c14afd8 100644 --- a/tests/test_gpu_mpdist.py +++ b/tests/test_gpu_mpdist.py @@ -46,7 +46,7 @@ def test_gpu_mpdist(T_A, T_B): ref_mpdist = naive.mpdist(T_A, T_B, m) comp_mpdist = gpu_mpdist(T_A, T_B, m) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -73,4 +73,4 @@ def test_gpu_mpdist_with_isconstant(T_A, T_B): T_B_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) diff --git a/tests/test_gpu_ostinato.py b/tests/test_gpu_ostinato.py index dcb61909d..c19eb2386 100644 --- a/tests/test_gpu_ostinato.py +++ b/tests/test_gpu_ostinato.py @@ -39,9 +39,9 @@ def test_random_gpu_ostinato(runs): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = gpu_ostinato(Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -56,9 +56,9 @@ def test_deterministic_gpu_ostinato(seed): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = gpu_ostinato(Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -80,9 +80,9 @@ def test_random_gpu_ostinato_with_isconstant(runs): Ts, m, Ts_subseq_isconstant=Ts_subseq_isconstant ) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -114,9 +114,9 @@ def test_deterministic_gpu_ostinato_with_isconstant(seed): Ts, m, Ts_subseq_isconstant=Ts_subseq_isconstant ) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -136,7 +136,9 @@ def test_input_not_overwritten(): for i in range(len(Ts)): T_ref = Ts[i] T_comp = Ts_input[i] - npt.assert_almost_equal(T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)]) + npt.assert_allclose( + T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)], atol=1.5e-07, rtol=0 + ) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -167,6 +169,9 @@ def test_extract_several_consensus(): Ts_comp[i][idx : idx + m] = np.nan Ts_ref[i][idx : idx + m] = np.nan - npt.assert_almost_equal( - Ts_ref[i][np.isfinite(Ts_ref[i])], Ts_comp[i][np.isfinite(Ts_comp[i])] + npt.assert_allclose( + Ts_ref[i][np.isfinite(Ts_ref[i])], + Ts_comp[i][np.isfinite(Ts_comp[i])], + atol=1.5e-07, + rtol=0, ) diff --git a/tests/test_gpu_stimp.py b/tests/test_gpu_stimp.py index 837f0bf80..032db7919 100644 --- a/tests/test_gpu_stimp.py +++ b/tests/test_gpu_stimp.py @@ -65,7 +65,7 @@ def test_gpu_stimp(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -76,7 +76,7 @@ def test_gpu_stimp(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -122,7 +122,7 @@ def test_gpu_stimp_with_isconstant(): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -133,4 +133,4 @@ def test_gpu_stimp_with_isconstant(): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) diff --git a/tests/test_gpu_stump.py b/tests/test_gpu_stump.py index 6e53b7f95..e61d1b953 100644 --- a/tests/test_gpu_stump.py +++ b/tests/test_gpu_stump.py @@ -252,7 +252,9 @@ def test_gpu_stump_identical_subsequence_self_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # comp_mp = gpu_stump(pd.Series(T_A), m, ignore_trivial=True) @@ -276,7 +278,9 @@ def test_gpu_stump_identical_subsequence_A_B_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # comp_mp = gpu_stump(pd.Series(T_B), m, pd.Series(T_A), ignore_trivial=False) @@ -291,7 +295,9 @@ def test_gpu_stump_identical_subsequence_A_B_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # comp_mp = gpu_stump(pd.Series(T_A), m, pd.Series(T_B), ignore_trivial=False) diff --git a/tests/test_maamp.py b/tests/test_maamp.py index 56e9ab895..7666cc2c6 100644 --- a/tests/test_maamp.py +++ b/tests/test_maamp.py @@ -41,7 +41,9 @@ def test_multi_mass_absolute_seeded(): Q, T, m, T_subseq_isfinite[:, trivial_idx], T_subseq_isfinite ) - npt.assert_almost_equal(ref, comp, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref, comp, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) @pytest.mark.parametrize("T, m", test_data) @@ -58,7 +60,9 @@ def test_multi_mass_absolute(T, m): Q, _T, m, T_subseq_isfinite[:, trivial_idx], T_subseq_isfinite, p=p ) - npt.assert_almost_equal(ref, comp, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref, comp, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) @pytest.mark.parametrize("T, m", test_data) @@ -70,7 +74,7 @@ def test_maamp_multi_distance_profile(T, m): comp_D = maamp_multi_distance_profile(query_idx, _T, m, p=p) - npt.assert_almost_equal(ref_D, comp_D) + npt.assert_allclose(ref_D, comp_D, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -88,7 +92,7 @@ def test_get_first_maamp_profile(T, m): start, _T, _T, m, excl_zone, T_subseq_isfinite, p=p ) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) npt.assert_equal(ref_I, comp_I) @@ -101,7 +105,7 @@ def test_maamp_subspace(T, m): for k in range(T.shape[0]): ref_S = naive.maamp_subspace(T, m, motif_idx, nn_idx, k, p=p) comp_S = maamp_subspace(T, m, motif_idx, nn_idx, k, p=p) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -115,7 +119,7 @@ def test_maamp_subspace_include(T, m): for k in range(T.shape[0]): ref_S = naive.maamp_subspace(T, m, motif_idx, nn_idx, k, include) comp_S = maamp_subspace(T, m, motif_idx, nn_idx, k, include) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -126,7 +130,7 @@ def test_maamp_subspace_discords(T, m): for k in range(T.shape[0]): ref_S = naive.maamp_subspace(T, m, discord_idx, nn_idx, k, discords=True) comp_S = maamp_subspace(T, m, discord_idx, nn_idx, k, discords=True) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -144,7 +148,7 @@ def test_maamp_subspace_include_discords(T, m): comp_S = maamp_subspace( T, m, discord_idx, nn_idx, k, include, discords=True ) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -155,10 +159,10 @@ def test_maamp_mdl(T, m): for p in [1.0, 2.0, 3.0]: ref_MDL, ref_S = naive.maamp_mdl(T, m, subseq_idx, nn_idx, p=p) comp_MDL, comp_S = maamp_mdl(T, m, subseq_idx, nn_idx, p=p) - npt.assert_almost_equal(ref_MDL, comp_MDL) + npt.assert_allclose(ref_MDL, comp_MDL, atol=1.5e-07, rtol=0) for ref, cmp in zip(ref_S, comp_S): - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_naive_maamp(): @@ -190,8 +194,8 @@ def test_maamp(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone, p=p) comp_P, comp_I = maamp(T, m, p=p) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -204,8 +208,8 @@ def test_maamp_include(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone, include) comp_P, comp_I = maamp(T, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -215,8 +219,8 @@ def test_maamp_discords(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone, discords=True) comp_P, comp_I = maamp(T, m, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -230,8 +234,8 @@ def test_maamp_include_discords(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone, include, discords=True) comp_P, comp_I = maamp(T, m, include, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -241,14 +245,14 @@ def test_maamp_wrapper(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamp(T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) df = pd.DataFrame(T.T) comp_P, comp_I = maamp(df, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -262,14 +266,14 @@ def test_maamp_wrapper_include(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone, include) comp_P, comp_I = maamp(T, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) df = pd.DataFrame(T.T) comp_P, comp_I = maamp(df, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_constant_subsequence_self_join(): @@ -282,7 +286,7 @@ def test_constant_subsequence_self_join(): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamp(T, m) - npt.assert_almost_equal(ref_P, comp_P) # ignore indices + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # ignore indices def test_identical_subsequence_self_join(): @@ -298,8 +302,8 @@ def test_identical_subsequence_self_join(): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamp(T, m) - npt.assert_almost_equal( - ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) # ignore indices @@ -320,8 +324,8 @@ def test_maamp_nan_inf_self_join_first_dimension( ref_P, ref_I = naive.maamp(T_sub, m, excl_zone) comp_P, comp_I = maamp(T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -339,5 +343,5 @@ def test_maamp_nan_self_join_all_dimensions(T, m, substitute, substitution_locat ref_P, ref_I = naive.maamp(T_sub, m, excl_zone) comp_P, comp_I = maamp(T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_maamped.py b/tests/test_maamped.py index e5c42cc52..12106fba0 100644 --- a/tests/test_maamped.py +++ b/tests/test_maamped.py @@ -48,8 +48,8 @@ def test_maamped(T, m, dask_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamped(dask_client, T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -65,8 +65,8 @@ def test_maamped_include(T, m, dask_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone, include) comp_P, comp_I = maamped(dask_client, T, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -78,8 +78,8 @@ def test_maamped_discords(T, m, dask_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone, discords=True) comp_P, comp_I = maamped(dask_client, T, m, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -95,8 +95,8 @@ def test_maamped_include_discords(T, m, dask_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone, include, discords=True) comp_P, comp_I = maamped(dask_client, T, m, include, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -109,8 +109,8 @@ def test_maamped_df(T, m, dask_cluster): df = pd.DataFrame(T.T) comp_P, comp_I = maamped(dask_client, df, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -127,7 +127,7 @@ def test_maamped_constant_subsequence_self_join(dask_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamped(dask_client, T, m) - npt.assert_almost_equal(ref_P, comp_P) # ignore indices + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # ignore indices @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -145,8 +145,8 @@ def test_maamped_identical_subsequence_self_join(dask_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamped(dask_client, T, m) - npt.assert_almost_equal( - ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) # ignore indices @@ -165,8 +165,8 @@ def test_maamped_one_subsequence_inf_self_join_first_dimension( ref_P, ref_I = naive.maamp(T_sub, m, excl_zone) comp_P, comp_I = maamped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -184,8 +184,8 @@ def test_maamped_one_subsequence_inf_self_join_all_dimensions( ref_P, ref_I = naive.maamp(T_sub, m, excl_zone) comp_P, comp_I = maamped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -203,8 +203,8 @@ def test_maamped_one_subsequence_nan_self_join_first_dimension( ref_P, ref_I = naive.maamp(T_sub, m, excl_zone) comp_P, comp_I = maamped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -222,5 +222,5 @@ def test_maamped_one_subsequence_nan_self_join_all_dimensions( ref_P, ref_I = naive.maamp(T_sub, m, excl_zone) comp_P, comp_I = maamped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_mmparray.py b/tests/test_mmparray.py index e18239df4..2becdbd78 100644 --- a/tests/test_mmparray.py +++ b/tests/test_mmparray.py @@ -20,8 +20,8 @@ def test_mmparray_mstump(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp = mstump(T, m) - npt.assert_almost_equal(ref_P, comp.P_) - npt.assert_almost_equal(ref_I, comp.I_) + npt.assert_allclose(ref_P, comp.P_, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp.I_, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -32,5 +32,5 @@ def test_mmparray_maamp(T, m): ref_P, ref_I = naive.maamp(T, m, excl_zone, p=p) comp = maamp(T, m, p=p) - npt.assert_almost_equal(ref_P, comp.P_) - npt.assert_almost_equal(ref_I, comp.I_) + npt.assert_allclose(ref_P, comp.P_, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp.I_, atol=1.5e-07, rtol=0) diff --git a/tests/test_motifs.py b/tests/test_motifs.py index b6d12c3ee..62701f469 100644 --- a/tests/test_motifs.py +++ b/tests/test_motifs.py @@ -179,7 +179,9 @@ def test_motifs_one_motif(): ) npt.assert_array_equal(left_indices, right_indices) - npt.assert_almost_equal(left_profile_values, right_distance_values) + npt.assert_allclose( + left_profile_values, right_distance_values, atol=1.5e-07, rtol=0 + ) def test_motifs_two_motifs(): @@ -237,7 +239,9 @@ def test_motifs_two_motifs(): # We ignore indices because of sorting ambiguities for equal distances. # As long as the distances are correct, the indices will be too. - npt.assert_almost_equal(left_profile_values, right_distance_values) + npt.assert_allclose( + left_profile_values, right_distance_values, atol=1.5e-07, rtol=0 + ) def test_motifs_max_matches(): @@ -301,7 +305,9 @@ def test_motifs_max_matches(): # We ignore indices because of sorting ambiguities for equal distances. # As long as the distances are correct, the indices will be too. - npt.assert_almost_equal(left_profile_values, right_distance_values) + npt.assert_allclose( + left_profile_values, right_distance_values, atol=1.5e-07, rtol=0 + ) def test_motifs_max_matches_max_distances_inf(): @@ -365,8 +371,10 @@ def test_motifs_max_matches_max_distances_inf(): max_matches=max_matches, ) - npt.assert_almost_equal(left_indices, right_indices) - npt.assert_almost_equal(left_profile_values, right_distance_values) + npt.assert_allclose(left_indices, right_indices, atol=1.5e-07, rtol=0) + npt.assert_allclose( + left_profile_values, right_distance_values, atol=1.5e-07, rtol=0 + ) def test_naive_match_exclusion_zone(): @@ -618,8 +626,8 @@ def test_motifs(): max_motifs=max_motifs, ) - npt.assert_almost_equal(ref_indices, comp_indices) - npt.assert_almost_equal(ref_distances, comp_distance) + npt.assert_allclose(ref_indices, comp_indices, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_distances, comp_distance, atol=1.5e-07, rtol=0) def test_motifs_with_isconstant(): @@ -654,8 +662,8 @@ def test_motifs_with_isconstant(): T_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_distances, comp_distance) - npt.assert_almost_equal(ref_indices, comp_indices) + npt.assert_allclose(ref_distances, comp_distance, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_indices, comp_indices, atol=1.5e-07, rtol=0) def test_motifs_with_max_matches_none(): diff --git a/tests/test_mpdist.py b/tests/test_mpdist.py index 3977d0919..1d96d0b49 100644 --- a/tests/test_mpdist.py +++ b/tests/test_mpdist.py @@ -54,7 +54,7 @@ def test_mpdist_vect(T_A, T_B): T_A, T_B, m, μ_Q, σ_Q, M_T, Σ_T, Q_subseq_isconstant, T_subseq_isconstant ) - npt.assert_almost_equal(ref_mpdist_vect, comp_mpdist_vect) + npt.assert_allclose(ref_mpdist_vect, comp_mpdist_vect, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -80,7 +80,7 @@ def test_mpdist_vect_percentage(T_A, T_B, percentage): percentage=percentage, ) - npt.assert_almost_equal(ref_mpdist_vect, comp_mpdist_vect) + npt.assert_allclose(ref_mpdist_vect, comp_mpdist_vect, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -97,7 +97,7 @@ def test_mpdist_vect_k(T_A, T_B, k): T_A, T_B, m, μ_Q, σ_Q, M_T, Σ_T, Q_subseq_isconstant, T_subseq_isconstant, k=k ) - npt.assert_almost_equal(ref_mpdist_vect, comp_mpdist_vect) + npt.assert_allclose(ref_mpdist_vect, comp_mpdist_vect, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -106,7 +106,7 @@ def test_mpdist(T_A, T_B): ref_mpdist = naive.mpdist(T_A, T_B, m) comp_mpdist = mpdist(T_A, T_B, m) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -133,7 +133,7 @@ def test_mpdist_with_isconstant(T_A, T_B): T_B_subseq_isconstant=T_B_subseq_isconstant, ) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -143,7 +143,7 @@ def test_mpdist_percentage(T_A, T_B, percentage): ref_mpdist = naive.mpdist(T_A, T_B, m, percentage=percentage) comp_mpdist = mpdist(T_A, T_B, m, percentage=percentage) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -153,7 +153,7 @@ def test_mpdist_k(T_A, T_B, k): ref_mpdist = naive.mpdist(T_A, T_B, m, k=k) comp_mpdist = mpdist(T_A, T_B, m, k=k) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:numpy.dtype size changed") @@ -167,7 +167,7 @@ def test_mpdisted(T_A, T_B, dask_cluster): ref_mpdist = naive.mpdist(T_A, T_B, m) comp_mpdist = mpdisted(dask_client, T_A, T_B, m) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:numpy.dtype size changed") @@ -200,7 +200,7 @@ def test_mpdisted_with_isconstant(T_A, T_B, dask_cluster): T_B_subseq_isconstant=T_B_subseq_isconstant, ) - npt.assert_almost_equal(ref_mpdist, comp_mpdist) + npt.assert_allclose(ref_mpdist, comp_mpdist, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -229,4 +229,4 @@ def test_mpdist_vect_with_isconstant(T_A, T_B): T_A, T_B, m, μ_Q, σ_Q, M_T, Σ_T, Q_subseq_isconstant, T_subseq_isconstant ) - npt.assert_almost_equal(ref_mpdist_vect, comp_mpdist_vect) + npt.assert_allclose(ref_mpdist_vect, comp_mpdist_vect, atol=1.5e-07, rtol=0) diff --git a/tests/test_mstump.py b/tests/test_mstump.py index d06fce2c6..0bd528632 100644 --- a/tests/test_mstump.py +++ b/tests/test_mstump.py @@ -67,7 +67,9 @@ def test_multi_mass_seeded(): query_idx=trivial_idx, ) - npt.assert_almost_equal(ref, comp, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref, comp, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) @pytest.mark.parametrize("T, m", test_data) @@ -96,7 +98,7 @@ def test_multi_mass(T, m): query_idx=trivial_idx, ) - npt.assert_almost_equal(ref, comp, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose(ref, comp, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -107,7 +109,7 @@ def test_multi_distance_profile(T, m): M_T, Σ_T = core.compute_mean_std(T, m) comp_D = multi_distance_profile(query_idx, T, m) - npt.assert_almost_equal(ref_D, comp_D) + npt.assert_allclose(ref_D, comp_D, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -135,7 +137,7 @@ def test_get_first_mstump_profile(T, m): T_subseq_isconstant, ) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) npt.assert_equal(ref_I, comp_I) @@ -154,8 +156,8 @@ def test_get_multi_QT(T, m): comp_QT, comp_QT_first = _get_multi_QT(start, T, m) - npt.assert_almost_equal(ref_QT, comp_QT) - npt.assert_almost_equal(ref_QT_first, comp_QT_first) + npt.assert_allclose(ref_QT, comp_QT, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_QT_first, comp_QT_first, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -166,7 +168,7 @@ def test_subspace(T, m): for k in range(T.shape[0]): ref_S = naive.subspace(T, m, motif_idx, nn_idx, k) comp_S = subspace(T, m, motif_idx, nn_idx, k) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -180,7 +182,7 @@ def test_subspace_include(T, m): for k in range(T.shape[0]): ref_S = naive.subspace(T, m, motif_idx, nn_idx, k, include) comp_S = subspace(T, m, motif_idx, nn_idx, k, include) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -191,7 +193,7 @@ def test_subspace_discords(T, m): for k in range(T.shape[0]): ref_S = naive.subspace(T, m, discord_idx, nn_idx, k, discords=True) comp_S = subspace(T, m, discord_idx, nn_idx, k, discords=True) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -207,7 +209,7 @@ def test_subspace_include_discords(T, m): T, m, discord_idx, nn_idx, k, include, discords=True ) comp_S = subspace(T, m, discord_idx, nn_idx, k, include, discords=True) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -217,10 +219,10 @@ def test_mdl(T, m): ref_MDL, ref_S = naive.mdl(T, m, subseq_idx, nn_idx) comp_MDL, comp_S = mdl(T, m, subseq_idx, nn_idx) - npt.assert_almost_equal(ref_MDL, comp_MDL) + npt.assert_allclose(ref_MDL, comp_MDL, atol=1.5e-07, rtol=0) for ref, cmp in zip(ref_S, comp_S): - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) def test_naive_mstump(): @@ -251,8 +253,8 @@ def test_mstump(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstump(T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -265,8 +267,8 @@ def test_mstump_include(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone, include) comp_P, comp_I = mstump(T, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -276,8 +278,8 @@ def test_mstump_discords(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone, discords=True) comp_P, comp_I = mstump(T, m, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -291,8 +293,8 @@ def test_mstump_include_discords(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone, include, discords=True) comp_P, comp_I = mstump(T, m, include, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -302,20 +304,20 @@ def test_mstump_wrapper(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstump(T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) df = pd.DataFrame(T.T) comp_P, comp_I = mstump(df, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) df = pl.DataFrame(T.T) comp_P, comp_I = mstump(df, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -329,14 +331,14 @@ def test_mstump_wrapper_include(T, m): ref_P, ref_I = naive.mstump(T, m, excl_zone, include) comp_P, comp_I = mstump(T, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) df = pd.DataFrame(T.T) comp_P, comp_I = mstump(df, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_constant_subsequence_self_join(): @@ -349,7 +351,7 @@ def test_constant_subsequence_self_join(): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstump(T, m) - npt.assert_almost_equal(ref_P, comp_P) # ignore indices + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # ignore indices def test_identical_subsequence_self_join(): @@ -365,8 +367,8 @@ def test_identical_subsequence_self_join(): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstump(T, m) - npt.assert_almost_equal( - ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) # ignore indices @@ -387,8 +389,8 @@ def test_mstump_nan_inf_self_join_first_dimension( ref_P, ref_I = naive.mstump(T_sub, m, excl_zone) comp_P, comp_I = mstump(T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -406,8 +408,8 @@ def test_mstump_nan_self_join_all_dimensions(T, m, substitute, substitution_loca ref_P, ref_I = naive.mstump(T_sub, m, excl_zone) comp_P, comp_I = mstump(T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_multi_mass_with_isconstant(): @@ -450,7 +452,7 @@ def test_multi_mass_with_isconstant(): Q_subseq_isconstant=Q_subseq_isconstant, ) - npt.assert_almost_equal(ref, comp, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose(ref, comp, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0) # case 2: Q is a multi-subseq of T T = rng.RNG.uniform(-1000, 1000, size=[d, n]) @@ -489,7 +491,7 @@ def test_multi_mass_with_isconstant(): query_idx=query_idx, ) - npt.assert_almost_equal(ref, comp, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose(ref, comp, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0) def test_multi_distance_profile_with_isconstant_case1(): @@ -512,7 +514,7 @@ def test_multi_distance_profile_with_isconstant_case1(): query_idx, T, m, T_subseq_isconstant=T_subseq_isconstant ) - npt.assert_almost_equal(ref_D, comp_D) + npt.assert_allclose(ref_D, comp_D, atol=1.5e-07, rtol=0) def test_multi_distance_profile_with_isconstant_case2(): @@ -536,7 +538,7 @@ def test_multi_distance_profile_with_isconstant_case2(): query_idx, T, m, T_subseq_isconstant=T_subseq_isconstant ) - npt.assert_almost_equal(ref_D, comp_D) + npt.assert_allclose(ref_D, comp_D, atol=1.5e-07, rtol=0) def test_multi_distance_profile_with_isconstant_case3(): @@ -563,7 +565,7 @@ def test_multi_distance_profile_with_isconstant_case3(): query_idx, T, m, T_subseq_isconstant=T_subseq_isconstant ) - npt.assert_almost_equal(ref_D, comp_D) + npt.assert_allclose(ref_D, comp_D, atol=1.5e-07, rtol=0) def test_mstump_with_isconstant_case1(): @@ -584,8 +586,8 @@ def test_mstump_with_isconstant_case1(): ) comp_P, comp_I = mstump(T, m, T_subseq_isconstant=T_subseq_isconstant) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_mstump_with_isconstant_case2(): @@ -610,5 +612,5 @@ def test_mstump_with_isconstant_case2(): ) comp_P, comp_I = mstump(T, m, T_subseq_isconstant=T_subseq_isconstant) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_mstumped.py b/tests/test_mstumped.py index 537cd4b4b..ec89a2b20 100644 --- a/tests/test_mstumped.py +++ b/tests/test_mstumped.py @@ -50,8 +50,8 @@ def test_mstumped(T, m, dask_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -67,8 +67,8 @@ def test_mstumped_include(T, m, dask_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone, include) comp_P, comp_I = mstumped(dask_client, T, m, include) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -80,8 +80,8 @@ def test_mstumped_discords(T, m, dask_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone, discords=True) comp_P, comp_I = mstumped(dask_client, T, m, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -97,8 +97,8 @@ def test_mstumped_include_discords(T, m, dask_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone, include, discords=True) comp_P, comp_I = mstumped(dask_client, T, m, include, discords=True) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -111,8 +111,8 @@ def test_mstumped_df(T, m, dask_cluster): df = pd.DataFrame(T.T) comp_P, comp_I = mstumped(dask_client, df, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -129,7 +129,7 @@ def test_mstumped_constant_subsequence_self_join(dask_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T, m) - npt.assert_almost_equal(ref_P, comp_P) # ignore indices + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # ignore indices @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -147,8 +147,8 @@ def test_mstumped_identical_subsequence_self_join(dask_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T, m) - npt.assert_almost_equal( - ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) # ignore indices @@ -167,8 +167,8 @@ def test_mstumped_one_subsequence_inf_self_join_first_dimension( ref_P, ref_I = naive.mstump(T_sub, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -186,8 +186,8 @@ def test_mstumped_one_subsequence_inf_self_join_all_dimensions( ref_P, ref_I = naive.mstump(T_sub, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -205,8 +205,8 @@ def test_mstumped_one_subsequence_nan_self_join_first_dimension( ref_P, ref_I = naive.mstump(T_sub, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -224,8 +224,8 @@ def test_mstumped_one_subsequence_nan_self_join_all_dimensions( ref_P, ref_I = naive.mstump(T_sub, m, excl_zone) comp_P, comp_I = mstumped(dask_client, T_sub, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -252,5 +252,5 @@ def test_mstumped_with_isconstant(dask_cluster): dask_client, T, m, T_subseq_isconstant=T_subseq_isconstant ) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_non_normalized_decorator.py b/tests/test_non_normalized_decorator.py index b96580c99..4ea14dc04 100644 --- a/tests/test_non_normalized_decorator.py +++ b/tests/test_non_normalized_decorator.py @@ -89,7 +89,7 @@ def test_mass(): T = rng.RNG.random(20) ref = core.mass_absolute(Q, T) comp = core.mass(Q, T, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) Q = rng.RNG.random(10) T = rng.RNG.random(20) @@ -97,11 +97,11 @@ def test_mass(): T_squared = np.sum(core.rolling_window(T * T, Q.shape[0]), axis=-1) ref = core.mass_absolute(Q, T) comp = core.mass(Q, T, M_T=T_subseq_isfinite, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) comp = core.mass(Q, T, Σ_T=T_squared, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) comp = core.mass(Q, T, M_T=T_subseq_isfinite, Σ_T=T_squared, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -123,7 +123,7 @@ def test_prescrump(T, m): ref = prescraamp(T, m) comp = prescrump(T, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -136,12 +136,12 @@ def test_scrump(T, m): ref = scraamp(T, m) with rng.fix_state(): comp = scrump(T, m, normalize=False) - npt.assert_almost_equal(ref.P_, comp.P_) + npt.assert_allclose(ref.P_, comp.P_, atol=1.5e-07, rtol=0) for i in range(10): ref.update() comp.update() - npt.assert_almost_equal(ref.P_, comp.P_) + npt.assert_allclose(ref.P_, comp.P_, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -153,12 +153,12 @@ def test_scrump_plus_plus(T, m): ref = scraamp(T, m, pre_scraamp=True) with rng.fix_state(): comp = scrump(T, m, pre_scrump=True, normalize=False) - npt.assert_almost_equal(ref.P_, comp.P_) + npt.assert_allclose(ref.P_, comp.P_, atol=1.5e-07, rtol=0) for i in range(10): ref.update() comp.update() - npt.assert_almost_equal(ref.P_, comp.P_) + npt.assert_allclose(ref.P_, comp.P_, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -171,12 +171,12 @@ def test_scrump_plus_plus_full(T, m): ref = scraamp(T, m, percentage=0.1, pre_scraamp=True) with rng.fix_state(): comp = scrump(T, m, percentage=0.1, pre_scrump=True, normalize=False) - npt.assert_almost_equal(ref.P_, comp.P_) + npt.assert_allclose(ref.P_, comp.P_, atol=1.5e-07, rtol=0) for i in range(10): ref.update() comp.update() - npt.assert_almost_equal(ref.P_, comp.P_) + npt.assert_allclose(ref.P_, comp.P_, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -219,7 +219,7 @@ def test_stumpi(T, m): t = rng.RNG.random() ref_stream.update(t) comp_stream.update(t) - npt.assert_almost_equal(ref_stream.P_, comp_stream.P_) + npt.assert_allclose(ref_stream.P_, comp_stream.P_, atol=1.5e-07, rtol=0) def test_ostinato(): @@ -229,9 +229,9 @@ def test_ostinato(): ref_radius, ref_Ts_idx, ref_subseq_idx = aamp_ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = ostinato(Ts, m, normalize=False) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -245,9 +245,9 @@ def test_ostinatoed(dask_cluster): dask_client, Ts, m, normalize=False ) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -261,9 +261,9 @@ def test_gpu_ostinato(): ref_radius, ref_Ts_idx, ref_subseq_idx = gpu_aamp_ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = gpu_ostinato(Ts, m, normalize=False) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) def test_mpdist(): @@ -273,7 +273,7 @@ def test_mpdist(): ref = aampdist(T_A, T_B, m) comp = mpdist(T_A, T_B, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -285,7 +285,7 @@ def test_mpdisted(dask_cluster): with Client(dask_cluster) as dask_client: ref = aampdisted(dask_client, T_A, T_B, m) comp = mpdisted(dask_client, T_A, T_B, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -299,7 +299,7 @@ def test_gpu_mpdist(): ref = gpu_aampdist(T_A, T_B, m) comp = gpu_mpdist(T_A, T_B, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -307,14 +307,14 @@ def test_multi_distance_profile(T, m): for i in range(3): ref = maamp_multi_distance_profile(i, T, m) comp = multi_distance_profile(i, T, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) def test_mstump(T, m): ref = maamp(T, m) comp = mstump(T, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -323,7 +323,7 @@ def test_mstumped(T, m, dask_cluster): with Client(dask_cluster) as dask_client: ref = maamped(dask_client, T, m) comp = mstumped(dask_client, T, m, normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -334,7 +334,7 @@ def test_subspace(T, m): for k in range(T.shape[0]): ref_S = maamp_subspace(T, m, subseq_idx, nn_idx, k) comp_S = subspace(T, m, subseq_idx, nn_idx, k, normalize=False) - npt.assert_almost_equal(ref_S, comp_S) + npt.assert_allclose(ref_S, comp_S, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -344,10 +344,10 @@ def test_mdl(T, m): ref_MDL, ref_S = maamp_mdl(T, m, subseq_idx, nn_idx) comp_MDL, comp_S = mdl(T, m, subseq_idx, nn_idx, normalize=False) - npt.assert_almost_equal(ref_MDL, comp_MDL) + npt.assert_allclose(ref_MDL, comp_MDL, atol=1.5e-07, rtol=0) for ref, cmp in zip(ref_S, comp_S): - npt.assert_almost_equal(ref, cmp) + npt.assert_allclose(ref, cmp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -359,7 +359,7 @@ def test_motifs(T, m): mp = aamp(T, m) ref = aamp_motifs(T, mp[:, 0]) comp = motifs(T, mp[:, 0], normalize=False) - npt.assert_almost_equal(ref, comp) + npt.assert_allclose(ref, comp, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -381,7 +381,7 @@ def test_mmotifs(T, m): cmp_distances, cmp_indices, cmp_subspaces, cmp_mdls = mmotifs( T, mps, indices, normalize=False ) - npt.assert_almost_equal(ref_distances, cmp_distances) + npt.assert_allclose(ref_distances, cmp_distances, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:All-NaN slice encountered") @@ -406,7 +406,7 @@ def test_snippets(): cmp_areas, cmp_regimes, ) = snippets(T, m, k, normalize=False) - npt.assert_almost_equal(ref_snippets, cmp_snippets) + npt.assert_allclose(ref_snippets, cmp_snippets, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T, m", test_data) @@ -432,10 +432,10 @@ def test_stimp(T, m): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan - npt.assert_almost_equal(ref.PAN_, cmp.PAN_) + npt.assert_allclose(ref.PAN_, cmp.PAN_, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -463,10 +463,10 @@ def test_stimped(T, m, dask_cluster): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan - npt.assert_almost_equal(ref.PAN_, cmp.PAN_) + npt.assert_allclose(ref.PAN_, cmp.PAN_, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -496,7 +496,7 @@ def test_gpu_stimp(T, m): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan - npt.assert_almost_equal(ref.PAN_, cmp.PAN_) + npt.assert_allclose(ref.PAN_, cmp.PAN_, atol=1.5e-07, rtol=0) diff --git a/tests/test_ostinato.py b/tests/test_ostinato.py index b269dad8b..a8820442a 100644 --- a/tests/test_ostinato.py +++ b/tests/test_ostinato.py @@ -35,9 +35,9 @@ def test_random_ostinato(runs): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = ostinato(Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("seed", [79, 109, 112, 133, 151, 161, 251, 275, 309, 355]) @@ -50,9 +50,9 @@ def test_deterministic_ostinato(seed): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = ostinato(Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("runs", range(25)) @@ -64,9 +64,9 @@ def test_random_ostinatoed(runs, dask_cluster): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = ostinatoed(dask_client, Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("seed", [79, 109, 112, 133, 151, 161, 251, 275, 309, 355]) @@ -80,9 +80,9 @@ def test_deterministic_ostinatoed(seed, dask_cluster): ref_radius, ref_Ts_idx, ref_subseq_idx = naive.ostinato(Ts, m) comp_radius, comp_Ts_idx, comp_subseq_idx = ostinatoed(dask_client, Ts, m) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("runs", range(25)) @@ -102,9 +102,9 @@ def test_random_ostinato_with_isconstant(runs): Ts, m, Ts_subseq_isconstant=Ts_subseq_isconstant ) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("seed", [79, 109, 112, 133, 151, 161, 251, 275, 309, 355]) @@ -135,9 +135,9 @@ def test_deterministic_ostinatoed_with_isconstant(seed, dask_cluster): dask_client, Ts, m, Ts_subseq_isconstant=Ts_subseq_isconstant ) - npt.assert_almost_equal(ref_radius, comp_radius) - npt.assert_almost_equal(ref_Ts_idx, comp_Ts_idx) - npt.assert_almost_equal(ref_subseq_idx, comp_subseq_idx) + npt.assert_allclose(ref_radius, comp_radius, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_Ts_idx, comp_Ts_idx, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_subseq_idx, comp_subseq_idx, atol=1.5e-07, rtol=0) def test_input_not_overwritten_ostinato(): @@ -155,7 +155,9 @@ def test_input_not_overwritten_ostinato(): for i in range(len(Ts)): T_ref = Ts[i] T_comp = Ts_input[i] - npt.assert_almost_equal(T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)]) + npt.assert_allclose( + T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)], atol=1.5e-07, rtol=0 + ) def test_extract_several_consensus_ostinato(): @@ -184,8 +186,11 @@ def test_extract_several_consensus_ostinato(): Ts_comp[i][idx : idx + m] = np.nan Ts_ref[i][idx : idx + m] = np.nan - npt.assert_almost_equal( - Ts_ref[i][np.isfinite(Ts_ref[i])], Ts_comp[i][np.isfinite(Ts_comp[i])] + npt.assert_allclose( + Ts_ref[i][np.isfinite(Ts_ref[i])], + Ts_comp[i][np.isfinite(Ts_comp[i])], + atol=1.5e-07, + rtol=0, ) @@ -205,8 +210,11 @@ def test_input_not_overwritten_ostinatoed(dask_cluster): for i in range(len(Ts)): T_ref = Ts[i] T_comp = Ts_input[i] - npt.assert_almost_equal( - T_ref[np.isfinite(T_ref)], T_comp[np.isfinite(T_comp)] + npt.assert_allclose( + T_ref[np.isfinite(T_ref)], + T_comp[np.isfinite(T_comp)], + atol=1.5e-07, + rtol=0, ) @@ -239,7 +247,9 @@ def test_extract_several_consensus_ostinatoed(dask_cluster): Ts_comp[i][idx : idx + m] = np.nan Ts_ref[i][idx : idx + m] = np.nan - npt.assert_almost_equal( + npt.assert_allclose( Ts_ref[i][np.isfinite(Ts_ref[i])], Ts_comp[i][np.isfinite(Ts_comp[i])], + atol=1.5e-07, + rtol=0, ) diff --git a/tests/test_precision.py b/tests/test_precision.py index 05a396a0b..c5d5ade3f 100644 --- a/tests/test_precision.py +++ b/tests/test_precision.py @@ -55,8 +55,11 @@ def test_mpdist_snippets_s(): cmp_regimes, ) = snippets(T, m, k, s=s) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) @@ -74,7 +77,7 @@ def test_distace_profile(): Q, T, M_T=M_T, Σ_T=Σ_T, T_subseq_isconstant=T_subseq_isconstant, query_idx=i ) - npt.assert_almost_equal(D_ref, D_comp) + npt.assert_allclose(D_ref, D_comp, atol=1.5e-07, rtol=0) def test_calculate_squared_distance(): @@ -119,7 +122,7 @@ def test_calculate_squared_distance(): comp = dist_ij - dist_ji ref = 0.0 - npt.assert_almost_equal(ref, comp, decimal=14) + npt.assert_allclose(ref, comp, atol=1.5e-14, rtol=0) def test_snippets(): @@ -178,22 +181,34 @@ def test_snippets(): T, m, k, s=s, mpdist_T_subseq_isconstant=isconstant_custom_func ) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, + cmp_snippets, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, + cmp_indices, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, + cmp_profiles, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_areas, cmp_areas, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) if not numba.config.DISABLE_JIT: # pragma: no cover # Revert fastmath flag back to their default values @@ -236,4 +251,4 @@ def test_distance_symmetry_property_in_gpu(): comp = d_ij - d_ji ref = 0.0 - npt.assert_almost_equal(comp, ref, decimal=15) + npt.assert_allclose(comp, ref, atol=1.5e-15, rtol=0) diff --git a/tests/test_ray.py b/tests/test_ray.py index 97b9045a2..6bd8375b3 100644 --- a/tests/test_ray.py +++ b/tests/test_ray.py @@ -100,8 +100,8 @@ def test_mstumped_ray(T, m, ray_cluster): ref_P, ref_I = naive.mstump(T, m, excl_zone) comp_P, comp_I = mstumped(ray, T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -115,8 +115,8 @@ def test_maamped_ray(T, m, ray_cluster): ref_P, ref_I = naive.maamp(T, m, excl_zone) comp_P, comp_I = maamped(ray, T, m) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:numpy.dtype size changed") @@ -157,7 +157,7 @@ def test_stimped_ray(T, ray_cluster): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -168,7 +168,7 @@ def test_stimped_ray(T, ray_cluster): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:numpy.dtype size changed") @@ -208,7 +208,7 @@ def test_aamp_stimped_ray(T, ray_cluster): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -225,4 +225,4 @@ def test_aamp_stimped_ray(T, ray_cluster): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) diff --git a/tests/test_rng.py b/tests/test_rng.py index 5a58fc17d..519c86505 100644 --- a/tests/test_rng.py +++ b/tests/test_rng.py @@ -23,11 +23,16 @@ def test_random(): assert rng.RNG.rand() == 0.5488135039273248 assert rng.RNG.randint(1_000_000) == 435829 assert rng.RNG.uniform(0, 1_000_000) == 844265.7485810174 - npt.assert_almost_equal( - rng.RNG.permutation([10, 20, 30, 40, 50]), [10, 30, 20, 50, 40] + npt.assert_allclose( + rng.RNG.permutation([10, 20, 30, 40, 50]), + [10, 30, 20, 50, 40], + atol=1.5e-07, + rtol=0, ) - npt.assert_almost_equal( + npt.assert_allclose( rng.RNG.choice([10, 20, 30, 40, 50], 10, replace=True), [30, 50, 10, 10, 50, 30, 20, 10, 20, 20], + atol=1.5e-07, + rtol=0, ) assert rng.RNG.normal() == 0.44386323274542566 diff --git a/tests/test_scraamp.py b/tests/test_scraamp.py index 339928fab..1a8744f94 100644 --- a/tests/test_scraamp.py +++ b/tests/test_scraamp.py @@ -39,8 +39,8 @@ def test_prescraamp_self_join(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_B, m, s=s, p=p) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -55,8 +55,8 @@ def test_prescraamp_A_B_join(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_A, m, T_B=T_B, s=s, p=p) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -70,8 +70,8 @@ def test_prescraamp_A_B_join_swap(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_B, m, T_B=T_A, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -86,8 +86,8 @@ def test_prescraamp_self_join_larger_window(T_A, T_B, m): with rng.fix_state(): comp_P, comp_I = prescraamp(T_B, m, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_scraamp_int_input(): @@ -127,10 +127,10 @@ def test_scraamp_self_join(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -164,10 +164,10 @@ def test_scraamp_A_B_join(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -199,10 +199,10 @@ def test_scraamp_A_B_join_swap(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -235,10 +235,10 @@ def test_scraamp_self_join_larger_window(T_A, T_B, m, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -412,8 +412,8 @@ def test_scraamp_plus_plus_self_join(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) # npt.assert_almost_equal(ref_right_I, comp_right_I) @@ -458,10 +458,10 @@ def test_scraamp_plus_plus_A_B_join(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -575,7 +575,7 @@ def test_scraamp_constant_subsequence_self_join(percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) # npt.assert_almost_equal(ref_left_I, comp_left_I) # npt.assert_almost_equal(ref_right_I, comp_right_I) @@ -607,7 +607,9 @@ def test_scraamp_identical_subsequence_self_join(percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) # npt.assert_almost_equal(ref_left_I, comp_left_I) # npt.assert_almost_equal(ref_right_I, comp_right_I) @@ -647,10 +649,10 @@ def test_scraamp_nan_inf_self_join( naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("percentages", percentages) @@ -677,10 +679,10 @@ def test_scraamp_nan_zero_mean_self_join(percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -695,8 +697,8 @@ def test_prescraamp_A_B_join_larger_window(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_A, m, T_B, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -714,8 +716,8 @@ def test_prescraamp_self_join_KNN(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_B, m, s=s, p=p, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -731,8 +733,8 @@ def test_prescraamp_A_B_join_KNN(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_A, m, T_B=T_B, s=s, p=p, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -767,10 +769,10 @@ def test_scraamp_self_join_KNN(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -805,10 +807,10 @@ def test_scraamp_A_B_join_KNN(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -850,8 +852,8 @@ def test_scraamp_plus_plus_self_join_KNN(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) # npt.assert_almost_equal(ref_right_I, comp_right_I) @@ -873,8 +875,8 @@ def test_prescraamp_self_join_larger_window_m_5_k_5(T_A, T_B, m): with rng.fix_state(): comp_P, comp_I = prescraamp(T_B, m, s=s, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -891,5 +893,5 @@ def test_prescraamp_A_B_join_larger_window_m_5_k_5(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescraamp(T_A, m, T_B, s=s, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_scrump.py b/tests/test_scrump.py index 73279ce84..4bc58e58a 100644 --- a/tests/test_scrump.py +++ b/tests/test_scrump.py @@ -38,8 +38,8 @@ def test_prescrump_self_join(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_B, m, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -53,8 +53,8 @@ def test_prescrump_A_B_join(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_A, m, T_B=T_B, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -68,8 +68,8 @@ def test_prescrump_A_B_join_swap(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_B, m, T_B=T_A, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -84,8 +84,8 @@ def test_prescrump_self_join_larger_window(T_A, T_B, m): with rng.fix_state(): comp_P, comp_I = prescrump(T_B, m, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -113,8 +113,8 @@ def test_prescrump_self_join_with_isconstant(T_A, T_B): T_B, m, s=s, T_A_subseq_isconstant=isconstant_custom_func ) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_scrump_int_input(): @@ -146,10 +146,10 @@ def test_scrump_self_join(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -181,10 +181,10 @@ def test_scrump_A_B_join(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -216,10 +216,10 @@ def test_scrump_A_B_join_swap(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -248,10 +248,10 @@ def test_scrump_self_join_larger_window(T_A, T_B, m, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -295,10 +295,10 @@ def test_scrump_self_join_with_isconstant(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -466,8 +466,8 @@ def test_scrump_plus_plus_self_join(T_A, T_B, percentages): ref_P = ref_P ref_I = ref_I - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -509,10 +509,10 @@ def test_scrump_plus_plus_A_B_join(T_A, T_B, percentages): ref_P = ref_P ref_I = ref_I - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -628,10 +628,10 @@ def test_scrump_constant_subsequence_self_join(percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("percentages", percentages) @@ -660,7 +660,9 @@ def test_scrump_identical_subsequence_self_join(percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) # npt.assert_almost_equal(ref_left_I, comp_left_I) # npt.assert_almost_equal(ref_right_I, comp_right_I) @@ -700,10 +702,10 @@ def test_scrump_nan_inf_self_join( naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("percentages", percentages) @@ -730,10 +732,10 @@ def test_scrump_nan_zero_mean_self_join(percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -748,8 +750,8 @@ def test_prescrump_A_B_join_larger_window(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_A, m, T_B, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -766,8 +768,8 @@ def test_prescrump_self_join_KNN(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_B, m, s=s, k=k) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -782,8 +784,8 @@ def test_prescrump_A_B_join_KNN(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_A, m, T_B=T_B, s=s) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -816,10 +818,10 @@ def test_scrump_self_join_KNN(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -852,10 +854,10 @@ def test_scrump_A_B_join_KNN(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_I, comp_left_I) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -893,8 +895,8 @@ def test_scrump_plus_plus_self_join_KNN(T_A, T_B, percentages): naive.replace_inf(ref_P) naive.replace_inf(comp_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -913,8 +915,8 @@ def test_prescrump_self_join_larger_window_m_5_k_5(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_B, m, s=s, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -930,8 +932,8 @@ def test_prescrump_A_B_join_larger_window_m_5_k_5(T_A, T_B): with rng.fix_state(): comp_P, comp_I = prescrump(T_A, m, T_B, s=s, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) def test_prescrump_self_join_KNN_no_overlap(): @@ -1036,8 +1038,8 @@ def test_prescrump_self_join_KNN_no_overlap(): ref_P, ref_I = naive.prescrump(T, m, T, s=1, exclusion_zone=zone, k=k) comp_P, comp_I = prescrump(T, m, s=1, k=k) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) @@ -1069,5 +1071,5 @@ def test_prescrump_self_join_larger_window_m_5_k_5_with_isconstant(T_A, T_B): T_B, m, s=s, k=k, T_A_subseq_isconstant=isconstant_custom_func ) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) diff --git a/tests/test_snippets.py b/tests/test_snippets.py index c57e0d085..06892c51c 100644 --- a/tests/test_snippets.py +++ b/tests/test_snippets.py @@ -21,8 +21,8 @@ def test_get_all_mpdist_profiles(T, m): ref_profiles = naive.get_all_mpdist_profiles(T, m) cmp_profiles = _get_all_profiles(T, m) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) @@ -33,8 +33,8 @@ def test_get_all_mpdist_profiles_percentage(T, m, percentage): ref_profiles = naive.get_all_mpdist_profiles(T, m, percentage=percentage) cmp_profiles = _get_all_profiles(T, m, percentage=percentage) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) @@ -45,8 +45,8 @@ def test_get_all_mpdist_profiles_s(T, m, s): ref_profiles = naive.get_all_mpdist_profiles(T, m, s=s) cmp_profiles = _get_all_profiles(T, m, s=s) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) @@ -63,8 +63,8 @@ def test_get_all_mpdist_profiles_with_isconstant(T, m): T, m, mpdist_T_subseq_isconstant=isconstant_custom_func ) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) @@ -89,20 +89,25 @@ def test_mpdist_snippets(T, m, k): cmp_regimes, ) = snippets(T, m, k) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, cmp_snippets, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, cmp_indices, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, + ) + npt.assert_allclose( + ref_areas, cmp_areas, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal(ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", test_data) @@ -127,20 +132,25 @@ def test_mpdist_snippets_percentage(T, m, k, percentage): cmp_regimes, ) = snippets(T, m, k, percentage=percentage) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, cmp_snippets, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, cmp_indices, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_areas, cmp_areas, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal(ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", test_data) @@ -165,20 +175,25 @@ def test_mpdist_snippets_s(T, m, k, s): cmp_regimes, ) = snippets(T, m, k, s=s) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, cmp_snippets, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, cmp_indices, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, + ) + npt.assert_allclose( + ref_areas, cmp_areas, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal(ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", test_data) @@ -208,17 +223,22 @@ def test_mpdist_snippets_s_with_isconstant(T, m, k, s): cmp_regimes, ) = snippets(T, m, k, s=s, mpdist_T_subseq_isconstant=isconstant_custom_func) - npt.assert_almost_equal( - ref_snippets, cmp_snippets, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_snippets, cmp_snippets, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_indices, cmp_indices, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_indices, cmp_indices, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal( - ref_profiles, cmp_profiles, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_profiles, cmp_profiles, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) + npt.assert_allclose( + ref_fractions, + cmp_fractions, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) - npt.assert_almost_equal( - ref_fractions, cmp_fractions, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_areas, cmp_areas, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 ) - npt.assert_almost_equal(ref_areas, cmp_areas, decimal=config.STUMPY_TEST_PRECISION) - npt.assert_almost_equal(ref_regimes, cmp_regimes) + npt.assert_allclose(ref_regimes, cmp_regimes, atol=1.5e-07, rtol=0) diff --git a/tests/test_stamp.py b/tests/test_stamp.py index 3caeb8fca..5511d6b33 100644 --- a/tests/test_stamp.py +++ b/tests/test_stamp.py @@ -35,8 +35,8 @@ def test_stamp_mass_PI(T_A, T_B): ) comp_P, comp_I = _mass_PI(Q, T_B, M_T, Σ_T, trivial_idx=trivial_idx, excl_zone=zone) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) comp_left_P, comp_left_I = _mass_PI( Q, @@ -48,7 +48,7 @@ def test_stamp_mass_PI(T_A, T_B): left=True, ) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) comp_right_P, comp_right_I = _mass_PI( Q, @@ -60,7 +60,7 @@ def test_stamp_mass_PI(T_A, T_B): right=True, ) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) def test_stamp_int_input(): @@ -186,8 +186,8 @@ def test_stamp_mass_PI_with_isconstant_case1(): Q_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) comp_left_P, comp_left_I = _mass_PI( Q, @@ -201,7 +201,7 @@ def test_stamp_mass_PI_with_isconstant_case1(): Q_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) comp_right_P, comp_right_I = _mass_PI( Q, @@ -215,7 +215,7 @@ def test_stamp_mass_PI_with_isconstant_case1(): Q_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) def test_stamp_mass_PI_with_isconstant_case2(): @@ -255,8 +255,8 @@ def test_stamp_mass_PI_with_isconstant_case2(): Q_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) comp_left_P, comp_left_I = _mass_PI( Q, @@ -270,7 +270,7 @@ def test_stamp_mass_PI_with_isconstant_case2(): Q_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) comp_right_P, comp_right_I = _mass_PI( Q, @@ -284,7 +284,7 @@ def test_stamp_mass_PI_with_isconstant_case2(): Q_subseq_isconstant=isconstant_custom_func, ) - npt.assert_almost_equal(ref_right_I, comp_right_I) + npt.assert_allclose(ref_right_I, comp_right_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T_A, T_B", test_data) diff --git a/tests/test_stimp.py b/tests/test_stimp.py index 82229e14f..fcae71c74 100644 --- a/tests/test_stimp.py +++ b/tests/test_stimp.py @@ -69,7 +69,7 @@ def test_stimp_1_percent(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -80,7 +80,7 @@ def test_stimp_1_percent(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", T) @@ -122,7 +122,7 @@ def test_stimp_max_m(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -133,7 +133,7 @@ def test_stimp_max_m(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", T) @@ -169,7 +169,7 @@ def test_stimp_100_percent(T): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -180,7 +180,7 @@ def test_stimp_100_percent(T): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("T", T) @@ -251,7 +251,7 @@ def test_stimped(T, dask_cluster): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -262,7 +262,7 @@ def test_stimped(T, dask_cluster): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) def test_stimp_1_percent_with_isconstant(): @@ -326,7 +326,7 @@ def test_stimp_1_percent_with_isconstant(): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -337,7 +337,7 @@ def test_stimp_1_percent_with_isconstant(): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) @pytest.mark.filterwarnings("ignore:\\s+Port 8787 is already in use:UserWarning") @@ -384,7 +384,7 @@ def test_stimped_with_isconstant(dask_cluster): naive.replace_inf(ref_PAN) naive.replace_inf(cmp_PAN) - npt.assert_almost_equal(ref_PAN, cmp_PAN) + npt.assert_allclose(ref_PAN, cmp_PAN, atol=1.5e-07, rtol=0) # Compare transformed pan cmp_pan = pan.PAN_ @@ -395,4 +395,4 @@ def test_stimped_with_isconstant(dask_cluster): naive.replace_inf(ref_pan) naive.replace_inf(cmp_pan) - npt.assert_almost_equal(ref_pan, cmp_pan) + npt.assert_allclose(ref_pan, cmp_pan, atol=1.5e-07, rtol=0) diff --git a/tests/test_stump.py b/tests/test_stump.py index d5505de96..99d07cd42 100644 --- a/tests/test_stump.py +++ b/tests/test_stump.py @@ -144,13 +144,17 @@ def test_stump_identical_subsequence_self_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices comp_mp = stump(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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices @@ -166,13 +170,17 @@ def test_stump_identical_subsequence_A_B_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices comp_mp = stump(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], decimal=config.STUMPY_TEST_PRECISION + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices # Swap inputs @@ -181,7 +189,9 @@ def test_stump_identical_subsequence_A_B_join(): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices diff --git a/tests/test_stumped.py b/tests/test_stumped.py index f3cf066ba..b87caba49 100644 --- a/tests/test_stumped.py +++ b/tests/test_stumped.py @@ -297,7 +297,9 @@ def test_stumped_identical_subsequence_self_join(dask_cluster): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices @@ -320,7 +322,9 @@ def test_stumped_identical_subsequence_A_B_join(dask_cluster): 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 + ref_mp[:, 0], + comp_mp[:, 0], + decimal=config.STUMPY_TEST_PRECISION, ) # ignore indices diff --git a/tests/test_stumpi.py b/tests/test_stumpi.py index a8d9bcbfe..09e4c1276 100644 --- a/tests/test_stumpi.py +++ b/tests/test_stumpi.py @@ -51,8 +51,8 @@ def test_stumpi_self_join(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(30) @@ -72,8 +72,8 @@ def test_stumpi_self_join(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_stumpi_self_join_egress(): @@ -101,10 +101,10 @@ def test_stumpi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -126,10 +126,10 @@ def test_stumpi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(n) @@ -153,10 +153,10 @@ def test_stumpi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -179,10 +179,10 @@ def test_stumpi_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("substitute", substitution_values) @@ -269,10 +269,10 @@ def test_stumpi_init_nan_inf_self_join_egress(substitute, substitution_locations naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -294,10 +294,10 @@ def test_stumpi_init_nan_inf_self_join_egress(substitute, substitution_locations naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(n) @@ -325,10 +325,10 @@ def test_stumpi_init_nan_inf_self_join_egress(substitute, substitution_locations naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -350,10 +350,10 @@ def test_stumpi_init_nan_inf_self_join_egress(substitute, substitution_locations naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) @pytest.mark.parametrize("substitute", substitution_values) @@ -434,10 +434,10 @@ def test_stumpi_stream_nan_inf_self_join_egress(substitute, substitution_locatio naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) if substitution_location == -1: substitution_location = T[30:].shape[0] - 1 @@ -461,10 +461,10 @@ def test_stumpi_stream_nan_inf_self_join_egress(substitute, substitution_locatio naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(64) @@ -487,10 +487,10 @@ def test_stumpi_stream_nan_inf_self_join_egress(substitute, substitution_locatio naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) if substitution_location == -1: # pragma: no cover substitution_location = T[n:].shape[0] - 1 @@ -514,10 +514,10 @@ def test_stumpi_stream_nan_inf_self_join_egress(substitute, substitution_locatio naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_stumpi_constant_subsequence_self_join(): @@ -591,9 +591,9 @@ def test_stumpi_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) for i in range(34): @@ -616,9 +616,9 @@ def test_stumpi_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) with rng.fix_state(): @@ -645,9 +645,9 @@ def test_stumpi_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) for i in range(34): @@ -670,9 +670,9 @@ def test_stumpi_constant_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -750,10 +750,15 @@ def test_stumpi_identical_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -777,10 +782,15 @@ def test_stumpi_identical_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -808,10 +818,15 @@ def test_stumpi_identical_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -835,10 +850,15 @@ def test_stumpi_identical_subsequence_self_join_egress(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P, decimal=config.STUMPY_TEST_PRECISION) + npt.assert_allclose( + ref_P, comp_P, atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, rtol=0 + ) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal( - ref_left_P, comp_left_P, decimal=config.STUMPY_TEST_PRECISION + npt.assert_allclose( + ref_left_P, + comp_left_P, + atol=1.5 * 10**-config.STUMPY_TEST_PRECISION, + rtol=0, ) # npt.assert_almost_equal(ref_left_I, comp_left_I) @@ -875,8 +895,8 @@ def test_stumpi_profile_index_match(): axis=1, ) - npt.assert_almost_equal(stream.P_, P) - npt.assert_almost_equal(stream.left_P_, left_P) + npt.assert_allclose(stream.P_, P, atol=1.5e-07, rtol=0) + npt.assert_allclose(stream.left_P_, left_P, atol=1.5e-07, rtol=0) n += 1 @@ -915,8 +935,8 @@ def test_stumpi_self_join_KNN(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(30) @@ -936,8 +956,8 @@ def test_stumpi_self_join_KNN(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_stumpi_self_join_egress_KNN(): @@ -966,10 +986,10 @@ def test_stumpi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -991,10 +1011,10 @@ def test_stumpi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) with rng.fix_state(): T = rng.RNG.rand(n) @@ -1018,10 +1038,10 @@ def test_stumpi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -1044,10 +1064,10 @@ def test_stumpi_self_join_egress_KNN(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_stumpi_self_join_egress_passing_mp(): @@ -1076,10 +1096,10 @@ def test_stumpi_self_join_egress_passing_mp(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -1101,10 +1121,10 @@ def test_stumpi_self_join_egress_passing_mp(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_stumpi_self_join_with_isconstant(): @@ -1168,7 +1188,7 @@ def test_stumpi_self_join_with_isconstant(): npt.assert_almost_equal(ref_P, comp_P) # npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) # npt.assert_almost_equal(ref_left_I, comp_left_I) # with passing `mp` @@ -1225,8 +1245,8 @@ def test_stumpi_self_join_with_isconstant(): npt.assert_almost_equal(ref_P, comp_P) npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) def test_stumpi_self_join_egress_with_isconstant(): @@ -1266,10 +1286,10 @@ def test_stumpi_self_join_egress_with_isconstant(): naive.replace_inf(comp_P) naive.replace_inf(comp_left_P) - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0) for i in range(34): t = rng.RNG.rand() @@ -1295,7 +1315,7 @@ def test_stumpi_self_join_egress_with_isconstant(): # both the naive and the performant versions follow # the same approach in updating the matrix profile (indices) # arrays. - npt.assert_almost_equal(ref_P, comp_P) - npt.assert_almost_equal(ref_I, comp_I) - npt.assert_almost_equal(ref_left_P, comp_left_P) - npt.assert_almost_equal(ref_left_I, comp_left_I) + npt.assert_allclose(ref_P, comp_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_I, comp_I, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_P, comp_left_P, atol=1.5e-07, rtol=0) + npt.assert_allclose(ref_left_I, comp_left_I, atol=1.5e-07, rtol=0)