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
RevLine 
[20d30e9]1"""
2    Unit tests for fitting module
[eb575b0]3    @author: G. Alina
[20d30e9]4"""
5import unittest
[6c00702]6import math
[20d30e9]7
8from sans.guiframe.dataFitting import Data1D
[1ea3488]9from sans.fit.AbstractFitEngine import Model,FitData1D
[20d30e9]10from sans.fit.Fitting import Fit
[6c00702]11from sans.dataloader.loader import Loader
12from sans.models.MultiplicationModel import MultiplicationModel
13from sans.models.CylinderModel import CylinderModel
14from sans.models.SquareWellStructure import SquareWellStructure
[20d30e9]15
16class testFitModule(unittest.TestCase):
17    """ test fitting """
18   
19       
20    def test_scipy(self):
21        """ Simple cylinder model fit (scipy)  """
22       
[2eaaf1a]23        out=Loader().load("cyl_400_20.txt")
[8a6d4af]24        data = Data1D(x=out.x, y=out.y, dx=out.dx, dy=out.dy)
[20d30e9]25        # Receives the type of model for the fitting
26        model1  =  MultiplicationModel(CylinderModel(),SquareWellStructure())
[2eaaf1a]27        model1.setParam('background', 0.0)
[6c00702]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)
[2eaaf1a]33        model1.setParam('volfraction', 0.04)
34        model1.setParam('welldepth', 1.5)
35        model1.setParam('wellwidth', 1.2)
36     
[20d30e9]37        model = Model(model1)
[2eaaf1a]38   
[6c00702]39        pars1 =['length','radius','scale_factor']
[2eaaf1a]40        fitter = Fit('scipy')
[20d30e9]41        fitter.set_data(data,1)
42        fitter.set_model(model,1,pars1)
[6c00702]43        fitter.select_problem_for_fit(id=1,value=1)
44        result1, = fitter.fit()
45
[20d30e9]46        self.assert_(result1)
[2eaaf1a]47        self.assertTrue(len(result1.pvec)>=0 )
48        self.assertTrue(len(result1.stderr)>= 0)
[6c00702]49
[e544c84]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] )
[20d30e9]54       
[2eaaf1a]55        self.assertTrue( result1.fitness/len(data.x) < 1.0 )
[20d30e9]56       
[8a6d4af]57       
58if __name__ == '__main__':
59    unittest.main() 
Note: See TracBrowser for help on using the repository browser.