Пример #1
0
def test_b_complete():
    child_graph = parse_input(extended_input)
    parent_graph = reverse_graph(child_graph)
    your_parents = list(get_indirect_orbits(parent_graph, "YOU"))
    assert your_parents == ['K', 'J', 'E', "D", 'C', 'B', "COM"]
    santa_parents = list(get_indirect_orbits(parent_graph, "SAN"))
    assert santa_parents == ["I", "D", 'C', 'B', "COM"]

    common_ancestor = get_common_ancestor(your_parents, santa_parents)
    assert common_ancestor == "D"

    assert your_parents.index(common_ancestor) == 3
    assert santa_parents.index(common_ancestor) == 1
Пример #2
0
def test_parse_input():
    correct = {
        'COM': {'B'},
        'B': {'C', 'G'},
        'C': {'D'},
        'D': {'I', 'E'},
        'E': {'F', 'J'},
        'G': {'H'},
        'J': {'K'},
        'K': {'L'}
    }

    assert parse_input(example_input) == correct
Пример #3
0
def test_complete():
    child_graph = parse_input(example_input)
    parent_graph = reverse_graph(child_graph)
    correct = {
        'B': 'COM',
        'C': 'B',
        'G': 'B',
        'D': 'C',
        'E': 'D',
        'I': 'D',
        'J': 'E',
        'F': 'E',
        'H': 'G',
        'K': 'J',
        'L': 'K'
    }
    assert parent_graph == correct

    assert list(get_indirect_orbits(parent_graph, "D")) == ['C', 'B', 'COM']
    assert list(get_indirect_orbits(
        parent_graph, "L")) == ['K', 'J', 'E', 'D', 'C', 'B', "COM"]
    assert list(get_indirect_orbits(parent_graph, "COM")) == []

    assert count_all_orbits(parent_graph) == 42
Пример #4
0
def test_calculate_distance_to_santa():
    child_graph = parse_input(extended_input)
    parent_graph = reverse_graph(child_graph)
    assert calculate_distance_to_santa(parent_graph) == 4
Пример #5
0
 def test_parse_input(self):
     with open("../input_files/day6_test_input.txt", "r") as f:
         parsed_input = parse_input(f)
     self.assertEqual(parsed_input, [["abc"], ["a", "b", "c"], ["ab", "ac"],
                                     ["a", "a", "a", "a"], ["b"]])
Пример #6
0
 def test_find_shared_answers(self):
     with open("../input_files/day6_test_input.txt", "r") as f:
         form_answers = parse_input(f)
         shared_answers = find_shared_answers(form_answers)
         answer_counts = count_answers(shared_answers)
         self.assertEqual(answer_counts, 6)