| 43 | @pytest.mark.parametrize("T_A, T_B", test_data) |
| 44 | @pytest.mark.parametrize("k", kNN) |
| 45 | def test_mparray_self_join(T_A, T_B, k): |
| 46 | m = 3 |
| 47 | zone = int(np.ceil(m / 4)) |
| 48 | |
| 49 | ref_mp = naive.stump(T_B, m, exclusion_zone=zone, k=k) |
| 50 | comp_mp = stump(T_B, m, ignore_trivial=True, k=k) |
| 51 | naive.replace_inf(ref_mp) |
| 52 | naive.replace_inf(comp_mp) |
| 53 | npt.assert_almost_equal(np.squeeze(ref_mp[:, :k]), comp_mp.P_) |
| 54 | npt.assert_almost_equal(np.squeeze(ref_mp[:, k : 2 * k]), comp_mp.I_) |
| 55 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k]), comp_mp.left_I_) |
| 56 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k + 1]), comp_mp.right_I_) |
| 57 | |
| 58 | comp_mp = stump(pd.Series(T_B), m, ignore_trivial=True, k=k) |
| 59 | naive.replace_inf(comp_mp) |
| 60 | npt.assert_almost_equal(np.squeeze(ref_mp[:, :k]), comp_mp.P_) |
| 61 | npt.assert_almost_equal(np.squeeze(ref_mp[:, k : 2 * k]), comp_mp.I_) |
| 62 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k]), comp_mp.left_I_) |
| 63 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k + 1]), comp_mp.right_I_) |
| 64 | |
| 65 | ref_mp = naive.aamp(T_B, m, exclusion_zone=zone, k=k) |
| 66 | comp_mp = aamp(T_B, m, ignore_trivial=True, k=k) |
| 67 | naive.replace_inf(ref_mp) |
| 68 | naive.replace_inf(comp_mp) |
| 69 | npt.assert_almost_equal(np.squeeze(ref_mp[:, :k]), comp_mp.P_) |
| 70 | npt.assert_almost_equal(np.squeeze(ref_mp[:, k : 2 * k]), comp_mp.I_) |
| 71 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k]), comp_mp.left_I_) |
| 72 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k + 1]), comp_mp.right_I_) |
| 73 | |
| 74 | comp_mp = aamp(pd.Series(T_B), m, ignore_trivial=True, k=k) |
| 75 | naive.replace_inf(comp_mp) |
| 76 | npt.assert_almost_equal(np.squeeze(ref_mp[:, :k]), comp_mp.P_) |
| 77 | npt.assert_almost_equal(np.squeeze(ref_mp[:, k : 2 * k]), comp_mp.I_) |
| 78 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k]), comp_mp.left_I_) |
| 79 | npt.assert_almost_equal(np.squeeze(ref_mp[:, 2 * k + 1]), comp_mp.right_I_) |
| 80 | |
| 81 | |
| 82 | @pytest.mark.parametrize("T_A, T_B", test_data) |