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})
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]])
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]])