Пример #1
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
Пример #2
0
      [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],
  ])),
Пример #3
0
                       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
Пример #4
0
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