source: sasview/test/sasfit/test/utest_multiplicative_model.py @ 769a422

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 769a422 was 769a422, checked in by mathieu, 9 years ago

Update utest_multiplicative_model.py

Change test so it doesn't import GUI classes

  • 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.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.