4 #include <sim/tools/DiscreteTime.h>
33 if(dt1.toDiscrete(0.5)!=250)
return false;
34 if(dt1.toDiscrete(1.5)!=750)
return false;
35 if(dt1.toCyclicDiscrete(0.5)!=250)
return false;
36 if(dt1.toCyclicDiscrete(1.5)!=250)
return false;
37 if(dt1.toCyclicDiscrete(3.5)!=250)
return false;
38 if(dt1.toPeriodicDiscrete(0.5)!=250)
return false;
39 if(dt1.toPeriodicDiscrete(1.5)!=250)
return false;
40 if(dt1.toPeriodicDiscrete(3.5)!=250)
return false;
41 if(dt1.toContinuous(250)!=0.5)
return false;
42 if(dt1.toContinuous(750)!=1.5)
return false;
43 if(dt1.toCyclicContinuous(250)!=0.5)
return false;
44 if(dt1.toCyclicContinuous(750)!=0.5)
return false;
45 if(dt1.toCyclicContinuous(1750)!=0.5)
return false;
46 if(dt1.toPeriodicContinuous(250)!=0.5)
return false;
47 if(dt1.toPeriodicContinuous(750)!=0.5)
return false;
48 if(dt1.toPeriodicContinuous(1750)!=0.5)
return false;
52 if(dt2.toDiscrete(0.5)!=250)
return false;
53 if(dt2.toDiscrete(1.5)!=750)
return false;
54 if(dt2.toCyclicDiscrete(0.5)!=250)
return false;
55 if(dt2.toCyclicDiscrete(1.5)!=250)
return false;
56 if(dt2.toCyclicDiscrete(3.5)!=250)
return false;
57 if(dt2.toPeriodicDiscrete(0.0)!=0)
return false;
58 if(dt2.toPeriodicDiscrete(0.2)!=100)
return false;
59 if(dt2.toPeriodicDiscrete(0.5)!=250)
return false;
60 if(dt2.toPeriodicDiscrete(1.5)!=750)
return false;
61 if(dt2.toPeriodicDiscrete(2.0)!=0)
return false;
62 if(dt2.toPeriodicDiscrete(2.2)!=100)
return false;
63 if(dt2.toPeriodicDiscrete(2.5)!=250)
return false;
64 if(dt2.toPeriodicDiscrete(3.5)!=750)
return false;
65 if(dt2.toContinuous(250)!=0.5)
return false;
66 if(dt2.toContinuous(750)!=1.5)
return false;
67 if(dt2.toCyclicContinuous(250)!=0.5)
return false;
68 if(dt2.toCyclicContinuous(750)!=0.5)
return false;
69 if(dt2.toCyclicContinuous(1750)!=0.5)
return false;
70 if(dt2.toPeriodicContinuous(0)!=0.0)
return false;
71 if(dt2.toPeriodicContinuous(100)!=0.2)
return false;
72 if(dt2.toPeriodicContinuous(250)!=0.5)
return false;
73 if(dt2.toPeriodicContinuous(500)!=1.0)
return false;
74 if(dt2.toPeriodicContinuous(750)!=1.5)
return false;
75 if(dt2.toPeriodicContinuous(1000)!=0.0)
return false;
76 if(dt2.toPeriodicContinuous(1250)!=0.5)
return false;
77 if(dt2.toPeriodicContinuous(1500)!=1.0)
return false;
78 if(dt2.toPeriodicContinuous(1750)!=1.5)
return false;
82 if(dt3.toDiscrete(0.5)!=250)
return false;
83 if(dt3.toDiscrete(1.5)!=750)
return false;
84 if(dt3.toCyclicDiscrete(0.5)!=250)
return false;
85 if(dt3.toCyclicDiscrete(1.5)!=250)
return false;
86 if(dt3.toCyclicDiscrete(3.5)!=250)
return false;
87 if(dt3.toPeriodicDiscrete(0.0)!=0)
return false;
88 if(dt3.toPeriodicDiscrete(0.2)!=100)
return false;
89 if(dt3.toPeriodicDiscrete(0.5)!=0)
return false;
90 if(dt3.toPeriodicDiscrete(1.5)!=0)
return false;
91 if(dt3.toPeriodicDiscrete(2.0)!=0)
return false;
92 if(dt3.toPeriodicDiscrete(2.2)!=100)
return false;
93 if(dt3.toPeriodicDiscrete(2.5)!=0)
return false;
94 if(dt3.toPeriodicDiscrete(3.5)!=0)
return false;
95 if(dt3.toContinuous(250)!=0.5)
return false;
96 if(dt3.toContinuous(750)!=1.5)
return false;
97 if(dt3.toCyclicContinuous(250)!=0.5)
return false;
98 if(dt3.toCyclicContinuous(750)!=0.5)
return false;
99 if(dt3.toCyclicContinuous(1750)!=0.5)
return false;
100 if(dt3.toPeriodicContinuous(0)!=0.0)
return false;
101 if(dt3.toPeriodicContinuous(100)!=0.2)
return false;
102 if(dt3.toPeriodicContinuous(250)!=0.0)
return false;
103 if(dt3.toPeriodicContinuous(500)!=0.0)
return false;
104 if(dt3.toPeriodicContinuous(750)!=0.0)
return false;
105 if(dt3.toPeriodicContinuous(1000)!=0.0)
return false;
106 if(dt3.toPeriodicContinuous(1250)!=0.0)
return false;
107 if(dt3.toPeriodicContinuous(1350)!=0.2)
return false;
108 if(dt3.toPeriodicContinuous(1500)!=0.0)
return false;
109 if(dt3.toPeriodicContinuous(1750)!=0.0)
return false;
112 if(dt1.toDiscrete(0.00001) != 0)
return false;
113 if(dt2.toCyclicDiscrete(0.00001) != 0)
return false;
114 if(dt2.toPeriodicDiscrete(0.00001) != 0)
return false;
115 if(dt1.toContinuous(0) != 0.0)
return false;
116 if(dt1.toContinuous(1) <= 0.0)
return false;
117 if(dt3.toCyclicContinuous(0) != 0.0)
return false;
118 if(dt3.toPeriodicContinuous(1) <= 0.0)
return false;
119 if(dt2.toDiscrete(0.99999999) != 499)
return false;
120 if(std::fabs(dt3.toContinuous(499)-0.999999) < 0.000001)
return false;
121 if(dt2.toPeriodicDiscrete(1.99999999) != 999)
return false;
122 if(dt3.toPeriodicDiscrete(0.49999999) != 249)
return false;
123 if(std::fabs(dt2.toPeriodicContinuous(999)-1.9999) < 0.0001)
return false;
124 if(std::fabs(dt3.toPeriodicContinuous(249)-0.4999) < 0.0001)
return false;
128 if(dt4.toDiscrete(0.00000000001) != 0)
return false;
129 if(dt4.toDiscrete(0.000001) != 1)
return false;
130 if(dt4.toDiscrete(0.999999999999) != 999999)
return false;
131 if(dt4.toDiscrete(3.00000000001) != 3000000)
return false;
132 if(dt4.toDiscrete(2.000001) != 2000001)
return false;
133 if(dt4.toDiscrete(4.999999999999) != 4999999)
return false;
134 if(dt4.toCyclicDiscrete(3.00000000001) != 0)
return false;
135 if(dt4.toCyclicDiscrete(2.000001) != 1)
return false;
136 if(dt4.toCyclicDiscrete(4.999999999999) != 999999)
return false;
137 if(dt4.toPeriodicDiscrete(3.00000000001) != 0)
return false;
138 if(dt4.toPeriodicDiscrete(2.000001) != 1)
return false;
139 if(dt4.toPeriodicDiscrete(4.999999999999) != 999999)
return false;
140 if(dt4.toContinuous(0) != 0.0)
return false;
141 if(dt4.toContinuous(1) != 0.000001)
return false;
142 if(std::fabs(dt4.toContinuous(999999)-0.999999) > 0.0000001)
return false;
143 if(std::fabs(dt4.toContinuous(3000000)) != 3.0)
return false;
144 if(std::fabs(dt4.toContinuous(2000001)-2.000001) > 0.0000001)
return false;
145 if(std::fabs(dt4.toContinuous(4999999)-4.999999) > 0.0000001)
return false;
146 if(std::fabs(dt4.toCyclicContinuous(3000000)) != 0.0)
return false;
147 if(std::fabs(dt4.toCyclicContinuous(2000001)-0.000001) > 0.0000001)
149 if(std::fabs(dt4.toCyclicContinuous(4999999)-0.999999) > 0.0000001)
151 if(std::fabs(dt4.toPeriodicContinuous(3000000)) != 0.0)
return false;
152 if(std::fabs(dt4.toPeriodicContinuous(2000001)-0.000001) > 0.0000001)
154 if(std::fabs(dt4.toPeriodicContinuous(4999999)-0.999999) > 0.0000001)
156 if(dt4.toDiscrete(dt4.toContinuous(0))!=0)
return false;
157 if(dt4.toDiscrete(dt4.toContinuous(500000))!=500000)
return false;
158 if(dt4.toDiscrete(dt4.toContinuous(999999))!=999999)
return false;
159 if(dt4.toDiscrete(dt4.toContinuous(1000000))!=1000000)
return false;
160 if(dt4.toCyclicDiscrete(dt4.toContinuous(1000000))!=0)
return false;
161 if(dt4.toPeriodicDiscrete(dt4.toContinuous(1000000))!=0)
return false;
162 if(dt4.toContinuous(dt4.toDiscrete(0.0))!=0.0)
return false;
163 if(dt4.toContinuous(dt4.toDiscrete(0.5))!=0.5)
return false;
164 if(dt4.toContinuous(dt4.toDiscrete(1.0))!=1.0)
return false;
165 if(dt4.toCyclicContinuous(dt4.toDiscrete(1.0))!=0.0)
return false;
166 if(dt4.toPeriodicContinuous(dt4.toDiscrete(1.0))!=0.0)
return false;
Class to handle discrete time. It supports transforming from continuous time to discrete time and als...
Definition: DiscreteTime.h:16
BaseTest class.
Definition: BaseTest.h:20
BaseTest(std::string const &name)
Base test constructor.
Definition: BaseTest.h:35
Test discrete time handling.
Definition: DiscreteTimeTest.h:13
bool run() override
Definition: DiscreteTimeTest.h:30