feat: add benchmark-programs — 58 telecom COBOL test programs
作为子目录纳入系统,与核心测试管道协同 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. Level88Edge.
|
||||
*> ============================================================
|
||||
*> 88-level 条件名境界テスト
|
||||
*> 88-level THRU(範囲), 複数VALUE, 複合条件
|
||||
*> Coverage: B-N004 拡張, 境界条件
|
||||
*> ============================================================
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
*> T1: 88-level with THRU (範囲指定)
|
||||
01 WS-SCORE PIC 9(3).
|
||||
88 WS-GRADE-A VALUE 90 THRU 100.
|
||||
88 WS-GRADE-B VALUE 75 THRU 89.
|
||||
88 WS-GRADE-C VALUE 60 THRU 74.
|
||||
88 WS-GRADE-D VALUE 0 THRU 59.
|
||||
|
||||
*> T2: 88-level with 複数値
|
||||
01 WS-DAY PIC X(3).
|
||||
88 WS-WEEKDAY VALUE 'MON', 'TUE', 'WED', 'THU', 'FRI'.
|
||||
88 WS-WEEKEND VALUE 'SAT', 'SUN'.
|
||||
|
||||
*> T3: 88-level with 複数英字名
|
||||
01 WS-PLAN PIC X(3).
|
||||
88 WS-PLAN-PREPAID VALUE 'P01', 'P02'.
|
||||
88 WS-PLAN-POSTPAID VALUE 'P03', 'P04'.
|
||||
88 WS-PLAN-VIP VALUE 'V01', 'V02'.
|
||||
|
||||
*> T4: 88-level with 極端な範囲(境界値)
|
||||
01 WS-PCT PIC 9(3).
|
||||
88 WS-PCT-LOW VALUE 0 THRU 10.
|
||||
88 WS-PCT-MED VALUE 11 THRU 50.
|
||||
88 WS-PCT-HIGH VALUE 51 THRU 100.
|
||||
88 WS-PCT-OVR VALUE 101 THRU 999.
|
||||
|
||||
*> T5: 88-level with SPACE/ZERO/LOW/HIGH
|
||||
01 WS-FLAG PIC X(1).
|
||||
88 WS-FLAG-YES VALUE 'Y'.
|
||||
88 WS-FLAG-NO VALUE 'N'.
|
||||
88 WS-FLAG-EMPTY VALUE SPACE.
|
||||
|
||||
01 WS-PASS PIC 9(2) VALUE 0.
|
||||
01 WS-FAIL PIC 9(2) VALUE 0.
|
||||
01 WS-TC PIC 9(2) VALUE 0.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
DISPLAY "88-LEVEL-EDGE: 88-level THRU/boundary tests"
|
||||
|
||||
*> T1: THRU境界値テスト
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 90 TO WS-SCORE.
|
||||
IF WS-GRADE-A
|
||||
DISPLAY "T1-A: 90→GRADE-A PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 100 TO WS-SCORE.
|
||||
IF WS-GRADE-A
|
||||
DISPLAY "T1-B: 100→GRADE-A (upper bound) PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 89 TO WS-SCORE.
|
||||
IF WS-GRADE-B
|
||||
DISPLAY "T1-C: 89→GRADE-B (boundary) PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 75 TO WS-SCORE.
|
||||
IF WS-GRADE-B
|
||||
DISPLAY "T1-D: 75→GRADE-B (lower bound) PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
*> T2: 複数値OR条件
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 'MON' TO WS-DAY.
|
||||
IF WS-WEEKDAY
|
||||
DISPLAY "T2-A: MON→WEEKDAY PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 'SAT' TO WS-DAY.
|
||||
IF WS-WEEKEND
|
||||
DISPLAY "T2-B: SAT→WEEKEND PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
*> T3: 複数英文字コード
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 'V01' TO WS-PLAN.
|
||||
IF WS-PLAN-VIP
|
||||
DISPLAY "T3-A: V01→VIP PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 'P01' TO WS-PLAN.
|
||||
IF WS-PLAN-PREPAID
|
||||
DISPLAY "T3-B: P01→PREPAID PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
*> T4: 極端範囲値
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 0 TO WS-PCT.
|
||||
IF WS-PCT-LOW
|
||||
DISPLAY "T4-A: 0→LOW (minimum) PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 999 TO WS-PCT.
|
||||
IF WS-PCT-OVR
|
||||
DISPLAY "T4-B: 999→OVER (maximum) PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
*> T5: SPACE判定
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE SPACE TO WS-FLAG.
|
||||
IF WS-FLAG-EMPTY
|
||||
DISPLAY "T5: SPACE→EMPTY PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
ELSE
|
||||
ADD 1 TO WS-FAIL
|
||||
END-IF.
|
||||
|
||||
*> T6: EVALUATE + 88-level 複合
|
||||
ADD 1 TO WS-TC.
|
||||
MOVE 85 TO WS-SCORE.
|
||||
MOVE 'WED' TO WS-DAY.
|
||||
EVALUATE TRUE
|
||||
WHEN WS-GRADE-A AND WS-WEEKDAY
|
||||
DISPLAY "T6: GRADE-A + WEEKDAY PASS"
|
||||
ADD 1 TO WS-PASS
|
||||
WHEN OTHER
|
||||
ADD 1 TO WS-FAIL
|
||||
END-EVALUATE.
|
||||
|
||||
DISPLAY " "
|
||||
DISPLAY "88-LEVEL-EDGE: PASS=" WS-PASS " FAIL=" WS-FAIL
|
||||
IF WS-FAIL = 0
|
||||
DISPLAY "ALL PASSED"
|
||||
STOP RUN RETURNING 0
|
||||
ELSE
|
||||
STOP RUN RETURNING 1
|
||||
END-IF
|
||||
.
|
||||
|
||||
END PROGRAM Level88Edge.
|
||||
Reference in New Issue
Block a user