Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / ЛР1_тесты

.docx
Скачиваний:
0
Добавлен:
21.02.2024
Размер:
217.7 Кб
Скачать

from real_roots import real_roots

TEST_DATA = [ #кортеж со словарями входных и выходных значений

    {"input": [2, 5, -7], "output": [1.0, -3.5],},

    {"input": [16, -8, 1], "output": 0.25,},

    {"input": [9, -6, 2], "output": "Корней нет",},

    {"input": [0, 4, -8], "output": 2.0,},

    {"input": ["fwfsd", 4, -8], "output": "Некорректный ввод: a = fwfsd, b = 4, c = -8",},

    {"input": [0, 0, 0], "output": "Деление на ноль",},

    {"input": [1, "inf", 2], "output": "Некорректный ввод: a = 1.0, b = inf, c = 2.0",},

    {"input": [1, 2, "nan"], "output": "Некорректный ввод: a = 1.0, b = 2.0, c = nan",},

    {"input": [1, 1.7e308, 1], "output": "Слишком большое число",},

]

def run_tests(test_data):

    for data in test_data:

        a, b, c = data["input"]

        output_data = data["output"]

        try:

            output = real_roots(a, b, c) #выполняем медот из real_roots

            assert output == output_data #сравниваем значения из теста с полученными результатами

            print(

                f'\U00002705 Тест с входными параметрами a = {a}, b = {b}, c = {c}, output = {output_data} успешно пройден,'

            )

        except RuntimeError as e: #если возникло исключение, проверям. такое оно, как мы ждем или нет:

            assert str(e) == output_data

            print(

                f'\U00002705 Тест с входными параметрами a = {a}, b = {b}, c = {c}, output = {output_data} успешно пройден'

            )

        except ZeroDivisionError as e: #проверка на деление на ноль

            assert str(e) == output_data

            print(

                f'\U00002705 Тест с входными параметрами a = {a}, b = {b}, c = {c}, output = {output_data} успешно пройден'

            )

        except OverflowError as e: #проверка на большие числа

            assert str(e) == output_data

            print(

                f'\U00002705 Тест с входными параметрами a = {a}, b = {b}, c = {c}, output = {output_data} успешно пройден'

            )

        except Exception as e: #и если не такое, переходим сюда

            print(

                f'\U0000274C Тест с входными параметрами a = {a}, b = {b}, c = {c}, output = {output_data} не пройден'

            )

if __name__ == "__main__": #"Область видимости"

    run_tests(TEST_DATA)

Соседние файлы в папке Лабы