diff --git a/tests/test_gpu_aamp_ostinato.py b/tests/test_gpu_aamp_ostinato.py index 704c12262..098d7b7a5 100644 --- a/tests/test_gpu_aamp_ostinato.py +++ b/tests/test_gpu_aamp_ostinato.py @@ -36,11 +36,11 @@ def test_random_gpu_aamp_ostinato(runs): Ts = [rng.RNG.rand(n) for n in [64, 128, 256]] 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) + cmp_radius, cmp_Ts_idx, cmp_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(cmp_radius, ref_radius, atol=1.5e-07) + npt.assert_allclose(cmp_Ts_idx, ref_Ts_idx, atol=1.5e-07) + npt.assert_allclose(cmp_subseq_idx, ref_subseq_idx, atol=1.5e-07) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -54,11 +54,11 @@ def test_deterministic_gpu_aamp_ostinato(seed): for p in [1.0, 2.0, 3.0]: 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) + cmp_radius, cmp_Ts_idx, cmp_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(cmp_radius, ref_radius, atol=1.5e-07) + npt.assert_allclose(cmp_Ts_idx, ref_Ts_idx, atol=1.5e-07) + npt.assert_allclose(cmp_subseq_idx, ref_subseq_idx, atol=1.5e-07) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -77,8 +77,10 @@ def test_input_not_overwritten(): gpu_aamp_ostinato(Ts_input, m) 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)]) + T_cmp = Ts_input[i] + npt.assert_allclose( + T_cmp[np.isfinite(T_cmp)], T_ref[np.isfinite(T_ref)], atol=1.5e-07 + ) @pytest.mark.filterwarnings("ignore", category=NumbaPerformanceWarning) @@ -88,18 +90,18 @@ def test_extract_several_consensus(): # does not tamper with the original data. Ts = [rng.RNG.rand(n) for n in [64, 128]] Ts_ref = [T.copy() for T in Ts] - Ts_comp = [T.copy() for T in Ts] + Ts_cmp = [T.copy() for T in Ts] m = 20 k = 2 # Get the first `k` consensus motifs for _ in range(k): - # Find consensus motif and its NN in each time series in Ts_comp - # Remove them from Ts_comp as well as Ts_ref, and assert that the + # Find consensus motif and its NN in each time series in Ts_cmp + # Remove them from Ts_cmp as well as Ts_ref, and assert that the # two time series are the same - radius, Ts_idx, subseq_idx = gpu_aamp_ostinato(Ts_comp, m) - consensus_motif = Ts_comp[Ts_idx][subseq_idx : subseq_idx + m].copy() - for i in range(len(Ts_comp)): + radius, Ts_idx, subseq_idx = gpu_aamp_ostinato(Ts_cmp, m) + consensus_motif = Ts_cmp[Ts_idx][subseq_idx : subseq_idx + m].copy() + for i in range(len(Ts_cmp)): if i == Ts_idx: query_idx = subseq_idx else: @@ -107,12 +109,14 @@ def test_extract_several_consensus(): idx = np.argmin( core.mass( - consensus_motif, Ts_comp[i], normalize=False, query_idx=query_idx + consensus_motif, Ts_cmp[i], normalize=False, query_idx=query_idx ) ) - Ts_comp[i][idx : idx + m] = np.nan + Ts_cmp[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_cmp[i][np.isfinite(Ts_cmp[i])], + Ts_ref[i][np.isfinite(Ts_ref[i])], + atol=1.5e-07, )