Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita007fcc

Browse files
authored
Merge pull request#221 from murrayrm/test_timebase
TST: add unit tests for timebase conversions
2 parents11bf14c +03d6e05 commita007fcc

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

‎control/tests/discrete_test.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,70 @@ def test_timebase(self):
9393
self.assertEqual(timebase(self.siso_tf3d),True);
9494
self.assertEqual(timebase(self.siso_tf3d,strict=False),1);
9595

96+
deftest_timebase_conversions(self):
97+
'''Check to make sure timebases transfer properly'''
98+
tf1=TransferFunction([1,1],[1,2,3])# unspecified
99+
tf2=TransferFunction([1,1],[1,2,3],0)# cont time
100+
tf3=TransferFunction([1,1],[1,2,3],True)# dtime, unspec
101+
tf4=TransferFunction([1,1],[1,2,3],1)# dtime, dt=1
102+
103+
# Make sure unspecified timebase is converted correctly
104+
self.assertEqual(timebase(tf1*tf1),timebase(tf1))
105+
self.assertEqual(timebase(tf1*tf2),timebase(tf2))
106+
self.assertEqual(timebase(tf1*tf3),timebase(tf3))
107+
self.assertEqual(timebase(tf1*tf4),timebase(tf4))
108+
self.assertEqual(timebase(tf2*tf1),timebase(tf2))
109+
self.assertEqual(timebase(tf3*tf1),timebase(tf3))
110+
self.assertEqual(timebase(tf4*tf1),timebase(tf4))
111+
self.assertEqual(timebase(tf1+tf1),timebase(tf1))
112+
self.assertEqual(timebase(tf1+tf2),timebase(tf2))
113+
self.assertEqual(timebase(tf1+tf3),timebase(tf3))
114+
self.assertEqual(timebase(tf1+tf4),timebase(tf4))
115+
self.assertEqual(timebase(feedback(tf1,tf1)),timebase(tf1))
116+
self.assertEqual(timebase(feedback(tf1,tf2)),timebase(tf2))
117+
self.assertEqual(timebase(feedback(tf1,tf3)),timebase(tf3))
118+
self.assertEqual(timebase(feedback(tf1,tf4)),timebase(tf4))
119+
120+
# Make sure discrete time without sampling is converted correctly
121+
self.assertEqual(timebase(tf3*tf3),timebase(tf3))
122+
self.assertEqual(timebase(tf3*tf4),timebase(tf4))
123+
self.assertEqual(timebase(tf3+tf3),timebase(tf3))
124+
self.assertEqual(timebase(tf3+tf3),timebase(tf4))
125+
self.assertEqual(timebase(feedback(tf3,tf3)),timebase(tf3))
126+
self.assertEqual(timebase(feedback(tf3,tf4)),timebase(tf4))
127+
128+
# Make sure all other combinations are errors
129+
try:
130+
tf2*tf3# Error; incompatible timebases
131+
raiseValueError("incompatible operation allowed")
132+
exceptValueError:
133+
pass
134+
try:
135+
tf2*tf4# Error; incompatible timebases
136+
raiseValueError("incompatible operation allowed")
137+
exceptValueError:
138+
pass
139+
try:
140+
tf2+tf3# Error; incompatible timebases
141+
raiseValueError("incompatible operation allowed")
142+
exceptValueError:
143+
pass
144+
try:
145+
tf2+tf4# Error; incompatible timebases
146+
raiseValueError("incompatible operation allowed")
147+
exceptValueError:
148+
pass
149+
try:
150+
feedback(tf2,tf3)# Error; incompatible timebases
151+
raiseValueError("incompatible operation allowed")
152+
exceptValueError:
153+
pass
154+
try:
155+
feedback(tf2,tf4)# Error; incompatible timebases
156+
raiseValueError("incompatible operation allowed")
157+
exceptValueError:
158+
pass
159+
96160
deftestisdtime(self):
97161
# Constant
98162
self.assertEqual(isdtime(1),True);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp