10 lines
436 B
Python
10 lines
436 B
Python
import numpy as np
|
|
|
|
from mdsmap_sim.mds_map import classical_mds, procrustes_align
|
|
|
|
|
|
def test_noise_free_mds_alignment_is_exact():
|
|
points = np.array([[0, 0], [10, 0], [0, 10], [7, 4], [3, 8]], dtype=float)
|
|
distances = np.linalg.norm(points[:, None] - points[None, :], axis=2)
|
|
aligned = procrustes_align(classical_mds(distances), points, np.array([0, 1, 2]))
|
|
assert np.max(np.linalg.norm(aligned - points, axis=1)) < 1e-8 |