Beispiel #1
0
    def test_find_first_collision(self):
        # arrange
        mc = MineCart()
        mc.loadTracksAndCarts(testTrack)

        # act
        result = mc.findFirstCollision()

        # assert
        self.assertEqual(result, [[7, 3]])
Beispiel #2
0
    def test_load_track_and_carts_minecart(self):
        # arrange
        mc = MineCart()

        # act
        mc.loadTracksAndCarts(testTrack)

        # assert
        self.assertEqual(mc.numCarts(), 2)
        self.assertEqual(mc.track.numTrackParts(), 48)
Beispiel #3
0
    def test_find_last_cart(self):
        # arrange
        mc = MineCart()
        mc.loadTracksAndCarts(testTrack2)

        # act
        result = mc.findLastCart()

        # assert
        # self.assertEqual(result.print(),True)
        self.assertEqual([result.x, result.y], [6, 4])
Beispiel #4
0
    def test_move_bends_and_crossses(self):
        # arrange
        mc = MineCart()
        mc.loadTracksAndCarts(testTrack)

        # act
        mc.moveSteps(3)
        result = []
        posMoved = [[4, 1], [11, 4]]

        # assert
        for c in mc.carts:
            result.append([c.x, c.y])
        self.assertEqual(result, posMoved)
Beispiel #5
0
    def test_move_one_step_minecart(self):
        # arrange
        mc = MineCart()
        mc.loadTracksAndCarts(testTrack)
        # act
        mc.moveAllOneStep()
        result = []
        posMoved = [[3, 0], [9, 4]]

        # assert
        for c in mc.carts:
            result.append([c.x, c.y])

        self.assertEqual(result, posMoved)
Beispiel #6
0
# Advent of Code 2018: https://adventofcode.com/2018/day/13
#
# Main file

from AoC13_classes import MineCart

inputData = open('../data/input13.txt', 'r')
liveData = inputData.readlines()
mc = MineCart()
mc.loadTracksAndCarts(liveData)
t = mc.track.validateAllTracks()
if t != None:
    print(t.print())
# mc.track.print()

crash = mc.findFirstCollision()

print('\nPart 1: The point of the first crash is', crash)

mc.loadTracksAndCarts(liveData)
cart = mc.findLastCart()

print('\nPart 2: The location of the last cart is', cart.print())