DEADSOFTWARE

Добавлена функция SYSTEM.LSH
[dsw-obn.git] / Test12.obn
index 4eecfb167cdeaba601260dce51f77302351da055..05273a2d7d519c39122ecf1d524a6f6a58a9d5bb 100644 (file)
@@ -1,19 +1,31 @@
 MODULE Test12;
 
+IMPORT SYSTEM;
+
 CONST
-  icon = 32;
-  ash1 = ASH(icon, -5);
-  ash2 = ASH(icon, 5);
+  con  = -32;
+  comp = 32;
 
 VAR
-  i : INTEGER;
+  i, j : INTEGER;
 
 BEGIN
-  i := icon;
-  ASSERT(ash1 = 1);
-  ASSERT(ash2 = 1024);
-  ASSERT(ASH(i, -5) = 1);
-  ASSERT(ASH(i, 5) = 1024);
+  i := con;
+  j := comp;
+
+  ASSERT(ASH(i, -5) = ASH(con, -5));
+  ASSERT(ASH(i,  5) = ASH(con,  5));
+  ASSERT(ASH(j, -5) = ASH(comp, -5));
+  ASSERT(ASH(j,  5) = ASH(comp,  5));
+
+(*
+  (* Константы вычисляются с максимальной точностью, поэтому всегда провал  *)
+  ASSERT(SYSTEM.LSH(i, -5) = SYSTEM.LSH(con, -5));
+*)
+
+  ASSERT(SYSTEM.LSH(i,  5) = SYSTEM.LSH(con,  5));
+  ASSERT(SYSTEM.LSH(j, -5) = SYSTEM.LSH(comp, -5));
+  ASSERT(SYSTEM.LSH(j,  5) = SYSTEM.LSH(comp,  5));
 END Test12.
 
-Проверка правильности вычисления ASH.
+Проверка сдвигов.