Index: sansmodels/src/sans/models/test/utest_dispersity.py
===================================================================
--- sansmodels/src/sans/models/test/utest_dispersity.py	(revision 8809e4829d357a9366a256b3595b75252de8b2c2)
+++ sansmodels/src/sans/models/test/utest_dispersity.py	(revision eba988511d86410985b5a1c35ce70dd3968132a8)
@@ -57,6 +57,34 @@
         
         new_model = self.model.clone()
+        print "gaussian",self.model.run(0.001)
         self.assertAlmostEqual(new_model.run(0.001), 4723.32213339, 3)
         self.assertAlmostEqual(new_model.runXY([0.001,0.001]), 4743.56, 2)
+        
+    def test_schulz_zero(self):
+        from sans.models.dispersion_models import SchulzDispersion
+        disp = SchulzDispersion()
+        self.model.set_dispersion('radius', disp)
+        self.model.dispersion['radius']['width'] = 5.0
+        #self.model.dispersion['radius']['width'] = 0.0
+        self.model.dispersion['radius']['npts'] = 100
+        #self.model.setParam('scale', 1.0)
+        self.model.setParam('scale', 10.0)
+        print "schulz",self.model.run(0.001), self.model.dispersion
+        self.assertAlmostEqual(self.model.run(0.001), 450.355, 3)
+        self.assertAlmostEqual(self.model.runXY([0.001,0.001]), 452.299, 3)
+        
+    def test_lognormal_zero(self):
+        from sans.models.dispersion_models import LogNormalDispersion
+        disp = LogNormalDispersion()
+        self.model.set_dispersion('radius', disp)
+        self.model.dispersion['radius']['width'] = 5.0
+        #self.model.dispersion['radius']['width'] = 0.0
+        self.model.dispersion['radius']['npts'] = 100
+        #self.model.setParam('scale', 1.0)
+        self.model.setParam('scale', 10.0)
+        print "model dispersion",self.model.dispersion
+        print "lognormal",self.model.run(0.001)
+        self.assertAlmostEqual(self.model.run(0.001), 450.355, 3)
+        self.assertAlmostEqual(self.model.runXY([0.001,0.001]), 452.299, 3)
         
     def test_gaussian_zero(self):
Index: sansmodels/src/sans/models/test/utest_models.py
===================================================================
--- sansmodels/src/sans/models/test/utest_models.py	(revision ae60f8613faa37cf4fa6112ca8cc43e854b4cdbd)
+++ sansmodels/src/sans/models/test/utest_models.py	(revision eba988511d86410985b5a1c35ce70dd3968132a8)
@@ -24,9 +24,9 @@
     def test1D(self):
         """ Test 1D model for a sphere """
-        self.assertAlmostEqual(self.comp.run(1.0), 56.3878, 4)
+        self.assertAlmostEqual(self.comp.run(1.0), 5.6387e-5, 4)
         
     def test1D_2(self):
         """ Test 2D model for a sphere """
-        self.assertAlmostEqual(self.comp.run([1.0, 1.3]), 56.3878, 4)
+        self.assertAlmostEqual(self.comp.run([1.0, 1.3]), 5.63878e-5, 4)
 
 class TestCyl(unittest.TestCase):
Index: sansmodels/src/sans/models/test/utest_models_array.py
===================================================================
--- sansmodels/src/sans/models/test/utest_models_array.py	(revision 812b901e8b8451f555bc0649e5ee190827ff9130)
+++ sansmodels/src/sans/models/test/utest_models_array.py	(revision eba988511d86410985b5a1c35ce70dd3968132a8)
@@ -8,5 +8,5 @@
         
 class TestSphere(unittest.TestCase):
-    """ Unit tests for sphere model """
+    """ Unit tests for sphere model using evalDistribution function """
     
     def setUp(self):
@@ -18,7 +18,8 @@
     def test1D(self):
         """ Test 1D model for a sphere  with vector as input"""
-        answer=numpy.array([5.63877831e-05,2.57231782e-06,2.73704050e-07,2.54229069e-08])
+        answer = numpy.array([5.63877831e-05,2.57231782e-06,2.73704050e-07,2.54229069e-08])
        
-        testvector= self.comp.run(self.x)
+       
+        testvector= self.comp.evalDistribution(self.x)
        
         self.assertAlmostEqual(len(testvector),4)
