На старте поле floor у пассажиров вне лифта равно нулю (что вообще не очевидно откуда берётся), а from_floor равно единице. Если так и задумано, то в документации остаётся недосказанность.
Также у новых пассажиров, похоже, не проставляется elevator = -1 (вместо этого elevator = 0). Поэтому проверка has_elevator() на старте для каждого пассажира всегда false.
На старте поле floor у пассажиров вне лифта равно нулю (что вообще не очевидно откуда берётся), а from_floor равно единице. Если так и задумано, то в документации остаётся недосказанность. Также у новых пассажиров, похоже, не проставляется elevator = -1 (вместо этого elevator = 0). Поэтому проверка has_elevator() на старте для каждого пассажира всегда false.