DEADSOFTWARE

Добавлена функция SYSTEM.ROT
[dsw-obn.git] / Test12.obn
index 4eecfb167cdeaba601260dce51f77302351da055..74562f62e4c09611d36ce1cc2e39a3e6894e877a 100644 (file)
@@ -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.
+Проверка сдвигов.