Класс: sdo.requirements.RelationConstraint
Пакет: sdo.requirements
Оценка соответствия требованиям реляционных ограничений
evaluation = evalRequirement(requirement,variableData1,variableData2)
оценивает, основаны ли тестовые данные на двух переменных, evaluation = evalRequirement(requirement,variableData1,variableData2)variableData1 и variableData2, удовлетворяют реляционному ограничению, указанному в requirement объект.
requirement - Требование реляционного ограниченияsdo.requirements.RelationalConstraint объектТребование реляционного ограничения, указанное как sdo.requirements.RelationalConstraint объект. В объекте задается связь, необходимая между элементами двух переменных.
variableData1,variableData2 - Переменные данные, подлежащие оценкеПеременные данные из двух переменных, которые должны быть оценены, указанные как вещественные числовые векторы или массивы. Тестовые данные двух переменных должны иметь одинаковый размер.
evaluation - Оценка требований к реляционным ограничениямОценка требования реляционного ограничения, возвращаемого в виде вектора или массива того же размера, что и размеры тестовых данных variableData1. Обратите внимание, что размер variableData1 и variableData2 то же самое.
Каждый элемент в evaluation указывает на наличие соответствующих элементов в variableData1 и variableData2 удовлетворить это требование. Значение, возвращаемое для каждого элемента evaluation зависит от отношения, указанного в объекте требования:
requirement.Type | evaluation Значение при выполнении требования | evaluation Значение при нарушении требования |
|---|---|---|
'>' или '<' | Отрицательное число с величиной |v1-v2|, абсолютное значение разности между элементами v1 и v2 из variableData1 и variableData2. | Положительное число с величиной |v1-v2|, или 0 если элементы равны. |
'>=' или '<=' | Отрицательное число с величиной |v1-v2|, или 0 если элементы равны. | Положительное число с величиной |v1-v2|. |
'==' | 0 | Ненулевое число, которое является разницей между двумя элементами, v1-v2. |
'~=' | 0 | 1 |
Создайте объект требования и укажите, что элементы первой переменной должны быть больше элементов второй переменной.
Requirement = sdo.requirements.RelationalConstraint('Type','>');
Укажите тестовые данные для двух переменных. Тестовые данные для обеих переменных должны иметь одинаковый размер.
varData1 = [20 -3 7]; varData2 = [20 -1 6];
Оцените, удовлетворяют ли тестовые данные требованиям.
Evaluation = evalRequirement(Requirement,varData1,varData2)
Evaluation = 1×3
0.0000 2.0000 -1.0000
Evaluation всегда имеет тот же размер, что и тестовые данные. Если тип связи указан как «>», если требование удовлетворено ,evalRequirement возвращает отрицательное число с величиной, равной абсолютному значению разности между двумя элементами. Если требование нарушено, Evaluation - положительное число с величиной, равной абсолютному значению разности между двумя элементами, или 0 если элементы равны.
Первые элементы двух переменных равны, поэтому требование нарушается и Evaluation(1) является 0, разница между элементами.
Вторые элементы, -3 и -1, нарушают требование, приводя к положительному Evaluation(2) со значением = abs (-3- (-1)) = 2.
Третьи элементы, 7 и 6, удовлетворяют требованию, в результате чего получается отрицательное Evaluation(3) со значением = -abs (7-6) = -1.
Создайте объект требования и укажите, что элементы двух переменных должны быть равны друг другу.
Requirement = sdo.requirements.RelationalConstraint('Type','==');
Укажите тестовые данные для двух переменных.
varData1 = [20 15]; varData2 = [20 55];
Оцените, соответствуют ли тестовые данные требованиям.
Evaluation = evalRequirement(Requirement,varData1,varData2)
Evaluation = 1×2
0 -40
Evaluation имеет тот же размер, что и тестовые данные. Если тип отношения указан как «= =», если требование удовлетворено,evalRequirement прибыль 0, разница между элементами. Если требование нарушено, Evaluation - ненулевое число, равное разнице между двумя элементами.
Первые элементы двух переменных равны, поэтому требование удовлетворяется и Evaluation(1) является 0.
Вторые элементы, 15 и 55, нарушают требование, что приводит к ненулевому Evaluation(2).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.