source: sasview/test/sasfit/test/utest_multiplicative_model.py @ c3caa49

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since c3caa49 was c3caa49, checked in by pkienzle, 9 years ago

rename park_integration tests to sasfit tests

  • Property mode set to 100644
File size: 2.0 KB
Line 
1"""
2    Unit tests for fitting module
3    @author: G. Alina
4"""
5import unittest
6import math
7
8from sas.guiframe.dataFitting import Data1D
9from sas.fit.AbstractFitEngine import Model,FitData1D
10from sas.fit.Fitting import Fit
11from sas.dataloader.loader import Loader
12from sas.models.MultiplicationModel import MultiplicationModel
13from sas.models.CylinderModel import CylinderModel
14from sas.models.SquareWellStructure import SquareWellStructure
15
16class testFitModule(unittest.TestCase):
17    """ test fitting """
18   
19       
20    def test_cyl_times_square(self):
21        """ Simple cylinder model fit  """
22       
23        out=Loader().load("cyl_400_20.txt")
24        data = Data1D(x=out.x, y=out.y, dx=out.dx, dy=out.dy)
25        # Receives the type of model for the fitting
26        model1  =  MultiplicationModel(CylinderModel(),SquareWellStructure())
27        model1.setParam('background', 0.0)
28        model1.setParam('sldCyl', 3e-006)
29        model1.setParam('sldSolv', 0.0)
30        model1.setParam('length', 420)
31        model1.setParam('radius', 40)
32        model1.setParam('scale_factor', 2)
33        model1.setParam('volfraction', 0.04)
34        model1.setParam('welldepth', 1.5)
35        model1.setParam('wellwidth', 1.2)
36     
37        model = Model(model1)
38   
39        pars1 =['length','radius','scale_factor']
40        fitter = Fit('bumps')
41        fitter.set_data(data,1)
42        fitter.set_model(model,1,pars1)
43        fitter.select_problem_for_fit(id=1,value=1)
44        result1, = fitter.fit()
45
46        self.assert_(result1)
47        self.assertTrue(len(result1.pvec)>=0 )
48        self.assertTrue(len(result1.stderr)>= 0)
49
50        #print "results",list(zip(result1.pvec, result1.stderr))
51        self.assertTrue( math.fabs(result1.pvec[0]-612)/3.0 <= result1.stderr[0] )
52        self.assertTrue( math.fabs(result1.pvec[1]-20.3)/3.0  <= result1.stderr[1] )
53        self.assertTrue( math.fabs(result1.pvec[2]-25)/3.0 <= result1.stderr[2] )
54       
55        self.assertTrue( result1.fitness/len(data.x) < 1.0 )
56       
57       
58if __name__ == '__main__':
59    unittest.main() 
Note: See TracBrowser for help on using the repository browser.