Bus#can_fit_in_spot is semantically incorrect
From "Constraints and assumptions"
Bus can park if we have 5 consecutive "large" spots`
But then (class Bus...
):
def can_fit_in_spot(self, spot):
return True if spot.size == LARGE else False
Even if the current code somehow handles this properly (didn't check in depth, doubt) it's a bomb that can go off in the future.