Main Content

matlab.unittest.constraints.LogicalComparator クラス

パッケージ: matlab.unittest.constraints

2 つの logical 値の比較演算子

構築

LogicalComparator は、2 つの logical 値の比較演算子を作成します。この比較演算子は、実際の値と期待された値が同じスパース性をもち、論理値が等しい場合に満たされます。

コピーのセマンティクス

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

すべて折りたたむ

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.LogicalComparator
import matlab.unittest.constraints.IsEqualTo

testCase = TestCase.forInteractiveUse;

true の値をテストします。

testCase.assertThat(true, IsEqualTo(true, ...
    'Using', LogicalComparator))
Interactive assertion passed.

true 値の配列をテストします。

testCase.assertThat([true true true], IsEqualTo(true, ...
    'Using', LogicalComparator))
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> LogicalComparator failed.
    --> The logical values are not equal

Actual Logical Value:
         1     1     1
Expected Logical Value:
         1
Assertion failed.

制約を満たすために、実際の値はスカラー logical でなければなりません。

1 の値を true と比較します。

testCase.verifyThat(1, IsEqualTo(true, 'Using', LogicalComparator))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> LogicalComparator failed.
    --> Class check failed.
        --> Classes do not match.
            
            Actual Class:
                double
            Expected Class:
                logical

Actual double:
         1
Expected logical:
         1

false の値を true と比較します。

testCase.assertThat(false, IsEqualTo(true, 'Using', LogicalComparator))
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> LogicalComparator failed.
    --> The logical values are not equal

Actual Logical Value:
         0
Expected Logical Value:
         1
Assertion failed.

ヒント

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

    LogicalComparator オブジェクトは、IsEqualTo クラスで実行される比較をオーバーライドする必要がある場合に使用します。たとえば、実際の値と期待される値が logical でない場合に比較を失敗とするには、LogicalComparator オブジェクトをテストに含めます。LogicalComparator を使用して、構造体、cell 配列、および table に格納される値を制限することもできます。この例では、実際の値と期待される値が数値配列であるため、MATLAB® から例外がスローされます。

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.LogicalComparator
          
    exp = magic(5); 
    act = exp;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(act,IsEqualTo(exp,'Using',LogicalComparator))
    

バージョン履歴

R2013a で導入