Esempio n. 1
0
def test_sample_sweep():
    q = cirq.NamedQubit('q')
    c = cirq.Circuit.from_ops(cirq.X(q),
                              cirq.Y(q)**sympy.Symbol('t'), cirq.measure(q))

    # Unitary.
    results = cirq.sample_sweep(c, cirq.Linspace('t', 0, 1, 2), repetitions=3)
    assert len(results) == 2
    assert results[0].histogram(key=q) == collections.Counter({1: 3})
    assert results[1].histogram(key=q) == collections.Counter({0: 3})

    # Overdamped.
    c = cirq.Circuit.from_ops(cirq.X(q),
                              cirq.amplitude_damp(1).on(q),
                              cirq.Y(q)**sympy.Symbol('t'), cirq.measure(q))
    results = cirq.sample_sweep(c, cirq.Linspace('t', 0, 1, 2), repetitions=3)
    assert len(results) == 2
    assert results[0].histogram(key=q) == collections.Counter({0: 3})
    assert results[1].histogram(key=q) == collections.Counter({1: 3})

    # Overdamped everywhere.
    c = cirq.Circuit.from_ops(cirq.X(q),
                              cirq.Y(q)**sympy.Symbol('t'), cirq.measure(q))
    results = cirq.sample_sweep(c,
                                cirq.Linspace('t', 0, 1, 2),
                                noise=cirq.ConstantQubitNoiseModel(
                                    cirq.amplitude_damp(1)),
                                repetitions=3)
    assert len(results) == 2
    assert results[0].histogram(key=q) == collections.Counter({0: 3})
    assert results[1].histogram(key=q) == collections.Counter({0: 3})
Esempio n. 2
0
def test_sample_sweep_seed():
    q = cirq.NamedQubit('q')
    circuit = cirq.Circuit(cirq.X(q)**sympy.Symbol('t'), cirq.measure(q))

    results = cirq.sample_sweep(circuit, [cirq.ParamResolver({'t': 0.5})] * 3,
                                repetitions=2,
                                seed=1234)
    assert np.all(results[0].measurements['q'] == [[False], [True]])
    assert np.all(results[1].measurements['q'] == [[False], [True]])
    assert np.all(results[2].measurements['q'] == [[True], [False]])

    results = cirq.sample_sweep(circuit, [cirq.ParamResolver({'t': 0.5})] * 3,
                                repetitions=2,
                                seed=np.random.RandomState(1234))
    assert np.all(results[0].measurements['q'] == [[False], [True]])
    assert np.all(results[1].measurements['q'] == [[False], [True]])
    assert np.all(results[2].measurements['q'] == [[True], [False]])
Esempio n. 3
0
def test_sample_sweep_seed():
    q = cirq.NamedQubit('q')
    circuit = cirq.Circuit.from_ops(cirq.X(q)**0.5, cirq.measure(q))
    results = cirq.sample_sweep(circuit,
                                cirq.Linspace('t', 0, 1, 3),
                                repetitions=2,
                                seed=1234)
    assert np.all(results[0].measurements['q'] == [[False], [True]])
    assert np.all(results[1].measurements['q'] == [[False], [True]])
    assert np.all(results[2].measurements['q'] == [[True], [False]])