Package boxmin :: Package tests :: Module test_pars
[hide private]

Source Code for Module boxmin.tests.test_pars

 1  #!/usr/bin/env python 
 2  # 
 3  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 4  #  test_pars.py 
 5  # 
 6  #  This program is in the public domain. 
 7  # 
 8  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 9   
10  """Unit tests for model and fit parameters""" 
11   
12  import unittest 
13  from ModelParameters import ModelParameters 
14  from FitParameters   import FitParameters 
15  from numpy import array 
16   
17 -class TestModelParamaeters(unittest.TestCase):
18 - def setUp(self):
19 P = ModelParameters('hello','hello world') 20 P.add('P0',0.,title='P-0', tip='P0 is the first parameter') 21 P.add('P1',array(range(5),'d'),tip='P1 is a vector of 5 elements') 22 P.add('P2',4,lo=0,hi=1,tip='P2 is bounded by [0,1]') 23 P.add('P3',5,discrete=True,tip='P3 is an integer defaulting to 5') 24 P.add('P4',3,units='cm',tip='P4 is measured in centimeters') 25 self.P = P
26
27 - def test1(self):
28 """title and tip return for model returned properly""" 29 self.assertEqual(self.P.title(),'hello') 30 self.assertEqual(self.P.tip(),'hello world')
31
32 - def test2(self):
33 """Recover values using []""" 34 self.assertEqual(self.P[0],0.) 35 self.assertEqual(self.P[1][1],1.) 36 self.assertEqual(self.P[3],5.)
37
38 - def test3(self):
39 """Set values using []""" 40 self.P[0] = 3 41 self.P[1][1] = 5 42 self.P[3] = 6. 43 self.assertEqual(self.P[0],3.) 44 self.assertEqual(self.P[1][1],5.) 45 self.assertEqual(self.P[3],6.)
46
47 - def test4(self):
48 """Recover values using .name""" 49 return # FIXME restore test 50 self.assertEqual(self.P.P4,3.) 51 self.assertEqual(self.P.P1[2],2.)
52
53 - def test5(self):
54 """Set values using .name""" 55 return # FIXME restore test 56 self.P.P4 = 4 57 self.P.P1[2] = 5 58 self.assertEqual(self.P[1][2],5.) 59 self.assertEqual(self.P[4],4.)
60
61 - def test6(self):
62 """Check discrete""" 63 self.assertEqual(self.P.discrete(2),False) 64 self.assertEqual(self.P.discrete(3),True) 65 self.assertEqual(self.P.discrete(),[3])
66
67 - def test7(self):
68 """Check bounds""" 69 self.assertEqual(self.P.bounds(2),(0,1)) 70 self.assertEqual(self.P.bounds(3),(None,None))
71
72 - def test8(self):
73 """Title and tip for individual parameters""" 74 self.assertEqual(self.P.title(0),'P-0') 75 self.assertEqual(self.P.tip(0),'P0 is the first parameter') 76 self.assertEqual(self.P.title(1),'P1')
77
78 - def test9(self):
79 """Units""" 80 self.assertEqual(self.P.units(0),None) 81 self.assertEqual(self.P.units(4),'cm')
82 83 # This test will be needed later 84 # self.assertEqual(self.P.bounds(),[(None,None)]*2+[(0,1)]+[(None,None)]*2) 85 86 if __name__ == "__main__": 87 unittest.main() 88 89 # version 90 __id__ = "$Id: test_pars.py 70 2008-11-18 00:10:29Z pkienzle $" 91 92 # End of file 93