Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_next_subsequence():
ts = [1, 2, 3, 4, 5, 6, 7, 8]
m = 4
idx = 0
expected_subsequence = [1, 2, 3, 4]
assert((scrimp.next_subsequence(ts, idx, m) == expected_subsequence))
def test_apply_exclusion_zone():
ts = [1, 2, 3, 4, 5, 6, 7, 8]
m = 4
# test index 0
idx = 0
profile_len = scrimp.calc_profile_len(len(ts), m) # 4
exclusion_zone = scrimp.calc_exclusion_zone(m) # 1
subsequence = scrimp.next_subsequence(ts, idx, m)
X, n, sumx2, sumx, meanx, sigmax2, sigmax = scrimp.fast_find_nn_pre(ts, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
expected_dp = np.array([
np.inf,
np.inf,
0.4215e-07,
0.4215e-07,
0.4215e-07,
])
np.testing.assert_almost_equal(dp, expected_dp)
# test idx 1
idx = 1
expected_idx_nn = 2
expected_mp_index = np.array([
2,
0,
0,
0,
0,
])
np.testing.assert_almost_equal(mp, expected_mp)
np.testing.assert_almost_equal(mp_index, expected_mp_index)
assert(idx_nn == expected_idx_nn)
# test index 0
idx = 1
subsequence = scrimp.next_subsequence(ts, idx, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
mp, mp_index, idx_nn = scrimp.find_and_store_nn(1, idx, mp, mp_index, dp)
expected_idx_nn = 3
assert(idx_nn == expected_idx_nn)
def test_calc_refine_distance_end_idx():
ts = [1, 2, 3, 4, 5, 6, 7, 8]
m = 4
step_size = 0.25
# test index 0
idx = 0
profile_len = scrimp.calc_profile_len(len(ts), m)
exclusion_zone = scrimp.calc_exclusion_zone(m)
subsequence = scrimp.next_subsequence(ts, idx, m)
X, n, sumx2, sumx, meanx, sigmax2, sigmax = scrimp.fast_find_nn_pre(ts, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
mp = np.zeros(profile_len)
mp_index = np.zeros(profile_len, dtype='int32')
mp, mp_index, idx_nn = scrimp.find_and_store_nn(0, idx, mp, mp_index, dp)
idx_diff = scrimp.calc_idx_diff(idx, idx_nn)
step_size = scrimp.calc_step_size(m, step_size)
endidx = scrimp.calc_end_idx(profile_len, idx, step_size, idx_diff)
refine_distance = np.full(profile_len, np.inf)
result = scrimp.calc_refine_distance_end_idx(
refine_distance, dp, idx, endidx, meanx, sigmax, idx_nn, idx_diff, m)
expected_result = np.array([np.inf, np.inf, np.inf, np.inf, np.inf])
np.testing.assert_almost_equal(result, expected_result)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
expected_dp = np.array([
np.inf,
np.inf,
np.inf,
0.4215e-07,
0.4215e-07,
])
np.testing.assert_almost_equal(dp, expected_dp)
# test idx 2
idx = 2
subsequence = scrimp.next_subsequence(ts, idx, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
expected_dp = np.array([
0.4215e-07,
np.inf,
np.inf,
np.inf,
0.4215e-07,
])
np.testing.assert_almost_equal(dp, expected_dp)
# test idx 3
idx = 3
subsequence = scrimp.next_subsequence(ts, idx, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
np.testing.assert_almost_equal(dp, expected_dp)
# test idx 1
idx = 1
expected_dp = np.array([
4.21468485e-08,
4.21468485e-08,
4.21468485e-08,
4.21468485e-08,
4.21468485e-08
])
subsequence = scrimp.next_subsequence(ts, idx, m)
X, n, sumx2, sumx, meanx, sigmax2, sigmax = scrimp.fast_find_nn_pre(ts, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
np.testing.assert_almost_equal(dp, expected_dp)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
expected_dp = np.array([
np.inf,
np.inf,
0.4215e-07,
0.4215e-07,
0.4215e-07,
])
np.testing.assert_almost_equal(dp, expected_dp)
# test idx 1
idx = 1
subsequence = scrimp.next_subsequence(ts, idx, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
expected_dp = np.array([
np.inf,
np.inf,
np.inf,
0.4215e-07,
0.4215e-07,
])
np.testing.assert_almost_equal(dp, expected_dp)
# test idx 2
idx = 2
subsequence = scrimp.next_subsequence(ts, idx, m)
def test_calc_refine_distance_begin_idx():
ts = [1, 2, 3, 4, 5, 6, 7, 8]
m = 4
step_size = 0.25
# test index 0
idx = 0
profile_len = scrimp.calc_profile_len(len(ts), m)
exclusion_zone = scrimp.calc_exclusion_zone(m)
subsequence = scrimp.next_subsequence(ts, idx, m)
X, n, sumx2, sumx, meanx, sigmax2, sigmax = scrimp.fast_find_nn_pre(ts, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
mp = np.zeros(profile_len)
mp_index = np.zeros(profile_len, dtype='int32')
mp, mp_index, idx_nn = scrimp.find_and_store_nn(0, idx, mp, mp_index, dp)
idx_diff = scrimp.calc_idx_diff(idx, idx_nn)
step_size = scrimp.calc_step_size(m, step_size)
beginidx = scrimp.calc_begin_idx(idx, step_size, idx_diff)
refine_distance = np.full(profile_len, np.inf)
result = scrimp.calc_refine_distance_begin_idx(
refine_distance, dp, beginidx, idx, idx_diff, idx_nn, sigmax, meanx, m)
expected_result = np.array([np.inf, np.inf, np.inf, np.inf, np.inf])
np.testing.assert_almost_equal(result, expected_result)
def test_find_and_store_nn():
ts = [1, 2, 3, 4, 5, 6, 7, 8]
m = 4
# test index 0
idx = 0
profile_len = scrimp.calc_profile_len(len(ts), m)
exclusion_zone = scrimp.calc_exclusion_zone(m)
subsequence = scrimp.next_subsequence(ts, idx, m)
X, n, sumx2, sumx, meanx, sigmax2, sigmax = scrimp.fast_find_nn_pre(ts, m)
dp = scrimp.calc_distance_profile(X, subsequence, n, m, meanx, sigmax)
dp = scrimp.apply_exclusion_zone(idx, exclusion_zone, profile_len, dp)
mp = np.zeros(profile_len)
mp_index = np.zeros(profile_len, dtype='int32')
mp, mp_index, idx_nn = scrimp.find_and_store_nn(0, idx, mp, mp_index, dp)
expected_mp = np.array([
0.4215e-07,
np.inf,
0.4215e-07,
0.4215e-07,
0.4215e-07,
])
expected_idx_nn = 2