Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  trace.tst   Sprache: unbekannt

 
#@local fam,cat,type,a,testTrace
gap> START_TEST("trace.tst");

#
gap> TraceImmediateMethods( "cheese" );
Error, Usage: TraceImmediateMethods( [bool] )

#
gap> fam := NewFamily("MockFamily");;
gap> cat := NewCategory("IsMockObj",
>               IsMultiplicativeElementWithInverse and
>               IsAdditiveElementWithInverse and
>               IsCommutativeElement and
>               IsAssociativeElement and
>               IsAdditivelyCommutativeElement);;
gap> type := NewType(fam, cat and IsAttributeStoringRep);;

#
gap> TraceImmediateMethods(true);

# add immediate method that requires extra filter
gap> InstallImmediateMethod( Size, "for abelian mockobj", cat and IsAbelian, 0, x -> 1 );
gap> a := Objectify(type,rec());;
gap> Size(a);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `Size' on 1 arguments
gap> SetIsAbelian(a, true);
#I RunImmediateMethods
#I  immediate: Size: for abelian mockobj at stream:1
gap> Size(a);
1

# add immediate method that requires no extra filter
gap> InstallImmediateMethod( Size, cat, 0, x -> 42 );
gap> a := Objectify(type,rec());;
#I RunImmediateMethods
#I  immediate: Size at stream:1
gap> Size(a);
42
gap> SetIsAbelian(a, true);
#I RunImmediateMethods
gap> Size(a);
42

#
gap> TraceImmediateMethods(false);

#
gap> testTrace := function(f)
> TraceInternalMethods();
> f();
> UntraceInternalMethods();
> return GetTraceInternalMethodsCounts();
> end;;
gap> testTrace({} -> [1,2]+[3,4]);
rec( Sum := rec( ("dense plain list") := rec( ("dense plain list") := 1 ), 
      integer := rec( integer := 2 ) ) )
gap> testTrace({} -> 2^(3,4,5));
rec( Pow := rec( integer := rec( ("permutation (small)") := 1 ) ) )
gap> testTrace({} -> [4,3] - [2,3]);
rec( AInvSameMut := rec( ("dense plain list") := 1, integer := 2 ), 
  Diff := rec( ("dense plain list") := rec( ("dense plain list") := 1 ) ), 
  Sum := rec( ("dense plain list") := rec( ("dense plain list") := 1 ), 
      integer := rec( integer := 2 ) ) )
gap> testTrace({} -> Inverse(3));
rec( Inv := rec( integer := 1 ) )
gap> testTrace({} -> Inverse(PartialPerm([1,2,3])));
rec( Inv := rec( ("partial perm (small)") := 1 ) )
gap> testTrace({} -> AdditiveInverse(2/3));
rec( AInvMut := rec( rational := 1 ), 
  Quo := rec( integer := rec( integer := 1 ) ) )
gap> testTrace({} -> AdditiveInverse([2,3,4]));
rec( AInvMut := rec( integer := 3, ("plain list of cyclotomics") := 1 ) )
gap> testTrace({} -> Inverse([[1,0],[0,1]]));
rec( AInvSameMut := rec( integer := 4 ), 
  Inv := rec( ("dense plain list") := 1, integer := 2 ), 
  Mod := rec( integer := rec( integer := 1 ) ), One := rec( integer := 1 ), 
  Prod := rec( integer := rec( integer := 8 ) ), 
  ZeroSameMut := rec( integer := 1 ) )
gap> testTrace({} -> 55/2 mod 7);
rec( Mod := rec( rational := rec( integer := 1 ) ), 
  Quo := rec( integer := rec( integer := 1 ) ) )
gap> testTrace({} -> Comm(Transformation([1,2,3]), Transformation([3,2,1])));
rec( 
  Comm := 
    rec( ("transformation (small)") := rec( ("transformation (small)") := 1 ) 
     ), Inv := rec( ("transformation (small)") := 1 ), 
  InvSameMut := rec( ("transformation (small)") := 1 ), 
  LQuo := 
    rec( ("transformation (small)") := rec( ("transformation (small)") := 1 ) 
     ), 
  Prod := 
    rec( ("transformation (small)") := rec( ("transformation (small)") := 3 ) 
     ) )
gap> testTrace({} -> OneMutable(1/2));
rec( One := rec( rational := 1 ), 
  Quo := rec( integer := rec( integer := 1 ) ) )
gap> testTrace({} -> OneMutable([[1,2],[3,4]]));
rec( Mod := rec( integer := rec( integer := 1 ) ), 
  One := rec( ("dense plain list") := 1, integer := 1 ), 
  ZeroSameMut := rec( integer := 1 ) )
gap> testTrace({} -> ZeroMutable(1/2));
rec( Quo := rec( integer := rec( integer := 1 ) ), 
  ZeroMut := rec( rational := 1 ) )
gap> testTrace({} -> ZeroMutable([[1,2],[3,4]]));
rec( ZeroMut := rec( ("dense plain list") := 3, integer := 4 ) )
gap> testTrace({} -> LeftQuotient(4,2));
rec( InvSameMut := rec( integer := 1 ), 
  LQuo := rec( integer := rec( integer := 1 ) ), 
  Prod := rec( rational := rec( integer := 1 ) ) )
gap> STOP_TEST("trace.tst");

[ Dauer der Verarbeitung: 0.28 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge