黑盒数据做成合并

This commit is contained in:
2026-08-23 10:46:56 +08:00
parent 0203ead96b
commit 4b8d214260
75 changed files with 9900 additions and 0 deletions
@@ -0,0 +1,77 @@
# MERGE(複数ファイル結合) データ生成規則
## 概要
複数の入力ファイルをキーでソート・マージし、統合された1つの出力ファイルを生成するプログラムのテストデータ。
本规则定义4组数据,覆盖全文件合并、键边界、重复键、未排序输入。
## 输入
- 詳細設計書のキー項目一覧(マージキー)
- 各入力ファイルのCOPYBOOKフィールド定義
- キー条件:正常系は昇順ソート済み入力、異常系(组4)は故意に乱序
## 生成データ組
| 组 | 用途 | 内容 |
|----|------|------|
| 1 | 全ファイルカバー | 全入力ファイルのデータが出力に反映されるデータ + 末尾多keyテスト |
| 2 | キー境界 | 同一キー値が複数ファイルに分散しているケース + 末尾多keyテスト |
| 3 | 重复键(MR-N003) | 同一キーが複数ファイルに同値で出現するケース(同キー順序保持確認)+ 末尾多keyテスト |
| 4 | 未排序输入(MR-A001) | 入力ファイルが昇順でないデータ(誤マージ確認) |
### 组1:全ファイルカバー(MR-N001)
R01: a001→a003→a004
R02: a001→a002→a003
マージ後キー順序(期待): a001→a002→a003→a004
### 组2:キー境界(MR-N002
R01: a001→a002→a003
R02: a002
同一キーa002が両ファイルに存在(境界でのマージ順序確認)。
### 组3:重复键(MR-N003
R01: a001→a002→a002→a003
R02: a002→a002→a004
同一キーa002が両ファイルに計4件(同キーの順序保持を確認)。
### 组4:未排序输入(MR-A001
R01: a001→a003→a002→a004a003先于a002,违反升序)
R02: a001→a002→a003→a004(正常升序)
说明:昇順前提が破られた入力でプログラムの誤マージ/未期待動作を確認する(不要求"正确合并")。
## 多keyテスト
キーが複数項目の場合、各組末尾に追加。各キー項目のみ異なるN件を生成し、正しいキーでマージされることを検証。
需要注意当key为n个项目组合而成时,需要在各組末尾追加n条数据。以基准数据的所有key为准,只有当前第n个key与基准不一致。保证key的比较没有问题。
例(n=3,基准 (a001, b001, c001)):
- 追加1: (a002, b001, c001) → 仅第1个key不同
- 追加2: (a001, b002, c001) → 仅第2个key不同
- 追加3: (a001, b001, c002) → 仅第3个key不同
n为实际解析出的key项目数(例中n=3仅为示意,追加条数必须等于实际key项目数)。键项目数n=1时不追加多key测试数据。追加的每条记录必须恰好只改变一个key项目,且不得与既有记录完全重复。
## データ生成手順
1. マージキー項目を特定(キー項目一覧から)
2. 各組のキー構成に従いレコードを生成(键值升序,组4除外)
3. 非キーフィールドはPIC定義に従い実在しそうな値を生成し、隣接レコード間で異なる値を設定
4. 組1〜組3末尾に多keyテストデータを追加
5. 生成後自检(MR-R001相当):マージ後件数 = 全入力ファイル件数の合計 を確認
## 出力
每组输出1个JSON文件:`{プログラムID}_g{groupId}.json`
组数约束:输出组数必须与本规则定义的4组一致(g1〜g4),组号连续从1开始。禁止添加本规则未定义的组,禁止缺组。