Code beautification

master
Arne Wischer 6 years ago
parent 8ffb078c2e
commit b00ec53621
  1. 21
      days/day1.py
  2. 47
      days/day4.py

@ -6,27 +6,22 @@ class Day1(unittest.TestCase):
def calc_fuel(self, mass):
fuel = mass // 3 - 2
if(fuel > 0):
return fuel + self.calc_fuel(fuel)
else:
return 0
return fuel + self.calc_fuel(fuel) if fuel > 0 else 0
def test_day1a(self):
fuel = 0
with open(self.inputfile) as fp:
value = fp.readline()
while value:
fuel += int(value) // 3 - 2
value = fp.readline()
for _, line in enumerate(fp):
fuel += int(line) // 3 - 2
self.assertEqual(fuel, 3402609)
def test_day1b(self):
with open(self.inputfile) as fp:
line = fp.readline()
sumfuel = 0
while line:
sumfuel += self.calc_fuel(int(line))
line = fp.readline()
for _, line in enumerate(fp):
sumfuel = 0
while line:
sumfuel += self.calc_fuel(int(line))
line = fp.readline()
self.assertEqual(sumfuel, 5101025)
if __name__ == "__main__":

@ -1,50 +1,23 @@
import unittest
import os
from collections import Counter
class Day4(unittest.TestCase):
def num_to_array(self, num):
arr = []
while num != 0:
arr.append(num % 10)
num = num //10
arr.reverse()
return arr
def check_num(self, num):
numarr = self.num_to_array(num)
last = numarr[0]
adj = False
numarr = [int(d) for d in (str(num))]
for p in range(1,6):
val = numarr[p]
if last > val:
if numarr[p-1] > numarr[p]:
return False
if last == val:
adj = True
last = val
return adj
c = Counter(str(num))
return len({k: v for k, v in c.items() if v >= 2}) > 0
def check_num_grp(self, num):
numarr = self.num_to_array(num)
last = numarr[0]
adj = False
candidate = False
finished = False
numarr = [int(d) for d in (str(num))]
for p in range(1,6):
val = numarr[p]
if last > val:
if numarr[p-1] > numarr[p]:
return False
if last == val:
if adj:
candidate = False
else:
candidate = True
adj = True
else:
adj = False
if candidate:
finished = True
last = val
return finished or candidate
c = Counter(str(num))
return len({k: v for k, v in c.items() if v == 2}) > 0
def test_day4a(self):
counter = 0
@ -54,8 +27,6 @@ class Day4(unittest.TestCase):
self.assertEqual(counter, 1686)
def test_day4b(self):
self.assertTrue(self.check_num_grp(112233))
self.assertFalse(self.check_num_grp(123444))
counter = 0
for num in range(168630,718099):
if self.check_num_grp(num) == True:

Loading…
Cancel
Save