diff --git a/Test12.obn b/Test12.obn
index 4eecfb167cdeaba601260dce51f77302351da055..74562f62e4c09611d36ce1cc2e39a3e6894e877a 100644 (file)
--- a/Test12.obn
+++ b/Test12.obn
MODULE Test12;
MODULE Test12;
+IMPORT SYSTEM, Out;
+
CONST
CONST
- icon = 32;
- ash1 = ASH(icon, -5);
- ash2 = ASH(icon, 5);
+ xConI = -33;
+ xConJ = 33;
+ nConK = -5;
+ nConL = 5;
VAR
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
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.
END Test12.
-Проверка правильности вычисления ASH.
+Проверка сдвигов.