Main Content

matlab.unittest.constraints.IsSupersetOf クラス

名前空間: matlab.unittest.constraints
スーパークラス: matlab.unittest.constraints.BooleanConstraint

セットについて、指定されたセットの上位集合であるかどうかをテスト

説明

matlab.unittest.constraints.IsSupersetOf クラスは、セットが別のセットの上位集合であるかどうかをテストするための制約を提供します。

この制約では、関数 ismember を使用してセットを比較します。そのため、制約で使用する実際の値と期待される値は関数 ismember でサポートされていなければなりません。

作成

説明

c = matlab.unittest.constraints.IsSupersetOf(subset) は、セットについて、指定されたサブセットの上位集合であるかどうかをテストするための制約を作成し、Subset プロパティを設定します。実際のセット actual について、制約が満たされるのは ismember(subset,actual) からすべての値が true である配列が返され、かつ次の条件の少なくとも 1 つが満たされるときです。

  • actualsubset のクラスが同じである。

  • isobject(actual)true を返す。

  • isobject(subset)true を返す。

プロパティ

すべて展開する

期待されるサブセット。関数 ismember でサポートされる任意のデータ型の値として返されます。このプロパティの値は、制約の作成時に指定します。

属性:

GetAccess
public
SetAccess
private

すべて折りたたむ

IsSupersetOf 制約を使用して、上位集合についてテストします。

最初に、この例で使用するクラスをインポートします。

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSupersetOf

対話型テスト用にテスト ケースを作成します。

testCase = TestCase.forInteractiveUse;

{'c','a','b'}{'a';'b'} の上位集合であるかどうかをテストします。期待されるサブセットの要素が実際のセットに出現し、2 つのセットのクラスが同じであるため、テストはパスします。

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

{'c','a','d'} を実際のセットとして、テストをもう一度実行します。期待されるサブセットの要素が実際のセットに出現しないため、テストは失敗します。

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

数値行列 eye(3) が数値ベクトル [1 2 3] の上位集合でないことを検証します。

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

数値ベクトル 0:5 が数値ベクトル single(1:3) の上位集合であるかどうかをテストします。実際の値と期待される値の型が異なるため、テストは失敗します。

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

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

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

バージョン履歴

R2016a で導入