Main Content

matlab.unittest.constraints.IsSameSetAs 클래스

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

집합이 다른 집합에 포함된 것과 동일한 요소를 가지는지 테스트

설명

matlab.unittest.constraints.IsSameSetAs 클래스는 집합이 또 다른 집합과 동일한지 테스트하는 제약 조건을 제공합니다. 집합은 순서, 개수 또는 형태가 다른 동일한 요소를 가질 수 있습니다.

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

생성

설명

예제

c = matlab.unittest.constraints.IsSameSetAs(expected)는 집합이 expected 집합과 동일한 요소를 가지는지 테스트하기 위한 제약 조건을 만듭니다. 실제 집합 actual의 경우, ismember(actual,expected)ismember(expected,actual)이 둘 다 전부 true 값으로 구성된 배열을 반환하고 다음 조건 중 하나 이상을 충족하면 제약 조건이 충족됩니다.

  • actualexpected가 동일한 클래스입니다.

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

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

예제

c = matlab.unittest.constraints.IsSameSetAs(expected,RespectingCount=tf)는 요소 개수를 고려할지 여부도 지정합니다. tftrue인 경우, 실제 집합과 예상 집합에서 요소가 나타나는 횟수가 다르면 제약 조건이 충족되지 않습니다. (R2024a 이후)

입력 인수

모두 확장

예상 집합으로, ismember 함수에서 지원하는 임의의 데이터형 값으로 지정됩니다.

이 인수는 ExpectedSet 속성을 설정합니다.

예: {'a','b','c'}

예: [1 1 2 3 5 8]

R2024a 이후

실제 집합과 예상 집합을 비교할 때 요소 개수를 고려하기 위한 옵션으로, 숫자형 또는 논리값 0(false) 또는 1(true)로 지정됩니다. 이 값이 true인 경우 실제 집합에서 요소가 나타나는 횟수가 expected에서 요소가 나타나는 횟수와 다르면 제약 조건이 충족되지 않습니다. 기본적으로, 제약 조건은 요소가 나타나는 횟수를 무시합니다.

이 인수는 RespectCount 속성을 설정합니다.

속성

모두 확장

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

이 속성은 expected 입력 인수에 의해 설정됩니다.

특성:

GetAccess
public
SetAccess
private

R2024a 이후

실제 집합과 예상 집합을 비교할 때 요소 개수를 고려하기 위한 옵션으로, logical 데이터형의 0 또는 1로 반환됩니다. 기본적으로, 제약 조건은 요소가 나타나는 횟수를 무시합니다.

이 속성은 tf 입력 인수에 의해 설정됩니다.

특성:

GetAccess
public
SetAccess
private

예제

모두 축소

IsSameSetAs 제약 조건을 사용하여 집합을 비교합니다.

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSameSetAs

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

testCase = TestCase.forInteractiveUse;

{'a','b','c'}{'c','a','b'}와 동일한 집합인지 확인합니다. 실제 집합과 예상 집합의 요소 순서가 다르더라도 집합에 동일한 요소가 포함되어 있으므로 테스트가 성공합니다.

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

{'a','b','d'}를 예상 집합으로 사용하여 다시 테스트합니다. 집합에 서로 다른 요소가 포함되어 있으므로 테스트가 실패합니다.

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

{'a','b','c'}{'a'}와 동일한 집합이 아닌지 확인합니다.

testCase.verifyThat({'a','b','c'},~IsSameSetAs({'a'}))
Verification passed.

IsSameSetAs 제약 조건을 사용하여 숫자형 벡터 [1 2 3][3; 2; 1]을 비교합니다. 요소의 순서와 벡터의 형태가 다르더라도 집합에 동일한 요소가 포함되어 있으므로 테스트가 성공합니다.

testCase.verifyThat([1 2 3],IsSameSetAs([3; 2; 1]))
Verification passed.

[1 2 3][1 2 3 1 2]와 동일한 집합인지 여부를 테스트합니다. 집합이 동일한 요소를 가지므로 테스트가 성공합니다. 기본적으로, 제약 조건은 실제 집합과 예상 집합을 비교할 때 요소가 나타나는 횟수를 무시합니다.

testCase.verifyThat([1 2 3],IsSameSetAs([1 2 3 1 2]))
Verification passed.

요소 개수를 고려하여 실제 집합과 예상 집합을 보다 엄격하게 비교합니다. 실제 집합과 예상 집합에서 요소 12가 나타나는 횟수가 다르므로 테스트가 실패합니다.

testCase.verifyThat([1 2 3],IsSameSetAs([1 2 3 1 2], ...
    RespectingCount=true))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsSameSetAs failed.
    --> The actual value contains at least one element with a different count in the expected set.
        --> Actual value at index 1 does not respect the element count.
             Value:
                 1
             Actual Count: 1
             Expected Count: 2
    
    Actual Value:
         1     2     3
    Expected Set:
         1     2     3     1     2

버전 내역

R2018a에 개발됨

모두 확장