exponenta event banner

matlab.unittest.constraints.IsSubsetOf класс

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.BooleanConstraint

Ограничение, определяющее фактический набор, является подмножеством ожидаемого набора

Строительство

IsSubsetOf(expSet) создает ограничение, указывающее, что фактический набор значений является подмножеством ожидаемого набора значений. Ограничение приводит к сбою квалификации для любого фактического набора значений, который не является подмножеством ожидаемого набора значений. Фактический набор значений считается подмножеством ожидаемого набора значений, если ismember(actSet,expSet) содержит все истинные значения, а фактические и ожидаемые значения удовлетворяют одному из следующих условий:

  • Фактические и ожидаемые значения относятся к одному классу.

  • Фактическое значение является объектом.

  • Ожидаемым значением является объект.

Входные аргументы

развернуть все

Ожидаемый набор значений для сравнения с фактическим набором значений. Тип входных данных зависит от значений теста.

Свойства

развернуть все

Суперсеть фактического набора значений. Тип данных свойства зависит от тестовых значений. Чтобы удовлетворить ограничению, фактический набор значений должен быть подмножеством Superset. Задать это свойство через конструктор через expSet входной аргумент.

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Создайте тестовый пример для интерактивного тестирования.

import matlab.unittest.TestCase;
import matlab.unittest.constraints.IsSubsetOf;

testCase = TestCase.forInteractiveUse;

Убедитесь, что фактический массив ячеек является подмножеством ожидаемого набора.

testCase.verifyThat({'c','b'}, IsSubsetOf({'a','b','c'}));
Interactive verification passed.
testCase.verifyThat({'a';'d'}, IsSubsetOf({'a','b','c'}));
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSubsetOf failed.
--> The actual value contains 1 element(s) not found in the expected superset:
    --> Element at index 2 not found in the expected superset:
                'd'

Actual Value (cell):
        'a'
        'd'
Expected Superset (cell):
        'a'    'b'    'c'

Убедитесь, что набор двойников является подмножеством ожидаемого набора.

testCase.assertThat([25;209], IsSubsetOf(magic(21)));
Interactive assertion passed.
testCase.assertThat(25:33, IsSubsetOf(30:40));
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsSubsetOf failed.
--> The actual value contains 5 element(s) not found in the expected superset:
    --> Element at index 1 not found in the expected superset:
                25
    --> Element at index 2 not found in the expected superset:
                26
    --> Element at index 3 not found in the expected superset:
                27
    --> Element at index 4 not found in the expected superset:
                28
    --> Element at index 5 not found in the expected superset:
                29

Actual Value (double):
        25    26    27    28    29    30    31    32    33
Expected Superset (double):
        30    31    32    33    34    35    36    37    38    39    40
Assertion failed.

Убедитесь, что строки таблицы являются подмножеством ожидаемой таблицы.

actT = table([3,1]',{'C';'A'},logical([0;1]));
expT = table([1:2:5]',{'A';'C';'E'},logical([1;0;0]));
testCase.verifyThat(actT, IsSubsetOf(expT));
Interactive verification passed.

Проверьте, что если фактический и ожидаемый наборы имеют различные типы, IsSubsetOf ограничение не удовлетворено.

testCase.assumeThat(single(1:3), IsSubsetOf(0:5));
Interactive assumption failed.

---------------------
Framework Diagnostic:
---------------------
IsSubsetOf failed.
--> Classes do not match.
    
    Actual Class:
        single
    Expected Class:
        double

Actual Value (single):
         1     2     3
Expected Superset (double):
         0     1     2     3     4     5
Assumption failed.
Представлен в R2016a