def test_parse():
    d = Day4()
    input_1 = "[1518-11-01 00:25] wakes up"
    r = (datetime(year=1518, month=11, day=1, hour=0, minute=25), 'w')
    assert r == d.parse_input(input=input_1)
    input_2 = "[1518-11-01 00:05] falls asleep"
    r = (datetime(year=1518, month=11, day=1, hour=0, minute=5), 'f')
    assert r == d.parse_input(input=input_2)
    input_3 = "[1518-11-01 23:58] Guard #99 begins shift"
    r = (datetime(year=1518, month=11, day=1, hour=23, minute=58), '99')
    assert r == d.parse_input(input=input_3)
def test_part2():
    d = Day4()
    input_1 = """[1518-11-01 00:00] Guard #10 begins shift
[1518-11-01 00:05] falls asleep
[1518-11-01 00:25] wakes up
[1518-11-01 00:30] falls asleep
[1518-11-01 00:55] wakes up
[1518-11-01 23:58] Guard #99 begins shift
[1518-11-02 00:40] falls asleep
[1518-11-02 00:50] wakes up
[1518-11-03 00:05] Guard #10 begins shift
[1518-11-03 00:24] falls asleep
[1518-11-03 00:29] wakes up
[1518-11-04 00:02] Guard #99 begins shift
[1518-11-04 00:36] falls asleep
[1518-11-04 00:46] wakes up
[1518-11-05 00:03] Guard #99 begins shift
[1518-11-05 00:45] falls asleep
[1518-11-05 00:55] wakes up"""
    assert ('99', 45, 4455) == d.part2(input_1)
def tpuzzle2():
    return Day4(testCase2)
def tpuzzle():
    return Day4(testCase)