def test_search_sequence_calls_choose_next_qubit(): q00 = GridQubit(0, 0) q01 = GridQubit(0, 1) q02 = GridQubit(0, 2) qubits = [q00, q01, q02] search = GreedySequenceSearch(_create_device(qubits), q01) with mock.patch.object(search, '_choose_next_qubit') as choose_next_qubit: choose_next_qubit.return_value = None search._sequence_search(q01, []) choose_next_qubit.assert_called_once_with(q01, {q01}) with mock.patch.object(search, '_choose_next_qubit') as choose_next_qubit: choose_next_qubit.return_value = None search._sequence_search(q01, [q00]) choose_next_qubit.assert_called_once_with(q01, {q00, q01})
def test_search_sequence_assembles_sequence(): q00 = GridQubit(0, 0) q01 = GridQubit(0, 1) q02 = GridQubit(0, 2) qubits = [q00, q01, q02] search = GreedySequenceSearch(_create_device(qubits), q01) with mock.patch.object(search, '_choose_next_qubit') as choose_next_qubit: choose_next_qubit.side_effect = [q01, q02, None] assert search._sequence_search(q00, []) == [q00, q01, q02]