matlab.unittest.constraints.TableComparator class

Пакет: matlab.unittest.constraints

Компаратор для таблиц MATLAB

Конструкция

TableComparator создает компаратор для таблиц MATLAB®, который выполняет итерации по каждому столбцу таблицы. По умолчанию, TableComparator поддержки только пустые таблицы.

TableComparator(compObj) указывает на компаратор, compObj, это задает компаратор, используемый, чтобы сравнить значения, содержавшиеся в столбцах таблицы.

TableComparator(___,Name,Value) предоставляет компаратору дополнительные опции, заданные одним или несколькими Name,Value парные аргументы. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.

Входные параметры

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

Объект Comparator в виде экземпляра matlab.unittest.constraints это классифицируется как компаратор.

Пример: CellComparator

Пример: NumericComparator

Пример: StringComparator

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Установка для того, действует ли компаратор рекурсивно в виде false или true логический0 или 1). Когда этим значением является false, компаратор не работает рекурсивно со своими данными.

Когда значением является true, типы данных, что табличные поддержки компаратора полностью поддерживаются в рекурсии.

Типы данных: логический

Свойства

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

Индикатор того, действует ли компаратор рекурсивно, возвратился как false или true логический0 или 1).

Типы данных: логический

Примеры

свернуть все

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

Составьте две равных таблицы.

LastName = {'Williams';'Jones';'Brown'};
Age = [38;40;49];
Height = [64;67;64];
Weight = [131;133;119];
BloodPressure = [125 83; 117 75; 122 80];

T1 = table(Age,Height,Weight,BloodPressure, ...
    'RowNames',LastName);
T2 = T1;

Протестируйте это, таблицы равны. Проверяйте столбцы таблиц с числовым компаратором.

import matlab.unittest.constraints.TableComparator
import matlab.unittest.constraints.NumericComparator
import matlab.unittest.constraints.IsEqualTo
testCase.verifyThat(T1,IsEqualTo(T2, ...
    'Using',TableComparator(NumericComparator)))
Interactive verification passed.

Измените возраст последнего человека к 50 и сравните таблицы снова.

T2.Age(end) = 50;
testCase.verifyThat(T1,IsEqualTo(T2, ...
    'Using',TableComparator(NumericComparator)))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> Path to failure: <Value>.Age
    --> NumericComparator failed.
        --> The values are not equal using "isequaln".
        --> Failure table:
            value =
            
              1×5 table array
            
                Index    Actual    Expected    Error    RelativeError
                _____    ______    ________    _____    _____________
            
                3        49        50          -1       -0.02        
        
        Actual double:
                38
                40
                49
        Expected double:
                38
                40
                50

Actual table:
    value =
    
      3×4 table array
    
                    Age    Height    Weight    BloodPressure
                    ___    ______    ______    _____________
    
        Williams    38     64        131       125     83   
        Jones       40     67        133       117     75   
        Brown       49     64        119       122     80   
Expected table:
    value =
    
      3×4 table array
    
                    Age    Height    Weight    BloodPressure
                    ___    ______    ______    _____________
    
        Williams    38     64        131       125     83   
        Jones       40     67        133       117     75   
        Brown       50     64        119       122     80   

Советы

  • В большинстве случаев вы не обязаны использовать TableComparator объект. IsEqualTo класс создает ограничение, чтобы протестировать на равенство между данными различных типов, включая таблицы.

    Используйте TableComparator возразите, когда необходимо будет заменить сравнение, выполняемое IsEqualTo класс. Например, если вы хотите, чтобы сравнение перестало работать, когда таблицы включают нечисловые значения, включают TableComparator возразите в своем тесте. В этом примере MATLAB выдает исключение потому что T1 и T2 содержите нечисловые значения.

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.TableComparator
    import matlab.unittest.constraints.NumericComparator
          
    T1 = table([45;32;34],logical([1;0;0]),'VariableNames',{'Age','Vote'}); 
    T2 = T1;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(T2,IsEqualTo(T1,'Using',TableComparator(NumericComparator)))
    

Смотрите также

Введенный в R2017a