feat: add benchmark-programs — 58 telecom COBOL test programs

作为子目录纳入系统,与核心测试管道协同

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
NB-076
2026-06-25 09:53:21 +08:00
parent 50f9f0f52f
commit 94400d50d4
278 changed files with 44125 additions and 0 deletions
@@ -0,0 +1,75 @@
# 27-validation-halfwidth: Half-Width Character Validation
## 电信业务场景
电话号码格式校验。检查电话号码字段是否全为半角数字(0-9),检测全角字符混入和长度超出。
## Description
Reads FILE-IN and validates that each character in IN-TEXT is
half-width (ASCII printable: X'20'-X'7E'). Validates length
constraints: 20 or fewer half-width characters pass; more than 20
is an error. Full-width characters or control characters cause
rejection.
## Validation Rules
| Rule | Result | Error Code |
|-----------------------------------|--------------|------------|
| All characters X'20'-X'7E', <= 20 | PASS to GOOD | - |
| Contains non-half-width character | FAIL to BAD | 01 |
| All half-width but >20 chars | FAIL to BAD | 02 |
## Record Layout
### Input / Good Output (30 bytes)
| Field | Type | Length | Description |
|--------|----------|--------|-------------|
| TEXT | PIC X | 30 | Text to validate |
### Bad Output (32 bytes)
| Field | Type | Length | Description |
|----------|----------|--------|----------------|
| TEXT | PIC X | 30 | Original text |
| ERR-CODE | PIC X | 2 | Error code |
## Files
| File | Purpose |
|-------------------------------|--------------------------------|
| main-27-validation-halfwidth.cbl | Main COBOL program |
| data-gen.sh | Generate test data |
| run.sh | Compile, run, verify |
| README.md | This file |
## Tests
| Test Case | Expected |
|----------------------------------|-----------------------------|
| 4 half-width chars | PASS to GOOD |
| 10 half-width chars | PASS to GOOD |
| 20 half-width chars (boundary) | PASS to GOOD |
| 25 half-width chars (too long) | FAIL err 02 |
| Mixed with full-width | FAIL err 01 |
| Full-width only | FAIL err 01 |
| Half-width + control char | FAIL err 01 |
| All spaces (empty) | PASS to GOOD |
## Usage
```bash
cd 27-validation-halfwidth
bash data-gen.sh
bash run.sh
```
## Expected Behavior
- Half-width check uses byte comparison against X'20'-X'7E'.
- Full-width UTF-8 multi-byte characters have bytes > X'7E'
and are detected as non-half-width.
- Length is computed by trimming trailing spaces.
- Only records meeting both conditions (half-width + <= 20 chars)
are written to GOOD output.