source: sasview/test/park_integration/test/utest_park_scipy.py @ e544c84

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 e544c84 was e544c84, checked in by pkienzle, 10 years ago

enable cylinder * square well test

  • Property mode set to 100644
File size: 2.1 KB
Line 
1"""
2    Unit tests for fitting module
3    @author: G. Alina
4"""
5import unittest
6import math
7
8from sans.guiframe.dataFitting import Data1D
9from sans.fit.AbstractFitEngine import Model,FitData1D
10from sans.fit.Fitting import Fit
11from sans.dataloader.loader import Loader
12from sans.models.MultiplicationModel import MultiplicationModel
13from sans.models.CylinderModel import CylinderModel
14from sans.models.SquareWellStructure import SquareWellStructure
15
16class testFitModule(unittest.TestCase):
17    """ test fitting """
18   
19       
20    def test_scipy(self):
21        """ Simple cylinder model fit (scipy)  """
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('scipy')
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.