주요 콘텐츠

matlab.unittest.constraints.IsSubsetOf 클래스

네임스페이스: matlab.unittest.constraints
슈퍼클래스: matlab.unittest.constraints.BooleanConstraint

집합이 지정된 집합의 부분 집합인지 테스트

설명

matlab.unittest.constraints.IsSubsetOf 클래스는 집합이 또 다른 집합의 부분 집합인지 테스트하는 제약 조건을 제공합니다.

제약 조건은 ismember 함수를 사용하여 집합을 비교합니다. 따라서 제약 조건과 함께 사용하는 실제 값과 예상 값이 ismember 함수에서 지원되어야 합니다.

생성

설명

c = matlab.unittest.constraints.IsSubsetOf(superset)은 집합이 지정된 상위 집합의 부분 집합인지 테스트하는 제약 조건을 만들고 Superset 속성을 설정합니다. 실제 집합 actual의 경우, ismember(actual,superset)이 전부 true 값으로 구성된 배열을 반환하고 다음 조건 중 하나 이상을 충족하면 제약 조건이 충족됩니다.

  • actualsuperset이 동일한 클래스입니다.

  • isobject(actual)true를 반환합니다.

  • isobject(superset)true를 반환합니다.

예제

속성

모두 확장

예상 상위 집합으로, ismember 함수에서 지원하는 임의의 데이터형 값으로 반환됩니다. 제약 조건을 생성할 때 이 속성의 값을 지정합니다.

특성:

GetAccess
public
SetAccess
private

예제

모두 축소

IsSubsetOf 제약 조건을 사용하여 부분 집합인지 테스트합니다.

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSubsetOf

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

testCase = TestCase.forInteractiveUse;

{'a';'b'}{'c','a','b'}의 부분 집합인지 테스트합니다. 실제 집합의 요소가 예상 상위 집합에 있고 두 집합이 동일한 클래스이므로 테스트가 성공합니다.

testCase.verifyThat({'a';'b'},IsSubsetOf({'c','a','b'}))
Verification passed.

{'a';'d'}를 실제 집합으로 사용하여 다시 테스트합니다. 실제 집합의 요소가 예상 상위 집합에 없으므로 테스트가 실패합니다.

testCase.verifyThat({'a';'d'},IsSubsetOf({'c','a','b'}))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSubsetOf failed.
    --> The actual value contains 1 element(s) not found in the expected superset:
        --> Element at index 2:
                {'d'}
    
    Actual Value:
      2×1 cell array
    
        {'a'}
        {'d'}
    Expected Superset:
      1×3 cell array
    
        {'c'}    {'a'}    {'b'}

숫자형 벡터 [1 2 3]이 숫자형 행렬 eye(3)의 부분 집합이 아닌지 확인합니다.

testCase.verifyThat([1 2 3],~IsSubsetOf(eye(3)))
Verification passed.

숫자형 벡터 single(1:3)이 숫자형 벡터 0:5의 부분 집합인지 테스트합니다. 실제 값과 예상 값의 유형이 다르므로 테스트가 실패합니다.

testCase.verifyThat(single(1:3),IsSubsetOf(0:5))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSubsetOf failed.
    --> Classes do not match.
        
        Actual Class:
            single
        Expected Class:
            double
    
    Actual Value:
      1×3 single row vector
    
         1     2     3
    Expected Superset:
         0     1     2     3     4     5

IsSubsetOf 제약 조건을 사용하여 두 개의 테이블을 비교합니다. 실제 테이블의 행이 예상 테이블에 있으므로 이 테스트는 성공합니다.

actual = table([3,1]',{'C';'A'},logical([0;1]));
expected = table([1:2:5]',{'A';'C';'E'},logical([1;0;0]));
testCase.verifyThat(actual,IsSubsetOf(expected))
Verification passed.

버전 내역

R2016a에 개발됨