def test_generate_model_circuit_seed(): """Test that a model circuit is determined by its seed .""" model_circuit_1 = quantum_volume.generate_model_circuit( 3, 3, random_state=np.random.RandomState(1)) model_circuit_2 = quantum_volume.generate_model_circuit( 3, 3, random_state=np.random.RandomState(1)) model_circuit_3 = quantum_volume.generate_model_circuit( 3, 3, random_state=np.random.RandomState(2)) assert model_circuit_1 == model_circuit_2 assert model_circuit_2 != model_circuit_3
def test_generate_model_circuit_without_seed(): """Test that a model circuit is randomly generated without a seed.""" model_circuit = quantum_volume.generate_model_circuit(3, 3) assert len(model_circuit) == 24 # Ensure there are no measurement gates. assert list( model_circuit.findall_operations_with_gate_type( cirq.MeasurementGate)) == []
def test_generate_model_circuit(): """Test that a model circuit is randomly generated.""" model_circuit = quantum_volume.generate_model_circuit( 3, 3, random_state=np.random.RandomState(1)) assert len(model_circuit) == 24 # Ensure there are no measurement gates. assert list( model_circuit.findall_operations_with_gate_type( cirq.MeasurementGate)) == []
def test_calculate_quantum_volume_result(): """Test that running the main loop returns the desired result""" results = quantum_volume.calculate_quantum_volume( num_qubits=3, depth=3, num_repetitions=1, device=cirq.google.Bristlecone, samplers=[cirq.Simulator()], seed=1) model_circuit = quantum_volume.generate_model_circuit( 3, 3, random_state=np.random.RandomState(1)) assert len(results) == 1 assert results[0].model_circuit == model_circuit assert results[0].heavy_set == quantum_volume.compute_heavy_set( model_circuit) assert len(results[0].sampler_result) == 1 # Ensure that calling to_json on the results does not err. buffer = io.StringIO() cirq.to_json(results, buffer)