def test_returns_right_direction_simple_case(self): expected = self.pos2 / np.sqrt(2.) force = n_body_physics.calculate_force(self.m1, self.m2, self.pos1, self.pos2, self.G) actual = force / np.linalg.norm(force) npt.assert_allclose(expected, actual)
def test_returns_results_of_proper_length(self): expected = self.pos1.size actual = len( n_body_physics.calculate_force(self.m1, self.m2, self.pos1, self.pos2, self.G)) self.assertEqual(expected, actual)
def test_returns_right_mag_simple_case(self): expected = self.G * self.m1 * self.m2 / 2. force = n_body_physics.calculate_force(self.m1, self.m2, self.pos1, self.pos2, self.G) actual = np.linalg.norm(force) npt.assert_array_less(0., actual) npt.assert_allclose(expected, actual)
def test_right_result(self): # Setup the particles for this particular case self.particles['masses'] = np.array([1., 2., 3.]) self.particles['positions'] = np.array([[0., 0.], [1., -1.], [1., 2.]]) # Calculate the expected force expected1 = n_body_physics.calculate_force( self.particles['masses'][0], self.particles['masses'][1], self.particles['positions'][0], self.particles['positions'][1], self.parameters['G']) expected2 = n_body_physics.calculate_force( self.particles['masses'][0], self.particles['masses'][2], self.particles['positions'][0], self.particles['positions'][2], self.parameters['G']) expected = expected1 + expected2 actual = self.fn(self.i, self.particles, self.parameters) npt.assert_allclose(expected, actual)
def test_runs(self): n_body_physics.calculate_force(self.m1, self.m2, self.pos1, self.pos2, self.G)