def test_omega_equispaced(self, delta, size): """ checks omega of a ring network with equispaced thetas """ assume(not np.allclose(((size - 1) * delta / np.pi - 1) % 2, 0)) self.ring_net = nx.cycle_graph(size) nnodes = self.ring_net.number_of_nodes() thetas = np.arange(nnodes) * delta assert_almost_equal(_omega(self.ring_net, [np.arange(size)], thetas)[0], ((nnodes - 1) * delta + _mod_pi((1 - nnodes) * delta)) / 2 / np.pi)
def test_omega_equispaced(self, delta, size): """ checks omega of a ring network with equispaced thetas """ assume(not np.allclose(((size - 1) * delta / np.pi - 1) % 2, 0)) self.ring_net = nx.cycle_graph(size) nnodes = self.ring_net.number_of_nodes() thetas = np.arange(nnodes) * delta assert_almost_equal( _omega(self.ring_net, [np.arange(size)], thetas)[0], ((nnodes - 1) * delta + _mod_pi((1 - nnodes) * delta)) / 2 / np.pi)
def test_random_stableop_initguess(self, size): """this function should return angles with |successive difference| < pi/2 """ arr = _random_stableop_initguess(size) assert( (np.abs(_mod_pi(arr - np.roll(arr, 1))) <= np.pi / 2).all())
def test_mod_pi_odd_pi(self, m): """_mod_pi(odd_multiple_of_pi)==+/- 1""" assert_almost_equal( np.abs(_mod_pi((2 * m + 1) * np.pi)), np.pi)
def test_mod_pi_even_pi(self, m): """_mod_pi(even_multiple_of_pi)==0""" assert_almost_equal(_mod_pi(2 * m * np.pi), 0)
def test_mod_pi_sanity(self, x): assert(np.all(np.abs(_mod_pi(x) < np.pi)))
def test_mod_pi_range(self, x): assert(np.abs(_mod_pi(x) < np.pi))
def test_random_stableop_initguess(self, size): """this function should return angles with |successive difference| < pi/2 """ arr = _random_stableop_initguess(size) assert ((np.abs(_mod_pi(arr - np.roll(arr, 1))) <= np.pi / 2).all())
def test_mod_pi_odd_pi(self, m): """_mod_pi(odd_multiple_of_pi)==+/- 1""" assert_almost_equal(np.abs(_mod_pi((2 * m + 1) * np.pi)), np.pi)
def test_mod_pi_sanity(self, x): assert (np.all(np.abs(_mod_pi(x) < np.pi)))
def test_mod_pi_range(self, x): assert (np.abs(_mod_pi(x) < np.pi))