Например, у меня есть функция, которая генерирует процессуальное NOISEПроверьте параметры функции в Python
def procedural_noise(width, height, seed):
...
Все параметры этой функции должны быть положительными. Я полагаю, что мне нужно проверить это и выбросить исключение, если по параметрам неположительно. Это хороший (питонический подход)?
Предположим, что я прав. Каков наилучший способ проверить параметры?
Я могу написать шашки для каждого из параметров:
def procedural_noise(width, height, seed):
if width <= 0:
raise ValueError("Width should be positive")
if height <= 0:
raise ValueError("Height should be positive")
if seed <= 0:
raise ValueError("Seed should be positive")
...
Это должно быть ясно для программиста, когда он получит исключение, что он должен исправить, но это не так хорош в мое мнение.
Следующий код проще, но это слишком далеко от идеала:
def procedural_noise(width, height, seed):
if width <= 0 or height <= 0 or seed <= 0:
raise ValueError("All of the parameters should be positive")
...
Последний вопрос: что является лучшим способом для написания тестов с unittest
базы, которая проверяет типы параметров и их ценности?
Я могу написать следующую функцию в тестовом классе:
def test_positive(self):
self.assertRaises(ValueError, main.procedural_noise, -10, -10, 187)
Является ли это правильное решение?
UPD: Я upvoted всех ответов, потому что каждый из них полезной информации для меня, но я не могу выбрать лучшие ответы из них (я полагаю, что это справедливо, чтобы выбрать наиболее голосовал вопрос завтра)
Здесь что-то не так - ноль не положительный, но ошибки не возникло :) – Messa
Извините. Была ночь в моей стране :) –