import unittest import os from collections import Counter class Day4(unittest.TestCase): def check_num(self, num): numarr = [int(d) for d in (str(num))] for p in range(1,6): if numarr[p-1] > numarr[p]: return False 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 = [int(d) for d in (str(num))] for p in range(1,6): if numarr[p-1] > numarr[p]: return False c = Counter(str(num)) return len({k: v for k, v in c.items() if v == 2}) > 0 def test_day4a(self): counter = 0 for num in range(168630, 718099): if self.check_num(num) == True: counter += 1 self.assertEqual(counter, 1686) def test_day4b(self): counter = 0 for num in range(168630,718099): if self.check_num_grp(num) == True: counter += 1 self.assertEqual(counter, 1145) if __name__ == "__main__": unittest.main()