def test_matrix_from_basis_coefficients(expansion): m = cirq.matrix_from_basis_coefficients(expansion, PAULI_BASIS) for name, coefficient in expansion.items(): element = PAULI_BASIS[name] expected_coefficient = cirq.hilbert_schmidt_inner_product( m, element) / cirq.hilbert_schmidt_inner_product(element, element) assert np.isclose(coefficient, expected_coefficient)
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