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

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 acf8e4a5 was acf8e4a5, checked in by Paul Kienzle <pkienzle@…>, 9 years ago

reference BumpsFit? directly and remove fit engine selection layer

  • 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.dataloader.data_info import Data1D
9from sas.fit.AbstractFitEngine import Model,FitData1D
10from sas.fit.BumpsFitting import BumpsFit as 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()
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.