matlab.unittest.constraints.ObjectComparator class

Пакет: matlab.unittest.constraints

Компаратор для объектов MATLAB или Java

Конструкция

ObjectComparator создает компаратор для объектов Java® или MATLAB®. Компаратору удовлетворяют если isequaln возвращает true. Однако, если класс ожидаемого значения задает isequal метод, или видимый или скрытый, но не isequaln метод, ObjectComparator использование, что метод для сравнения вместо isequaln.

ObjectComparator('Within',tolObj) создает компаратор с помощью заданного допуска. ObjectComparator первые проверки, что вызов isequaln или isequal возвращает true. Если проверка перестала работать, ObjectComparator проверки на эквивалентный класс, размер и разреженность фактических и ожидаемых значений. Если эти проверки передают, ObjectComparator сравнение делегатов с предоставленным допуском, tolObj. Значение этого допуска должно иметь тот же класс как фактические и ожидаемые значения.

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

tolObj

Tolerance экземпляр

Свойства

Tolerance

Определенный допуск используется в конструкции компаратора в виде matlab.unittest.constraints.Tolerance объект в tolObj входной параметр

Примеры

свернуть все

В файле, MyInt.m, в вашей рабочей папке создайте подкласс int8.

classdef MyInt < int8
    methods
        function i = MyInt(value)
            i@int8(value);
        end
    end
end

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.ObjectComparator
import matlab.unittest.constraints.IsEqualTo

testCase = TestCase.forInteractiveUse;

Используйте ObjectComparator протестировать это два экземпляра MyInt равны друг другу.

testCase.verifyThat(MyInt(10), ...
    IsEqualTo(MyInt(10), 'Using', ObjectComparator))
Interactive verification passed.

Протестируйте равенство двух экземпляров MyInt это создается с различными входными значениями.

testCase.verifyThat(MyInt(11), ...
    IsEqualTo(MyInt(10), 'Using', ObjectComparator))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> ObjectComparator failed.
    --> The objects are not equal using "isequal".

Actual Object:
      MyInt:
    
      int8 data:
       11
Expected Object:
      MyInt:
    
      int8 data:
       10

Один экземпляр MyInt имеет значение 11, и другой имеет значение 10.

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

import matlab.unittest.constraints.AbsoluteTolerance

testCase.verifyThat(MyInt(11), IsEqualTo(MyInt(10), ...
    'Using', ObjectComparator('Within', AbsoluteTolerance(MyInt(1)))))
Interactive verification passed.
Введенный в R2013a