Index: sansmodels/src/sans/models/test/utest_model_calculate_ER.py
===================================================================
--- sansmodels/src/sans/models/test/utest_model_calculate_ER.py	(revision ca90d5470a083ffca2268ac2160a3358252de6a7)
+++ sansmodels/src/sans/models/test/utest_model_calculate_ER.py	(revision c1e865ac18560cedf7ced1a814746a2d84fba9db)
@@ -1,15 +1,8 @@
 """
-    Unit tests for specific models
+    Unit tests for calculate_ER of specific models
+    @author: JHJ Cho / UTK
 """
 
-import unittest, time, math
-
-# Disable "missing docstring" complaint
-# pylint: disable-msg=C0111
-# Disable "too many methods" complaint 
-# pylint: disable-msg=R0904 
-# Disable "could be a function" complaint 
-# pylint: disable-msg=R0201
-
+import unittest, time, math, numpy
 
         
@@ -136,6 +129,44 @@
         self.diam.setParam("radius", 3000)
         self.diam.setParam("length",80)       
-        self.assertAlmostEqual(self.comp.calculate_ER(), self.diam.run(0.1)/2)       
-
+        self.assertAlmostEqual(self.comp.calculate_ER(), self.diam.run(0.1)/2)  
+             
+class TestEllipticalCylinder(unittest.TestCase):
+    """ Unit tests for calculate_ER (EllipticalCylindermodel) """
+    
+    def setUp(self):
+        from sans.models.EllipticalCylinderModel import EllipticalCylinderModel
+        from sans.models.DiamCylFunc import DiamCylFunc
+        self.comp = EllipticalCylinderModel()
+        self.diam = DiamCylFunc()
+        
+    def test(self):
+        """ Test 1D model for a EllipticalCylinder """
+        self.comp.setParam("r_minor", 20)
+        self.comp.setParam("r_ratio",1.5)  
+        self.comp.setParam("length",400)  
+        r_value = math.sqrt(20*20*1.5)    
+        self.diam.setParam("radius", r_value)
+        self.diam.setParam("length",400)       
+        self.assertAlmostEqual(self.comp.calculate_ER(), self.diam.run(0.1)/2)  
+         
+class TestParallelepiped(unittest.TestCase):
+    """ Unit tests for calculate_ER (Parallelepipedmodel) """
+    
+    def setUp(self):
+        from sans.models.ParallelepipedModel import ParallelepipedModel
+        from sans.models.DiamCylFunc import DiamCylFunc
+        self.comp = ParallelepipedModel()
+        self.diam = DiamCylFunc()
+        
+    def test(self):
+        """ Test 1D model for a Parallelepiped """
+        self.comp.setParam("short_a", 35)
+        self.comp.setParam("short_b", 75)  
+        self.comp.setParam("long_c",400)  
+        r_value = math.sqrt(35*75/math.pi)    
+        self.diam.setParam("radius", r_value)
+        self.diam.setParam("length",400)   
+        self.assertAlmostEqual(self.comp.calculate_ER(), self.diam.run(0.1)/2)   
+                                                  
 class TestEllipsoid(unittest.TestCase):
     """ Unit tests for calculate_ER (Ellipsoid model) """
@@ -170,5 +201,30 @@
         self.diam.setParam("radius_a", 20)
         self.diam.setParam("radius_b",400)
