def test_hermitian_basis(dim, result): """ Test the method for creating the basis of Hermitian matrices. """ for basis_vector, result_vector in zip(hermitian_basis(dim), result): assert basis_vector == result_vector assert hermitian_basis(dim) == result
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, -1, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, -1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], ])), (matrix_to_expr_operator([[0, 1, 0], [1, 0, 0], [0, 0, -1] ]), monomial_basis(*range(2)), expr_to_vector, sp.Matrix([[1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, -1]])), (repr_to_matrix_operator(sp.Matrix( [[0, 1], [1, 0]])), hermitian_basis(2), hermitian_to_vector, sp.Matrix([ [0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, -1], ])), (repr_to_matrix_operator( sp.Matrix([[0, 1], [1, 0]]), complex_conjugate=True), hermitian_basis(2), hermitian_to_vector, sp.Matrix([ [0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], ])),
sp.Matrix([[1, 0, 0], [0, 0, 0], [0, 0, 0]]), sp.Matrix([[0, 0, 0], [0, 1, 0], [0, 0, 0]]), sp.Matrix([[0, 0, 0], [0, 0, 0], [0, 0, 1]]), sp.Matrix([[0, 1, 0], [1, 0, 0], [0, 0, 0]]), sp.Matrix([[0, -sp.I, 0], [sp.I, 0, 0], [0, 0, 0]]), sp.Matrix([[0, 0, 1], [0, 0, 0], [1, 0, 0]]), sp.Matrix([[0, 0, -sp.I], [0, 0, 0], [sp.I, 0, 0]]), sp.Matrix([[0, 0, 0], [0, 0, 1], [0, 1, 0]]), sp.Matrix([[0, 0, 0], [0, 0, -sp.I], [0, sp.I, 0]]), ])]) def test_hermitian_basis(dim, result): """ Test the method for creating the basis of Hermitian matrices. """ for basis_vector, result_vector in zip(hermitian_basis(dim), result): assert basis_vector == result_vector assert hermitian_basis(dim) == result @pytest.mark.parametrize( 'mat,vec,basis', [(sp.Matrix([[0, 1 + sp.I], [1 - sp.I, 0]]), (0, 0, 1, -1), hermitian_basis(2)), (sp.Matrix([[2, sp.sqrt(2) + sp.I], [sp.sqrt(2) - sp.I, -3]]), (2, -3, sp.sqrt(2), -1), hermitian_basis(2))]) def test_hermitian_to_vector(mat, vec, basis): """ Test that a Hermitian matrix is correctly converted to a vector. """ assert hermitian_to_vector(mat, basis) == vec
def test_hermitian_basis(dim, result): for basis_vector, result_vector in zip(hermitian_basis(dim), result): assert basis_vector == result_vector assert hermitian_basis(dim) == result