Example #1
0
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)
Example #2
0
)
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"]))

## -- end of tests