Exemple #1
0
def test_mstump(T, m):
    left_P, left_I = naive_mstump(T, m)

    # Right
    d = T.shape[0]
    n = T.shape[1]
    k = n - m + 1
    excl_zone = int(np.ceil(m / 4))  # See Definition 3 and Figure 3

    M_T, Σ_T = _multi_compute_mean_std(T, m)
    μ_Q, σ_Q = _multi_compute_mean_std(T, m)

    P = np.empty((d, k), dtype='float64')
    D = np.zeros((d, k), dtype='float64')
    D_prime = np.zeros(k, dtype='float64')
    I = np.ones((d, k), dtype='int64') * -1

    start = 0
    stop = k

    P, I = _get_first_mstump_profile(start, T, m, excl_zone, M_T, Σ_T)

    QT, QT_first = _get_multi_QT(start, T, m)

    right_P, right_I = _mstump(T, m, P, I, D, D_prime, stop, excl_zone, M_T,
                               Σ_T, QT, QT_first, μ_Q, σ_Q, k, start + 1)

    npt.assert_almost_equal(left_P, right_P)
    npt.assert_almost_equal(left_I, right_I)
Exemple #2
0
def test_get_multi_QT(T, m):
    start = 0
    Q = core.rolling_window(T, m)
    left_QT = np.empty((Q.shape[0], Q.shape[1]), dtype="float64")
    left_QT_first = np.empty((Q.shape[0], Q.shape[1]), dtype="float64")

    for dim in range(T.shape[0]):
        left_QT[dim] = naive_rolling_window_dot_product(
            T[dim, start:start + m], T[dim])
        left_QT_first[dim] = naive_rolling_window_dot_product(
            T[dim, :m], T[dim])

    right_QT, right_QT_first = _get_multi_QT(start, T, m)

    npt.assert_almost_equal(left_QT, right_QT)
    npt.assert_almost_equal(left_QT_first, right_QT_first)