[Scipy-svn] r6255 - trunk/scipy/special/tests

scipy-svn@scip... scipy-svn@scip...
Tue Mar 16 20:46:41 CDT 2010


Author: matthew.brett@gmail.com
Date: 2010-03-16 20:46:41 -0500 (Tue, 16 Mar 2010)
New Revision: 6255

Modified:
   trunk/scipy/special/tests/test_basic.py
Log:
TEST - selected tests of spherical harmonics from Wikipedia spherical harmonics table

Modified: trunk/scipy/special/tests/test_basic.py
===================================================================
--- trunk/scipy/special/tests/test_basic.py	2010-03-09 13:31:00 UTC (rev 6254)
+++ trunk/scipy/special/tests/test_basic.py	2010-03-17 01:46:41 UTC (rev 6255)
@@ -2017,11 +2017,42 @@
         # correctly written.
         rndrl = (10,10,10,11)
         assert_array_equal(rnd,rndrl)
+        
 
+def test_sph_harm():
+    # Tests derived from tables in
+    # http://en.wikipedia.org/wiki/Table_of_spherical_harmonics
+    sh = sph_harm
+    pi = np.pi
+    exp = np.exp
+    sqrt = np.sqrt
+    sin = np.sin
+    cos = np.cos
+    yield (assert_array_almost_equal, sh(0,0,0,0),
+           0.5/sqrt(pi))
+    yield (assert_array_almost_equal, sh(-2,2,0.,pi/4),
+           0.25*sqrt(15./(2.*pi))*
+           (sin(pi/4))**2.)
+    yield (assert_array_almost_equal, sh(-2,2,0.,pi/2),
+           0.25*sqrt(15./(2.*pi)))
+    yield (assert_array_almost_equal, sh(2,2,pi,pi/2),
+           0.25*sqrt(15/(2.*pi))*
+           exp(0+2.*pi*1j)*sin(pi/2.)**2.)
+    yield (assert_array_almost_equal, sh(2,4,pi/4.,pi/3.),
+           (3./8.)*sqrt(5./(2.*pi))*
+           exp(0+2.*pi/4.*1j)*
+           sin(pi/3.)**2.*
+           (7.*cos(pi/3.)**2.-1))
+    yield (assert_array_almost_equal, sh(4,4,pi/8.,pi/6.),
+           (3./16.)*sqrt(35./(2.*pi))*
+           exp(0+4.*pi/8.*1j)*sin(pi/6.)**4.)
+
+
 class TestSpherical(TestCase):
     def test_sph_harm(self):
+        # see test_sph_harm function
         pass
-
+    
     def test_sph_in(self):
         i1n = sph_in(1,.2)
         inp0 = (i1n[0][1])



More information about the Scipy-svn mailing list