33from pybdr .model import tank6eq , Model
44from pybdr .util .functional import performance_counter , performance_counter_start
55
6- if __name__ == "__main__" :
7- m = Model (tank6eq , [6 , 1 ])
86
9- time_start = performance_counter_start ()
10- x , u = np .random .random (6 ), np .random .rand (1 )
7+ def test_sym_derivative_case_00 ():
8+ sys_test = tank6eq
9+ dimes = [6 , 1 ]
10+
11+ m = Model (sys_test , dimes )
12+
13+ x_np , u_np = np .random .rand (6 ), np .random .rand (1 )
14+
15+ print ()
16+
17+ time_cur = performance_counter_start ()
18+
19+ # ----------------------------------------------------------------------
20+ # order 0, for variable 0
21+
22+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 ) # Run 1
23+
24+ time_cur = performance_counter (time_cur , 'derivative 00 Run 1' )
25+
26+ # 10 runs
27+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
28+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
29+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
30+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
31+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
32+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
33+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
34+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
35+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
36+ np_derivative_00 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 0 )
37+
38+ time_cur = performance_counter (time_cur , 'derivative 00 Run 2+ AVG' , 10 )
39+
40+ # ----------------------------------------------------------------------
41+ # order 0, for variable 1
42+
43+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 ) # Run 1
44+
45+ time_cur = performance_counter (time_cur , 'derivative 01 Run 1' )
46+
47+ # 10 runs
48+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
49+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
50+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
51+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
52+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
53+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
54+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
55+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
56+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
57+ np_derivative_01 = m .evaluate ((x_np , u_np ), 'numpy' , 0 , 1 )
58+
59+ time_cur = performance_counter (time_cur , 'derivative 01 Run 2+ AVG' , 10 )
60+
61+ # ----------------------------------------------------------------------
62+ # order 1, for variable 0
63+
64+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 ) # Run 1
65+
66+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
67+
68+ # 10 runs
69+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
70+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
71+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
72+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
73+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
74+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
75+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
76+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
77+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
78+ np_derivative_10 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 0 )
79+
80+ time_cur = performance_counter (time_cur , 'derivative 10 Run 2+ AVG' , 10 )
1181
12- np_derivative_0 = m .evaluate ((x , u ), "numpy" , 3 , 0 )
13- np_derivative_1 = m .evaluate ((x , u ), "numpy" , 3 , 1 )
14- np_derivative_2 = m .evaluate ((x , u ), "numpy" , 0 , 0 )
82+ # ----------------------------------------------------------------------
83+ # order 1, for variable 1
1584
16- x , u = Interval .rand (6 ), Interval .rand (1 )
17- int_derivative_0 = m .evaluate ((x , u ), "interval" , 3 , 0 )
18- int_derivative_1 = m .evaluate ((x , u ), "interval" , 2 , 0 )
19- int_derivative_2 = m .evaluate ((x , u ), "interval" , 2 , 0 )
20- int_derivative_3 = m .evaluate ((x , u ), "interval" , 0 , 1 )
85+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 ) # Run 1
2186
22- performance_counter (time_start , "sym_derivative" )
23-
87+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
88+
89+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
90+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
91+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
92+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
93+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
94+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
95+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
96+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
97+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
98+ np_derivative_11 = m .evaluate ((x_np , u_np ), 'numpy' , 1 , 1 )
99+
100+ time_cur = performance_counter (time_cur , 'derivative 11 Run 2+ AVG' , 10 )
101+
102+ # ----------------------------------------------------------------------
103+ # order 3, for variable 0
104+
105+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 ) # Run 1
106+
107+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
108+
109+ # 10 runs
110+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
111+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
112+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
113+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
114+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
115+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
116+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
117+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
118+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
119+ np_derivative_30 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 0 )
120+
121+ time_cur = performance_counter (time_cur , 'derivative 30 Run 2+ AVG' , 10 )
122+
123+ # ----------------------------------------------------------------------
124+ # order 3, for variable 1
125+
126+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 ) # Run 1
127+
128+ time_cur = performance_counter (time_cur , 'derivative 10 Run 1' )
129+
130+ # 10 runs
131+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
132+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
133+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
134+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
135+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
136+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
137+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
138+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
139+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
140+ np_derivative_31 = m .evaluate ((x_np , u_np ), 'numpy' , 3 , 1 )
141+
142+ time_cur = performance_counter (time_cur , 'derivative 31 Run 2+ AVG' , 10 )
143+
144+
145+ def test_sym_derivative_case_01 ():
146+ print ("test_sym_derivative_case_01" )
147+
148+
149+ def test_sym_derivative_case_02 ():
150+ print ("test_sym_derivative_case_02" )
151+
152+
153+ if __name__ == "__main__" :
154+ test_sym_derivative_case_00 ()
155+ test_sym_derivative_case_01 ()
156+ test_sym_derivative_case_02 ()
0 commit comments