def test_binary_phase_encoding2(self): """ n_qubits ancilla=True""" elements = [-1, 1] x = np.random.choice(elements, 8) bp = encode.BinaryPhaseEncoding(ancilla=True) n_qubits = bp.n_qubits(x) self.assertEqual(3, n_qubits, 'Error in n_qubits')
def test_combine3(self): """ BinaryPhase, BinaryPerceptron """ x = np.array([-1, 1, 1, -1]) encoder = encode.BinaryPhaseEncoding() model = BinaryPerceptron() full_circuit = combine(x, encoder, model) print(full_circuit) self.assertTrue(isinstance(full_circuit, qiskit.QuantumCircuit))
def test_combine5(self): """ With BinaryEncoding and a different model """ x = np.array([-1, 1, 1, -1]) encoder = encode.BinaryPhaseEncoding() model = TreeTensorNetwork() full_circuit = combine(x, encoder, model) print(full_circuit) self.assertTrue(isinstance(full_circuit, qiskit.QuantumCircuit))
def test_binary_phase_encoding3(self): """ Default Arguemnets ancilla=False""" bp = encode.BinaryPhaseEncoding(ancilla=False) elements = [-1, 1] equals_list = [] for _ in range(5): x = np.random.choice(elements, 8) circuit = bp.circuit(x) circuit_psi = get_state_vector(circuit) psi = 1 / np.sqrt(8) * x equals_list.append(np.allclose(psi, circuit_psi)) all_true = reduce(lambda a, b: (a and b), equals_list) self.assertTrue(all_true)
def test_binary_phase_encoding4(self): """ Default Arguemnets ancilla=True (default)""" bp = encode.BinaryPhaseEncoding() elements = [-1, 1] equals_list = [] zero_state = np.array([1, 0]) for _ in range(1): x = np.random.choice(elements, 8) circuit = bp.circuit(x) circuit_psi = get_state_vector(circuit) psi = np.kron(zero_state, (1 / np.sqrt(8) * x)) equals_list.append(np.allclose(psi, circuit_psi)) all_true = reduce(lambda a, b: (a and b), equals_list) self.assertTrue(all_true)