Files
cobol-java-v3/black-box-data-create/rules/pgm_pattern/MERGE.md
T
2026-08-23 10:46:56 +08:00

78 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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开始。禁止添加本规则未定义的组,禁止缺组。