def test_double_excitation_gate_text_diagrams_no_unicode():
    a = cirq.NamedQubit('a')
    b = cirq.NamedQubit('b')
    c = cirq.NamedQubit('c')
    d = cirq.NamedQubit('d')

    circuit = cirq.Circuit(ofc.DoubleExcitation(a, b, c, d))
    cirq.testing.assert_has_diagram(circuit, """
a: ---/\ \/---
      |
b: ---/\ \/---
      |
c: ---\/ /\---
      |
d: ---\/ /\---
""", use_unicode_characters=False)

    circuit = cirq.Circuit(ofc.DoubleExcitation(a, b, c, d)**-0.5)
    cirq.testing.assert_has_diagram(circuit, """
a: ---/\ \/--------
      |
b: ---/\ \/--------
      |
c: ---\/ /\--------
      |
d: ---\/ /\^-0.5---
""", use_unicode_characters=False)

    circuit = cirq.Circuit(ofc.DoubleExcitation(a, c, b, d)**0.2)
    cirq.testing.assert_has_diagram(circuit, """
a: ---/\ \/-------
      |
b: ---\/ /\-------
      |
c: ---/\ \/-------
      |
d: ---\/ /\^0.2---
""", use_unicode_characters=False)

    circuit = cirq.Circuit(ofc.DoubleExcitation(d, b, a, c)**0.7)
    cirq.testing.assert_has_diagram(circuit, """
a: ---\/ /\-------
      |
b: ---/\ \/-------
      |
c: ---\/ /\-------
      |
d: ---/\ \/^0.7---
""", use_unicode_characters=False)

    circuit = cirq.Circuit(ofc.DoubleExcitation(d, b, a, c)**2.3)
    cirq.testing.assert_has_diagram(circuit, """
a: ---\/ /\-------
      |
b: ---/\ \/-------
      |
c: ---\/ /\-------
      |
d: ---/\ \/^0.3---
""", use_unicode_characters=False)
def test_double_excitation_gate_text_diagrams():
    a = cirq.NamedQubit('a')
    b = cirq.NamedQubit('b')
    c = cirq.NamedQubit('c')
    d = cirq.NamedQubit('d')

    circuit = cirq.Circuit(ofc.DoubleExcitation(a, b, c, d))
    cirq.testing.assert_has_diagram(circuit, """
a: ───⇅───
      │
b: ───⇅───
      │
c: ───⇵───
      │
d: ───⇵───
""")

    circuit = cirq.Circuit(ofc.DoubleExcitation(a, b, c, d)**-0.5)
    cirq.testing.assert_has_diagram(circuit, """
a: ───⇅────────
      │
b: ───⇅────────
      │
c: ───⇵────────
      │
d: ───⇵^-0.5───
""")

    circuit = cirq.Circuit(ofc.DoubleExcitation(a, c, b, d)**0.2)
    cirq.testing.assert_has_diagram(circuit, """
a: ───⇅───────
      │
b: ───⇵───────
      │
c: ───⇅───────
      │
d: ───⇵^0.2───
""")

    circuit = cirq.Circuit(ofc.DoubleExcitation(d, b, a, c)**0.7)
    cirq.testing.assert_has_diagram(circuit, """
a: ───⇵───────
      │
b: ───⇅───────
      │
c: ───⇵───────
      │
d: ───⇅^0.7───
""")

    circuit = cirq.Circuit(ofc.DoubleExcitation(d, b, a, c)**2.3)
    cirq.testing.assert_has_diagram(circuit, """
a: ───⇵───────
      │
b: ───⇅───────
      │
c: ───⇵───────
      │
d: ───⇅^0.3───
""")