コード例 #1
0
ファイル: raw_types_test.py プロジェクト: wodaka/Cirq
def test_tagged_operation_equality():
    eq = cirq.testing.EqualsTester()
    q1 = cirq.GridQubit(1, 1)
    op = cirq.X(q1)
    op2 = cirq.Y(q1)

    eq.add_equality_group(op)
    eq.add_equality_group(op.with_tags('tag1'), cirq.TaggedOperation(op, 'tag1'))
    eq.add_equality_group(op2.with_tags('tag1'), cirq.TaggedOperation(op2, 'tag1'))
    eq.add_equality_group(op.with_tags('tag2'), cirq.TaggedOperation(op, 'tag2'))
    eq.add_equality_group(
        op.with_tags('tag1', 'tag2'),
        op.with_tags('tag1').with_tags('tag2'),
        cirq.TaggedOperation(op, 'tag1', 'tag2'),
    )
コード例 #2
0
ファイル: raw_types_test.py プロジェクト: daxfohl/Cirq
def test_setters_deprecated():
    q = cirq.LineQubit(0)
    subop = cirq.X(q)
    op = cirq.TaggedOperation(subop, 'tag')
    assert op.sub_operation == subop
    with cirq.testing.assert_deprecated('mutators', deadline='v0.15'):
        new_subop = cirq.Y(q)
        op.sub_operation = new_subop
        assert op.sub_operation == new_subop
コード例 #3
0
def test_decompose_tagged_operation():
    op = cirq.TaggedOperation(
        cirq.CircuitOperation(
            circuit=cirq.FrozenCircuit(
                [cirq.Moment(cirq.SWAP(cirq.LineQubit(0), cirq.LineQubit(1)))]
            )
        ),
        'tag',
    )
    assert cirq.decompose_once(op) == cirq.decompose_once(op.untagged)
コード例 #4
0
ファイル: stratify_test.py プロジェクト: dstrain115/Cirq-1
def test_stratify_respects_no_compile_operations():
    q1, q2, q3, q4, q5 = cirq.LineQubit.range(5)
    input_circuit = cirq.Circuit(
        cirq.Moment([
            cirq.X(q1).with_tags("nocompile"),
            cirq.ISWAP(q2, q3).with_tags("nocompile"),
            cirq.Z(q5),
        ]),
        cirq.Moment([cirq.X(q1), cirq.ISWAP(q4, q5)]),
        cirq.Moment([cirq.ISWAP(q1, q2), cirq.X(q4)]),
    )
    expected = cirq.Circuit([
        cirq.Moment(
            cirq.TaggedOperation(cirq.X(cirq.LineQubit(0)), 'nocompile'),
            cirq.TaggedOperation(
                cirq.ISWAP(cirq.LineQubit(1), cirq.LineQubit(2)), 'nocompile'),
        ),
        cirq.Moment(cirq.X(cirq.LineQubit(0))),
        cirq.Moment(cirq.Z(cirq.LineQubit(4))),
        cirq.Moment(
            cirq.ISWAP(cirq.LineQubit(3), cirq.LineQubit(4)),
            cirq.ISWAP(cirq.LineQubit(0), cirq.LineQubit(1)),
        ),
        cirq.Moment(cirq.X(cirq.LineQubit(3))),
    ])
    cirq.testing.assert_has_diagram(
        input_circuit,
        '''
0: ───X['nocompile']───────X───────iSwap───
                                   │
1: ───iSwap['nocompile']───────────iSwap───
      │
2: ───iSwap────────────────────────────────

3: ────────────────────────iSwap───X───────
                           │
4: ───Z────────────────────iSwap───────────
''',
    )
    cirq.testing.assert_has_diagram(
        expected,
        '''
0: ───X['nocompile']───────X───────iSwap───────
                                   │
1: ───iSwap['nocompile']───────────iSwap───────
      │
2: ───iSwap────────────────────────────────────

3: ────────────────────────────────iSwap───X───
                                   │
4: ────────────────────────────Z───iSwap───────
''',
    )
    cirq.testing.assert_same_circuits(
        cirq.stratified_circuit(
            input_circuit,
            categories=[cirq.X, cirq.Z],
            context=cirq.TransformerContext(tags_to_ignore=("nocompile", )),
        ),
        expected,
    )