tinycobol/test_suite/format_tests/test07a.cob

313 lines
12 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. TEST07A.
AUTHOR. STEPHEN CONNOLLY.
DATE-WRITTEN. 2001/04/24 .
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 QT1 PICTURE XXXX VALUE SPACE.
77 QT2 PICTURE XXXX VALUE SPACE.
77 QT3 PICTURE XXXX VALUE SPACE.
77 QT4 PICTURE XXXX VALUE SPACE.
77 QT5 PICTURE XXXX VALUE SPACE.
77 WRK-DS-01V00 PICTURE S9.
77 ONE PICTURE 9 VALUE 1.
77 TWO PICTURE S9 VALUE 2.
77 THREE PICTURE S9 VALUE 3.
77 FOUR PICTURE S9 VALUE 4.
77 FIVE PICTURE S9 VALUE 5.
77 SIX PICTURE S9 VALUE 6.
77 SEVEN PICTURE S9 VALUE 7.
77 EIGHT PICTURE 9 VALUE 8.
77 NINE PICTURE S9 VALUE 9.
77 TEN PICTURE S99 VALUE 10.
77 FIFTEEN PICTURE S99 VALUE 15.
77 TWENTY PICTURE S99 VALUE 20.
77 TWENTY-5 PICTURE S99 VALUE 25.
01 MOVE54.
02 MOVE55 PICTURE X VALUE "W".
02 MOVE56 PICTURE X VALUE "X".
02 MOVE57.
03 MOVE58 PICTURE X VALUE "Y".
03 MOVE59 PICTURE X VALUE "Z".
01 MOVE60.
02 MOVE56 PICTURE X.
02 MOVE57.
03 MOVE58 PICTURE X.
03 MOVE64.
04 MOVE65 PICTURE X VALUE "A".
01 GRP-FOR-QUAL-FROM.
02 QUAL-TEST-SUB-GRP-1.
03 QUAL-TEST-1 PICTURE X(26) VALUE
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".
03 QUAL-TEST-1-FROM REDEFINES QUAL-TEST-1 PICTURE X(26).
03 QUAL-TEST-2 PICTURE S9(10) VALUE +9999999999.
03 QUAL-TEST-2-FROM REDEFINES QUAL-TEST-2 PICTURE S9(10).
03 QUAL-TEST-3 PICTURE S999 VALUE 2.
03 QUAL-TEST-3-FROM REDEFINES QUAL-TEST-3 PICTURE S999.
02 QUAL-TEST-SUB-GRP-2.
03 QUAL-TEST-4 PICTURE X OCCURS 5 TIMES.
03 QUAL-TEST-4-FROM PICTURE X OCCURS 4 TIMES.
01 GRP-FOR-QUAL-TO.
02 DUMMY-LEVELZ.
03 QUAL-TEST-1 PICTURE X(26).
03 QUAL-TEST-1-TO REDEFINES QUAL-TEST-1 PICTURE X(26).
03 QUAL-TEST-2 PICTURE S9(10).
03 QUAL-TEST-2-TO REDEFINES QUAL-TEST-2 PICTURE S9(10).
03 QUAL-TEST-3 PICTURE S999.
03 QUAL-TEST-3-TO REDEFINES QUAL-TEST-3 PICTURE S999.
02 QUAL-TEST1.
03 QUAL-TEST-4 PICTURE X OCCURS 5 TIMES.
02 QUAL-TEST2.
03 QUAL-TEST-4-TO PICTURE X OCCURS 4 TIMES.
01 GRP-MOVE-CORR-1.
09 MOVE-CORR-5 PICTURE 999 VALUE 555.
09 MOVE-CORR-3 PICTURE 999 VALUE 333.
09 MOVE-CORR-2 PICTURE 999 VALUE 222.
09 MOVE-CORR-1 PICTURE 999 VALUE 111.
09 FILLER PICTURE XXX VALUE ZEROS.
09 MOVE-CORR-4 PICTURE XXX VALUE "XYZ".
09 MOVE-CORR-6 PICTURE XXX VALUE ALL "6".
09 MOVE-CORR-7 PICTURE 999 VALUE 777.
01 GRP-MOVE-CORR-R.
05 FILLER PICTURE XXX.
05 MOVE-CORR-1 PICTURE XXX.
05 MOVE-CORR-2 PICTURE 999.
05 MOVE-CORR-3 PICTURE ZZZ.
05 MOVE-CORR-4.
06 FILLER PICTURE 999.
06 FILLER PICTURE XXX.
01 GRP-TO-MOVE-CORR.
03 GRP-TO-MOVE-CORR-1.
05 MOVE-CORR-G1.
06 MOVE-CORR-G2.
09 MOVE-CORR-E1 PICTURE 999 VALUE 111.
09 MOVE-CORR-E2 PICTURE 999 VALUE 222.
09 FILLER PICTURE 999 VALUE 333.
06 MOVE-CORR-G3.
07 MOVE-CORR-E3 PICTURE XXX VALUE "123".
07 MOVE-CORR-G4.
08 MOVE-CORR-G5.
09 MOVE-CORR-E4 PICTURE XXX VALUE "ABC".
09 MOVE-CORR-E5 PICTURE 99 VALUE 45.
01 GRP-TO-MOVE-CORR-TO.
02 MOVE-CORR-G1.
04 MOVE-CORR-G2.
05 MOVE-CORR-E1 PICTURE XXX.
05 MOVE-CORR-E2 PICTURE 999 OCCURS 2.
05 FILLER PICTURE 999.
04 MOVE-CORR-G3.
06 MOVE-CORR-E3 PICTURE 999.
06 MOVE-CORR-G4.
07 MOVE-CORR-G5 PICTURE X(5).
01 CORR-DATA-1.
03 XYZ-1 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-2 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-3 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-4 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-5 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-6 PICTURE IS 99 VALUE IS ZERO.
01 CORR-DATA-2.
03 XYZ-1 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-2 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-3 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-4 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-5 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-6 PICTURE IS 99 VALUE IS ZERO.
01 CORR-DATA-3.
03 XYZ-4 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-3 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-6 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-5 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-2 PICTURE IS 99 VALUE IS ZERO.
03 XYZ-1 PICTURE IS 99 VALUE IS ZERO.
01 CORR-DATA-4.
03 XYZ-11 PICTURE IS 99.
03 XYZ-12 PICTURE IS 99.
03 XYZ-13 PICTURE IS 99.
03 XYZ-14 PICTURE IS 99.
03 XYZ-15 PICTURE IS 99.
03 XYZ-16 PICTURE IS 99.
01 CORR-DATA-5.
03 XYZ-1 PICTURE 99.
03 XYZ-2 PICTURE 99.
03 XYZ-13 PICTURE IS 99.
03 XYZ-14 PICTURE IS 99.
03 FILLER PICTURE IS 99.
03 XYZ-11 PICTURE IS 99.
03 XYZ-12 PICTURE IS 99.
01 CORR-DATA-6.
03 XYZ-11 PICTURE IS 99.
03 XYZ-12 PICTURE IS 99.
03 FILLER PICTURE IS 99.
03 XYZ-1 PICTURE IS 99.
03 XYZ-2 PICTURE IS 9(2).
03 FILLER PICTURE IS 99.
01 CORR-DATA-7.
02 XYZ-1 PICTURE 99V99 VALUE 10.45.
02 XYZ-6 PICTURE 999V9 VALUE 100.5.
02 XYZ-11 PICTURE 99V9 VALUE ZERO.
02 XYZ-2 PICTURE 99V9 VALUE 0.9.
PROCEDURE DIVISION.
CCVS1 SECTION.
MAIN-LOOP.
PERFORM DATA-NAME-QUAL.
PERFORM MOVE-CORR-ROUTINE.
STOP RUN.
DATA-NAME-QUAL SECTION.
MOVE "123456789" TO QUAL-TEST-SUB-GRP-2.
* MOVE ALL ZEROES TO GRP-FOR-QUAL-TO.
MOVE 2 TO WRK-DS-01V00.
MOVE QUAL-TEST-1 OF GRP-FOR-QUAL-FROM
TO QUAL-TEST-1 OF GRP-FOR-QUAL-TO.
DISPLAY "Q005:(" QUAL-TEST-1 OF GRP-FOR-QUAL-TO
"):(ABCDEFGHIJKLMNOPQRSTUVWXYZ):"
"MOVE QUAL. ITEM OF GRP TO QUAL. ITEM OF OTHER GRP.".
MOVE ZERO TO QUAL-TEST-2 OF GRP-FOR-QUAL-TO .
ADD QUAL-TEST-2 OF GRP-FOR-QUAL-FROM
TO QUAL-TEST-2 OF GRP-FOR-QUAL-TO.
DISPLAY "Q006:(" QUAL-TEST-2 OF GRP-FOR-QUAL-TO
"):( 9999999999):"
"ADD QUAL. ITEM OF GRP TO QUAL. ITEM OF OTHER GRP.".
MULTIPLY QUAL-TEST-3 OF GRP-FOR-QUAL-FROM BY WRK-DS-01V00
GIVING QUAL-TEST-3 OF GRP-FOR-QUAL-TO.
DISPLAY "Q007:(" QUAL-TEST-3 OF GRP-FOR-QUAL-TO
"):( 004):"
"MULTIPLY QUAL. ITEM OF GRP GIVING "
"QUAL. ITEM OF OTHER GRP.".
MOVE "00000" TO QUAL-TEST1 OF GRP-FOR-QUAL-TO.
MOVE QUAL-TEST-4 OF GRP-FOR-QUAL-FROM (WRK-DS-01V00)
TO QUAL-TEST-4 OF GRP-FOR-QUAL-TO (WRK-DS-01V00).
DISPLAY "Q008:(" QUAL-TEST1 OF GRP-FOR-QUAL-TO
"):(02000):"
"MOVE INDEXED QUAL. ITEM OF GRP TO INDEXED "
"QUAL. ITEM OF OTHER GRP.".
MOVE QUAL-TEST-1-FROM IN GRP-FOR-QUAL-FROM TO
QUAL-TEST-1-TO IN GRP-FOR-QUAL-TO.
DISPLAY "Q009:(" QUAL-TEST-1-TO OF GRP-FOR-QUAL-TO
"):(ABCDEFGHIJKLMNOPQRSTUVWXYZ):"
"MOVE REDEF. QUAL. ITEM OF GRP TO "
"REDEF. QUAL. ITEM OF OTHER GRP.".
MOVE 0 TO QUAL-TEST-2-TO IN GRP-FOR-QUAL-TO.
ADD QUAL-TEST-2-FROM IN GRP-FOR-QUAL-FROM TO
QUAL-TEST-2-TO IN GRP-FOR-QUAL-TO.
DISPLAY "Q010:(" QUAL-TEST-2-TO OF GRP-FOR-QUAL-TO
"):( 9999999999):"
"ADD REDEF. QUAL. ITEM OF GRP TO "
"REDEF. QUAL. ITEM OF OTHER GRP.".
MULTIPLY QUAL-TEST-3-FROM IN GRP-FOR-QUAL-FROM
BY WRK-DS-01V00
GIVING QUAL-TEST-3-TO IN GRP-FOR-QUAL-TO.
DISPLAY "Q011:(" QUAL-TEST-3-TO OF GRP-FOR-QUAL-TO
"):( 004):"
"MULTIPLY REDEF. QUAL. ITEM OF GRP GIVING "
"REDEF. QUAL. ITEM OF OTHER GRP.".
MOVE "0000" TO QUAL-TEST2 OF GRP-FOR-QUAL-TO.
MOVE QUAL-TEST-4-FROM IN GRP-FOR-QUAL-FROM (WRK-DS-01V00)
TO QUAL-TEST-4-TO IN GRP-FOR-QUAL-TO (WRK-DS-01V00).
DISPLAY "Q012:(" QUAL-TEST2 OF GRP-FOR-QUAL-TO
"):(0700):"
"MOVE REDEF. INDEXED QUAL. ITEM OF GRP TO REDEF. "
"INDEXED QUAL. ITEM OF OTHER GRP.".
DATA-EXIT.
EXIT.
MOVE-CORR-ROUTINE SECTION.
MOV-INIT-F1-1.
MOVE THREE TO XYZ-1 OF CORR-DATA-1.
MOVE FOUR TO XYZ-2 OF CORR-DATA-1.
MOVE TEN TO XYZ-3 OF CORR-DATA-1.
MOVE ZERO TO XYZ-4 OF CORR-DATA-1.
MOVE 01 TO XYZ-5 OF CORR-DATA-1.
MOVE 00 TO XYZ-6 OF CORR-DATA-1.
MOVE CORRESPONDING CORR-DATA-1 TO CORR-DATA-2.
DISPLAY "Q013:(" XYZ-2 OF CORR-DATA-2 "):(04):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
DISPLAY "Q014:(" XYZ-1 OF CORR-DATA-2 "):(03):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
DISPLAY "Q015:(" XYZ-3 OF CORR-DATA-2 "):(10):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
DISPLAY "Q016:(" XYZ-4 OF CORR-DATA-2 "):("
XYZ-4 OF CORR-DATA-1 "):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
DISPLAY "Q017:(" XYZ-5 OF CORR-DATA-2 "):(01):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
MOVE THREE TO XYZ-1 OF CORR-DATA-1.
MOVE FOUR TO XYZ-2 OF CORR-DATA-1.
MOVE TEN TO XYZ-3 OF CORR-DATA-1.
MOVE ZERO TO XYZ-4 OF CORR-DATA-1.
MOVE 01 TO XYZ-5 OF CORR-DATA-1.
MOVE 00 TO XYZ-6 OF CORR-DATA-1.
MOVE CORRESPONDING CORR-DATA-1 TO CORR-DATA-3.
DISPLAY "Q018:(" XYZ-1 OF CORR-DATA-3 "):(03):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
DISPLAY "Q019:(" XYZ-3 OF CORR-DATA-3 "):(10):"
"MOVE CORR ITEM OF GRP TO ITEM OF OTHER GRP."
MOVE ZERO TO CORR-DATA-5.
MOVE 123456789012 TO CORR-DATA-3.
MOVE CORRESPONDING CORR-DATA-3 TO CORR-DATA-5.
MOVE "PASS" TO QT1.
IF XYZ-1 OF CORR-DATA-5 NOT EQUAL TO 12
MOVE "FAIL" TO QT1
END-IF.
IF XYZ-2 OF CORR-DATA-5 NOT EQUAL TO 90
MOVE "FAIL" TO QT1
END-IF.
IF XYZ-13 OF CORR-DATA-5 NOT EQUAL TO 0
MOVE "FAIL" TO QT1
END-IF.
DISPLAY "Q020:(" QT1 "):(PASS):"
"MOVE CORR MULTIPLE ITEMS OF GRP TO OTHER GRP .".
MOVE SPACE TO GRP-MOVE-CORR-R.
MOVE CORRESPONDING GRP-MOVE-CORR-1 TO GRP-MOVE-CORR-R.
DISPLAY "Q021:(" GRP-MOVE-CORR-R "):( 111222333XYZ ):"
"MOVE CORR ITEMS OF GRP TO ITEMS OF OTHER GRP."
MOVE SPACE TO GRP-TO-MOVE-CORR-TO.
MOVE CORRESPONDING GRP-TO-MOVE-CORR-1 TO
GRP-TO-MOVE-CORR-TO.
DISPLAY "Q022:(" GRP-TO-MOVE-CORR-TO
"):(111 123ABC45):"
"MOVE CORR ITEMS OF GRP TO ITEMS OF OTHER GRP."
MOVE CORR MOVE54 TO MOVE60.
DISPLAY "Q023:(" MOVE60 "):(XYA):"
"MOVE CORR ITEMS OF GRP TO ITEMS OF OTHER GRP."
MOVE "*" TO MOVE56 OF MOVE60 MOVE58 OF MOVE60 MOVE65.
DISPLAY "Q024:(" MOVE60 "):(***):"
"MOVE TO MULTIPLE QUAL. ITEMS OF GRP." .
MOVE-EXIT.
EXIT.