def test_figurate(self):
"""Test that figurate outputs correct values for, n = 0..nmax, d = 1..dmax
by comparing against evaluation using explicit formulae for linear, triangular
and tetrahedral numbers, and also evaluation using math.factorial."""
nmax = 20
dmax = 20
for n in range(0,nmax):
# Linear numbers
self.assertEqual( n,figurate(n,1) )
# Triangular numbers
self.assertEqual( int( round( n*(n+1)/2 ) ), figurate(n,2) )
# Tetrahedral numbers
self.assertEqual( int( round( n*(n+1)*(n+2)/6 ) ), figurate(n,3) )
# General
for d in range(1,dmax):
self.assertEqual( self.binomial_factorial(n+d-1,d), figurate(n,d) )
评论列表
文章目录