Main Content

matlab.unittest.constraints.AnyElementOf クラス

名前空間: matlab.unittest.constraints

配列のいずれかの要素が制約を満たしているかどうかをテスト

説明

matlab.unittest.constraints.AnyElementOf クラスは、配列の少なくとも 1 つの要素が特定の制約を満たしているかどうかをテストするために使用できる実際の値のプロキシを提供します。テストにプロキシを含めると、テスト フレームワークにおいて要素単位で制約が調べられます。

このクラスのインスタンスは、検定メソッド assertThatassumeThatfatalAssertThat、または verifyThat を使用して実行されるテストで使用できます。このクラスでは、与えられた実際の値は変更されません。制約の解析を実行するラッパーとしてのみ機能します。

作成

説明

p = matlab.unittest.constraints.AnyElementOf(actualValue) は、指定された配列のいずれかの要素が制約を満たしているかどうかをテストするためのプロキシを作成し、ActualValue プロパティを設定します。このプロキシを使用して制約についてテストすると、actualValue の少なくとも 1 つの要素が制約を満たしている場合にテストにパスします。

プロパティ

すべて展開する

制約に対してテストする実際の値。任意のデータ型の値として返されます。このプロパティの値は、プロキシの作成時に指定します。実際の値のクラスは、配列インデックス付けをサポートしていて、制約と互換性がなければなりません。

属性:

GetAccess
public
SetAccess
private

すべて折りたたむ

AnyElementOf クラスを使用して、配列の少なくとも 1 つの要素が制約を満たしているかどうかをテストします。

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.AnyElementOf
import matlab.unittest.constraints.IsFinite
import matlab.unittest.constraints.IsLessThan
import matlab.unittest.constraints.IsReal
import matlab.unittest.constraints.Matches

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

testCase = TestCase.forInteractiveUse;

ベクトル [NaN Inf 5] の少なくとも 1 つの要素が有限であることを検証します。

testCase.verifyThat(AnyElementOf([NaN Inf 5]),IsFinite)
Verification passed.

行列 [1 5; 0 6] の少なくとも 1 つの要素が負であるかどうかをテストします。すべての要素がゼロ以上であるため、テストは失敗します。

testCase.verifyThat(AnyElementOf([1 5; 0 6]),IsLessThan(0))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    All elements failed. The first element failed because:
    --> IsLessThan failed.
        --> The value must be less than the maximum value.
        
        Actual Value:
             1
        Maximum Value (Exclusive):
             0
    
    Actual Value Array:
         1     5
         0     6

ベクトル [0 4i] の少なくとも 1 つの要素が複素数であることを検証します。

testCase.verifyThat(AnyElementOf([0 4i]),~IsReal)
Verification passed.

ベクトル ["Coffee" "Tea" "Water"] の少なくとも 1 つの要素が大文字と小文字を区別せずに "tea" と一致するかどうかをテストします。テストはパスします。

testCase.verifyThat(AnyElementOf(["Coffee" "Tea" "Water"]), ...
    Matches("tea","IgnoringCase",true))
Verification passed.

ヒント

  • AnyElementOf を使用して、配列のいずれかの要素が制約を満たしているかどうかをチェックできます。ただし、任意の要素が条件を満たすかどうかをネイティブで検証する制約もいくつか存在します (HasInfHasNaN など)。このような状況では、AnyElementOf の使用は不要であり、使用すると検定パフォーマンスが低下します。

バージョン履歴

R2013a で導入