Main Content

matlab.unittest.constraints.TableComparator クラス

パッケージ: matlab.unittest.constraints

MATLAB table 用の比較演算子

構築

TableComparator は、table の各列で反復する MATLAB® table 用の比較演算子を作成します。既定では、TableComparator は空の table のみをサポートします。

TableComparator(compObj) は、table 列に含まれる値の比較に使用する比較演算子を定義する比較演算子 compObj を示します。

TableComparator(___,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加オプションをもつ比較演算子を提供します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

入力引数

すべて展開する

comparator オブジェクト。比較演算子として分類される matlab.unittest.constraints のインスタンスとして指定します。

例: CellComparator

例: NumericComparator

例: StringComparator

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

比較演算子が再帰的に演算するかどうかの設定。false または true (logical 0 または 1) として指定します。この値が false の場合、データで比較演算子が再帰的に機能しません。

値が true の場合、table の比較演算子がサポートするデータ型が再帰で完全にサポートされます。

データ型: logical

プロパティ

すべて展開する

比較演算子が再帰的に演算するかどうかを示すインジケーター。false または true (logical 0 または 1) として返されます。

データ型: logical

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

2 つの等価な table を作成します。

LastName = {'Williams';'Jones';'Brown'};
Age = [38;40;49];
Height = [64;67;64];
Weight = [131;133;119];
BloodPressure = [125 83; 117 75; 122 80];

T1 = table(Age,Height,Weight,BloodPressure, ...
    'RowNames',LastName);
T2 = T1;

table が等価であることをテストします。数値比較演算子を使用して、table の列をチェックします。

import matlab.unittest.constraints.TableComparator
import matlab.unittest.constraints.NumericComparator
import matlab.unittest.constraints.IsEqualTo
testCase.verifyThat(T1,IsEqualTo(T2, ...
    'Using',TableComparator(NumericComparator)))
Interactive verification passed.

最後の人の年齢を 50 歳に変更して、table を再び比較します。

T2.Age(end) = 50;
testCase.verifyThat(T1,IsEqualTo(T2, ...
    'Using',TableComparator(NumericComparator)))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> Path to failure: <Value>.Age
    --> NumericComparator failed.
        --> The values are not equal using "isequaln".
        --> Failure table:
            value =
            
              1×5 table array
            
                Index    Actual    Expected    Error    RelativeError
                _____    ______    ________    _____    _____________
            
                3        49        50          -1       -0.02        
        
        Actual double:
                38
                40
                49
        Expected double:
                38
                40
                50

Actual table:
    value =
    
      3×4 table array
    
                    Age    Height    Weight    BloodPressure
                    ___    ______    ______    _____________
    
        Williams    38     64        131       125     83   
        Jones       40     67        133       117     75   
        Brown       49     64        119       122     80   
Expected table:
    value =
    
      3×4 table array
    
                    Age    Height    Weight    BloodPressure
                    ___    ______    ______    _____________
    
        Williams    38     64        131       125     83   
        Jones       40     67        133       117     75   
        Brown       50     64        119       122     80   

ヒント

  • ほとんどの場合、TableComparator オブジェクトを使用する必要はありません。table を含むさまざまなタイプのデータ間の等価性をテストする制約が IsEqualTo クラスで作成されます。

    TableComparator オブジェクトは、IsEqualTo クラスで実行される比較をオーバーライドする必要がある場合に使用します。たとえば、table に数値以外の値が含まれる場合に比較を失敗とするには、TableComparator オブジェクトをテストに含めます。この例では、T1T2 に数値以外の値が格納されているため、MATLAB から例外がスローされます。

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.TableComparator
    import matlab.unittest.constraints.NumericComparator
          
    T1 = table([45;32;34],logical([1;0;0]),'VariableNames',{'Age','Vote'}); 
    T2 = T1;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(T2,IsEqualTo(T1,'Using',TableComparator(NumericComparator)))
    

バージョン履歴

R2017a で導入