home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / ADAUTIL / BOTEST.ADA < prev    next >
Encoding:
Text File  |  1990-06-28  |  3.6 KB  |  108 lines

  1. with text_io;  use text_io;
  2. with bit_ops;
  3. procedure botest is
  4. begin
  5.   put_line("TEST ""AND""");
  6.   declare
  7.     use bit_ops;
  8.     r: integer;
  9.   begin
  10.     r := 0 and 0;       put_line("0 and 0 = <0>: " & integer'image(r));
  11.     r := 0 and 1;       put_line("0 and 1 = <0>: " & integer'image(r));
  12.     r := 1 and 0;       put_line("1 and 0 = <0>: " & integer'image(r));
  13.     r := 1 and 1;       put_line("1 and 1 = <1>: " & integer'image(r));
  14.  
  15.     r := r and 16#7F#;  put_line("1 and 16#7F# = <1>: " & integer'image(r));
  16.   end;
  17.  
  18.   put_line("TEST ""NOT""");
  19.   declare
  20.     use bit_ops;
  21.     r: integer;
  22.     rl: long_integer;
  23.   begin
  24.     r := not 0; put_line("not 0 = <-1>: " & integer'image(r));
  25.     r := not 1; put_line("not 1 = <-2>: " & integer'image(r));
  26.  
  27.     rl := not 0; put_line("(long) not 0 = <-1>: " & long_integer'image(rl));
  28.     rl := not 1; put_line("(long) not 1 = <-2>: " & long_integer'image(rl));
  29.   end;
  30.  
  31.   put_line("TEST ""OR""");
  32.   declare
  33.     use bit_ops;
  34.     r: integer;
  35.   begin
  36.     r := 0 or 0;       put_line("0 or 0 = <0>: " & integer'image(r));
  37.     r := 0 or 1;       put_line("0 or 1 = <1>: " & integer'image(r));
  38.     r := 1 or 0;       put_line("1 or 0 = <1>: " & integer'image(r));
  39.     r := 1 or 1;       put_line("1 or 1 = <1>: " & integer'image(r));
  40.  
  41.     r := r or 16#7F#;  put_line("1 or 16#7F# = <127>: " & integer'image(r));
  42.   end;
  43.  
  44.  
  45.   put_line("TEST SHL");
  46.   declare
  47.     use bit_ops;
  48.     r: integer;
  49.     rl: long_integer;
  50.   begin
  51.     r := shl(integer'(1), 1);
  52.     put_line("shl(integer'(1), 1) = <2>: " & integer'image(r));
  53.     r := shl(integer'(1), integer'size - 2);
  54.     put_line("shl(integer'(1), integer'size - 2) = <16_384>: "
  55.             & integer'image(r));
  56.     r := shl(integer'(1), 0);
  57.     put_line("shl(integer'(1), 0) = <1>: " & integer'image(r));
  58.  
  59.     rl := shl(long_integer'(1), 1);
  60.     put_line("shl(long_integer'(1), 1) = <2>: " & long_integer'image(rl));
  61.     rl := shl(long_integer'(1), long_integer'size - 2);
  62.     put_line("shl(long_integer'(1), long_integer'size - 2) = "&
  63.             "<1_073_741_824>: " & long_integer'image(rl));
  64.     rl := shl(long_integer'(1), 0);
  65.     put_line("shl(long_integer'(1), 0) = <1>: " & long_integer'image(rl));
  66.   end;
  67.  
  68.   put_line("TEST SHR");
  69.   declare
  70.     use bit_ops;
  71.     r: integer;
  72.     rl: long_integer;
  73.   begin
  74.     r := shr(integer'(1), 1);
  75.     put_line("shr(integer'(1), 1) = <0>: " & integer'image(r));
  76.     r := shr(integer'(16#4000#), integer'size - 2);
  77.     put_line("shr(integer'(16#4000#), integer'size - 2) = <1>: " &
  78.            integer'image(r));
  79.     r := shr(integer'(1), 0);
  80.     put_line("shl(integer'(1), 0) = <1>: " & integer'image(r));
  81.  
  82.     rl := shr(long_integer'(1), 1);
  83.     put_line("shr(long_integer'(1), 1) = <0>: " & long_integer'image(rl));
  84.     rl := shr(long_integer'(16#4000_0000#), long_integer'size - 2);
  85.     put_line("shr(long_integer'(16#4000_0000#), long_integer'size - 2) " &
  86.             "= <1>: " & long_integer'image(rl));
  87.     rl := shr(long_integer'(1), 0);
  88.     put_line("shr(long_integer'(1), 0) = <1>: " & long_integer'image(rl));
  89.   end;
  90.  
  91.   put_line("TEST ""XOR""");
  92.   declare
  93.     use bit_ops;
  94.     r: integer;
  95.   begin
  96.     r := 0 xor 0;       put_line("0 xor 0 = <0>: " & integer'image(r));
  97.     r := 0 xor 1;       put_line("0 xor 1 = <1>: " & integer'image(r));
  98.     r := r xor 16#A5#;  put_line("1 xor 16#A5# = <164>: " & integer'image(r));
  99.     r := 1 xor 0;       put_line("1 xor 0 = <1>: " & integer'image(r));
  100.     r := 1 xor 1;       put_line("1 xor 1 = <0>: " & integer'image(r));
  101.  
  102.     r := r xor 16#A5#;  put_line("0 xor 16#A5# = <165>: " & integer'image(r));
  103.   end;
  104.  
  105.  
  106.   put_line("---END TESTS---");
  107. end botest;
  108.