94400d50d4
作为子目录纳入系统,与核心测试管道协同 Co-Authored-By: Claude <noreply@anthropic.com>
1.4 KiB
1.4 KiB
20-matching-MN-to-MxN
电信业务场景
CDR详细清单M:N→M×N。多个合同×多个通话明细的笛卡尔积组合,输出完整的CDR详细清单(M×N件)。
M:N matching — Cartesian product output (M x N records per matching key).
Tests the scenario where both input files may contain duplicate keys and every combination of matching master and detail records must be output (the full Cartesian product).
Test data
| File | Records | Keys |
|---|---|---|
| master.dat | 5 | KEY00001 (x2), KEY00002 (x1), KEY00003 (x2) |
| detail.dat | 7 | KEY00001 (x3), KEY00003 (x2), KEY00004 (x2) |
- KEY00001: 2 masters x 3 details = 6 output records
- KEY00003: 2 masters x 2 details = 4 output records
- Total output: 10 records
- Unmatched: KEY00002 (master only), KEY00004 (detail only)
Algorithm
- Read both files synchronously (both assumed sorted by key).
- When keys match: read all master records for that key into a table, read all detail records for that key into a table, then write M x N output records covering every combination.
- Unmatched groups are skipped via the standard key-comparison logic.
Expected output
- output.dat: 10 records x 45 bytes = 450 bytes
- Program displays:
20-matching-MN-to-MxN: PASS - Script displays:
20-matching-MN-to-MxN: ALL TESTS PASSED