|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 26624 (0x6800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Condition, seg_046d4f
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Text_Io, Condition, Order, Attribute, Field_Identifier_Array, Objet,
The_Order, The_Hero, The_Place, Identifier, Moving_String, Detail,
Group_Array, Complement, Complement_Array, Enumeration_Array, Expression;
use Text_Io, Condition, Expression;
procedure Test_Condition is
O : Condition.Object := Condition.Null_Object;
O1 : Condition.Object := Condition.Null_Object;
O2 : Condition.Object := Condition.Null_Object;
O3 : Condition.Object := Condition.Null_Object;
O4 : Condition.Object := Condition.Null_Object;
O5 : Condition.Object := Condition.Null_Object;
O6 : Condition.Object := Condition.Null_Object;
O7 : Condition.Object := Condition.Null_Object;
D1 : Detail.Object;
An_Order : Order.Object;
Ia : Order.Index_Array;
A1, A2, A3, A4, A5, A6 : Attribute.Object;
Ob : Objet.Object;
Id : Identifier.Object;
Index : Natural;
Ok : Boolean;
F, L, R, F1, F2, F3, F4, F5 : Expression.Object;
begin
Enumeration_Array.Put_Literal (Identifier.From_String ("normal"),
Identifier.From_String ("fermee"), Ok);
Enumeration_Array.Put_Literal (Identifier.From_String ("normal"),
Identifier.From_String ("ouverte"), Ok);
Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
Identifier.From_String ("rouge"), Ok);
Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
Identifier.From_String ("jaune"), Ok);
Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
Identifier.From_String ("vert"), Ok);
Enumeration_Array.Put_Literal (Identifier.From_String ("couleur"),
Identifier.From_String ("bleu"), Ok);
Enumeration_Array.Show;
Field_Identifier_Array.Put (Identifier.From_String ("vie"));
Field_Identifier_Array.Put (Identifier.From_String ("nord"));
Field_Identifier_Array.Put (Identifier.From_String ("sud"));
Field_Identifier_Array.Put (Identifier.From_String ("age"));
Field_Identifier_Array.Put (Identifier.From_String ("nom"));
Field_Identifier_Array.Put (Identifier.From_String ("couleur"));
Field_Identifier_Array.Put (Identifier.From_String ("description"));
Field_Identifier_Array.Show;
Complement_Array.Put (Complement.Entity_Object,
Identifier.From_String ("gaston"), Ok);
Complement_Array.Put (Complement.Entity_Object,
Identifier.From_String ("alfred"), Ok);
Complement_Array.Put (Complement.Entity_Object,
Identifier.From_String ("table"), Ok);
Complement_Array.Put_Verb (Identifier.From_String ("courir"),
Identifier.From_String ("aller"), Ok);
Complement_Array.Put_Verb (Identifier.From_String ("aller"),
Identifier.From_String ("aller"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("de"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("nord"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("est"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("sud"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("ouest"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("vie"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("age"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("nom"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("couleur"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("description"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("porte"), Ok);
Complement_Array.Put_Word (Identifier.From_String ("trou"), Ok);
Complement_Array.Put (Complement.Place_Object,
Identifier.From_String ("cuisine"), Ok);
Complement_Array.Put (Complement.Place_Object,
Identifier.From_String ("chambre"), Ok);
Complement_Array.Put (Complement.Place_Object,
Identifier.From_String ("salon"), Ok);
Complement_Array.Create_Enumerate_Field
(Complement_Array.Index ("cuisine"),
Field_Identifier_Array.Index ("nord"), Ok);
Index := Enumeration_Array.Enum ("normal");
Complement_Array.Field_Put_Enumerate
(Complement_Array.Index ("cuisine"),
Field_Identifier_Array.Index ("nord"), Index,
Enumeration_Array.Literal (Index, "fermee"), Ok);
Complement_Array.Create_Enumerate_Field
(Complement_Array.Index ("chambre"),
Field_Identifier_Array.Index ("sud"), Ok);
Index := Enumeration_Array.Enum ("normal");
Complement_Array.Field_Put_Enumerate
(Complement_Array.Index ("chambre"),
Field_Identifier_Array.Index ("sud"), Index,
Enumeration_Array.Literal (Index, "fermee"), Ok);
Complement_Array.Put_Place (Complement_Array.Index ("gaston"),
Complement_Array.Index ("cuisine"), Ok);
Complement_Array.Create_Number_Field
(Complement_Array.Index ("gaston"),
Field_Identifier_Array.Index ("age"), Ok);
Complement_Array.Field_Put_Number
(Complement_Array.Index ("gaston"),
Field_Identifier_Array.Index ("age"), 13, Ok);
Complement_Array.Create_Number_Field
(Complement_Array.Index ("gaston"),
Field_Identifier_Array.Index ("vie"), Ok);
Complement_Array.Field_Put_Number
(Complement_Array.Index ("gaston"),
Field_Identifier_Array.Index ("vie"), 123, Ok);
Complement_Array.Create_Enumerate_Field
(Complement_Array.Index ("gaston"),
Field_Identifier_Array.Index ("couleur"), Ok);
Index := Enumeration_Array.Enum ("couleur");
Complement_Array.Field_Put_Enumerate
(Complement_Array.Index ("gaston"),
Field_Identifier_Array.Index ("couleur"), Index,
Enumeration_Array.Literal (Index, "rouge"), Ok);
Complement_Array.Put_Place (Complement_Array.Index ("gaston"),
Complement_Array.Index ("cuisine"), Ok);
Complement_Array.Put_Place (Complement_Array.Index ("table"),
Complement_Array.Index ("cuisine"), Ok);
Complement_Array.Create_Sentence_Field
(Complement_Array.Index ("cuisine"),
Field_Identifier_Array.Index ("description"), Ok);
Complement_Array.Field_Put_Sentence
(Complement_Array.Index ("cuisine"),
Field_Identifier_Array.Index ("description"),
Identifier.From_String ("C'est une belle cuisine"), Ok);
Complement_Array.Put_Exit (Complement_Array.Index ("cuisine"),
Complement_Array.Index ("porte"),
Complement_Array.Index ("cuisine"),
Complement_Array.Index ("nord"),
Complement_Array.Index ("chambre"),
Complement_Array.Index ("sud"), Ok);
-- Complement_Array.Put_Exit (Complement_Array.Index ("cuisine"),
-- Complement_Array.Index ("trou"),
-- Complement_Array.Index ("cuisine"),
-- Complement_Array.Index ("ouest"),
-- Complement_Array.Index ("salon"),
-- Complement_Array.Index ("est"), Ok);
Complement_Array.Create_Sentence_Field
(Complement_Array.Index ("chambre"),
Field_Identifier_Array.Index ("description"), Ok);
Complement_Array.Field_Put_Sentence
(Complement_Array.Index ("chambre"),
Field_Identifier_Array.Index ("description"),
Identifier.From_String ("C'est une belle et grande chambre"), Ok);
Complement_Array.Put_Exit (Complement_Array.Index ("chambre"),
Complement_Array.Index ("porte"),
Complement_Array.Index ("chambre"),
Complement_Array.Index ("sud"),
Complement_Array.Index ("cuisine"),
Complement_Array.Index ("nord"), Ok);
Complement_Array.Create_Sentence_Field
(Complement_Array.Index ("salon"),
Field_Identifier_Array.Index ("description"), Ok);
Complement_Array.Field_Put_Sentence
(Complement_Array.Index ("salon"),
Field_Identifier_Array.Index ("description"),
Identifier.From_String ("C'est un grand salon"), Ok);
-- Complement_Array.Put_Exit (Complement_Array.Index ("salon"),
-- Complement_Array.Index ("trou"),
-- Complement_Array.Index ("salon"),
-- Complement_Array.Index ("est"),
-- Complement_Array.Index ("cuisine"),
-- Complement_Array.Index ("ouest"), Ok);
Identifier.Put (Id, "salle");
Group_Array.Put (Id, Complement_Array.Index ("chambre"), Ok);
Group_Array.Put (Id, Complement_Array.Index ("salon"), Ok);
Group_Array.Put (Id, Complement_Array.Index ("cuisine"), Ok);
Group_Array.Show;
Identifier.Put (Id, "nombre");
Group_Array.Put (Id, Complement_Array.Index ("vie"), Ok);
Group_Array.Put (Id, Complement_Array.Index ("age"), Ok);
Group_Array.Show;
-- Complement_Array.Show;
Order.Put_Place (An_Order, Moving_String.From_String ("cuisine"));
Order.Put_First_Complement (An_Order, Moving_String.From_String ("aller"));
Order.Put_Second_Complement (An_Order, Moving_String.From_String ("nord"));
Order.Put_Third_Complement (An_Order,
Moving_String.From_String ("cuisine"));
Order.Put_Fourth_Complement (An_Order, Moving_String.From_String (""));
Ia := (1, 2, 3, 3, 4);
Order.Put_Redirection (An_Order, Ia);
The_Order.Put (An_Order);
The_Order.Show;
The_Hero.Put (Complement_Array.Index ("gaston"));
Put_Line ("index the hero : " & Natural'Image (The_Hero.Index));
The_Hero.Show;
The_Place.Put (Complement_Array.Index ("cuisine"));
Put_Line ("index the place : " & Natural'Image (The_Place.Index));
The_Place.Show;
Objet.Create_Real (Ob, Complement_Array.Index ("gaston"));
Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("age"));
Attribute.Put (A1, Ob, D1);
Attribute.Show (A1);
Objet.Create_Real (Ob, Complement_Array.Index ("gaston"));
Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("nord"));
Attribute.Put (A5, Ob, D1);
Attribute.Show (A5);
Objet.Create_Group (Ob, 5);
Detail.Create_Field_Group (D1, 3);
Attribute.Put (A2, Ob, D1);
Attribute.Show (A2);
Objet.Create_Hero (Ob);
Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("couleur"));
Attribute.Put (A3, Ob, D1);
Attribute.Show (A3);
Objet.Create_Place (Ob);
Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("nord"));
Attribute.Put (A4, Ob, D1);
Attribute.Show (A4);
Expression.Create (F4, Enumeration_Array.Enum ("normal"),
Enumeration_Array.Literal
(Enumeration_Array.Enum ("normal"), "ouverte"));
--Put_Line ("1 evaluate f4 : " & Integer'Image (Evaluate (F4)));
Expression.Show (F4);
Expression.Create (F5, Enumeration_Array.Enum ("normal"),
Enumeration_Array.Literal
(Enumeration_Array.Enum ("normal"), "fermee"));
--Put_Line ("2 evaluate f5 : " & Integer'Image (Evaluate (F5)));
Expression.Show (F5);
Expression.Create (L, 5);
Expression.Create (R, 8);
Expression.Create (F1, Add, L, R, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Put_Line ("3 evaluate f1 : " & Integer'Image (Evaluate (F1)));
Expression.Show (F1);
Expression.Create (F2, Substract, L, R, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Put_Line ("4 evaluate f2 : " & Integer'Image (Evaluate (F2)));
Expression.Show (F2);
Expression.Create (L, A1);
Expression.Create (R, 3);
Expression.Create (F3, Add, L, R, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Put_Line ("5 evaluate f3 : " & Integer'Image (Evaluate (F3)));
Expression.Show (F3);
Expression.Create (L, 3);
Expression.Create (R, 10);
Expression.Create (F, Add, L, R, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Create_Compare (O2, A1, Condition.Visible.Equal, F, Ok); -- vrai
Put_Line ("6 ok : " & Boolean'Image (Ok));
Show (O2);
Put_Line ("7 is right: " & Boolean'Image (Is_Right (O2)));
Expression.Create (L, 10);
Expression.Create (R, 20);
Expression.Create (F, Add, L, R, Ok);
Put_Line ("show vide");
Show (O);
Put_Line ("8 is right vide : " & Boolean'Image (Is_Right (O)));
Create_Compare (O, A1, Condition.Visible.Less, F, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("9 is right: " & Boolean'Image (Is_Right (O)));
Create_Compare (O1, A4, Condition.Visible.Equal, F4, Ok); -- faux
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O1);
Put_Line ("10 is right: " & Boolean'Image (Is_Right (O1)));
Create_Compare (O1, A4, Condition.Visible.Not_Equal, F4, Ok); -- vrai
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O1);
Put_Line ("11 is right: " & Boolean'Image (Is_Right (O1)));
Create_Compare (O1, A4, Condition.Visible.Less, F4, Ok); -- ok : faux
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O1);
Put_Line ("12 is right: " & Boolean'Image (Is_Right (O1)));
Create_Compare (O, A4, Condition.Visible.Equal, F5, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("13 is right: " & Boolean'Image (Is_Right (O)));
Create_Compare (O, A1, Condition.Visible.Greater, F, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("14 is right: " & Boolean'Image (Is_Right (O)));
Create_Compare (O, A1, Condition.Visible.Less_Equal, F, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("15 is right: " & Boolean'Image (Is_Right (O)));
Create_Compare (O, A1, Condition.Visible.Greater_Equal, F, Ok);
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("16 is right: " & Boolean'Image (Is_Right (O)));
Create_Compare (O, A1, Condition.Visible.Greater_Equal, F4, Ok); -- enumere
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("17 is right: " & Boolean'Image (Is_Right (O)));
Create_Compare (O, A2, Condition.Visible.Not_Equal, F, Ok); --enumere
Put_Line ("ok : " & Boolean'Image (Ok));
Show (O);
Put_Line ("18 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("gaston"));
Create_Hero (O, D1);
Show (O);
Put_Line ("19 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("alfred"));
Create_Hero (O, D1);
Show (O);
Put_Line ("20 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("chambre"));
Create_Place (O, D1);
Show (O);
Put_Line ("21 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("cuisine"));
Create_Place (O, D1);
Show (O);
Put_Line ("22 is right: " & Boolean'Image (Is_Right (O)));
Create_Actions (O, 3);
Show (O);
Put_Line ("23 is right: " & Boolean'Image (Is_Right (O)));
Create_Actions (O, 4);
Show (O);
Put_Line ("24 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("gaston"));
Create_Meet (O, D1);
Show (O);
Put_Line ("25 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("table"));
Create_Meet (O, D1);
Show (O);
Put_Line ("25 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("alfred"));
Create_Meet (O, D1);
Show (O);
Put_Line ("26 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("alfred"));
Create_Belong (O, Ob, D1, Condition.Visible.No); -- ob cuisine
Show (O);
Put_Line ("27 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("alfred"));
Create_Belong (O, Ob, D1, Condition.Visible.Yes); -- ob cuisine
Show (O);
Put_Line ("28 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("gaston"));
Create_Belong (O, Ob, D1, Condition.Visible.Yes);
Show (O);
Put_Line ("29 is right: " & Boolean'Image (Is_Right (O)));
Create_Attribute_Exist (O3, A3, Condition.Visible.Yes); -- vrai
Show (O3);
Put_Line ("30 is right: " & Boolean'Image (Is_Right (O3)));
Create_Attribute_Exist (O, A3, Condition.Visible.No);
Show (O);
Put_Line ("31 is right: " & Boolean'Image (Is_Right (O)));
Create_Attribute_Exist (O, A5, Condition.Visible.Yes);
Show (O);
Put_Line ("32 is right: " & Boolean'Image (Is_Right (O)));
Create_Attribute_Exist (O, A4, Condition.Visible.Yes);
Show (O);
Put_Line ("33 is right: " & Boolean'Image (Is_Right (O)));
Create_Exits_Exist (O, Ob, Condition.Visible.Yes);
Show (O);
Put_Line ("34 is right: " & Boolean'Image (Is_Right (O)));
Create_Exits_Exist (O, Ob, Condition.Visible.No);
Show (O);
Put_Line ("35 is right: " & Boolean'Image (Is_Right (O)));
Objet.Create_Real (Ob, Complement_Array.Index ("salon"));
Create_Exits_Exist (O, Ob, Condition.Visible.Yes);
Show (O);
Put_Line ("36 is right: " & Boolean'Image (Is_Right (O)));
Objet.Create_Real (Ob, Complement_Array.Index ("salon"));
Create_Exits_Exist (O, Ob, Condition.Visible.No);
Show (O);
Put_Line ("37 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("gaston"));
Create_Subject_Exist (O, D1, Condition.Visible.Yes);
Show (O);
Put_Line ("38 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement (D1, Complement_Array.Index ("gaston"));
Create_Subject_Exist (O, D1, Condition.Visible.No);
Show (O);
Put_Line ("39 is right: " & Boolean'Image (Is_Right (O)));
Detail.Create_Real_Complement
(D1, Complement_Array.Index ("alfred")); -- place de alfred = 0
Create_Subject_Exist (O, D1, Condition.Visible.Yes);
Show (O);
Put_Line ("40 is right: " & Boolean'Image (Is_Right (O)));
Put_Line ("o1 faux, o2 vrai, o3 vrai");
Show (O1);
Put_Line ("o1 is right : " & Boolean'Image (Is_Right (O1)));
Show (O2);
Put_Line ("o2 is right : " & Boolean'Image (Is_Right (O2)));
Show (O3);
Put_Line ("o3 is right : " & Boolean'Image (Is_Right (O3)));
Create (O, Condition.Ou, O1, O2);
Put_Line ("o1 ou o2 is right: " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Et, O, O3);
Put_Line ("o3 et (o1 ou o2) : " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Ou, O1, O2);
Put_Line ("o2 ou o1 is right: " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Et, O, O1);
Put_Line ("o1 et (o1 ou o2) : " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Et, O3, O2);
Put_Line ("o2 ou o3 is right: " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Ou, O, O1);
Put_Line ("o1 ou (o3 et o2) : " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Ou, O1, O2);
Put_Line ("o1 ou o2 is right: " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Et, O, O1);
Put_Line ("o1 et (o1 ou o2) : " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Ou, O1, O2);
Put_Line ("o1 ou 02 is right: " & Boolean'Image (Is_Right (O)));
Create (O, Condition.Ou, O, O1);
Put_Line ("o1 ou (o1 ou o2) : " & Boolean'Image (Is_Right (O)));
end Test_Condition;
nblk1=19
nid=0
hdr6=32
[0x00] rec0=18 rec1=00 rec2=01 rec3=05e
[0x01] rec0=08 rec1=00 rec2=12 rec3=016
[0x02] rec0=0f rec1=00 rec2=0f rec3=07e
[0x03] rec0=11 rec1=00 rec2=0e rec3=052
[0x04] rec0=11 rec1=00 rec2=11 rec3=02c
[0x05] rec0=16 rec1=00 rec2=0d rec3=04a
[0x06] rec0=16 rec1=00 rec2=13 rec3=00c
[0x07] rec0=13 rec1=00 rec2=02 rec3=036
[0x08] rec0=12 rec1=00 rec2=04 rec3=088
[0x09] rec0=15 rec1=00 rec2=15 rec3=076
[0x0a] rec0=1b rec1=00 rec2=0a rec3=044
[0x0b] rec0=1d rec1=00 rec2=10 rec3=006
[0x0c] rec0=16 rec1=00 rec2=14 rec3=014
[0x0d] rec0=00 rec1=00 rec2=19 rec3=00e
[0x0e] rec0=1e rec1=00 rec2=09 rec3=02e
[0x0f] rec0=00 rec1=00 rec2=06 rec3=014
[0x10] rec0=19 rec1=00 rec2=16 rec3=042
[0x11] rec0=19 rec1=00 rec2=05 rec3=04e
[0x12] rec0=1f rec1=00 rec2=17 rec3=006
[0x13] rec0=18 rec1=00 rec2=03 rec3=03c
[0x14] rec0=06 rec1=00 rec2=0c rec3=008
[0x15] rec0=1b rec1=00 rec2=08 rec3=044
[0x16] rec0=19 rec1=00 rec2=07 rec3=00a
[0x17] rec0=1b rec1=00 rec2=18 rec3=02e
[0x18] rec0=06 rec1=00 rec2=0b rec3=000
tail 0x21749af60865243d2d328 0x42a00088462060003