예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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)