Политика конечных скалярных входных данных¶
Статус¶
Реализованный скалярный контракт. Задача #62 определила политику, а задача #63 устранила неявные значения-сигналы и преобразование исключений в ноль в публичных скалярных операторах и встроенных вычислителях функций принадлежности.
Правило¶
Каждое проверяемое скалярное входное значение должно быть конечным; степень принадлежности
дополнительно должна находиться в замкнутом интервале [0, 1]. Логические значения
никогда не принимаются как скалярные числа. Исторический фасад принимает встроенные
int и float. Современный API использует более широкий контракт numbers.Real,
включая Fraction, и не преобразует допустимый ввод только ради проверки типа.
Его публичный псевдоним типа — MembershipScalar.
Недопустимый ввод включает NaN, положительную и отрицательную бесконечность,
True, False и нечисловые значения. Исторические операторы и вычислители функций
принадлежности выбрасывают ValueError с понятным диагностическим сообщением.
Современная скалярная проверка различает InvalidParameterTypeError (также TypeError)
и InvalidParameterError (также ValueError); конструкторы аналитических семейств
сохраняют документированную проверку параметров, совместимую с ValueError.
Недопустимый ввод никогда не приводит к NaN, бесконечности или неявному сигналу None.
Область действия¶
- FuzzyNOT, FuzzyNOTParabolic, FuzzyAND, FuzzyOR, TNorm и SCoNorm применяют правило для степени принадлежности.
- Вспомогательные функции композиции проверяют каждую переданную степень принадлежности до вычисления.
- Функции принадлежности принимают конечные вещественные координаты и конечные параметры, специфичные для семейства; ограничения области определяются отдельными контрактами функций.
- Политика не преобразует строки, логические значения,
Decimalили массивы. Прямой вызов пользовательского вычислителя сохраняет его собственное поведение;ScalarFuzzySet.Membershipпроверяет вход и возвращённую степень принадлежности. Исключения внутри пользовательских функций распространяются без изменений.
Проверяемые свидетельства¶
Тесты в tests/test_finite_number_policy.py проверяют границы публичных операторов
и функций принадлежности, явное поведение ошибок, крайние конечные координаты
и распространение внутренних программных ошибок. Проверки композиции находятся
в tests/test_composition_validation.py. Современные контракты, зарегистрированные
вещественные скаляры и категории ошибок покрыты в tests/test_public_typing_runtime.py,
tests/test_fuzzy_set_operations.py и tests/test_domain_exceptions.py.