コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    def test_runs(self):

        n_body_physics.calculate_force(self.m1, self.m2, self.pos1, self.pos2,
                                       self.G)