28 TEST_COMPARE(te->getName(), ==,
"TimeEventList");
30 TEST_COMPARE(te->getTimeList().size(), ==, 0);
31 TEST_FLOATING_EQUALITY(
32 te->getRelTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
33 TEST_FLOATING_EQUALITY(
34 te->getAbsTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
36 TEST_COMPARE(te->getLandOnExactly(), ==,
true);
39 TEST_COMPARE(te->isIndex(1), ==,
false);
40 TEST_COMPARE(te->indexToNextEvent(1), ==, te->getDefaultIndex());
41 TEST_COMPARE(te->indexOfNextEvent(1), ==, te->getDefaultIndex());
42 TEST_COMPARE(te->eventInRangeIndex(1, 4), ==,
false);
49 std::vector<double> testVector;
50 testVector.push_back(-1.0);
51 testVector.push_back(0.0);
52 testVector.push_back(5.0);
53 testVector.push_back(2.0);
54 testVector.push_back(
PI);
59 TEST_COMPARE(te->getName(), ==,
"TestName");
60 TEST_FLOATING_EQUALITY(te->getRelTol(), 1.0e-14, 1.0e-14);
61 TEST_COMPARE(te->getLandOnExactly(), ==,
true);
63 auto testList = te->getTimeList();
64 TEST_COMPARE(testList.size(), ==, 5);
65 TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
66 TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
67 TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
68 TEST_FLOATING_EQUALITY(testList[3],
PI, 1.0e-14);
69 TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
78 te->setName(
"TestName");
79 TEST_COMPARE(te->getName(), ==,
"TestName");
81 TEST_FLOATING_EQUALITY(te->getRelTol(), 0.1, 1.0e-14);
82 te->setRelTol(1.0e-14);
83 te->setLandOnExactly(
false);
84 TEST_COMPARE(te->getLandOnExactly(), ==,
false);
97 auto testList = te->getTimeList();
98 TEST_COMPARE(testList.size(), ==, 5);
99 TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
100 TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
101 TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
102 TEST_FLOATING_EQUALITY(testList[3],
PI, 1.0e-14);
103 TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
106 te->addTime(2.0 + 1.0e-14);
107 TEST_COMPARE(te->getTimeList().size(), ==, 5);
108 te->addTime(2.0 + 1.0e-13);
109 TEST_COMPARE(te->getTimeList().size(), ==, 6);
113 te->setTimeList(testList);
114 TEST_COMPARE(testList.size(), ==, 5);
115 TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
116 TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
117 TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
118 TEST_FLOATING_EQUALITY(testList[3],
PI, 1.0e-14);
119 TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
132 te->setRelTol(1.0e-14);
136 TEST_COMPARE(te->isTime(-10.0e-14), ==,
false);
137 TEST_COMPARE(te->isTime(-0.1e-14), ==,
true);
138 TEST_COMPARE(te->isTime(0.0), ==,
true);
139 TEST_COMPARE(te->isTime(0.1e-14), ==,
true);
140 TEST_COMPARE(te->isTime(10.0e-14), ==,
false);
143 TEST_COMPARE(te->isTime(
PI + -10.0e-14), ==,
145 TEST_COMPARE(te->isTime(
PI + -0.1e-14), ==,
true);
146 TEST_COMPARE(te->isTime(
PI + 0.0), ==,
true);
147 TEST_COMPARE(te->isTime(
PI + 0.1e-14), ==,
true);
148 TEST_COMPARE(te->isTime(
PI + 10.0e-14), ==,
152 TEST_COMPARE(te->isTime(5.0 + -10.0e-14), ==,
154 TEST_COMPARE(te->isTime(5.0 + -0.1e-14), ==,
true);
155 TEST_COMPARE(te->isTime(5.0 + 0.0), ==,
true);
156 TEST_COMPARE(te->isTime(5.0 + 0.1e-14), ==,
true);
157 TEST_COMPARE(te->isTime(5.0 + 10.0e-14), ==,
165 std::vector<double> testList;
166 testList.push_back(0.0);
167 testList.push_back(
PI);
168 testList.push_back(-1.0);
169 testList.push_back(2.0);
170 testList.push_back(5.0);
177 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + -10.0e-14), 1.0e-13,
179 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + -0.1e-14), 1.0 + 0.1e-14,
181 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 0.0), 1.0 + 0.0, 1.0e-02);
182 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 0.1e-14), 1.0 - 0.1e-14,
184 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 10.0e-14), 1.0 - 1.0e-13,
188 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + -10.0e-14), 1.0e-13, 1.0e-02);
189 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + -0.1e-14), 5.0 -
PI + 0.1e-14,
191 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 0.0), 5.0 -
PI + 0.0,
193 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 0.1e-14), 5.0 -
PI - 0.1e-14,
195 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 10.0e-14), 5.0 -
PI - 1.0e-13,
199 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + -10.0e-14), 1.0e-13,
201 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + -0.1e-14),
202 te->getDefaultTime(), 1.0e-01);
203 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + 0.0), te->getDefaultTime(),
205 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + 0.1e-14),
206 te->getDefaultTime(), 1.0e-01);
207 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + 10.0e-14),
208 te->getDefaultTime(), 1.0e-02);
215 std::vector<double> testList;
216 testList.push_back(0.0);
217 testList.push_back(
PI);
218 testList.push_back(-1.0);
219 testList.push_back(2.0);
220 testList.push_back(5.0);
227 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + -10.0e-14), -1.0, 1.0e-14);
228 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + -0.1e-14), 0.0, 1.0e-14);
229 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 0.0), 0.0, 1.0e-14);
230 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 0.1e-14), 0.0, 1.0e-14);
231 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 10.0e-14), 0.0, 1.0e-14);
234 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + -10.0e-14), 2.0, 1.0e-14);
235 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + -0.1e-14),
PI, 1.0e-14);
236 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + 0.0),
PI, 1.0e-14);
237 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + 0.1e-14),
PI, 1.0e-14);
238 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + 10.0e-14),
PI, 1.0e-14);
241 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + -10.0e-14), 5.0, 1.0e-14);
242 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + -0.1e-14),
243 te->getDefaultTime(), 1.0e-14);
244 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + 0.0), te->getDefaultTime(),
246 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + 0.1e-14),
247 te->getDefaultTime(), 1.0e-14);
248 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + 10.0e-14),
249 te->getDefaultTime(), 1.0e-14);
256 std::vector<double> testList;
257 testList.push_back(0.0);
258 testList.push_back(
PI);
259 testList.push_back(-1.0);
260 testList.push_back(2.0);
261 testList.push_back(5.0);
268 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + -10.0e-14), ==,
270 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + -0.1e-14), ==,
true);
271 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 0.0), ==,
true);
272 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 0.1e-14), ==,
true);
273 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 10.0e-14), ==,
true);
275 TEST_COMPARE(te->eventInRange(3.0,
PI + -10.0e-14), ==,
277 TEST_COMPARE(te->eventInRange(3.0,
PI + -0.1e-14), ==,
true);
278 TEST_COMPARE(te->eventInRange(3.0,
PI + 0.0), ==,
true);
279 TEST_COMPARE(te->eventInRange(3.0,
PI + 0.1e-14), ==,
true);
280 TEST_COMPARE(te->eventInRange(3.0,
PI + 10.0e-14), ==,
true);
282 TEST_COMPARE(te->eventInRange(4.5, 5.0 + -10.0e-14), ==,
284 TEST_COMPARE(te->eventInRange(4.5, 5.0 + -0.1e-14), ==,
true);
285 TEST_COMPARE(te->eventInRange(4.5, 5.0 + 0.0), ==,
true);
286 TEST_COMPARE(te->eventInRange(4.5, 5.0 + 0.1e-14), ==,
true);
287 TEST_COMPARE(te->eventInRange(4.5, 5.0 + 10.0e-14), ==,
true);
290 TEST_COMPARE(te->eventInRange(-1.0 + -10.0e-14, -0.5), ==,
292 TEST_COMPARE(te->eventInRange(-1.0 + -0.1e-14, -0.5), ==,
false);
293 TEST_COMPARE(te->eventInRange(-1.0 + 0.0, -0.5), ==,
false);
294 TEST_COMPARE(te->eventInRange(-1.0 + 0.1e-14, -0.5), ==,
false);
295 TEST_COMPARE(te->eventInRange(-1.0 + 10.0e-14, -0.5), ==,
false);
297 TEST_COMPARE(te->eventInRange(
PI + -10.0e-14, 3.5), ==,
299 TEST_COMPARE(te->eventInRange(
PI + -0.1e-14, 3.5), ==,
false);
300 TEST_COMPARE(te->eventInRange(
PI + 0.0, 3.5), ==,
false);
301 TEST_COMPARE(te->eventInRange(
PI + 0.1e-14, 3.5), ==,
false);
302 TEST_COMPARE(te->eventInRange(
PI + 10.0e-14, 3.5), ==,
false);
304 TEST_COMPARE(te->eventInRange(5.0 + -10.0e-14, 6.0), ==,
306 TEST_COMPARE(te->eventInRange(5.0 + -0.1e-14, 6.0), ==,
false);
307 TEST_COMPARE(te->eventInRange(5.0 + 0.0, 6.0), ==,
false);
308 TEST_COMPARE(te->eventInRange(5.0 + 0.1e-14, 6.0), ==,
false);
309 TEST_COMPARE(te->eventInRange(5.0 + 10.0e-14, 6.0), ==,
false);
318 auto pl = tel->getValidParameters();
320 TEST_COMPARE(pl->get<std::string>(
"Type"), ==,
"List");
321 TEST_COMPARE(pl->get<std::string>(
"Name"), ==,
"TimeEventList");
322 TEST_FLOATING_EQUALITY(pl->get<
double>(
"Relative Tolerance"),
323 std::numeric_limits<double>::epsilon() * 100.0,
325 TEST_COMPARE(pl->get<
bool>(
"Land On Exactly"), ==,
true);
326 TEST_COMPARE(pl->get<std::string>(
"Time List"), ==,
"");
329 std::ostringstream unusedParameters;
330 pl->unused(unusedParameters);
331 TEST_COMPARE(unusedParameters.str(), ==,
"");
340 Teuchos::RCP<Teuchos::ParameterList> pl =
341 Teuchos::parameterList(
"Time Event List");
343 pl->set(
"Name",
"Unit Test Time Event List");
344 pl->set(
"Type",
"List");
345 pl->set(
"Relative Tolerance", 1.0e-10);
346 pl->set(
"Land On Exactly",
false);
348 std::vector<double> times;
349 times.push_back(-0.1);
350 times.push_back(0.1);
351 times.push_back(0.5);
352 times.push_back(1.1);
353 std::ostringstream list;
354 for (std::size_t i = 0; i < times.size() - 1; ++i) list << times[i] <<
", ";
355 list << times[times.size() - 1];
356 pl->set<std::string>(
"Time List", list.str());
359 auto tel = Tempus::createTimeEventList<double>(pl);
361 tel->describe(out, Teuchos::VERB_EXTREME);
363 TEST_COMPARE(tel->getName(), ==,
"Unit Test Time Event List");
364 TEST_COMPARE(tel->getType(), ==,
"List");
365 TEST_FLOATING_EQUALITY(tel->getRelTol(), 1.0e-10, 1.0e-14);
366 TEST_COMPARE(tel->getLandOnExactly(), ==,
false);
367 auto teList = tel->getTimeList();
368 TEST_FLOATING_EQUALITY(teList[0], -0.1, 1.0e-14);
369 TEST_FLOATING_EQUALITY(teList[1], 0.1, 1.0e-14);
370 TEST_FLOATING_EQUALITY(teList[2], 0.5, 1.0e-14);
371 TEST_FLOATING_EQUALITY(teList[3], 1.1, 1.0e-14);