-        self.assertAlmostEqual(self.comp.calculate_ER(), self.diam.run(0.1)/2)                      
+        self.assertAlmostEqual(self.comp.calculate_ER(), self.diam.run(0.1)/2) 
+            
+class TestLamellar(unittest.TestCase):
+    """ Unit tests for calculate_ER (Lamellarmodel)"""
+    
+    def setUp(self):
+        from sans.models.LamellarModel import LamellarModel
+        self.comp = LamellarModel()
+        
+    def test(self):
+        """ Test 1D model for a Lamellar """
+        #No finite number should return from Lamellar models.
+        self.assertFalse(numpy.isfinite(self.comp.calculate_ER())) 
+         
+class TestGuinier(unittest.TestCase):
+    """ Unit tests for calculate_ER (Guinier model) """
+    
+    def setUp(self):
+        from sans.models.GuinierModel import GuinierModel
+        self.comp = GuinierModel()
+        
+    def test(self):
+        """ Test 1D model for Guinier """    
+        #calculate_ER() is not implemented for pure python model functions
+        self.assertEqual(self.comp.calculate_ER(), NotImplemented)  
+        
 if __name__ == '__main__':
     unittest.main()
Index: sansmodels/src/sans/models/test/utest_modelmultiplication.py
===================================================================
--- sansmodels/src/sans/models/test/utest_modelmultiplication.py	(revision ec38f27df8d38f4ddd3bc49d563e5c1d0cf3f8f7)
+++ sansmodels/src/sans/models/test/utest_modelmultiplication.py	(revision c1e865ac18560cedf7ced1a814746a2d84fba9db)
@@ -1,5 +1,5 @@
 """
     Unit tests for specific models
-    @author: Gervaise Alina / UTK
+    @author: JHJ Cho / UTK
 """
 #This test replaces the older utests for multiplicationModel. Aug. 31, 2009. JC
@@ -559,5 +559,5 @@
 class TestcylinderHayterM(unittest.TestCase):
     """ 
-        Unit tests for SphereModel(Q) * HayterMSAStructure(Q)
+        Unit tests for CylinderModel(Q) * HayterMSAStructure(Q)
     """
     def setUp(self):
@@ -635,5 +635,55 @@
         self.assertEqual(model4.getParam("radius"), 20)        
         
-        
+class TestGuinierHayterM(unittest.TestCase):
+    """ 
+        Unit tests for GuinierModel(Q) * HayterMSAStructure(Q)
+    """
+    def setUp(self):
+        from sans.models.GuinierModel import GuinierModel
+        from sans.models.HayterMSAStructure import HayterMSAStructure
+        from sans.models.MultiplicationModel import MultiplicationModel
+
+        self.model = GuinierModel()
+        self.model2 = HayterMSAStructure()
+        self.model3 = MultiplicationModel(self.model, self.model2)  
+
+    #Radius of model1.calculate_ER should be equal to the output/2 of DiamFunctions
+    def test_multplication_radius(self):
+        """
+            test multiplication model (check the effective radius & the output
+             of the multiplication)
+        """
+        self.model.setParam("rg", 60)
+        self.model.setParam("scale", 1)
+        #Compare new method with old method         
+        self.assertEqual(self.model3.run(0.1), self.model.run(0.1)*self.model2.run(0.1))
+        
+        #effective radius calculation is not implemented for this model. 
+        self.assertEqual(self.model3.calculate_ER(), NotImplemented)       
+        
+class TestLamellarHayterM(unittest.TestCase):
+    """ 
+        Unit tests for LamellarModel(Q) * HayterMSAStructure(Q)
+    """
+    def setUp(self):
+        from sans.models.LamellarModel import LamellarModel
+        from sans.models.HayterMSAStructure import HayterMSAStructure
+        from sans.models.MultiplicationModel import MultiplicationModel
+
+        self.model = LamellarModel()
+        self.model2 = HayterMSAStructure()
+        self.model3 = MultiplicationModel(self.model, self.model2)  
+
+    #Radius of model1.calculate_ER should Not be finite.
+    def test_multplication_radius(self):
+        """
+            test multiplication model (check the effective radius & the output
+             of the multiplication)
+        """
+        #Check run       
+        self.assertFalse(numpy.isfinite(self.model3.run(0.1)))
+        #check effective radius . 
+        self.assertFalse(numpy.isfinite(self.model.calculate_ER()))      
+                
 if __name__ == '__main__':
     unittest.main()
