Код Middle Ожидания и флаки обновлено

Симуляция поллинга с таймаутом

Условие

Напишите poll(observations, timeout, interval), моделирующую ожидание условия.

Попытка номер i (с нуля) происходит в момент i * interval и выполняется, только пока это время не больше timeout. Значение условия на попытке i это observations[i], а если список короче, последнее значение списка (список не пуст).

Вернуть словарь {"ok": bool, "attempts": число попыток, "elapsed": время последней попытки}. При первом истинном значении ожидание заканчивается успехом.

Примеры

poll([false, false, true], 10, 2) // {"ok":true,"attempts":3,"elapsed":4}
poll([true], 10, 2) // {"ok":true,"attempts":1,"elapsed":0}
poll([false], 10, 2) // {"ok":false,"attempts":6,"elapsed":10}

Как подойти

Подсказки: 2
  1. Первая попытка в момент 0.
  2. Граница включительная: <=.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.