1
2
3
4
5
6
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
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
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
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
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
48 """Recover values using .name"""
49 return
50 self.assertEqual(self.P.P4,3.)
51 self.assertEqual(self.P.P1[2],2.)
52
54 """Set values using .name"""
55 return
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
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
68 """Check bounds"""
69 self.assertEqual(self.P.bounds(2),(0,1))
70 self.assertEqual(self.P.bounds(3),(None,None))
71
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
79 """Units"""
80 self.assertEqual(self.P.units(0),None)
81 self.assertEqual(self.P.units(4),'cm')
82
83
84
85
86 if __name__ == "__main__":
87 unittest.main()
88
89
90 __id__ = "$Id: test_pars.py 70 2008-11-18 00:10:29Z pkienzle $"
91
92
93