Main Content

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 である配列が返され、かつ次の条件の少なくとも 1 つが満たされるときです。

  • 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'} のサブセットであるかどうかをテストします。実際のセットの要素が期待される上位集合に出現し、2 つのセットのクラスが同じであるため、テストはパスします。

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 制約を使用して、2 つの table を比較します。実際の table の行が期待される table に出現するため、このテストはパスします。

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 で導入