Есть объект, у которого мало свойств. Я написал функцию для тестовых случаев, которая проверяет, удовлетворены ли свойства или нет. Функция должна выдавать исключение, если свойство не выполняется.
Но я думаю, что есть лучшие способы написания этих тестов.
Подмножество свойства объекта выглядит следующим образом:
x ['polygon'] - это список из> = 3 целых (x, y) пар, представляющих
углы многоугольника по часовой стрелке или против часовой стрелки.
Текущая функция выглядит следующим образом:
def validate_object(x):
"""This function validates an object x that is supposed to represent an object
inside an image, and throws an exception on failure.
Specifically it is checking that:
x['polygon'] is a list of >= 3 integer (x,y) pairs representing the corners
of the polygon in clockwise or anticlockwise order.
"""
if type(x) != dict:
raise ValueError('dict type input required.')
if 'polygon' not in x:
raise ValueError('polygon object required.')
if not isinstance(x['polygon'], (list,)):
raise ValueError('list type polygon object required.')
points_list = x['polygon']
if len(points_list) < 3:
raise ValueError('More than two points required.')
for x, y in points_list:
if type(x) != int or type(y) != int:
raise ValueError('integer (x,y) pairs required.')
return
Было бы очень полезно, если бы кто-то мог предложить более эффективные способы написания этих тестовых случаев