Я пишу несколько тестов для своего кода на Python, в которых использую библиотеку pytest. Обычно для оценки результата используются операторы Assert. У меня есть код, в котором я определяю, является ли данный ввод числом с плавающей запятой или нет.
Код: Выделить всё
length_scale = input("Enter the value of length_scale variable: ")
sigma = input("Enter the value of sigma variable: ")
def test_float(num1=length_scale, num2=sigma):
assert float(num1)
assert float(num2)
Проблема в том, что когда кто-то вводит num1 или num2 как 0, тест считается неудачным. Однако float(0) равен 0.0 и не должен приводить к неудачному тесту. Я знаю, что это происходит потому, что float(0) равен 0.0, а Assert (0.0) оценивается как Assertion (False), что, в свою очередь, всегда возвращает AssertionError на Python. Могу ли я что-нибудь с этим поделать? Или как лучше всего решить эту проблему?
Чтобы запустить этот код:
- Убедитесь, что библиотека pytest установлен в вашей виртуальной среде.
- Сохраните этот код в файле (скажем, model_test.py). .
- В оболочке/терминале Windows Power сначала измените каталог, в котором находится этот файл, а затем запустите команду pytest -s
- Укажите значения для num1 и num2, как это было запрошено в Powershell после выполнения указанной выше команды.
Я использую Windows 11 в качестве операционной системы и VScode в качестве интегрированной среды разработки.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... s-an-error