Skip to main content

Expect_Equals_ico.png 预期相等工具

使用“预期相等”测试两个数据流是否相等,如果不相等则报告错误。

该工具仅报告发现的前四个错误,并提供其他错误的计数。

“预期相等”可以判断:

  • 字段名称是否不同或顺序错乱。

  • 字段类型是否不同。

  • 数字、字符串或日期时间值是否不匹配。

  • Blob 或空间值是否不匹配。

  • 行数是否不同(大于或小于预期值)。

工具组件

“预期相等”具有 2 个锚点:

  • 预期锚点 - 将预期的数据连接到此锚点。

  • 实际锚点 - 将要验证的数据连接到此锚点。

两个锚点的重要性仅与该工具提供的消息相关。该工具可能会报告:

错误:预期相等 (1):记录 1 字段 Field1:预期值为“a”,实际值为“A”

预期 的值就是在预期锚点上出现的值。

配置工具

此工具没有配置选项。

工具示例

示例都可以通过以下工作流进行演示:

Expect_Equals_ex1.png

1. 示例 - 字段不同

如果预期输入和实际输入中的可用字段不同,您将收到消息

  • 错误:预期相等 (1):缺少预期字段:F1

  • 错误:预期相等 (1):实际字段不是预期值:Field1

通过查看这两条消息,您可以确定是预期的字段名称错误,还是数据产生了错误的字段名称。

请注意,与 Alteryx 工具中一样,字段名称比较不区分大小写,因此“F1”与“f1”匹配。

2. 示例 - 字段的顺序不同

如果两个流具有相同的字段名称,但它们的顺序不同,则该工具将显示所有字段的子集以显示差异:

错误:预期相等 (1):字段顺序不同。预期值:..., b, c;实际值:..., c, b

如果字段以不同的顺序出现,则数据将按字段名称(而不是位置)进行比较。因此,如果两个流中的字段 B 的值均为 2,该工具将不会报告一个额外错误。但是,如果预期字段 B 的值为 2,而实际字段 B 的值为 3,则会报告额外的错误。

3. 示例 - 字段的类型不同

类型匹配范围很广。所有整数类型与所有其他整数类型匹配,浮点数与双精度浮点数匹配,所有字符串类型与所有其他字符串类型匹配。固定小数只与固定小数匹配,以保持值比较的精度。类型的大小不计入类型匹配中。

  • 预计获得浮点数类型但实际获取整数类型会在类型检查中报告错误,并且不会对值进行比较。

  • 当类型不同时,错误消息为

    错误:预期相等 (1):字段 a 预期为双精度浮点数类型,但实际类型为 V_String 2147483647

    请注意,类型描述包括确切的类型名称和一些大小信息,但大小不会导致不匹配。

4. 示例 - 数据值不同

  • 比较整数值不会损失精度。它可以检测出 9,223,372,036,854,775, 807 (可能的最大 64 位整数)和 9,223,372,036,854,775, 806 之间的差异。

    错误:预期相等 (1):记录 1 字段 F1:预期值为 9223372036854775807,实际值为 9223372036854775806

  • 将比较浮点数和双精度浮点数是否“完全等于”(没有“几乎相等”这一选项)。

    例如,值 5124095575370702.5 与 5124095575370701.6 匹配,因为双精度浮点数的表示法没有足够的精度来区分这些值,所以它们在计算机中的存储方式相同。当数字不匹配时,会以固定的 17 位数字输出。

    错误:预期相等 (1):记录 1 字段 D:预期值为 5124095575370702.00000000000000000,实际值为 5124095575370701.00000000000000000

  • 字符串类型比较时区分大小写。如果这些值与预期不匹配,则会显示这些值,实际字符串可能会被缩短以仅显示第一个差异之前和之后的一些上下文:

    错误:预期相等 (1):记录 1 字段 a:预期值为“...ar like the present peri...”,实际值为“...ar like the Present Peri...”

  • 将日期/时间值与两个值中最精确的值的全精度进行比较,如果值不同,则会显示这些值:

    错误:预期相等 (1):记录 1 字段 c:预期值为 2024-03-14 11:07:00,实际值为 2024-03-14 11:07:00.001

    错误:预期相等 (1):记录 1 字段 c:预期值为 1:07:00.002,实际值为 11:07:00.001

  • 如果 Blob 字段不同,该工具只会报告它们不同:

    错误:预期相等 (1):记录 1 字段 a:预期 Blob 与实际值不匹配

  • 空间对象会被转换为 GeoJson 并像字符串一样进行比较:

    错误:预期相等 (1):记录 1 字段 d:预期值为“...inates":[1,2] }”,实际值“...inates":[1,2.000001]}”

5. 示例 - 行数不同

该工具可以报告:

错误:预期相等 (1):实际记录数少于预期值:2

错误:预期相等 (1):实际记录数多于预期值:3

报告的数字(此处为 2 或 3)是与预期值不同的数字。

6. 示例 - 消息太多

该工具仅报告前 4 条消息。如果还有更多,它将得出结论:

错误:预期相等 (1):总错误数:6(未显示的消息数超出了限值 4)