X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=Test12.obn;h=74562f62e4c09611d36ce1cc2e39a3e6894e877a;hb=b18a306febda9b321fadd6c828fb7abc392b40c4;hp=4eecfb167cdeaba601260dce51f77302351da055;hpb=95acec6c3ae8d3c324c84b001a680aa49320790b;p=dsw-obn.git diff --git a/Test12.obn b/Test12.obn index 4eecfb1..74562f6 100644 --- a/Test12.obn +++ b/Test12.obn @@ -1,19 +1,40 @@ MODULE Test12; +IMPORT SYSTEM, Out; + CONST - icon = 32; - ash1 = ASH(icon, -5); - ash2 = ASH(icon, 5); + xConI = -33; + xConJ = 33; + nConK = -5; + nConL = 5; VAR - i : INTEGER; + i, j : HUGEINT; + +PROCEDURE Chk(a, b : HUGEINT); +BEGIN + Out.Int(a, 0); Out.String(" = "); Out.Int(b, 0); Out.Ln; + ASSERT(a = b); +END Chk; BEGIN - i := icon; - ASSERT(ash1 = 1); - ASSERT(ash2 = 1024); - ASSERT(ASH(i, -5) = 1); - ASSERT(ASH(i, 5) = 1024); + i := xConI; + j := xConJ; + + Chk(ASH(i, nConK), ASH(xConI, nConK)); + Chk(ASH(i, nConL), ASH(xConI, nConL)); + Chk(ASH(j, nConK), ASH(xConJ, nConK)); + Chk(ASH(j, nConL), ASH(xConJ, nConL)); + + Chk(SYSTEM.LSH(i, nConK), SYSTEM.LSH(xConI, nConK)); + Chk(SYSTEM.LSH(i, nConL), SYSTEM.LSH(xConI, nConL)); + Chk(SYSTEM.LSH(j, nConK), SYSTEM.LSH(xConJ, nConK)); + Chk(SYSTEM.LSH(j, nConL), SYSTEM.LSH(xConJ, nConL)); + + Chk(SYSTEM.ROT(i, nConK), SYSTEM.ROT(xConI, nConK)); + Chk(SYSTEM.ROT(i, nConL), SYSTEM.ROT(xConI, nConL)); + Chk(SYSTEM.ROT(j, nConK), SYSTEM.ROT(xConJ, nConK)); + Chk(SYSTEM.ROT(j, nConL), SYSTEM.ROT(xConJ, nConL)); END Test12. -Проверка правильности вычисления ASH. +Проверка сдвигов.