29.1 Test FactorialStream

The Bell numbers are given by the exponential generating series e(ex1) .

705test series 686a+   (685 704)  703  706
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);
}

Uses DataStream 386, ExponentialGeneratingSeries 316, Integer 66, and Q 47.