-- beadstest.mesa DIRECTORY IODefs:FROM"IODefs", BeadsInlines:FROM"BeadsInlines", InlineDefs:FROM"InlineDefs", BeadsDefs:FROM"BeadsDefs"; BeadsTest:PROGRAM IMPORTS BeadsInlines, IODefs, InlineDefs, BeadsDefs EXPORTS BeadsDefs = BEGIN OPEN BeadsDefs, BeadsInlines; Error:SIGNAL=CODE; FullTest:PUBLIC PROCEDURE=BEGIN testFail:BOOLEAN_FALSE; OneTest:PROCEDURE[i:Desc]=BEGIN IF Height[i]<=0 OR Width[i]<=0 OR Type[i]=none THEN RETURN; FOR jj:CARDINAL IN (i.z..topBead] DO j:Desc_GetDesc[jj]; delta:Coord_Delta[i,j]; IF Type[j]=none OR Height[j]<=0 OR Width[j]<=0 OR Lfm[j]>=Rtm[i]+delta.x OR Lfm[i]>=Rtm[j]+delta.x OR Bot[j]>=Top[i]+delta.y OR Bot[i]>=Top[i]+delta.y OR ~SameLevel[i,j] OR SameCircuit[i,j] OR TouchingBeads[i,j] THEN LOOP; BEGIN OPEN IODefs; beadi:Bead_i.p^; beadj:Bead_j.p^; IF ~testFail THEN {testFail_TRUE; Error;}; WriteChar[CR]; WriteString["conflict between"]; WriteNumber[i.z, [10,FALSE,TRUE,4]]; WriteString[" and "]; WriteNumber[j.z,[10,FALSE,TRUE,4]]; END; ENDLOOP; END; EnumerateBeads[OneTest]; END; END.. (1792)\i18I