DIRECTORY RegressUtils; RegressArray: CEDAR PROGRAM IMPORTS RegressUtils = BEGIN TestInt: PROC = { localArrayOfInt: ArrayOfInt _ ALL[0]; FOR i: ArrayOfIntIndex IN ArrayOfIntIndex DO RegressUtils.Test[localArrayOfInt[i] # 0, "TestInt: localArrayOfInt[i] # 0"]; localArrayOfInt[i] _ i; RegressUtils.Test[localArrayOfInt[i] # i, "localArrayOfInt[i] # i"]; RegressUtils.Test[globalArrayOfInt[i] # 0, "globalArrayOfInt[i] # 0"]; globalArrayOfInt[i] _ i; RegressUtils.Test[globalArrayOfInt[i] # i, "globalArrayOfInt[i] # i"]; ENDLOOP; globalArrayOfInt _ ALL[0]; FOR i: ArrayOfIntIndex IN ArrayOfIntIndex DO RegressUtils.Test[globalArrayOfInt[i] # 0, "globalArrayOfInt[i] # 0"]; ENDLOOP; }; TestRef: PROC = { localArrayOfRef: ArrayOfRef _ ALL[NIL]; FOR i: ArrayOfRefIndex IN ArrayOfRefIndex DO RegressUtils.Test[localArrayOfRef[i] # NIL, "localArrayOfRef[i] # NIL"]; localArrayOfRef[i] _ globalAtomArray[i]; RegressUtils.Test[localArrayOfRef[i] # globalAtomArray[i], "localArrayOfRef[i] # globalAtomArray[i]"]; RegressUtils.Test[globalArrayOfRef[i] # NIL, "globalArrayOfRef[i] # NIL"]; globalArrayOfRef[i] _ globalAtomArray[i]; RegressUtils.Test[globalArrayOfRef[i] # globalAtomArray[i], "globalArrayOfRef[i] # globalAtomArray[i]"]; ENDLOOP; globalArrayOfRef _ ALL[NIL]; FOR i: ArrayOfRefIndex IN ArrayOfRefIndex DO RegressUtils.Test[globalArrayOfRef[i] # NIL, "globalArrayOfRef[i] # NIL"]; ENDLOOP; }; TestPackedOfBit: PROC = { PackedBits: TYPE = PACKED ARRAY PackedBitsIndex OF BIT; PackedBitsIndex: TYPE = [0..8); LongPackedBits: TYPE = PACKED ARRAY LongPackedBitsIndex OF BIT; LongPackedBitsIndex: TYPE = [0..8*BITS[WORD]); pba: PackedBits _ ALL[0]; lpba: LongPackedBits _ ALL[0]; FOR i: PackedBitsIndex IN PackedBitsIndex DO RegressUtils.Test[pba[i] # 0, "pba[i] # 0 (after init to ALL[0])"]; pba[i] _ i MOD 2; RegressUtils.Test[pba[i] # i MOD 2, "lpba[i] # i MOD 2"]; ENDLOOP; pba _ [0, 1, 0, 1, 0, 1, 0, 1]; FOR i: PackedBitsIndex IN PackedBitsIndex DO RegressUtils.Test[pba[i] # i MOD 2, "pba[i] # i MOD 2"]; ENDLOOP; pba _ ALL[1]; FOR i: PackedBitsIndex IN PackedBitsIndex DO RegressUtils.Test[pba[i] # 1, "pba[i] # 1 (after pba := ALL[1])"]; ENDLOOP; RegressUtils.Test[LOOPHOLE[pba, CARDINAL] # 255, "LOOPHOLE[pba, CARDINAL] # 255 (after pba := ALL[1])"]; FOR i: LongPackedBitsIndex IN LongPackedBitsIndex DO RegressUtils.Test[lpba[i] # 0, "lpba[i] # 0 (after init to ALL[0])"]; lpba[i] _ i MOD 2; RegressUtils.Test[lpba[i] # i MOD 2, "lpba[i] # i MOD 2"]; ENDLOOP; lpba _ ALL[0]; FOR i: LongPackedBitsIndex IN LongPackedBitsIndex DO RegressUtils.Test[lpba[i] # 0, "lpba[i] # 0 (after lpba _ ALL[0])"]; ENDLOOP; lpba _ ALL[1]; FOR i: LongPackedBitsIndex IN LongPackedBitsIndex DO RegressUtils.Test[lpba[i] # 1, "lpba[i] # 1 (after lpba _ ALL[1])"]; ENDLOOP; }; ArrayOfInt: TYPE = ARRAY ArrayOfIntIndex OF INT; ArrayOfIntIndex: TYPE = [0..8); ArrayOfRef: TYPE = ARRAY ArrayOfRefIndex OF REF; ArrayOfRefIndex: TYPE = [0..8); globalArrayOfInt: ArrayOfInt _ ALL[0]; globalArrayOfRef: ArrayOfRef _ ALL[NIL]; globalAtomArray: ArrayOfRef _ [$a0, $a1, $a2, $a3, $a4, $a5, $a6, $a7]; TestArray: PROC = { RegressUtils.NoteProc["RegressArray.TestInt"]; TestInt[]; RegressUtils.NoteProc["RegressArray.TestRef"]; TestRef[]; RegressUtils.NoteProc["RegressArray.TestPackedOfBit"]; TestPackedOfBit[]; }; RegressUtils.Register["RegressArray", TestArray]; END.  Ê‘•NewlineDelimiter ™JšÏk œ˜J˜JšÏn œœ˜Jšœ ˜Jšœ˜J˜Jšžœœ˜Jšœœ˜%Jšœœ˜,J˜MJ˜J˜DJ˜FJ˜J˜FJšœ˜Jšœœ˜Jšœœ˜,J˜FJšœ˜J˜J˜Jšžœœ˜Jšœœœ˜'Jšœœ˜,Jšœ'œ˜HJ˜(J˜:J˜+Jšœ(œ˜JJ˜)J˜;J˜,Jšœ˜Jšœœœ˜Jšœœ˜,Jšœ(œ˜JJšœ˜J˜J˜Jšžœœ˜Jš œ œœœœœ˜7Jšœœ ˜Jš œœœœœœ˜?Jšœœ œœ˜.Jšœœ˜Jšœœ˜Jšœœ˜,J˜CJšœ œ˜Jšœœ˜9Jšœ˜J˜ Jšœœ˜,Jšœœ˜8Jšœ˜Jšœœ˜Jšœœ˜,J˜BJšœ˜Jšœœœ˜0J˜7Jšœœ˜4J˜EJšœ œ˜Jšœœ˜:Jšœ˜Jšœœ˜Jšœœ˜4J˜DJšœ˜Jšœœ˜Jšœœ˜4J˜DJšœ˜J˜J˜Jš œ œœœœ˜0Jšœœ ˜J˜Jš œ œœœœ˜0Jšœœ ˜J˜Jšœœ˜&J˜Jšœœœ˜(J˜J˜GJ˜Jšž œœ˜J˜.J˜ J˜.J˜ J˜6J˜J˜J˜J˜1J˜Jšœ˜J˜—…— $½