def test_move_particle(self): """ Make sure the particle always stays within the bound of the height and width of the simulation. Assumes a 1000 by 1000 simulation size. """ test_height = 1000 test_width = 1000 a = Particle(1, -100, 0) a.x_velocity = 900 a.y_velocity = 480 for _ in range(10000000): a.move_particle() self.assertGreater(test_width, a.x_position) self.assertLessEqual(0, a.x_position) self.assertGreaterEqual(test_height, a.y_position) self.assertLessEqual(0, a.y_position)
def test_move_particle(self): """ Make sure the particle always stays within the bound of the height and width of the simulation. Assumes a 1000 by 1000 simulation size. """ test_height = 1000 test_width = 1000 a = Particle(1, -100, 0) a.x_velocity = 900 a.y_velocity = 480 # Include a fudge factor of 0.001 for _ in range(10000000): a.move_particle() self.assertGreater(test_width, a.x_position) self.assertLessEqual(0, a.x_position) self.assertGreaterEqual(test_height, a.y_position) self.assertLessEqual(0, a.y_position)
def test_euclidean_distance(self): a = Particle(1, 10, 10) b = Particle(1, 10, 20) self.assertEqual(a.euclidean_distance_to(b), (10, 0, 10)) a = Particle(1, 0, 0) b = Particle(1, 0, 0) self.assertEqual(a.euclidean_distance_to(b), (0, 0, 0)) a = Particle(1, -10, 20) b = Particle(1, 10, 20) self.assertEqual(a.euclidean_distance_to(b), (20, 20, 0)) a = Particle(1, -18, 24) b = Particle(1, 7, 32) self.assertEqual(a.euclidean_distance_to(b), (26.248809496813376, 25, 8)) a = Particle(1, -100, 0) b = Particle(1, -0.01, 0) self.assertEqual(a.euclidean_distance_to(b), (99.99, 99.99, 0))
def test_populate_neighbors(self): """ Assumes an interaction radius of 100 """ a = Particle(1, -100, 0) b = Particle(1, 100, 1) c = Particle(1,250,100) Particle.static_particles = [a,b,c] self.assertEqual(Particle.static_particles, [a,b,c]) b.populate_neighbors() self.assertEqual(b.neighbors, []) b = Particle(1, -0.01, 0) Particle.static_particles = [a,b,c] self.assertEqual(Particle.static_particles, [a,b,c]) a.populate_neighbors() b.populate_neighbors() dist = a.euclidean_distance_to(b) self.assertEqual(len(b.neighbors), 1) self.assertEqual(b.neighbors[0], (a, dist[1], dist[2]))