http://www.adaconcept.com/programs/elfedes_es_atadas/alap_csomag-teszt.adb
-- Megjegyzes: ez egy parameter nelkuli eljaras (ami akar a foprogramunk is lehetne...)
procedure Alap_Csomag.Teszt is
type Teszt_Eredmeny_Tipus is (Atment_A_Teszten, Nem_Ment_At_A_Teszten);
function Mukodese_Helyes return Teszt_Eredmeny_Tipus renames Atment_A_Teszten; -- | felsorolasi tipus ertek atnevezese fuggvennyel
function Mukodese_Helytelen return Teszt_Eredmeny_Tipus renames Nem_Ment_At_A_Teszten; -- |
begin
-- Ada.Text_IO.Put_Line("Teszt"); -- termeszetesen itt sem erjuk el kozvetlenul a csomagot
Atnevezett_Ada_Text_IO.Put_Line("Teszt indul");
-- A teszteles menete:
-- inicializalas, tesztelendo kod hivasa, elvart ertek ellenorzese
-- Mindig figyeljunk oda, hogy mi az pontosan, amit le szeretnenk tesztelni!
-- FIGYELEM!!!
-- Nem "egesz ertekek" (Standard.Float) osszehasonlitasanak eredmenye kulonbozo rendszereken es
-- kolonbozo forditok eseten mas es mas lehet.
-- Az, hogy mikor tekintunk ket Standard.Float tipusu erteket egyenlonek nagyban fugg a feladattol!
-- Itt es most, hogy ravilagitsunk a problemara ezt a megvalositast valasztottuk.
if abs(Float((1,3)) - (1.0 / 3.0)) < Standard.Float'Epsilon then -- FIGYELEM!!! a "-" is egy nagyon veszelyes muvelet ilyen szamoknal! az 1/3 nem veletlen, az 1/2 eseten mas lenne a helyzet :)
Atnevezett_Ada_Text_IO.Put_Line("A Float fuggveny: " & Teszt_Eredmeny_Tipus'Image(Mukodese_Helyes));
else
Atnevezett_Ada_Text_IO.Put_Line("A Float fuggveny: " & Teszt_Eredmeny_Tipus'Image(Mukodese_Helytelen));
end if;
Atnevezett_Ada_Text_IO.Put_Line("!!!!!!!");
Atnevezett_Ada_Text_IO.Put_Line("A teszt eredmenye pl. a Float((1,3)) = (1.0 / 3.0) feltetellel kulonbozo rendszereken es kolonbozo forditok eseten mas es mas lehet!!!");
Atnevezett_Ada_Text_IO.Put_Line("!!!!!!!");
Atnevezett_Ada_Text_IO.Put_Line("Teszt vege");
end Alap_Csomag.Teszt;