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]))