Changeset 386ffe1 in sasview for test/park_integration/test/utest_fit_line.py
- Timestamp:
- Feb 20, 2015 5:02:38 AM (9 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- cda1cf8
- Parents:
- 018582f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
test/park_integration/test/utest_fit_line.py
r35ec279 r386ffe1 32 32 assert str(exc).startswith('parameter param1') 33 33 else: 34 raise AssertionError("No error raised for scipyfitting with wrong parameters name to fit")34 raise AssertionError("No error raised for fitting with wrong parameters name to fit") 35 35 36 36 def fit_single(self, fitter_name, isdream=False): … … 45 45 model1.name = "M1" 46 46 model = Model(model1,data) 47 #fit with scipy test48 47 49 48 pars1= ['A','B'] … … 92 91 self.fit_bumps('lm') 93 92 94 def test_scipy(self):95 #print "fitting scipy"96 self.fit_single('scipy')97 98 def test_park(self):99 #print "fitting park"100 self.fit_single('park')101 102 103 93 def test2(self): 104 94 """ fit 2 data and 2 model with no constrainst""" … … 112 102 113 103 #Importing the Fit module 114 fitter = Fit(' scipy')104 fitter = Fit('bumps') 115 105 # Receives the type of model for the fitting 116 106 model11 = LineModel() … … 121 111 model1 = Model(model11,data1) 122 112 model2 = Model(model22,data2) 123 #fit with scipy test124 113 pars1= ['A','B'] 125 114 fitter.set_data(data1,1) … … 129 118 fitter.set_model(model2,2,pars1) 130 119 fitter.select_problem_for_fit(id=2,value=0) 131 120 132 121 try: result1, = fitter.fit(handler=FitHandler()) 133 122 except RuntimeError,msg: 134 assert str(msg)=="No Assembly scheduled for Scipy fitting." 135 else: raise AssertionError,"No error raised for scipy fitting with no model" 136 fitter.select_problem_for_fit(id=1,value=1) 137 fitter.select_problem_for_fit(id=2,value=1) 138 try: result1, = fitter.fit(handler=FitHandler()) 139 except RuntimeError,msg: 140 assert str(msg)=="Scipy can't fit more than a single fit problem at a time." 141 else: raise AssertionError,"No error raised for scipy fitting with more than 2 models" 142 143 #fit with park test 144 fitter = Fit('park') 145 fitter.set_data(data1,1) 146 fitter.set_model(model1,1,pars1) 147 fitter.set_data(data2,2) 148 fitter.set_model(model2,2,pars1) 123 assert str(msg)=="Nothing to fit" 124 else: raise AssertionError,"No error raised for fitting with no model" 149 125 fitter.select_problem_for_fit(id=1,value=1) 150 126 fitter.select_problem_for_fit(id=2,value=1) … … 156 132 157 133 158 def test 3(self):134 def test_constraints(self): 159 135 """ fit 2 data and 2 model with 1 constrainst""" 160 136 #load data … … 180 156 model1.set(B=3) 181 157 # Constraint the constant value to be equal to parameter B (the real value is 2.5) 182 model2.set(value='line.B') 183 #fit with scipy test 158 #model2.set(value='line.B') 184 159 pars1= ['A','B'] 185 160 pars2= ['value'] 186 161 187 162 #Importing the Fit module 188 fitter = Fit(' park')163 fitter = Fit('bumps') 189 164 fitter.set_data(data1,1) 190 165 fitter.set_model(model1,1,pars1) 191 166 fitter.set_data(data2,2,smearer=None) 192 fitter.set_model(model2,2,pars2 )167 fitter.set_model(model2,2,pars2,constraints=[("value","line.B")]) 193 168 fitter.select_problem_for_fit(id=1,value=1) 194 169 fitter.select_problem_for_fit(id=2,value=1) … … 216 191 model = Model(model1,data1) 217 192 218 #fit with scipy test 219 pars1= ['A','B'] 220 #Importing the Fit module 221 fitter = Fit('scipy') 222 fitter.set_data(data1,1,qmin=0, qmax=7) 223 fitter.set_model(model,1,pars1) 224 fitter.set_data(data2,1,qmin=1,qmax=10) 225 fitter.select_problem_for_fit(id=1,value=1) 226 227 result1, = fitter.fit(handler=FitHandler()) 228 #print(result1) 229 self.assert_(result1) 230 231 self.assertTrue( math.fabs(result1.pvec[0]-4)/3 <= result1.stderr[0] ) 232 self.assertTrue( math.fabs(result1.pvec[1]-2.5)/3 <= result1.stderr[1]) 233 self.assertTrue( result1.fitness/len(data1.x) < 2 ) 234 235 #fit with park test 236 fitter = Fit('park') 193 pars1= ['A','B'] 194 #Importing the Fit module 195 196 fitter = Fit('bumps') 237 197 fitter.set_data(data1,1,qmin=0, qmax=7) 238 198 fitter.set_model(model,1,pars1) … … 245 205 self.assertTrue( math.fabs(result2.pvec[1]-2.5)/3 <= result2.stderr[1] ) 246 206 self.assertTrue( result2.fitness/len(data1.x) < 2) 247 # compare fit result result for scipy and park248 self.assertAlmostEquals( result1.pvec[0], result2.pvec[0] )249 self.assertAlmostEquals( result1.pvec[1],result2.pvec[1] )250 self.assertAlmostEquals( result1.stderr[0],result2.stderr[0] )251 self.assertAlmostEquals( result1.stderr[1],result2.stderr[1] )252 self.assertTrue( result2.fitness/(len(data2.x)+len(data1.x)) < 2 )253 207 254 208
Note: See TracChangeset
for help on using the changeset viewer.