Main Content

matlab.unittest.constraints.AnyElementOf 类

命名空间: matlab.unittest.constraints

测试数组是否有任一元素满足约束

描述

matlab.unittest.constraints.AnyElementOf 类提供实际值的代理,因此您可以测试数组中是否有至少一个元素满足给定的约束。当您在测试中包含代理时,测试框架会逐元素对约束进行检查。

您可以在使用鉴定方法 assertThatassumeThatfatalAssertThatverifyThat 执行的测试中使用此类的实例。该类不修改提供的实际值。它仅充当执行约束分析的包装器。

创建对象

描述

示例

p = matlab.unittest.constraints.AnyElementOf(actualValue) 创建一个代理来测试指定数组是否有任一元素满足约束并设置 ActualValue 属性。当您使用此代理根据约束进行测试时,如果 actualValue 中有至少一个元素满足约束,则测试通过。

属性

全部展开

要根据约束进行测试的实际值,以任何数据类型的值的形式返回。在创建代理的过程中指定此属性的值。实际值的类必须支持数组索引并与约束兼容。

属性:

GetAccess
public
SetAccess
private

示例

全部折叠

使用 AnyElementOf 类测试数组中是否有至少一个元素满足约束。

首先,导入此示例中使用的类。

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] 中有至少一个元素是有限值。

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

测试矩阵 [1 5; 0 6] 中是否有至少一个元素是负值。测试失败,因为所有元素都大于或等于零。

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] 中有至少一个元素为复数。

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

测试向量 ["Coffee" "Tea" "Water"] 是否有至少一个元素与 "tea" 匹配(不考虑大小写)。测试通过。

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

提示

  • 您可以使用 AnyElementOf 来检查数组中是否有满足约束的元素。但是,存在一些约束,例如 HasInfHasNaN 本身会验证是否有任一元素满足某个条件。在这些情况下,无需使用 AnyElementOf,使用它会影响鉴定性能。

版本历史记录

在 R2013a 中推出