-- © Copyright 2000 by John Halleck, All Rights Reserved.
-- Test the Braille.Display package.
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Command_Line; use Ada.Command_Line;
with Braille; use Braille;
with Braille.Display; use Braille.Display;
procedure Braille_Display_TEST is
-- Local functions.
function Bad (A_Cell : Cell; A_Display : Display_Cell) return Boolean;
procedure Dump (A_Cell : Display_Cell);
-- And with the show.
Test_Status : Exit_Status := Success;
Overall_Status : Exit_Status := Success;
Result : Display_Cell;
function Bad (A_Cell : Cell; A_Display : Display_Cell) return Boolean is
begin
return (((Dot_1 and A_Cell) /= 0) xor (A_Display (1) (1) = '*'))
or else (((Dot_2 and A_Cell) /= 0) xor (A_Display (2) (1) = '*'))
or else (((Dot_3 and A_Cell) /= 0) xor (A_Display (3) (1) = '*'))
or else (((Dot_4 and A_Cell) /= 0) xor (A_Display (1) (2) = '*'))
or else (((Dot_5 and A_Cell) /= 0) xor (A_Display (2) (2) = '*'))
or else (((Dot_6 and A_Cell) /= 0) xor (A_Display (3) (2) = '*'));
end Bad;
procedure Dump (A_Cell : Display_Cell) is
begin
Put (" "); Put (String (A_Cell (1))); New_Line;
Put (" "); Put (String (A_Cell (2))); New_Line;
Put (" "); Put (String (A_Cell (3))); New_Line;
end Dump;
begin
Put_Line ("Braille.Display test starting ...");
Put (" Individual cell mapping test ...");
Test_Status := Success;
for I in Cell'(0) .. 63 loop
Result := Translate (I);
if Bad (I, Result) then
if Test_Status /= Failure then
Test_Status := Failure;
Put_Line (" *** FAILED ***");
end if;
Put (" Cell "); Put (Cell'Image (I)); Put (" produced "); New_Line;
Dump (Result);
end if;
end loop;
if Test_Status = Failure then
Overall_Status := Failure;
else
New_Line;
end if;
Test_Status := Success;
Put (" Empty cell without supression test...");
Result := Translate (Empty, False);
if Result /= Blank_Cell then
Test_Status := Failure;
Overall_Status := Failure;
Put_Line ("*** Failed ***");
Put_Line ("Got:");
Dump (Result);
Put_Line ("Expected:");
Dump (Blank_Cell);
else
New_Line;
end if;
Test_Status := Success;
Put (" Empty Cell with suppression test ...");
Result := Translate (Empty, True);
if Result /= Suppressed_Cell then
Test_Status := Failure;
Overall_Status := Failure;
Put_Line ("*** Failed ***");
Put_Line ("Got");
Dump (Result);
Put_Line ("Expected:");
Dump (Suppressed_Cell);
else
New_Line;
end if;
Put ("Braille.Display test ");
if Overall_Status = Failure then
Put ("****** FAILED ******");
else
Put ("--- Passed! ---");
end if;
New_Line;
Set_Exit_Status (Overall_Status);
end Braille_Display_TEST;
This page is http://www.cc.utah.edu/~nahaj/ada/braille/braille_display_test.adb.html
© Copyright 2000 by John Halleck, All Rights Reserved.
This snapshot was last modified on August 24th, 2000