@@ -33,8 +34,16 @@
         """ Test 2D model for a sphere for 2 scalar """
         self.assertAlmostEqual(self.comp.run([1.0, 1.3]), 56.3878e-06, 4)
-   
+        
+    def test1D_3(self):
+        """ Test 2D model for a Shpere for 2 vectors as input """
+        x= numpy.reshape(self.x, [len(self.x),1])
+        y= numpy.reshape(self.y, [1,len(self.y)])
+        vect = self.comp.evalDistribution([x,y])
+        self.assertAlmostEqual(vect[0][0],9.2985e-07, 4)
+        self.assertAlmostEqual(vect[len(self.x)-1][len(self.y)-1],1.3871e-08, 4)
+        
         
 class TestCylinder(unittest.TestCase):
-    """ Unit tests for sphere model """
+    """ Unit tests for Cylinder model using evalDistribution function """
     
     def setUp(self):
@@ -42,11 +51,12 @@
         self.comp = CylinderModel()
         self.x = numpy.array([1.0,2.0,3.0, 4.0])
-        self.y = numpy.array([1.0,2.0,3.0, 4.0])
+        self.y = self.x +1
         
     def test1D(self):
-        """ Test 1D model for a Cylinder  with vector as input"""
+        """ Test 1D model for a cylinder with vector as input"""
+        
         answer = numpy.array([1.98860592e-04,7.03686335e-05,2.89144683e-06,2.04282827e-06])
-        testvector= self.comp.run(self.x)
-       
+
+        testvector= self.comp.evalDistribution(self.x)
         self.assertAlmostEqual(len(testvector),4)
         for i in xrange(len(answer)):
@@ -54,40 +64,24 @@
        
     def test1D_1(self):
-        """ Test 2D model for a Cylinder with scalar as input"""
-        self.assertAlmostEqual(self.comp.run(1.0),1.9886e-04, 4)
+        """ Test 2D model for a cylinder  with scalar as input"""
+        self.assertAlmostEqual(self.comp.run(0.2), 0.041761386790780453, 4)
          
     def test1D_2(self):
-        """ Test 2D model for a Cylinder for 2 scalar """
-        self.assertAlmostEqual(self.comp.run([1.0, 1.3]), 56.3878e-06, 4)
+        """ Test 2D model of a cylinder """ 
+        self.comp.setParam('cyl_theta', 1.0)
+        self.comp.setParam('cyl_phi', 1.0)
+        self.assertAlmostEqual(self.comp.run([0.2, 2.5]), 
+                               0.038176446608393366, 4)
         
     def test1D_3(self):
-        """ Test 2D model for a Cylinder for 2 vectors as input """
-        ans_input = numpy.zeros(len(self.x))
-        temp_x = numpy.zeros(len(self.x))
-        temp_y = numpy.zeros(len(self.y))
+        """ Test 2D model for a cylinder for 2 vectors as input """
+        x= numpy.reshape(self.x, [len(self.x),1])
+        y= numpy.reshape(self.y, [1,len(self.y)])
+        vect = self.comp.evalDistribution([x,y])
+      
+        self.assertAlmostEqual(vect[0][0],5.06121018e-08,4)
+        self.assertAlmostEqual(vect[len(self.x)-1][len(self.y)-1],2.5978e-11, 4)
         
-        for i in xrange(len(self.x)):
-            qx = self.x[i]
-            qy = self.y[i]
-          
-            temp_x[i]= qx*math.cos(qy)
-            temp_y[i]= qx*math.sin(qy)
-            
-            value = math.sqrt(temp_x[i]*temp_x[i]+ temp_y[i]*temp_y[i] )#qx*qx +qy*qy)
-            ans_input[i]= value
-         
-        vect_runXY_qx_qy = self.comp.runXY([temp_x, temp_y])
-        vect_run_x_y = self.comp.run([self.x, self.y])
         
-        for i in xrange(len(vect_runXY_qx_qy)):
-            self.assertAlmostEqual(vect_runXY_qx_qy[i], vect_run_x_y[i])
-            
-        vect_run_x = self.comp.run(self.x)
-        vect_run_answer = self.comp.run(ans_input)
-        
-        for i in xrange(len(vect_run_x )):
-            self.assertAlmostEqual(vect_run_x [i], vect_run_answer[i])
-            
-
 
 if __name__ == '__main__':
