From: William M. Klein on
Following is another test program that I want to know if it passes on all
systems or if/when it fails. This program may NOT get a clean compile with all
compilers. The '02 Standard lets you do an IF NUMERIC test on PACKED=DECIMAL
data items, but this was not allowed by the '85 Standard. I think that many
(possibly most) compilers DID allow it, but some tests might get compile time
errors (or at least warnings).

After this, I may try one more test with binary data-items.

Please just let me know if this passes. Only if it fails do I need/want to see
the results.

Thanks to all in advance.

***

Identification Division.
Program-ID. OVERLAP3.
Data Division.
Working-Storage Section.
01 Group1.
05 Num1 Pic S9(05)
Packed-Decimal.
05 Num1-Dec redefines Num1 Pic S99V999
Packed-Decimal.
05 Pic X(01).
01 Group2 redefines Group1.
05 Num3 Pic S9(01)
Sign is Leading.
05 Num3-Dec Redefines Num3 Pic SV9
Sign is Leading.
05 Num2 Pic S9(03)
Packed-Decimal.
05 Num2-Dec Redefines Num2 Pic SVpp9(03)
Packed-Decimal.
05 Pic X(01).
01 Temp.
05 NE Pic +9(01).9(05).
Procedure Division.
Mainline.
Perform Add-Test
Perform Subtract-Test
Perform Multiply-Test
Perform Divide-Test-1
Perform Divide-Test-2
Stop Run
.
Add-Test.
Display " --> Start ADD test"
Move Zero to Num2
Move +123 to Num1
Evaluate
Num1 Numeric
Also
Num2 Numeric
When False also False
Display "Neither Numeric"
When False also True
Display "Num1 not numeric"
When True also False
Display "Num2 not numeric"
When Other
Add Num1 to Num2
On Size Error
Display "Size Error"
End-ADD
If Num2 Numeric
If Num2 = +246
Display "ADD Test passed, Num2=" Num2
Else
Display "ADD Test Failed, Num2=" Num2
End-If
Else
Display "ADD Test Failed, Num2=" Group2 (2:)
End-IF
End-Evaluate
Display " --> End ADD test"
.
Subtract-Test.
Display " --> Start Subtract test"
Move zero to Num2
Move -23456 to Num1
Evaluate
Num1 Numeric
Also
Num2 Numeric
When False also False
Display "Neither Numeric"
When False also True
Display "Num1 not numeric"
When True also False
Display "Num2 not numeric"
When Other
Subtract Num2 from Num1
On Size Error
Display "Size Error"
End-Subtract
If Num2 Numeric
If Num1 = -23000
Display "SUBTRACT Test passed, Num2=" Num1
Else
Display "SUBTRACT Test Failed, Num2=" Num1
End-If
Else
Display "SUBTRACT Test Failed, Num2=" Group2 (2:)
End-IF
End-Evaluate
Display " --> End Subtract test"
.
Multiply-Test.
Display " --> Start Multiply test"
Move zero to Num2
Move +21 to Num1
Evaluate
Num1 Numeric
Also
Num2 Numeric
When False also False
Display "Neither Numeric"
When False also True
Display "Num1 not numeric"
When True also False
Display "Num2 not numeric"
When Other
Multiply Num1 by Num2
On Size Error
Display "Size Error"
End-Multiply
If Num2 Numeric
If Num2 = +441
Display "MULTIPLY Test passed, Num2=" Num2
Else
Display "MULTIPLY Test Failed, Num2=" Num2
End-If
Else
Display "MULTIPLY Test Failed, Num2=" Group2 (2:)
End-IF
End-Evaluate
Display " --> End MULTIPLY test"
.

Divide-Test-1.
Display " --> Start DIVIDE test 1"
Move zero to Num2
Move -45678 to Num1
Evaluate
Num1 Numeric
Also
Num2 Numeric
When False also False
Display "Neither Numeric"
When False also True
Display "Num1 not numeric"
When True also False
Display "Num2 not numeric"
When Other
Divide Num2 into Num1-Dec
On Size Error
Display "Size Error"
End-DIVIDE
If Num1-Dec Numeric
If Num1-Dec = +0.067
Move Num1-Dec to NE
Display "DIVIDE Test passed, Num1=" NE
Else
Move Num1-Dec to NE
Display "DIVIDE Test Failed, Num1=" NE
End-If
Else
Display "DIVIDE Test Failed, Num1=" Group1
End-IF
End-Evaluate
Display " --> End DIVIDE test 1"
.
Divide-Test-2.
Display " --> Start DIVIDE test 2"
Move zero to Num2
Move -98765 to Num1
Evaluate
Num1 Numeric
Also
Num2 Numeric
When False also False
Display "Neither Numeric"
When False also True
Display "Num1 not numeric"
When True also False
Display "Num2 not numeric"
When Other
Divide Num1 into Num2
Giving Num2-Dec
Remainder Num3-Dec
On Size Error
Display "Size Error"
End-DIVIDE
If Num2 Numeric
If Num2-Dec = +0.00774
And Num3-Dec = -0.5
Move Num2-Dec to NE
Display "DIVIDE Test passed, Num2-Dec=" NE
Move Num3-Dec to NE
DIsplay " Num3-Dec=" NE
Else
Move Num2-Dec to NE
Display "DIVIDE Test Failed, Num2-N1=" NE
Move Num3-Dec to NE
Display " Num3-N2=" NE
End-If
Else
Display "DIVIDE Test Failed, Num2=" Group2 (2:)
End-IF
End-Evaluate
Display " --> End DIVIDE test 2"
.

