-- $Date: 2003/12/28 07:08:46 $
-- $Revision: 1.5 $
-- $Author: jcrocholl $

with Ada.Text_IO;

with Integer_Heaps; use Integer_Heaps;

procedure Test_Suite is
   H : Heap;
begin
   pragma Assert(Count(H) = 0);

   Insert(H, 1); Debug(H);
   Insert(H, 8); Debug(H);
   Insert(H, 7); Debug(H);
   Insert(H, 9); Debug(H);
   Insert(H, 2); Debug(H);
   Insert(H, 6); Debug(H);
   Insert(H, 4); Debug(H);
   Insert(H, 3); Debug(H);
   Insert(H, 5); Debug(H);
   pragma Assert(Count(H) = 9);

   Resize(H, 12); Debug(H); -- from 16 to 12
   pragma Assert(Count(H) = 9);

   Resize(H, 8); Debug(H); -- cut of the last item: 5
   pragma Assert(Count(H) = 8);

   pragma Assert(Extract(H) = 1); Debug(H);
   pragma Assert(Extract(H) = 2); Debug(H);
   pragma Assert(Extract(H) = 3); Debug(H);
   pragma Assert(Extract(H) = 4); Debug(H);
   -- pragma Assert(Extract(H) = 5); Debug(H);
   pragma Assert(Extract(H) = 6); Debug(H);
   pragma Assert(Extract(H) = 7); Debug(H);
   pragma Assert(Extract(H) = 8); Debug(H);
   pragma Assert(Extract(H) = 9); Debug(H);
   pragma Assert(Count(H) = 0);

   pragma Debug(Ada.Text_IO.Put_Line("all tests succeeded"));
end Test_Suite;