예제 #1
0
파일: tests.py 프로젝트: stedevine/advent
    def test_turn_on(self):
        matrix = [[0 for x in range (5)] for x in range(5)]
        LightGrid.processInstruction("turn on 1,1 through 3,3",matrix)
        self.assertEqual(0, matrix[0][0])
        self.assertEqual(0, matrix[0][1])
        self.assertEqual(0, matrix[0][2])
        self.assertEqual(0, matrix[0][3])
        self.assertEqual(0, matrix[0][4])

        self.assertEqual(0, matrix[1][0])
        self.assertEqual(1, matrix[1][1])
        self.assertEqual(1, matrix[1][2])
        self.assertEqual(1, matrix[1][3])
        self.assertEqual(0, matrix[1][4])

        self.assertEqual(0, matrix[2][0])
        self.assertEqual(1, matrix[2][1])
        self.assertEqual(1, matrix[2][2])
        self.assertEqual(1, matrix[2][3])
        self.assertEqual(0, matrix[2][4])

        self.assertEqual(0, matrix[3][0])
        self.assertEqual(1, matrix[3][1])
        self.assertEqual(1, matrix[3][2])
        self.assertEqual(1, matrix[3][3])
        self.assertEqual(0, matrix[3][4])

        self.assertEqual(0, matrix[4][0])
        self.assertEqual(0, matrix[4][1])
        self.assertEqual(0, matrix[4][2])
        self.assertEqual(0, matrix[4][3])
        self.assertEqual(0, matrix[4][4])
예제 #2
0
파일: tests.py 프로젝트: stedevine/advent
 def test_turn_off(self):
     result = LightGrid.parseInstruction("turn off 464,858 through 833,915")
     self.assertEqual('turn off', result['operation'])
     self.assertEqual(464, result['xStart'])
     self.assertEqual(858, result['yStart'])
     self.assertEqual(833, result['xEnd'])
     self.assertEqual(915, result['yEnd'])
예제 #3
0
파일: tests.py 프로젝트: stedevine/advent
 def test_turn_on(self):
     result = LightGrid.parseInstruction("turn on 599,989 through 806,993")
     self.assertEqual('turn on', result['operation'])
     self.assertEqual(599, result['xStart'])
     self.assertEqual(989, result['yStart'])
     self.assertEqual(806, result['xEnd'])
     self.assertEqual(993, result['yEnd'])
예제 #4
0
파일: tests.py 프로젝트: stedevine/advent
 def test_toggle(self):
     result = LightGrid.parseInstruction("toggle 461,550 through 564,900")
     self.assertEqual('toggle', result['operation'])
     self.assertEqual(461, result['xStart'])
     self.assertEqual(550, result['yStart'])
     self.assertEqual(564, result['xEnd'])
     self.assertEqual(900, result['yEnd'])
예제 #5
0
    def processInstruction(line, matrix):
        instruction = LightGrid.parseInstruction(line)
        # assume an n x n matrix
        n = len(matrix[0])
        for i in range(instruction['xStart'], instruction['xEnd']+1):
            for j in range(instruction['yStart'], instruction['yEnd']+1):
                matrix[i][j] = BrightGrid.applySwitch(instruction['operation'], matrix[i][j])

        return matrix
예제 #6
0
파일: tests.py 프로젝트: stedevine/advent
 def test_toggle_off_on(self):
     self.assertEqual(1, LightGrid.applySwitch("toggle", 0))
예제 #7
0
파일: tests.py 프로젝트: stedevine/advent
 def test_turn_on(self):
     matrix = [[0 for x in range (5)] for x in range(5)]
     LightGrid.processInstruction("turn on 1,1 through 3,3",matrix)
     self.assertEqual(9, LightGrid.countOnLights(matrix))
예제 #8
0
파일: tests.py 프로젝트: stedevine/advent
 def test_turn_off(self):
     self.assertEqual(0, LightGrid.applySwitch("turn off", 0))
예제 #9
0
파일: tests.py 프로젝트: stedevine/advent
 def test_turn_on(self):
     self.assertEqual(1, LightGrid.applySwitch("turn on", 0))
예제 #10
0
파일: tests.py 프로젝트: stedevine/advent
 def test_toggle_on_off(self):
     self.assertEqual(0, LightGrid.applySwitch("toggle", 1))
예제 #11
0
파일: part1.py 프로젝트: stedevine/advent
# For a 1000 x 1000 grid of lights (which are initially off)
# process a list of instructions that will
# turn on, turn off or toggle a rectangular range of lights
# example: toggle 461,550 through 564,900
# return the final count of lights that are on
from lightGrid import LightGrid

matrix = [[0 for x in range (1000)] for x in range(1000)]
f = open('input.txt','r')
for line in f:
    LightGrid.processInstruction(line,matrix)

print(LightGrid.countOnLights(matrix))