4 FROM libc IMPORT exit, write ;
5 FROM ASCII IMPORT nul, nl ;
6 FROM SYSTEM IMPORT ADR,
7 INTEGER8, INTEGER16, INTEGER32, INTEGER64,
8 CARDINAL8, CARDINAL16, CARDINAL32, CARDINAL64,
9 BYTE, WORD16, WORD32, WORD64 ;
10 FROM M2RTS IMPORT Length ;
11 FROM NumberIO IMPORT CardToStr ;
14 PROCEDURE Assert (c: BOOLEAN; line: CARDINAL; column: CARDINAL;
15 message: ARRAY OF CHAR) ;
18 a: ARRAY [0..10] OF CHAR ;
22 r := write(2, ADR(__FILE__), Length(__FILE__)) ;
23 r := write(2, ADR(": "), Length(":")) ;
24 CardToStr(line, 0, a) ;
25 r := write(2, ADR(a), Length(a)) ;
26 r := write(2, ADR(": "), Length(":")) ;
27 CardToStr(column, 0, a) ;
28 r := write(2, ADR(a), Length(a)) ;
29 r := write(2, ADR(": "), Length(":")) ;
30 r := write(2, ADR(message), Length(message)) ;
33 r := write(2, ADR(a), Length(a)) ;
59 Assert(i=1, __LINE__, __COLUMN__, "INC failed to generate value of 1") ;
61 Assert(i8=1, __LINE__, __COLUMN__, "assignment failed to propagate via INTEGER8") ;
63 Assert(c8=1, __LINE__, __COLUMN__, "assignment failed to propagate via CARDINAL8") ;
66 Assert(i16=1, __LINE__, __COLUMN__, "assignment failed to propagate via INTEGER16") ;
68 Assert(c16=1, __LINE__, __COLUMN__, "assignment failed to propagate via CARDINAL16") ;
71 Assert(i32=1, __LINE__, __COLUMN__, "assignment failed to propagate via INTEGER32") ;
73 Assert(c32=1, __LINE__, __COLUMN__, "assignment failed to propagate via CARDINAL32") ;
76 Assert(i=0, __LINE__, __COLUMN__, "DEC failed to generate value of 0") ;
79 Assert(i=1, __LINE__, __COLUMN__, "INC failed to generate value of 1") ;
81 Assert(i=0, __LINE__, __COLUMN__, "DEC failed to generate value of 0") ;
83 Assert(i=1, __LINE__, __COLUMN__, "INC failed to generate value of 1") ;
85 Assert(i=0, __LINE__, __COLUMN__, "DEC failed to generate value of 0") ;
86 i := MAX(CARDINAL32) ;
89 Assert(i=j-1, __LINE__, __COLUMN__, "DEC failed to generate value of MAX(dataType)-1") ;
91 Assert(i=j-2, __LINE__, __COLUMN__, "DEC failed to generate value of MAX(dataType)-2") ;
96 Assert(i32=-1, __LINE__, __COLUMN__, "DEC failed to generate value of -1") ;
98 Assert(i32=-2, __LINE__, __COLUMN__, "DEC failed to generate value of -2") ;
100 Assert(i32=-1, __LINE__, __COLUMN__, "DEC failed to generate value of -1") ;
102 Assert(i32=0, __LINE__, __COLUMN__, "DEC failed to generate value of 0") ;
103 i := MIN(CARDINAL32) ;
106 Assert(i=j+1, __LINE__, __COLUMN__, "DEC failed to generate value of MIN(dataType)+1") ;
108 Assert(i=j+2, __LINE__, __COLUMN__, "DEC failed to generate value of MIN(dataType)+2") ;