Skip to main content

Expect_Equals_ico.png 等しいことを検証

等しいことを検証ツールを使用して、2つのデータストリームが同一かどうかをテストし、同一でない場合はエラーを報告します。

このツールは、検出された最初の4つのエラーのみを報告し、それ以上のエラーについては総数を表示します。

等しいことを検証ツールで確認できること:

  • 異なるフィールド名や順序。

  • 異なるフィールドタイプ。

  • 数値、文字列、または日付/時刻の値の不一致。

  • Blob値または空間値の不一致。

  • 異なる行数(予想よりも多いまたは少ない)。

ツールコンポーネント

等しいことを検証ツールには、アンカーが2つあります。

  • 予想されるアンカー - 予想するデータをこのアンカーに接続します。

  • 実際のアンカー - 検証するデータをこのアンカーに接続します。

2つのアンカーの有意性は、ツールが提供するメッセージにのみ関係します。ツールからの報告は以下のようになります。

Error: Expect Equal (1): Record 1 field Field1: Expected "a", Actual "A"

予想 される値は、単に予想されるアンカーに渡された値です。

ツールの設定

このツールには設定オプションがありません。

ツールの例

以下のワークフローには、すべての例が示されています。

Expect_Equals_ex1.png

1. 例 - フィールドが異なる

予想の入力と実際の入力で使用可能なフィールドが異なる場合は、メッセージが表示されます。

  • Error: Expect Equal (1): Expected field was missing: F1

  • Error: Expect Equal (1): Actual field was not expected: Field1

2つのメッセージにより、間違ったフィールド名を予想していたのか、データが間違ったフィールド名を生成したのかを判断できます。

他のAlteryxツールの場合と同様に、フィールド名の比較で大文字と小文字は区別されないため、「F1」は「f1」と一致します。

2. 例 - フィールドの順序が異なる

2つのストリームのフィールド名が同じでも順序が異なる場合、ツールですべてのフィールドのサブセットが表示されるため違いを確認できます。

Error: Expect Equal (1): Different field order. Expected: ..., b, c; Actual: ..., c, b

フィールドの順序が異なる場合、データは位置ではなくフィールド名で比較されます。したがって、両方のストリームのフィールドBに値2がある場合、ツールは追加のエラーを報告しません。ただし、予想されるフィールドBの値が2で、実際のフィールドBの値が3の場合は、追加エラーが報告されます。

3. 例 - フィールドの型が異なる

型の照合は広範囲に行われます。すべての整数型は他のすべての整数型と一致し、浮動小数点数型は倍精度小数点数型と一致し、すべての文字列型は他のすべての文字列型と一致します。固定小数点型は固定小数点型にのみ一致し、値の比較の精度を維持します。型のサイズは、型の照合の対象外です。

  • 浮動小数点数型を予想したところに整数型を取得した場合、型チェックでエラーが報告され、値は比較されません。

  • 型が異なる場合、エラーメッセージは次のようになります。

    Error: Expect Equal (1): Field a is expected to be type Double, but is actually type V_String 2147483647

    型の説明には正確な型名とサイズ情報が含まれていますが、サイズの違いによって不一致が発生することはありません。

4. 例 - データ値が異なる

  • 整数値は精度を損なうことなく比較されます。そのため、9,223,372,036,854,775, 807 (64ビット整数の最大値)と9,223,372,036,854,775, 806 の違いを検出できます。

    Error: Expect Equal (1): Record 1 field F1: Expected 9223372036854775807, Actual 9223372036854775806

  • 浮動小数点数と倍精度浮動小数点数は完全一致のみを対象に比較され、「ほぼ等しい」というオプションはありません。

    たとえば、5124095575370702.5という値は51240955753701.6と一致します。倍精度がこれらの値を区別するのに十分な精度ではないため、これらの値は同一のものとしてコンピュータに保存されます。数字が一致しない場合は、固定の17桁で表示されます。

    Error: Expect Equal (1): Record 1 field D: Expected 5124095575370702.00000000000000000, Actual 5124095575370701.00000000000000000

  • 文字列型は大文字と小文字を区別して比較されます。予想される値と一致しない場合は値が表示されます。その際、実際の文字列は、最初の差分の前後関係を短く表示し、後は短縮される場合があります。

    Error: Expect Equal (1): Record 1 field a: Expected "...ar like the present peri...", Actual "...ar like the Present Peri..."

  • 日付/時刻の値は、最も精度が高い方の値の完全な精度で比較され、値が異なる場合は以下のように値が表示されます。

    Error: Expect Equal (1): Record 1 field c: Expected 2024-03-14 11:07:00, Actual 2024-03-14 11:07:00.001

    Error: Expect Equal (1): Record 1 field c: Expected 11:07:00.002, Actual 11:07:00.001

  • Blobフィールドが異なる場合、ツールはそれらが異なることを報告します。

    Error: Expect Equal (1): Record 1 field a: Expected Blob does not match Actual

  • 空間オブジェクトはGeoJSONに変換され、文字列のように比較されます。

    Error: Expect Equal (1): Record 1 field d: Expected "...inates":[1,2] }", Actual "...inates":[1,2.000001]}"

5. 例 - 行数が異なる

ツールは以下を報告します。

Error: Expect Equal (1): Actual had fewer records than expected: 2

Error: Expect Equal (1): Actual had more records than expected: 3

報告される数字(この場合、2または3)は、予想された数とは異なる数です。

6. 例 - メッセージが多い

このツールは、最初の4つのメッセージだけを報告します。メッセージが4つ以上ある場合、次のように表示されます。

Error: Expect Equal (1): Total errors: 6 (suppressed messages beyond limit 4)