%------------------------------------------------------------------
%---
%--- Combinat
%--- Copyright (C) Ralf Hemmecke <address@hidden>
%--- svn co svn://svn.risc.uni-linz.ac.at/hemmecke/combinat/
%---
%------------------------------------------------------------------
This file test generating series.
Since our implementations of \useterm[ordinary]{ordinary generating series} and
\useterm{exponential generating series} rely on the implementation of
\useterm{formal power series} as given in \srcfile{src/gseries.as} we
only test \adname[ExponentialGeneratingSeries]{factorialStream} and
some \useterm{cycle index series}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Test Generating Series}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\addescribetype{TestGeneratingSeries}
%CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
<<*>>=
-------------------------------------------------------------------
----
---- Combinat
---- Copyright (C) Ralf Hemmecke <address@hidden>
---- svn co svn://svn.risc.uni-linz.ac.at/hemmecke/combinat/
----
-------------------------------------------------------------------
#assert DontNeedLibraryTestCases
#include "testcases"
TestGeneratingSeries: TestCaseType with {
#include "gseries.signatures.as"
} == add {
import from TestCaseTools;
import from Integer, DataStream Integer, I;
<<test series>>
}
@ %def TestGeneratingSeries
%TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Test FactorialStream}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The \useterm[Bell numbers]{Bell number} are given by the
\useterm{exponential generating series} $e^{(e^x-1)}$.
\addefinename{testComposeBell:()->()}%
%CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
<<test series>>=
testComposeBell(): () == {
macro S == ExponentialGeneratingSeries;
import from S, Q, DataStream Q;
expx: S := stream(inv(fn) for fn in factorialStream) :: S;
e: S := term(-1, 0);
t: S := e + expx; -- (-1+exp(x))
assertEquals(Integer, 0, count(t, 0));
u := compose(expx, t);
l1: List Integer := [1,1,2,5,15,52,203,877,4140,21147,115975];
l2: List Integer := [count(u, i) for i in 0..prev #l1];
assertEquals(List Integer, l1, l2);
}
@
%TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
_______________________________________________
Axiom-developer mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/axiom-developer