* * * End of sample source code

--
Bill Klein
wmklein <at> ix.netcom.com


From: Karl Kiesel on
"William M. Klein" <wmklein(a)nospam.ix.netcom.com> schrieb im Newsbeitrag
news:bLY1l.352867$6p1.52192(a)en-nntp-07.dc1.easynews.com...
> Following is another test program that I want to know if it passes on all
> systems or if/when it fails. This program may NOT get a clean compile
> with all compilers. The '02 Standard lets you do an IF NUMERIC test on
> PACKED=DECIMAL data items, but this was not allowed by the '85 Standard.
> I think that many (possibly most) compilers DID allow it, but some tests
> might get compile time errors (or at least warnings).
>
> After this, I may try one more test with binary data-items.
>
> Please just let me know if this passes. Only if it fails do I need/want
> to see the results.
>
> Thanks to all in advance.
>

All tests passed using Fujitsu Siemens Compiler COBOL2000 V1.4B and
operating system BS2000 OSD V8.0 (during compilation 2 warnings for lines
147 and 150: possible truncation of high order digits)

Karl Kiesel
Fujitsu Siemens Computers, M�nchen


From: Roger While on
OK on OpenCOBOL development branch.
Info below.

Roger

# cobc -V
cobc (OpenCOBOL) 1.1.0
Copyright (C) 2001-2008 Keisuke Nishida / Roger While
Built Dec 17 2008 16:13:29
Packaged Dec 16 2008 21:26:36 CET

# cobc -x OVERLAP3.cob
# ./OVERLAP3

--> Start ADD test
ADD Test passed, Num2=+246
--> End ADD test
--> Start Subtract test
SUBTRACT Test passed, Num2=-23000
--> End Subtract test
--> Start Multiply test
MULTIPLY Test passed, Num2=+441
--> End MULTIPLY test
--> Start DIVIDE test 1
DIVIDE Test passed, Num1=+0.06700
--> End DIVIDE test 1
--> Start DIVIDE test 2
DIVIDE Test passed, Num2-Dec=+0.00774
Num3-Dec=-0.50000
--> End DIVIDE test 2


From: Arnold Trembley on
Roger While wrote:
> OK on OpenCOBOL development branch.
> Info below.

And also OK on z/OS

PP 5655-G53 IBM Enterprise COBOL for z/OS 3.4.1
Invocation parameters:

--> Start ADD test
ADD Test passed, Num2=246
--> End ADD test
--> Start Subtract test
SUBTRACT Test passed, Num2=2300}
--> End Subtract test
--> Start Multiply test
MULTIPLY Test passed, Num2=441
--> End MULTIPLY test
--> Start DIVIDE test 1
DIVIDE Test passed, Num1=+0.06700
--> End DIVIDE test 1
--> Start DIVIDE test 2
DIVIDE Test passed, Num2-Dec=+0.00774
Num3-Dec=-0.50000
--> End DIVIDE test 2
Options Report for Enclave OVERLAP3 12/17/08 3:41:27 PM
Language Environment V01 R08.00



>
> Roger
>
> # cobc -V
> cobc (OpenCOBOL) 1.1.0
> Copyright (C) 2001-2008 Keisuke Nishida / Roger While
> Built Dec 17 2008 16:13:29
> Packaged Dec 16 2008 21:26:36 CET
>
> # cobc -x OVERLAP3.cob
> # ./OVERLAP3
>
> --> Start ADD test
> ADD Test passed, Num2=+246
> --> End ADD test
> --> Start Subtract test
> SUBTRACT Test passed, Num2=-23000
> --> End Subtract test
> --> Start Multiply test
> MULTIPLY Test passed, Num2=+441
> --> End MULTIPLY test
> --> Start DIVIDE test 1
> DIVIDE Test passed, Num1=+0.06700
> --> End DIVIDE test 1
> --> Start DIVIDE test 2
> DIVIDE Test passed, Num2-Dec=+0.00774
> Num3-Dec=-0.50000
> --> End DIVIDE test 2
>
>


--
http://arnold.trembley.home.att.net/
From: Jeff Campbell on
William M. Klein wrote:
> Following is another test program that I want to know if it passes on all
> systems or if/when it fails. This program may NOT get a clean compile with all
> compilers. The '02 Standard lets you do an IF NUMERIC test on PACKED=DECIMAL
> data items, but this was not allowed by the '85 Standard. I think that many
> (possibly most) compilers DID allow it, but some tests might get compile time
> errors (or at least warnings).
>
> After this, I may try one more test with binary data-items.
>
> Please just let me know if this passes. Only if it fails do I need/want to see
> the results.
>
All 5 passed:

OpenVMS (TM) Alpha Operating System, Version V8.3
Compaq COBOL V2.8-1286

Jeff


----== Posted via Pronews.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.pronews.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= - Total Privacy via Encryption =---
 |  Next  |  Last
Pages: 1 2
Prev: I need a new compiler...
Next: COBOL versions Mainframe