Skip to content

Commit 2ca8e70

Browse files
OperatorStateFn: bind parameters in coeff and primitive (qiskit-community/qiskit-aqua#1085)
* fix param binding of primitive * add test Co-authored-by: Manoel Marques <[email protected]>
1 parent c632c8e commit 2ca8e70

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

test/aqua/operators/test_state_construction.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import numpy as np
2020

2121
from qiskit import QuantumCircuit, BasicAer, execute
22+
from qiskit.circuit import ParameterVector
2223
from qiskit.quantum_info import Statevector
2324

2425
from qiskit.aqua.operators import (StateFn, Zero, One, Plus, Minus, PrimitiveOp,
@@ -192,6 +193,16 @@ def test_circuit_permute(self):
192193
c_op_id = c_op_perm.permute(perm)
193194
self.assertEqual(c_op, c_op_id)
194195

196+
def test_primitive_param_binding(self):
197+
"""Test that assign_parameters binds parameters of both the underlying primitive and coeffs.
198+
"""
199+
theta = ParameterVector('theta', 2)
200+
# only OperatorStateFn can have a primitive with a parameterized coefficient
201+
op = StateFn(theta[0] * X) * theta[1]
202+
bound = op.assign_parameters(dict(zip(theta, [0.2, 0.3])))
203+
self.assertEqual(bound.coeff, 0.3)
204+
self.assertEqual(bound.primitive.coeff, 0.2)
205+
195206

196207
if __name__ == '__main__':
197208
unittest.main()

0 commit comments

Comments
 (0)