def test1(self):
        moonList = []
        moonA = Moon(-1, 0, 2)
        moonB = Moon(2, -10, -7)
        moonC = Moon(4, -8, 8)
        moonD = Moon(3, 5, -1)

        moonList.append(moonA)
        moonList.append(moonB)
        moonList.append(moonC)
        moonList.append(moonD)

        out = calctotEnergy(10, moonList.copy())
        self.assertEqual(179, out)
    def test2(self):
        moonList = []
        moonA = Moon(-8, -10, 0)
        moonB = Moon(5, 5, 10)
        moonC = Moon(2, -7, 3)
        moonD = Moon(9, -8, -3)

        moonList.append(moonA)
        moonList.append(moonB)
        moonList.append(moonC)
        moonList.append(moonD)

        out = calctotEnergy(100, moonList.copy())
        self.assertEqual(1940, out)
    def test3(self):
        moonList = []
        moonA = Moon(-15, 1, 4)
        moonB = Moon(1, -10, -8)
        moonC = Moon(-5, 4, 9)
        moonD = Moon(4, 6, -2)

        moonList.append(moonA)
        moonList.append(moonB)
        moonList.append(moonC)
        moonList.append(moonD)

        out = calctotEnergy(1000, moonList.copy())
        self.assertEqual(8625, out)
示例#4
0
def test_apply_velocity():
    # x=1, y=2, z=3 and a velocity of x=-2, y=0,z=3, then its new position would be x=-1, y=2, z=6
    moon = Moon("<x=1, y=2, z=3>")
    moon.velocity = (-2, 0, 3)
    expected = Moon("<x=-1, y=2, z=6>")
    expected.velocity = (-2, 0, 3)
    moon.apply_velocity()
    assert moon == expected
示例#5
0
def test_get_total_energy_2nd_example():
    expected = 1940
    start_input = [
        "<x=-8, y=-10, z=0>",
        "<x=5, y=5, z=10>",
        "<x=2, y=-7, z=3>",
        "<x=9, y=-8, z=-3>",
    ]
    moons = [Moon(row) for row in start_input]
    result = get_total_energy(moons, 100)
    assert result == expected
示例#6
0
def test_init_handles_string_input():
    line = "<x=15, y=-2, z=-6>"

    expected_x = 15
    expected_y = -2
    expected_z = -6
    result = Moon(line)

    assert result.x == expected_x
    assert result.y == expected_y
    assert result.z == expected_z
示例#7
0
def test_get_total_energy():
    expected = 179
    start_input = [
        "<x=-1, y=0, z=2>",
        "<x=2, y=-10, z=-7>",
        "<x=4, y=-8, z=8>",
        "<x=3, y=5, z=-1>",
    ]
    moons = [Moon(row) for row in start_input]
    result = get_total_energy(moons, 10)
    assert result == expected
示例#8
0
def test_get_steps_to_find_same_state():
    expected = 4686774924
    start_input = [
        "<x=-8, y=-10, z=0>",
        "<x=5, y=5, z=10>",
        "<x=2, y=-7, z=3>",
        "<x=9, y=-8, z=-3>",
    ]
    moons = [Moon(row) for row in start_input]

    result = get_steps_to_find_same_state(moons)
    assert result == expected
示例#9
0
 def setUp(self):
     self.moons1 = [
         Moon([-1, 0, 2]),
         Moon([2, -10, -7]),
         Moon([4, -8, 8]),
         Moon([3, 5, -1])
     ]
     self.result1 = [
         Moon([2, -1, 1]),
         Moon([3, -7, -4]),
         Moon([1, -7, 5]),
         Moon([2, 2, 0])
     ]
     self.result2 = [
         Moon([5, -3, -1]),
         Moon([1, -2, 2]),
         Moon([1, -4, -1]),
         Moon([1, -4, 2])
     ]
     self.result3 = [
         Moon([-1, -9, 2]),
         Moon([4, 1, 5]),
         Moon([2, 2, -4]),
         Moon([3, -7, -1])
     ]
     self.result4 = [
         Moon([2, 1, -3]),
         Moon([1, -8, 0]),
         Moon([3, -6, 1]),
         Moon([2, 0, 4])
     ]
     self.moons2 = separateAxis([
         Moon([-1, 0, 2]),
         Moon([2, -10, -7]),
         Moon([4, -8, 8]),
         Moon([3, 5, -1])
     ])