cirq.testing.assert_has_consistent_apply_unitary_for_various_exponents(val: Any, *, exponents=0, 1, - 1, 0.5, 0.25, - 0.5, 0.1, s) → None[source]

Tests whether a value’s apply_unitary is correct.

Contrasts the effects of the value’s _apply_unitary_ with the
matrix returned by the value’s _unitary_ method. Attempts this after
attempting to raise the value to several exponents.
  • val – The value under test. Should have a __pow__ method.

  • exponents – The exponents to try. Defaults to a variety of special and arbitrary angles, as well as a parameterized angle (a symbol). If the value’s __pow__ returns NotImplemented for any of these, they are skipped.