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


def calculate_credit(amount, years):
    if amount < 10000: return "Отказ (Сумма)"
    if amount > 1000000: return "Индивидуально (Сумма)"
    if years > 10: return "Индивидуально (Срок)"
    rate = 15
    if 100001 <= amount <= 500000: rate -= 1
    elif 500001 <= amount <= 1000000: rate -= 2
    if 3 < years <= 5: rate += 1
    elif 5 < years <= 10: rate += 2
    return rate

def run_task_1():
    print("ЗАДАНИЕ 1: КРЕДИТНЫЙ КАЛЬКУЛЯТОР")
    print("Классы Сумма: [0-9999], [10000-100000], [100001-500000], [500001-1000000], [>1000000]")
    print("Классы Срок: [0-3], [3.1-5], [5.1-10], [>10]")
    print("Тестовые данные (комбинации границ):")
    print("-" * 30)
    test_cases = [
        (9999, 1, "Отказ (Сумма)"),
        (10000, 3, 15),
        (100000, 3, 15),
        (100001, 3, 14),
        (500000, 5, 15),
        (500001, 5, 14),
        (1000000, 10, 15),
        (10000, 10, 17),
        (1000000, 3, 13),
        (1000001, 5, "Индивидуально (Сумма)"),
        (50000, 11, "Индивидуально (Срок)")
    ]
    for am, yr, exp in test_cases:
        res = calculate_credit(am, yr)
        print(f"Сумма: {am:7} | Срок: {yr:2} | Ожидалось: {exp:20} | Итог: {res:20} | {'OK' if res == exp else 'FAIL'}")

if __name__ == "__main__":
    run_task_1()




def calculate_osago(power, age, exp):
    base = 1980
    if power <= 50: k_p = 0.6
    elif power <= 70: k_p = 1.0
    elif power <= 100: k_p = 1.1
    elif power <= 120: k_p = 1.2
    elif power <= 150: k_p = 1.4
    else: k_p = 1.6
    if age <= 22: k_ae = 1.8 if exp <= 3 else 1.6
    else: k_ae = 1.7 if exp <= 3 else 1.0
    return round(base * k_p * k_ae, 2)

def run_task_3():
    print("ЗАДАНИЕ 3: ОСАГО (Тестирование всех классов мощности и стажа)")
    print("Классы Мощность: <=50, 51-70, 71-100, 101-120, 121-150, >150")
    print("Классы Возраст/Стаж: [<=22/<=3], [<=22/>3], [>22/<=3], [>22/>3]")
    print("-" * 30)
    test_cases = [
        (50, 22, 3, 2138.4),   # Мощность класс 1 + Возраст/Стаж класс 1
        (51, 22, 4, 3168.0),   # Мощность класс 2 + Возраст/Стаж класс 2
        (71, 23, 2, 3702.6),   # Мощность класс 3 + Возраст/Стаж класс 3
        (101, 25, 5, 2376.0),  # Мощность класс 4 + Возраст/Стаж класс 4
        (121, 20, 2, 4989.6),  # Мощность класс 5 + Возраст/Стаж класс 1
        (151, 35, 10, 3168.0), # Мощность класс 6 + Возраст/Стаж класс 4
        (70, 22, 3, 3564.0),   # Граница мощности 70
        (150, 22, 3, 4989.6),  # Граница мощности 150
    ]
    for p, a, e, expected in test_cases:
        res = calculate_osago(p, a, e)
        print(f"ЛС: {p:3} | Возраст: {a} | Стаж: {e} | Ожидалось: {expected:8} | Итог: {res:8} | {'OK' if res == expected else 'FAIL'}")

if __name__ == "__main__":
    run_task_3()