Загрузка данных


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()