http://www.adaconcept.com/programs/gyerekcsomagos/szamrendszerek-vegyes_alapu_szamrendszer-teszt.adb
with Ada.Text_IO;

package body Szamrendszerek.Vegyes_Alapu_Szamrendszer.Teszt is
   -- Itt elerhetoek a szulo csomag privat reszenek deklaracioi, ezert szokas egy adott csomaghoz tartozo teszteket egy gyerekcsomagban, vagy gyerek-eljarasban elhelyezni.
   -- Figyeljuk meg, hogy ennel a tesztelesnel a csomag implementacioja es a tesztelo kod kulonvalik (interface-en keresztul torteno teszteles...)
   -- (Azokban az esetekben, amikor ez a megoldas nem hasznalhato (egy sokkal veszelyesebb modszert kell alkalmaznunk), modositanunk kell a tesztelendo kodot, ami gyakran a kovetkezo modon tortenik:
   --  A tesztelendo csomag specifikaciojanak publikus reszeben elhelyezunk egy Teszt eljarast (amit majd a "tesztelo rendszerunk" hiv meg)
   --  Ezaltal az igy modosított kodba bekerult egy eljaras, amelynek torzse eleri a csomag torzseben hasznalt (privat) valtozokat is. Igy keszithetjuk el a teszteket...)


   -- Egy teszt mukodesi elvenek bemutatasa...
   -- inicializalas, tesztelendo kod hivasa, elvart ertek ellenorzese
   procedure Teszt is

      -- inicializalas
      Szam : Vegyes_Alapu_Szamrendszer.Vegyes_Alapu_Szam_Tipus := Vegyes_Alapu_Szamrendszer.Letrehoz((0..7 => 8));

   begin
      Ada.Text_IO.Put_Line("Teszt indul");

      -- -----------------------------------------------------------------------
      -- Elso Teszt
      -- -----------------------------------------------------------------------

      -- tesztelendo kod hivasa
      Beallit(Szam,(0,0,0,0,0,0,0,0));  -- a tomb 0 -atol indexelodik!!!

      -- elvart ertek ellenorzese
      Ada.Text_IO.Put_Line("A szam kepe: " & Vegyes_Alapu_Szamrendszer.Image(Szam));


      -- -----------------------------------------------------------------------
      -- Masodik Teszt
      -- -----------------------------------------------------------------------

      -- inicializalas
      --    fugg az elozo teszttol (ezt altalaban nem szeretjuk!!!)

      -- tesztelendo kod hivasa
      Hozzaad(Szam, 8**8 - 1);

      -- elvart ertek ellenorzese
      Ada.Text_IO.Put_Line("A szam kepe: " & Vegyes_Alapu_Szamrendszer.Image(Szam));

      -- -----------------------------------------------------------------------
      -- Harmadik Teszt
      -- -----------------------------------------------------------------------

      -- inicializalas
      --    fugg az elozo teszttol (ezt altalaban nem szeretjuk!!!)

      -- tesztelendo kod hivasa
      Hozzaad(Szam, 1);

      -- elvart ertek ellenorzese
      if Tulcsordulas(Szam) then
         Ada.Text_IO.Put_Line("Az alap teszteken atment a program... :)");
      end if;


      Ada.Text_IO.Put_Line("Teszt vege");
   end Teszt;


   procedure Teszt_Kiir(Szam : Vegyes_Alapu_Szam_Tipus) is
   begin
      Ada.Text_IO.Put_Line("Teszt_Kiir indul");

      for i in reverse Szam.Abrazolas.Szamrendszerek'Range loop
         declare
            Alap : Positive renames Szam.Abrazolas.Szamrendszerek(i);                                                  --| pelda atnevezesre
            Jegy : Natural  renames Szam.Abrazolas.Szamjegyek(i);                                                      --|
         begin
            Ada.Text_IO.Put_Line(integer'Image(i) & Positive'Image(Alap) & Natural'Image(Jegy));
         end;
      end loop;

      Ada.Text_IO.Put_Line("Teszt_Kiir vege");
   end Teszt_Kiir;


end Szamrendszerek.Vegyes_Alapu_Szamrendszer.Teszt;