Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

matlab.unittest.constraints.IsSameSetAs 类

命名空间: matlab.unittest.constraints
超类: matlab.unittest.constraints.BooleanConstraint

测试集合与另一集合是否包含相同元素

构造

IsSameSetAs(expSet) 创建一个约束,指定集合中包含与另一个集合相同的元素。对于实际值集合与期望值集合不同的任何集合,此约束将导致验证失败。

集合可以具有不同顺序、不同数量或不同形状的相同元素。如果 ismember(actual,expected)ismember(expected,actual) 都返回包含所有 true 值的数组,并且至少满足下列条件之一,则实际值集合被视为与预期值集合相同:

  • 实际值集合与预期值集合属于同一类。

  • 实际值集合是一个对象。

  • 预期值集合是一个对象。

输入参数

全部展开

预期值集合与实际值集合进行比较。输入的类型取决于测试值。

属性

全部展开

此 属性 为只读。

预期值集合与实际值集合进行比较。属性的数据类型取决于测试值。此属性由构造函数通过 expSet 输入参数设置。

复制语义

值。要了解值类如何影响复制操作,请参阅复制对象

示例

全部折叠

创建一个供交互测试的测试用例。

import matlab.unittest.TestCase;
import matlab.unittest.constraints.IsSameSetAs;

testCase = TestCase.forInteractiveUse;

验证两个集合相同。

actSet = {'a' 'b' 'c'};
expSet = {'a' 'b' 'c'};

testCase.verifyThat(actSet,IsSameSetAs(expSet))
Interactive verification passed.

用不同的预期值集合重复该测试。测试失败,因为两个集合不包含相同的元素。

expSet = {'a' 'b' 'd'};

testCase.verifyThat(actSet,IsSameSetAs(expSet))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameSetAs failed.
--> The actual value contains 1 element(s) not found in the expected set:
    --> Element at index 3:
            {'c'}
--> The actual value is missing 1 element(s) found in the expected set:
    --> Element at index 3:
            {'d'}

Actual Value:
  1×3 cell array

    {'a'}    {'b'}    {'c'}
Expected Set:
  1×3 cell array

    {'a'}    {'b'}    {'d'}

验证两个集合相同。虽然元素的顺序和集合的形状不同,但这两个集合包含相同的元素。

actSet = [1 2 3];
expSet = [3;2;1];

testCase.verifyThat(actSet,IsSameSetAs(expSet))
Interactive verification passed.

验证两个集合相同。虽然 expSet 包含的元素不是唯一的,并且大小与 actSet 不匹配,但这两个集合具有相同的元素。

expSet = [1 2 3 1 2];

testCase.verifyThat(actSet,IsSameSetAs(expSet))
Interactive verification passed.

版本历史记录

在 R2018a 中推出