Skip to content

Instantly share code, notes, and snippets.

@davidmerwin
Created November 24, 2023 02:52
Show Gist options
  • Save davidmerwin/08c26b8a62fda2c67473aee6e47eeed6 to your computer and use it in GitHub Desktop.
Save davidmerwin/08c26b8a62fda2c67473aee6e47eeed6 to your computer and use it in GitHub Desktop.

Python Snippet

Preview:
import pytest
import cirq


def test_constructor_flexibility():
    # Create two LineQubits
    a, b = cirq.LineQubit.range(2)
    
    # Test the constructor flexibility
    with pytest.raises(TypeError, match='cirq.PAULI_STRING_LIKE'):
        _ = cirq.PauliString(cirq.CZ(a, b))
        
    with pytest.raises(TypeError, match='cirq.PAULI_STRING_LIKE'):
        _ = cirq.PauliString('test')
        
    with pytest.raises(TypeError, match='S is not a Pauli'):
        _ = cirq.PauliString(qubit_pauli_map={a: cirq.S})
        
    with pytest.raises(TypeError, match="cirq.PAULI_STRING_LIKE"):
        _ = cirq.PauliString(cirq.Z(a) + cirq.Z(b))
        
    assert cirq.PauliString(cirq.X(a)) == cirq.PauliString(qubit_pauli_map={a: cirq.X})
    
    assert cirq.PauliString([cirq.X(a)]) == cirq.PauliString(qubit_pauli_map={a: cirq.X})
    
    assert cirq.PauliString([[[cirq.X(a)]]]) == cirq.PauliString(qubit_pauli_map={a: cirq.X})
    
    assert cirq.PauliString([[[cirq.I(a)]]]) == cirq.PauliString()
    
    assert cirq.PauliString(1, 2, 3, cirq.X(a), cirq.Y(a)) == cirq.PauliString(
        qubit_pauli_map={a: cirq.Z}, coefficient=6j
    )
    
    assert cirq.PauliString(cirq.X(a), cirq.X(a)) == cirq.PauliString()
    
    assert cirq.PauliString(cirq.X(a), cirq.X(b)) == cirq.PauliString(
        qubit_pauli_map={a: cirq.X, b: cirq.X}
    )
    
    assert cirq.PauliString(0) == cirq.PauliString(coefficient=0)
    
    assert cirq.PauliString(1, 2, 3, {a: cirq.X}, cirq.Y(a)) == cirq.PauliString(
        qubit_pauli_map={a: cirq.Z}, coefficient=6j
    )
Associated Context
Type Code Snippet ( .py )
Associated Tags No Tags Associated
Description 'No Description Provided'
Related Links http://quantumai.google/cirq
https://github.com/davidmerwin
Related People David Merwin, CIRQ
Sensitive Information No Sensitive Information Detected
Shareable Link https://davidmerwin.pieces.cloud/?p=fa1e428665
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment