def get_billing_status(balance, days_in_month):
daily = 300 / days_in_month
if balance < 0: return "Приостановка (Сообщение 3)"
days_left = balance / daily
if days_left <= 2: return "Второе предупреждение (Сообщение 2)"
if days_left <= 5: return "Первое предупреждение (Сообщение 1)"
return "Активен (Нет сообщений)"
def run_task_2():
print("ЗАДАНИЕ 2: ТАРИФ СОТОВОГО ОПЕРАТОРА")
months = [("Февраль", 28), ("Апрель", 30), ("Январь", 31)]
for m_name, days in months:
daily = 300 / days
b2 = round(daily * 2, 2)
b5 = round(daily * 5, 2)
print(f"\nМесяц: {m_name} ({days} дн). Порог 2 дня: {b2}р, Порог 5 дней: {b5}р")
test_cases = [
(-1, "Приостановка (Сообщение 3)"),
(0, "Второе предупреждение (Сообщение 2)"),
(b2, "Второе предупреждение (Сообщение 2)"),
(round(b2 + 0.1, 2), "Первое предупреждение (Сообщение 1)"),
(b5, "Первое предупреждение (Сообщение 1)"),
(round(b5 + 0.1, 2), "Активен (Нет сообщений)")
]
for bal, exp in test_cases:
res = get_billing_status(bal, days)
print(f" Баланс: {bal:6} | Ожидалось: {exp:35} | {'OK' if res == exp else 'FAIL'}")
if __name__ == "__main__":
run_task_2()