def test_parametrized_interface(backend, samples): if samples is not None and backend not in INSTALLED_SAMPLERS: pytest.skip( "sampling not yet supported for backend={}".format(backend)) H = tq.paulis.X(0) U = tq.gates.Ry(angle="a", target=0) variables = {"a": numpy.pi / 2} CU = tq.compile(objective=U, backend=backend, samples=None) a = tq.simulate(objective=U, backend=backend, variables=variables, samples=None) aa = CU(variables=variables, samples=None) aaa = tq.compile_to_function(objective=U, backend=backend, samples=samples)(variables["a"], samples=None) assert (isinstance(a, tq.QubitWaveFunction)) assert (aa.isclose(a)) assert (aaa.isclose(a)) E = tq.ExpectationValue(H=H, U=U) CE = tq.compile(objective=E, backend=backend, samples=samples) a = tq.simulate(objective=E, backend=backend, variables=variables, samples=samples) aa = CE(variables=variables, samples=samples) aaa = tq.compile_to_function(objective=E, backend=backend)(variables["a"], samples=samples) assert (isinstance(a, numbers.Number)) assert numpy.isclose(aa, a, 1.e-1) assert numpy.isclose(aaa, a, 1.e-1)
def test_interface(backend): H = tq.paulis.X(0) U = tq.gates.X(target=0) CU = tq.compile(objective=U, backend=backend) a = tq.simulate(objective=U, backend=backend) aa = CU() aaa = tq.compile_to_function(objective=U, backend=backend)() assert (isinstance(a, tq.QubitWaveFunction)) assert (aa.isclose(a)) assert (aaa.isclose(a)) E = tq.ExpectationValue(H=H, U=U) CE = tq.compile(objective=E, backend=backend) a = tq.simulate(objective=E, backend=backend) aa = CE() aaa = tq.compile_to_function(objective=E, backend=backend)() assert (isinstance(a, numbers.Number)) assert (aa == a) assert (aaa == a)