ARGS_COUNT = 0 if len(sys.argv) < ARGS_COUNT: print("Missing arguments") sys.exit(1) from task import parseLine, findOptimum, buildStructure, addAmbivalentPerson ## result = 0 seating = [] with open("in.txt") as file: for line in file: seating = seating + [parseLine(line)] # part 1 structure = buildStructure(seating) (result, permutation) = findOptimum(structure) print("The result of 'part 1' is '\033[1;33m{}\033[1;m' (seating is {})".format(result, permutation)) # part 2 structure = addAmbivalentPerson(buildStructure(seating)) (result, permutation) = findOptimum(structure) print("The result of 'part 2' is '\033[1;33m{}\033[1;m' (seating is {})".format(result, permutation)) ## sys.exit(0)
"generate permutations", generatePermutations(["a", "b", "c"]), [["a", "b", "c"], ["a", "c", "b"], ["b", "a", "c"], ["b", "c", "a"], ["c", "a", "b"], ["c", "b", "a"]], ) t.test( "build data structure", structure, { "A": {"B": -53, "C": 12, "D": 0}, "B": {"A": 43, "C": 6, "D": 9}, "C": {"A": -3, "B": -1, "D": -14}, "D": {"A": -100, "B": 23, "C": 14}, }, ) t.test("count happiness", countHappiness(["A", "B", "C", "D"], structure), -53 + 43 + 0 - 100 + 6 - 1 - 14 + 14) t.test("find optimum", findOptimum(structure), (9 + 0 + 32 - 10, ["A", "C", "D", "B"])) # part 2 structure = addAmbivalentPerson(structure, "X") t.test( "build data structure", structure, { "A": {"B": -53, "C": 12, "D": 0, "X": 0}, "B": {"A": 43, "C": 6, "D": 9, "X": 0}, "C": {"A": -3, "B": -1, "D": -14, "X": 0}, "D": {"A": -100, "B": 23, "C": 14, "X": 0}, "X": {"A": 0, "B": 0, "C": 0, "D": 0}, }, ) t.test("find optimum", findOptimum(structure), (0 + 0 + 0 + 32 + 5 + 9, ["A", "X", "D", "B", "C"]))