Tests whether a value's _applyunitary 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.