1. -- 
  2. -- Uwe R. Zimmer, Australia, 2013 
  3. -- 
  4.  
  5. with Ada.Text_IO;         use Ada.Text_IO; 
  6. with Exceptions;          use Exceptions; 
  7. with Queue_Pack_Contract; use Queue_Pack_Contract; 
  8. with System.Assertions;   use System.Assertions; 
  9.  
  10. procedure Queue_Test_Contract is 
  11.  
  12.    Queue : Queue_Type; 
  13.    Item  : Element; 
  14.  
  15. begin 
  16.    Enqueue (Item => 1, Q => Queue); 
  17.    Enqueue (Item => 2, Q => Queue); 
  18.    Enqueue (Item => 3, Q => Queue); 
  19.  
  20.    Dequeue (Item, Queue); Put (Element'Image (Item)); 
  21.    Dequeue (Item, Queue); Put (Element'Image (Item)); 
  22.    Dequeue (Item, Queue); Put (Element'Image (Item)); 
  23.  
  24.    Dequeue (Item, Queue); -- will produce an Assert_Failure 
  25.    Put (Element'Image (Item)); 
  26.  
  27.    Put ("Queue is empty on exit: "); Put (Boolean'Image (Is_Empty (Queue))); 
  28.  
  29. exception 
  30.    when Exception_Id : Assert_Failure => Show_Exception (Exception_Id); 
  31. end Queue_Test_Contract;