diff --git a/scripts/py_matter_yamltests/matter_yamltests/constraints.py b/scripts/py_matter_yamltests/matter_yamltests/constraints.py index 7c3e2f99cc5dfd..b92e42ec7140d2 100644 --- a/scripts/py_matter_yamltests/matter_yamltests/constraints.py +++ b/scripts/py_matter_yamltests/matter_yamltests/constraints.py @@ -360,6 +360,10 @@ def check_response(self, value, value_type_name) -> bool: success = value >= -36028797018963967 and value <= 36028797018963967 elif self._type == 'nullable_int64s' and type(value) is int: success = value >= -9223372036854775807 and value <= 9223372036854775807 + elif self._type == 'single' and type(value) is float: + success = value >= 1.175494351E-38 and value <= 3.402823466E+38 + elif self._type == 'double' and type(value) is float: + success = value >= 2.2250738585072014E-308 and value <= 1.7976931348623158E+308 else: success = self._type == value_type_name return success @@ -502,6 +506,12 @@ def get_reason(self, value, value_type_name) -> str: if value >= -9223372036854775807 and value <= 9223372036854775807: types.append('nullable_int64s') + if alue >= 1.175494351E-38 and value <= 3.402823466E+38: + types.append('single') + + if value >= 2.2250738585072014E-308 and value <= 1.7976931348623158E+308: + types.append('double') + types.sort(key=lambda input_type: [int(c) if c.isdigit( ) else c for c in re.split('([0-9]+)', input_type)]) @@ -509,7 +519,7 @@ def get_reason(self, value, value_type_name) -> str: types.append(value_type_name) if len(types) == 1: - reason = f'The response type {types[0]}) does not match the constraint.' + reason = f'The response type ({types[0]}) does not match the constraint.' else: reason = f'The response value ({value}) is of one of those types: {types}.' return reason