Реализуйте класс MovingAvg, который хранит значения метрики и возвращает среднее за последние 5 минут.
Метод now() уже реализован внешней системой и возвращает текущее время в секундах. В решении можно вызывать self.now(), но писать реальную работу с часами не нужно.
class MovingAvg:
def record(self, value: int) -> None:
...
def mean(self) -> float:
...
def now(self) -> int:
...
record(value) записывает значение в текущий момент времени. mean() возвращает среднее всех записанных значений за последние 300 секунд. Если актуальных значений нет, верните 0.0.
В тренажере тесты вызывают helper moving_average_results(events), который уже есть в starter code и подменяет now() тестовым временем.
self = [["record",0,10],["record",10,20],["mean",10]][15]Среднее двух свежих значений
self = [["record",0,10],["record",301,20],["mean",301]][20]Старое значение выпало из окна
self = [["mean",100]][0]Нет актуальных значений