def test_expand_matrix_in_orthogonal_basis(m, basis): expansion = cirq.expand_matrix_in_orthogonal_basis(m, basis) reconstructed = np.zeros(m.shape, dtype=complex) for name, coefficient in expansion.items(): reconstructed += coefficient * basis[name] assert np.allclose(m, reconstructed)
def test_expand_is_inverse_of_reconstruct(m1, basis): c1 = cirq.expand_matrix_in_orthogonal_basis(m1, basis) m2 = cirq.matrix_from_basis_coefficients(c1, basis) c2 = cirq.expand_matrix_in_orthogonal_basis(m2, basis) assert np.allclose(m1, m2) assert c1 == c2