Index: sansmodels/src/sans/models/test/utest_modelmultiplication_cyl.py
===================================================================
--- sansmodels/src/sans/models/test/utest_modelmultiplication_cyl.py	(revision 24276b6491315d786026eab3b71a4bd923943527)
+++ sansmodels/src/sans/models/test/utest_modelmultiplication_cyl.py	(revision 24276b6491315d786026eab3b71a4bd923943527)
@@ -0,0 +1,115 @@
+"""
+    Unit tests for specific models
+    @author: Gervaise Alina / UTK
+"""
+
+import unittest, numpy,math
+
+from sans.models.MultiplicationModel import MultiplicationModel
+from sans.models.SphereModel import SphereModel
+from sans.models.SquareWellStructure import SquareWellStructure
+      
+class TestDisperser(unittest.TestCase):
+    """ Unit tests for sphere model * SquareWellStructure"""
+    model1= SphereModel()
+    model2= SquareWellStructure()
+    model3= MultiplicationModel(model1, model2)
+    details={}
+    details['scale'] = ['', None, None]
+    details['radius'] = ['A', None, None]
+    details['contrast'] = ['A-2', None, None]
+    details['background'] = ['cm-1', None, None]
+    details['volfraction'] = ['', None, None]
+    details['welldepth'] = ['kT', None, None]
+    details['wellwidth'] = ['', None, None]
+    
+    ## fittable parameters
+    fixed=[]
+    fixed=['radius.width']
+    """
+    #Radius of two models should not be equal..
+    def test_multplication_radius(self):
+        "" test multiplication model""
+        from sans.models.MultiplicationModel import MultiplicationModel
+        from sans.models.CylinderModel import CylinderModel
+        from sans.models.HardsphereStructure import HardsphereStructure
+        model1 = CylinderModel()
+        model1.setParam("radius", 3)
+        model2 = HardsphereStructure()
+        model  =  MultiplicationModel(model1,model2 )
+        model.setParam("radius", 1)
+        self.assertEqual(model.getParam("radius"), 1)
+        #self.assertEqual(model.model1.getParam("radius"),3)
+        from sans.models.DiamCylFunc import DiamCylFunc
+        model4= DiamCylFunc()
+        radius= model4.run(0.0)
+        self.assertEqual(model.model2.getParam("radius"),radius)
+    """    
+    
+    def test_multiplication(self):
+        """ test multiplication model"""
+        from sans.models.MultiplicationModel import MultiplicationModel
+        from sans.models.SphereModel import SphereModel
+        from sans.models.NoStructure import NoStructure
+        model1  =  MultiplicationModel(SphereModel(),NoStructure())
+        model2 = SphereModel()
+        x= 2
+        a = model1.run(x)
+        
+        b=  model2.run(x)
+        self.assertEqual(a, b)
+        model2.setParam("scale", 10)
+        c=  model2.run(x)
+        self.assertEqual(c, 10*b)
+        model1.setParam("scale", 10)
+        d=  model1.run(x)
+        self.assertEqual(d, 10*a)
+        self.assertEqual(model1.getParam("scale"), 10)
+        
+        
+    def testMultiplicationModel(self):
+        """ Test Multiplication  sphere with SquareWellStructure"""
+        ## test details dictionary
+        self.assertEqual(self.model3.details, self.details)
+        
+        ## test parameters list
+        list3= self.model3.getParamList()
+        for item in self.model1.getParamList():
+            self.assert_(item in list3)
+        for item in self.model2.getParamList():
+            self.assert_(item in list3)
+            
+        ## test set value for parameters and get paramaters
+        self.model3.setParam("scale", 15)
+        self.assertEqual(self.model3.getParam("scale"), 15)
+        self.model3.setParam("radius", 20)
+        self.assertEqual(self.model3.getParam("radius"), 20)
+        self.model3.setParam("radius.width", 15)
+        self.assertEqual(self.model3.getParam("radius.width"), 15)
+        
+        ## Dispersity 
+        list3= self.model3.getDispParamList()
+        self.assertEqual(list3, ['radius.npts', 'radius.nsigmas', 'radius.width'])
+        
+        from sans.models.dispersion_models import ArrayDispersion
+        disp_th = ArrayDispersion()
+        
+        values_th = numpy.zeros(100)
+        weights   = numpy.zeros(100)
+        for i in range(100):
+            values_th[i]=(math.pi/99.0*i)
+            weights[i]=(1.0)
+    
+        disp_th.set_weights(values_th, weights)
+        
+        self.model3.set_dispersion('radius', disp_th)
+        
+        val_1d = self.model3.run(math.sqrt(0.0002))
+        val_2d = self.model3.runXY([0.01,0.01]) 
+        
+        self.assertTrue(math.fabs(val_1d-val_2d)/val_1d < 0.02)
+        model4= self.model3.clone()
+        self.assertEqual(model4.getParam("radius"), 20)
+        
+if __name__ == '__main__':
+    unittest.main()
