def test_match_global_no_float_error_when_axis_aligned(): a = np.array([[1, 1.1], [-1.3, np.pi]]) a2, _ = cirq.match_global_phase(a, a) a3, _ = cirq.match_global_phase(a * 1j, a * 1j) a4, _ = cirq.match_global_phase(-a, -a) a5, _ = cirq.match_global_phase(a * -1j, a * -1j) assert np.all(a2 == a) assert np.all(a3 == a) assert np.all(a4 == a) assert np.all(a5 == a)
def test_match_global_phase_zeros(): z = np.array([[0, 0], [0, 0]]) b = np.array([[1, 1], [1, 1]]) z1, b1 = cirq.match_global_phase(z, b) np.testing.assert_allclose(z, z1, atol=1e-10) np.testing.assert_allclose(b, b1, atol=1e-10) z2, b2 = cirq.match_global_phase(z, b) np.testing.assert_allclose(z, z2, atol=1e-10) np.testing.assert_allclose(b, b2, atol=1e-10) z3, z4 = cirq.match_global_phase(z, z) np.testing.assert_allclose(z, z3, atol=1e-10) np.testing.assert_allclose(z, z4, atol=1e-10)
def test_match_global_phase_incompatible_shape(): a = np.array([1]) b = np.array([1, 2]) c, d = cirq.match_global_phase(a, b) assert c.shape == a.shape assert d.shape == b.shape assert c is not a assert d is not b assert np.allclose(c, a) assert np.allclose(d, b) a = np.array([]) b = np.array([]) c, d = cirq.match_global_phase(a, b) assert c.shape == a.shape assert d.shape == b.shape assert c is not a assert d is not b assert np.allclose(c, a) assert np.allclose(d, b)
def test_match_global_phase(): a = np.array([[5, 4], [3, -2]]) b = np.array([[0.000001, 0], [0, 1j]]) c, d = cirq.match_global_phase(a, b) np.testing.assert_allclose(c, -a, atol=1e-10) np.testing.assert_allclose(d, b * -1j, atol=1e-10)