def test_prescrump(T): m = 3 zone = int(np.ceil(m / 4)) left = np.array( [ utils.naive_mass(Q, T, m, i, zone, True) for i, Q in enumerate(core.rolling_window(T, m)) ], dtype=object, ) μ, σ = core.compute_mean_std(T, m) # Note that the below code only works for `s=1` right = prescrump(T, m, μ, σ, s=1)
def test_prescrump_self_join(T_A, T_B): m = 3 zone = int(np.ceil(m / 4)) for s in range(1, zone + 1): seed = np.random.randint(100000) np.random.seed(seed) left_P, left_I = naive_prescrump(T_B, m, T_B, s=s, exclusion_zone=zone) np.random.seed(seed) right_P, right_I = prescrump(T_B, m, s=s) npt.assert_almost_equal(left_P, right_P) npt.assert_almost_equal(left_I, right_I)
def test_prescrump_self_join_larger_window(T_A, T_B, m): if len(T_B) > m: zone = int(np.ceil(m / 4)) for s in range(1, zone + 1): seed = np.random.randint(100000) np.random.seed(seed) ref_P, ref_I = naive_prescrump(T_B, m, T_B, s=s, exclusion_zone=zone) np.random.seed(seed) 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)
def test_prescrump_A_B_join_swap(T_A, T_B): m = 3 zone = int(np.ceil(m / 4)) for s in range(1, zone + 1): seed = np.random.randint(100000) np.random.seed(seed) ref_P, ref_I = naive_prescrump(T_B, m, T_A, s=s) np.random.seed(seed) 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)
def test_prescrump_self_join_larger_window(T_A, T_B): for m in [8, 16, 32]: if len(T_B) > m: zone = int(np.ceil(m / 4)) for s in range(1, zone + 1): seed = np.random.randint(100000) np.random.seed(seed) left_P, left_I = naive_prescrump(T_B, m, T_B, s=s, exclusion_zone=zone) np.random.seed(seed) right_P, right_I = prescrump(T_B, m, s=s) npt.assert_almost_equal(left_P, right_P) npt.assert_almost_equal(left_I, right_I)