DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 9288 (0x2448) Types: TextFile Names: »B«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00 └─ ⟦0c20f784e⟧ »DATA« └─⟦1abbe589f⟧ └─⟦49e7f20b9⟧ └─⟦this⟧
with Test_Io; use Test_Io; with Xlbt_Arithmetic; use Xlbt_Arithmetic; with Xlbt_Rm3; use Xlbt_Rm3; with Xlbt_String; use Xlbt_String; with Xlbp_Rm_Name; use Xlbp_Rm_Name; with Xlbit_Library3; use Xlbit_Library3; with Xlbmp_Debugger; procedure Rm_020 is ------------------------------------------------------------------------------ -- Tests for Xlbp_Rm_Name. ------------------------------------------------------------------------------ -- 07/05/90 GEB | Created. ------------------------------------------------------------------------------ function Class_Id (C : X_Rm_Class) return S_Long is begin return C.Id; end Class_Id; function Name_Id (N : X_Rm_Name) return S_Long is begin return N.Id; end Name_Id; function Representation_Id (R : X_Rm_Representation) return S_Long is begin return R.Id; end Representation_Id; generic What : String; type Quark is private; None : Quark; type Quark_Array is array (S_Natural range <>) of Quark; with function To_Quark (Name : X_String; Validate : Boolean) return Quark; with function To_String (Q : Quark) return X_String; with procedure To_Ql (List : X_String; Ql : out Quark_Array); with procedure To_Bql (List : X_String; Bl : out X_Rm_Binding_Array; Ql : out Quark_Array); with function Unique return Quark; with function To_Id (Q : Quark) return S_Long; procedure Test_One_Type; procedure Test_One_Type is Quark1 : Quark; Quark_List : Quark_Array (1 .. 10); Bind_List : X_Rm_Binding_Array (1 .. 10); procedure Qts (Name : X_String) is ------------------------------------------------------------------------------ -- Name - Specifies the name to use for the test -- -- Called to turn a name into a Quark and then the Quark back into a string. -- Print out the results so we can have a log of what happens. ------------------------------------------------------------------------------ begin Quark1 := To_Quark (Name, False); Put ("Named " & What & " "); Putx ('"' & Name & '"'); Put (' '); Set_Col (31); Put (To_Id (Quark1)); Put (" => "); Putx ('"' & To_String (Quark1) & '"'); New_Line; end Qts; procedure Qtl (List : X_String) is ------------------------------------------------------------------------------ -- List - Specifies a name/Quarks-list to use -- -- Called to turn a list of names into a list of Quarks. We print out the -- list and the resultant list so that we have a log of what happens. ------------------------------------------------------------------------------ begin Put (What & "-List := "); Putx ('"' & List & '"'); New_Line; To_Ql (List, Quark_List); Put ("Result =>"); New_Line; for I in Quark_List'Range loop if Quark_List (I) = None then exit; end if; Put (" "); Put (I); Put (' '); Putx ('"' & To_String (Quark_List (I)) & '"'); New_Line; end loop; New_Line; end Qtl; procedure Qtbl (List : X_String) is ------------------------------------------------------------------------------ -- List - Specifies a name/Quark-list to use -- -- Called to turn a list of names into a list of Quarks. We print out the -- list and the resultant list so that we have a log of what happens. ------------------------------------------------------------------------------ begin Put (What & "-List := "); Putx ('"' & List & '"'); New_Line; To_Bql (List, Bind_List, Quark_List); Put ("Result =>"); New_Line; for I in Quark_List'Range loop if Quark_List (I) = None then exit; end if; Put (" "); Put (I); Put (' '); Put (X_Rm_Binding'Image (Bind_List (I))); Put (' '); Putx ('"' & To_String (Quark_List (I)) & '"'); New_Line; end loop; New_Line; end Qtbl; begin ----Call X_Rm_Unique_Quark a few times and make sure that each one results -- in a new value. Section ("Unique_" & What); for I in 1 .. 5 loop Quark1 := Unique; Put ("Unique " & What & " "); Put (To_Id (Quark1)); Put (" => "); Putx ('"' & To_String (Quark1) & '"'); New_Line; end loop; ----See if we can turn strings into Quark and back again. Section ("To/From_String"); Qts ("QOne"); Qts ("RTwo"); Qts ("SThree"); Qts ("TFour"); Qts ("UAnd-A-Long-String"); Qts ("VSomething_Else"); Qts ("Wsomething_else"); ----See if we can turn those same strings into the same Quark all over again. Section ("To/From_Old_String"); Qts ("QOne"); Qts ("RTwo"); Qts ("SThree"); Qts ("TFour"); Qts ("UAnd-A-Long-String"); Qts ("VSomething_Else"); Qts ("Wsomething_else"); ----See if we can successfully parse some Quark lists. Section ("Simple " & What & " lists"); Qtl ("QOne"); Qtl ("RTwo."); Qtl ("SThree.TFour"); Qtl ("TFour.SThree.QOne.RTwo.VSomething_Else"); Qtl ("UA.UB.UC.UD.UE.UF.UG"); ----Try those same lists a Binding-Quark lists Section ("Tight " & What & "/Binding lists"); Qtbl ("QOne"); Qtbl ("RTwo."); Qtbl ("SThree.TFour"); Qtbl ("TFour.SThree.QOne.RTwo.VSomething_Else"); Qtbl ("UA.UB.UC.UD.UE.UF.UG"); ----Try those same lists a Binding-Quark lists and add some different bindings Section ("Mixed " & What & "/Binding lists"); Qtbl ("QOne"); Qtbl ("*QOne"); Qtbl (".QOne"); Qtbl ("RTwo."); Qtbl ("RTwo*"); Qtbl ("SThree.TFour"); Qtbl ("SThree*TFour"); Qtbl ("TFour.SThree.QOne.RTwo.VSomething_Else"); Qtbl ("*TFour.SThree*QOne.RTwo*VSomething_Else"); Qtbl ("UA*UB*UC*UD.UE.UF.UG"); end Test_One_Type; procedure Class_Test is new Test_One_Type (What => "Class", Quark => X_Rm_Class, None => None_X_Rm_Class, Quark_Array => X_Rm_Class_Array, To_Quark => X_Rm_String_To_Class, To_String => X_Rm_Class_To_String, To_Ql => X_Rm_String_To_Class_List, To_Bql => X_Rm_String_To_Binding_Class_List, Unique => X_Rm_Unique_Class, To_Id => Class_Id); procedure Name_Test is new Test_One_Type (What => "Name", Quark => X_Rm_Name, None => None_X_Rm_Name, Quark_Array => X_Rm_Name_Array, To_Quark => X_Rm_String_To_Name, To_String => X_Rm_Name_To_String, To_Ql => X_Rm_String_To_Name_List, To_Bql => X_Rm_String_To_Binding_Name_List, Unique => X_Rm_Unique_Name, To_Id => Name_Id); procedure Representation_Test is new Test_One_Type (What => "Representation", Quark => X_Rm_Representation, None => None_X_Rm_Representation, Quark_Array => X_Rm_Representation_Array, To_Quark => X_Rm_String_To_Representation, To_String => X_Rm_Representation_To_String, To_Ql => X_Rm_String_To_Representation_List, To_Bql => X_Rm_String_To_Binding_Representation_List, Unique => X_Rm_Unique_Representation, To_Id => Representation_Id); begin ----Set up for debugging. Xlbmp_Debugger.Register_Debugging_Imagers; -- Empty the quark map in case we're run after Rm_010. declare Quark_Map : X_Rm_Quark_Map.Map; begin X_Lib.Seize_Quark_Map (Quark_Map); X_Rm_Quark_Map.New_Map (Quark_Map); X_Lib.Release_Quark_Map (Quark_Map); end; X_Lib.Set_Next_Quark (Quark => (Id => 2000)); -- Force testing to begin with a known state. -- Applications that do this are committing -- suicide. ----Perform tests. Class_Test; Name_Test; Representation_Test; end Rm_020;