Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

matlab.unittest.constraints.CellComparator 클래스

패키지: matlab.unittest.constraints

셀형 배열의 비교 연산자

설명

CellComparator는 셀형 배열을 비교합니다.

생성

CellComparator는 셀형 배열의 비교 연산자를 만듭니다.

CellComparator(compObj)는 셀형 배열에 포함된 값을 비교하는 데 사용되는 비교 연산자를 정의하는 비교 연산자 compObj를 나타냅니다. 기본적으로 셀 비교 연산자는 빈 셀형 배열만 지원합니다.

CellComparator(compObj,Name,Value)는 하나 이상의 Name,Value 쌍 인수가 추가 옵션으로 지정된 비교 연산자를 제공합니다.

CellComparator(Name,Value)는 하나 이상의 Name,Value 쌍 인수가 추가 옵션으로 지정된 빈 셀형 배열에 대한 비교 연산자를 제공합니다.

입력 인수

compObj

비교 연산자 객체

이름-값 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

Recursively

비교 연산자가 재귀적으로 동작하는지 여부를 나타내는 표시로, false 또는 true(logical 0 또는 1)로 지정됩니다. 이 값이 false인 경우에는 비교 연산자가 해당 데이터에 대해 재귀적으로 동작을 수행하지 않습니다.

이 값이 true인 경우 셀 비교 연산자가 지원하는 데이터형이 완전히 재귀적으로 지원됩니다. 예를 들면 다음과 같습니다.

comp1 = CellComparator(StringComparator)
comp2 = CellComparator(StringComparator,'Recursively', true)
comp1comp2는 string형 배열과 문자형 배열로 구성된 셀형 배열을 모두 지원합니다. 그러나 comp2만이, 재귀적으로 셀형 배열 또는 sting형을 요소로 포함하는 셀형 배열을 지원합니다.

디폴트 값: false

속성

Recursive

비교 연산자가 재귀적으로 동작을 수행하는지 여부를 나타내는 표시로, 'Recursively' 인수를 통해 이름-값 쌍으로 지정됩니다.

복사 의미 체계

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

예제

모두 축소

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

import matlab.unittest.TestCase;
import matlab.unittest.constraints.CellComparator
import matlab.unittest.constraints.StringComparator
import matlab.unittest.constraints.IsEqualTo

testCase = TestCase.forInteractiveUse;

CellComparator를 사용하여 두 셀형 배열이 서로 동일한지 테스트합니다.

actual = {'abc','def'};
expected = {'abc','def'};
testCase.verifyThat(actual, IsEqualTo(expected,...
    'Using', CellComparator(StringComparator)))
Interactive verification passed.

기본적으로 CellComparator는 빈 셀형 배열의 비교만 지원합니다. 따라서 StringComparator를 전달해야 합니다.

실제 값을 변경하고, 변경한 값을 예상 값과 비교합니다. 제약 조건을 충족하려면 대/소문자와 공백 문자를 무시하도록 비교 연산자를 구성합니다.

actual = {'ABC','D E F'};
testCase.verifyThat(actual, IsEqualTo(expected, 'Using', ...
    CellComparator(StringComparator), 'IgnoringWhitespace', ...
    true, 'IgnoringCase',true))
Interactive verification passed.

비교 연산자를 재귀적으로 동작하도록 생성하여 문자형 벡터로 구성된 중첩 셀형 배열을 테스트합니다.

actual = {'abc',{'def','ghi'}};
expected = {'abc',{'def','ghi'}};

testCase.verifyThat(actual, IsEqualTo(expected, 'Using', ...
    CellComparator(StringComparator, 'Recursively', true)))
Interactive verification passed.

  • 대부분의 경우에는 CellComparator 객체를 사용할 필요가 없습니다. IsEqualTo 클래스는 셀형 배열을 포함하여 여러 유형의 데이터 간의 동일성을 테스트하는 제약 조건을 만듭니다.

    IsEqualTo 클래스가 수행하는 비교를 재정의해야 하는 경우 CellComparator 객체를 사용하십시오. 예를 들어, 셀형 배열이 숫자가 아닌 값을 포함하는 경우 비교가 실패하도록 하려면 테스트에 CellComparator 객체를 포함하십시오. 다음 예제에서는 C1C2가 숫자가 아닌 값을 포함하므로 MATLAB®이 예외를 발생시킵니다.

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.CellComparator
    import matlab.unittest.constraints.NumericComparator
          
    C1 = {1,2,{3},'abc'}; 
    C2 = C1;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(C2,IsEqualTo(C1,'Using',CellComparator(NumericComparator)))
    

버전 내역

R2013a에 개발됨