이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

matlab.unittest.constraints.ObjectComparator 클래스

패키지: matlab.unittest.constraints

MATLAB 객체 또는 Java 객체용 비교 연산자

생성

ObjectComparator는 MATLAB® 객체 또는 Java® 객체에 대한 비교 연산자를 만듭니다. isequalntrue를 반환하면 비교 연산자를 충족합니다. 그러나, 예상 값의 클래스가 isequaln 메서드가 아니라 isequal 메서드를 정의하는 경우 ObjectComparatorisequaln 대신 이 메서드를 사용하여 비교합니다. 이때, 이 메서드가 가시적 메서드인지 숨겨진 메서드인지는 상관이 없습니다.

ObjectComparator('Within',tolObj)는 지정된 허용오차를 사용하여 비교 연산자를 만듭니다. ObjectComparatorisequaln 또는 isequal 호출이 true를 반환하는지 먼저 확인합니다. 이 확인이 실패하는 경우 ObjectComparator는 실제 값과 예상 값을 비교하여 클래스, 크기 및 희소성이 동일한지 확인합니다. 이러한 확인이 통과되는 경우 ObjectComparator는 제공된 허용오차 tolObj와 비교합니다. 이 허용오차 값은 실제 값과 예상 값의 클래스와 동일해야 합니다.

입력 인수

tolObj

Tolerance 인스턴스

속성

Tolerance

비교 연산자를 생성할 때 사용되는 특정 허용오차로, tolObj 입력 인수의 matlab.unittest.constraints.Tolerance 객체로 지정됩니다.

복사 의미 체계

값입니다. 값 클래스가 복사 작업에 미치는 영향에 대한 내용은 객체 복사 항목을 참조하십시오.

예제

모두 축소

작업 폴더의 파일 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에 개발됨