def test_state_swap_eigen_component_args(): with pytest.raises(TypeError): state_swap_eigen_component(0, '12', 1) with pytest.raises(ValueError): state_swap_eigen_component('01', '01', 1) with pytest.raises(ValueError): state_swap_eigen_component('01', '10', 0) with pytest.raises(ValueError): state_swap_eigen_component('01', '100', 1) with pytest.raises(ValueError): state_swap_eigen_component('01', 'ab', 1)
def test_state_swap_eigen_component(index_pair, n_qubits): state_pair = tuple(format(i, '0' + str(n_qubits) + 'b') for i in index_pair) i, j = index_pair dim = 2 ** n_qubits for sign in (-1, 1): actual_component = state_swap_eigen_component( state_pair[0], state_pair[1], sign) expected_component = np.zeros((dim, dim)) expected_component[i, i] = expected_component[j, j] = 0.5 expected_component[i, j] = expected_component[j, i] = sign * 0.5 assert np.allclose(actual_component, expected_component)