Main Content

matlab.unittest.constraints.LogicalComparator 클래스

네임스페이스: matlab.unittest.constraints

논리형 배열의 비교 연산자

설명

matlab.unittest.constraints.LogicalComparator 클래스는 논리형 배열의 비교 연산자를 제공합니다. 테스트에 이 비교 연산자를 사용하려면 LogicalComparator 인스턴스를 만들고 IsEqualTo 제약 조건 생성자의 Using 이름-값 인수 값으로 지정합니다.

생성

설명

예제

c = matlab.unittest.constraints.LogicalComparator는 논리형 배열의 비교 연산자를 만듭니다. 이 비교 연산자는 실제 값과 예상 값이 크기와 희소성이 동일한 논리형 배열이고 대응하는 요소들이 동일한 경우 충족됩니다.

예제

모두 축소

LogicalComparator 클래스로 실제 값과 예상 값을 비교합니다.

먼저 이 예제에서 사용되는 클래스를 가져옵니다.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsEqualTo
import matlab.unittest.constraints.LogicalComparator

대화형 방식 테스트를 위한 테스트 케이스를 생성합니다.

testCase = TestCase.forInteractiveUse;

LogicalComparator 인스턴스를 사용하여 실제 값과 예상 값을 비교합니다. 실제 값과 예상 값이 모두 true이기 때문에 테스트가 통과합니다.

testCase.verifyThat(true,IsEqualTo(true,"Using",LogicalComparator))
Verification passed.

falsetrue를 비교합니다. 테스트가 실패합니다.

testCase.verifyThat(false,IsEqualTo(true,"Using",LogicalComparator))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> LogicalComparator failed.
        --> The logical values are not equal.
        
        Actual Value:
          logical
        
           0
        Expected Value:
          logical
        
           1
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingLogicalComparatorExample.m (CompareValuesUsingLogicalComparatorExample) at 21

[true true]true를 비교합니다. 실제 값과 예상 값의 크기가 동일하지 않으므로 테스트가 실패합니다.

testCase.verifyThat([true true],IsEqualTo(true,"Using",LogicalComparator))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> LogicalComparator failed.
        --> Sizes do not match.
            
            Actual size:
                 1     2
            Expected size:
                 1     1
        
        Actual Value:
          1×2 logical array
        
           1   1
        Expected Value:
          logical
        
           1
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingLogicalComparatorExample.m (CompareValuesUsingLogicalComparatorExample) at 25

1true를 비교합니다. 실제 값이 double형이므로 테스트가 실패합니다.

testCase.verifyThat(1,IsEqualTo(true,"Using",LogicalComparator))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> LogicalComparator failed.
        --> Classes do not match.
            
            Actual Class:
                double
            Expected Class:
                logical
        
        Actual Value:
             1
        Expected Value:
          logical
        
           1
    ------------------
    Stack Information:
    ------------------
    In C:\work\CompareValuesUsingLogicalComparatorExample.m (CompareValuesUsingLogicalComparatorExample) at 29

  • 대부분의 경우에는 LogicalComparator 인스턴스를 사용할 필요가 없습니다. IsEqualTo 클래스는 논리형 배열을 포함하여 다양한 데이터형의 동일성을 테스트하는 제약 조건을 만듭니다.

    IsEqualTo 클래스가 수행하는 비교를 재정의해야 하는 경우 LogicalComparator 인스턴스를 사용하십시오. 예를 들어, 실제 값과 예상 값이 논리형이 아닌 경우 비교가 실패하도록 하려면 테스트에 LogicalComparator 인스턴스를 포함하십시오. LogicalComparator를 사용하여 셀형 배열, 구조체, 사전, 테이블 그리고 MATLAB® 객체 배열의 퍼블릭 속성에 포함된 값을 제한할 수도 있습니다. 다음 예제에서는 실제 값과 예상 값이 숫자형 배열이므로 MATLAB이 오류를 발생시킵니다.

    import matlab.unittest.TestCase
    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.LogicalComparator
    
    testCase = TestCase.forInteractiveUse;
    exp = magic(5); 
    act = exp;
    testCase.verifyThat(act,IsEqualTo(exp,"Using",LogicalComparator))
    

버전 내역

R2013a에 개발됨