import sys from pathlib import Path import torch sys.path.append(str(Path(__file__).resolve().parents[1] / "src")) from wrinklebrane.codes import dct_codes, gram_matrix, hadamard_codes def _assert_orthonormal(C: torch.Tensor, atol: float = 1e-5) -> None: G = gram_matrix(C) K = C.shape[1] I = torch.eye(K, dtype=C.dtype) assert torch.allclose(G, I, atol=atol) def test_hadamard_codes_orthogonality() -> None: C = hadamard_codes(L=16, K=8) _assert_orthonormal(C) def test_dct_codes_orthogonality() -> None: C = dct_codes(L=16, K=16) _assert_orthonormal(C)