28 TEST_COMPARE(te->getName(), ==,
"TimeEventRange (0; 0; 0)");
29 te->setName(
"TestName");
30 TEST_COMPARE(te->getName(), ==,
"TestName");
32 TEST_FLOATING_EQUALITY(te->getTimeStart(), 0.0, 1.0e-14);
33 TEST_FLOATING_EQUALITY(te->getTimeStop(), 0.0, 1.0e-14);
34 TEST_FLOATING_EQUALITY(te->getTimeStride(), 0.0, 1.0e-14);
35 TEST_COMPARE(te->getNumEvents(), ==, 1);
37 TEST_FLOATING_EQUALITY(
38 te->getRelTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
39 TEST_FLOATING_EQUALITY(
40 te->getAbsTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
42 TEST_COMPARE(te->getLandOnExactly(), ==,
true);
92 TEST_FLOATING_EQUALITY(te->getRelTol(), 0.1, 1.0e-14);
93 te->setRelTol(1.0e-14);
94 te->setLandOnExactly(
false);
95 TEST_COMPARE(te->getLandOnExactly(), ==,
false);
96 te->setLandOnExactly(
true);
99 te->setTimeStart(1.0);
100 TEST_FLOATING_EQUALITY(te->getTimeStart(), 1.0, 1.0e-14);
101 TEST_FLOATING_EQUALITY(te->getTimeStop(), 1.0, 1.0e-14);
102 TEST_FLOATING_EQUALITY(te->getTimeStride(), 0.0, 1.0e-14);
103 TEST_COMPARE(te->getNumEvents(), ==, 1);
106 te->setTimeStop(4.0);
107 TEST_FLOATING_EQUALITY(te->getTimeStart(), 1.0, 1.0e-14);
108 TEST_FLOATING_EQUALITY(te->getTimeStop(), 4.0, 1.0e-14);
109 TEST_FLOATING_EQUALITY(te->getTimeStride(), 3.0, 1.0e-14);
110 TEST_COMPARE(te->getNumEvents(), ==, 2);
113 te->setTimeStride(0.5);
114 TEST_FLOATING_EQUALITY(te->getTimeStart(), 1.0, 1.0e-14);
115 TEST_FLOATING_EQUALITY(te->getTimeStop(), 4.0, 1.0e-14);
116 TEST_FLOATING_EQUALITY(te->getTimeStride(), 0.5, 1.0e-14);
117 TEST_COMPARE(te->getNumEvents(), ==, 7);
125 te->setTimeStart(1.0);
126 te->setTimeStop(4.0);
127 te->setTimeStride(0.5);
130 te->setTimeStride(-0.5);
131 TEST_FLOATING_EQUALITY(te->getTimeStart(), 1.0, 1.0e-14);
132 TEST_FLOATING_EQUALITY(te->getTimeStop(), 4.0, 1.0e-14);
133 TEST_FLOATING_EQUALITY(te->getTimeStride(), 0.5, 1.0e-14);
134 TEST_COMPARE(te->getNumEvents(), ==, 7);
137 te->setTimeStride(5.0);
138 TEST_FLOATING_EQUALITY(te->getTimeStart(), 1.0, 1.0e-14);
139 TEST_FLOATING_EQUALITY(te->getTimeStop(), 4.0, 1.0e-14);
140 TEST_FLOATING_EQUALITY(te->getTimeStride(), 3.0, 1.0e-14);
141 TEST_COMPARE(te->getNumEvents(), ==, 2);
144 te->setTimeStride(1.0e-14);
145 TEST_FLOATING_EQUALITY(te->getTimeStart(), 1.0, 1.0e-14);
146 TEST_FLOATING_EQUALITY(te->getTimeStop(), 4.0, 1.0e-14);
147 TEST_FLOATING_EQUALITY(te->getTimeStride(), 3.0, 1.0e-14);
148 TEST_COMPARE(te->getNumEvents(), ==, 2);
158 te->setTimeRange(0.0,
PI, 1.0);
159 TEST_FLOATING_EQUALITY(te->getTimeStart(), 0.0, 1.0e-14);
160 TEST_FLOATING_EQUALITY(te->getTimeStop(),
PI, 1.0e-14);
161 TEST_FLOATING_EQUALITY(te->getTimeStride(), 1.0, 1.0e-14);
162 TEST_COMPARE(te->getNumEvents(), ==, 4);
165 te->setTimeRange(0.0,
PI, 5);
166 TEST_FLOATING_EQUALITY(te->getTimeStart(), 0.0, 1.0e-14);
167 TEST_FLOATING_EQUALITY(te->getTimeStop(),
PI, 1.0e-14);
168 TEST_FLOATING_EQUALITY(te->getTimeStride(),
PI / 4.0, 1.0e-14);
169 TEST_COMPARE(te->getNumEvents(), ==, 5);
192 te->setTimeRange(0.0,
PI, 1.0);
193 te->setRelTol(1.0e-14);
196 TEST_COMPARE(te->isTime(-1.0 + -10.0e-14), ==,
198 TEST_COMPARE(te->isTime(-1.0 + -0.1e-14), ==,
200 TEST_COMPARE(te->isTime(-1.0 + 0.0), ==,
false);
201 TEST_COMPARE(te->isTime(-1.0 + 0.1e-14), ==,
203 TEST_COMPARE(te->isTime(-1.0 + 10.0e-14), ==,
207 TEST_COMPARE(te->isTime(-10.0e-14), ==,
false);
208 TEST_COMPARE(te->isTime(-0.1e-14), ==,
true);
209 TEST_COMPARE(te->isTime(0.0), ==,
true);
210 TEST_COMPARE(te->isTime(0.1e-14), ==,
true);
211 TEST_COMPARE(te->isTime(10.0e-14), ==,
false);
214 TEST_COMPARE(te->isTime(1.0 + -10.0e-14), ==,
216 TEST_COMPARE(te->isTime(1.0 + -0.1e-14), ==,
true);
217 TEST_COMPARE(te->isTime(1.0 + 0.0), ==,
true);
218 TEST_COMPARE(te->isTime(1.0 + 0.1e-14), ==,
true);
219 TEST_COMPARE(te->isTime(1.0 + 10.0e-14), ==,
223 TEST_COMPARE(te->isTime(3.0 + -10.0e-14), ==,
225 TEST_COMPARE(te->isTime(3.0 + -0.1e-14), ==,
true);
226 TEST_COMPARE(te->isTime(3.0 + 0.0), ==,
true);
227 TEST_COMPARE(te->isTime(3.0 + 0.1e-14), ==,
true);
228 TEST_COMPARE(te->isTime(3.0 + 10.0e-14), ==,
232 TEST_COMPARE(te->isTime(4.0 + -10.0e-14), ==,
234 TEST_COMPARE(te->isTime(4.0 + -0.1e-14), ==,
236 TEST_COMPARE(te->isTime(4.0 + 0.0), ==,
false);
237 TEST_COMPARE(te->isTime(4.0 + 0.1e-14), ==,
false);
238 TEST_COMPARE(te->isTime(4.0 + 10.0e-14), ==,
247 te->setTimeRange(0.0,
PI, 1.0);
248 te->setRelTol(1.0e-14);
252 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-10.0e-14), 10.0e-14,
254 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-0.1e-14), 1.0 + 0.1e-14,
256 TEST_FLOATING_EQUALITY(te->timeToNextEvent(0.0), 1.0 + 0.0,
258 TEST_FLOATING_EQUALITY(te->timeToNextEvent(0.1e-14), 1.0 - 0.1e-14,
260 TEST_FLOATING_EQUALITY(te->timeToNextEvent(10.0e-14), 1.0 - 10.0e-14,
264 TEST_FLOATING_EQUALITY(te->timeToNextEvent(1.0 + -10.0e-14), 10.0e-14,
266 TEST_FLOATING_EQUALITY(te->timeToNextEvent(1.0 + -0.1e-14), 1.0 + 0.1e-14,
268 TEST_FLOATING_EQUALITY(te->timeToNextEvent(1.0 + 0.0), 1.0 + 0.0,
270 TEST_FLOATING_EQUALITY(te->timeToNextEvent(1.0 + 0.1e-14), 1.0 - 0.1e-14,
272 TEST_FLOATING_EQUALITY(te->timeToNextEvent(1.0 + 10.0e-14), 1.0 - 10.0e-14,
276 TEST_FLOATING_EQUALITY(te->timeToNextEvent(3.0 + -10.0e-14), 10.0e-14,
278 TEST_FLOATING_EQUALITY(te->timeToNextEvent(3.0 + -0.1e-14),
279 te->getDefaultTime(),
281 TEST_FLOATING_EQUALITY(te->timeToNextEvent(3.0 + 0.0), te->getDefaultTime(),
283 TEST_FLOATING_EQUALITY(te->timeToNextEvent(3.0 + 0.1e-14),
284 te->getDefaultTime(),
286 TEST_FLOATING_EQUALITY(te->timeToNextEvent(3.0 + 10.0e-14),
287 te->getDefaultTime(),
296 te->setTimeRange(0.0,
PI, 1.0);
297 te->setRelTol(1.0e-14);
301 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-10.0e-14), 0.0,
303 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-0.1e-14), 1.0,
305 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(0.0), 1.0,
307 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(0.1e-14), 1.0,
309 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(10.0e-14), 1.0,
313 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(1.0 + -10.0e-14), 1.0,
315 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(1.0 + -0.1e-14), 2.0,
317 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(1.0 + 0.0), 2.0,
319 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(1.0 + 0.1e-14), 2.0,
321 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(1.0 + 10.0e-14), 2.0,
325 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(3.0 + -10.0e-14), 3.0,
327 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(3.0 + -0.1e-14),
328 te->getDefaultTime(),
330 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(3.0 + 0.0), te->getDefaultTime(),
332 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(3.0 + 0.1e-14),
333 te->getDefaultTime(),
335 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(3.0 + 10.0e-14),
336 te->getDefaultTime(),
345 te->setTimeRange(0.0,
PI, 1.0);
346 te->setRelTol(1.0e-14);
351 TEST_COMPARE(te->eventInRange(-1.0, -10.0e-14), ==,
353 TEST_COMPARE(te->eventInRange(-1.0, -0.1e-14), ==,
355 TEST_COMPARE(te->eventInRange(-1.0, 0.0), ==,
true);
356 TEST_COMPARE(te->eventInRange(-1.0, 0.1e-14), ==,
358 TEST_COMPARE(te->eventInRange(-1.0, 10.0e-14), ==,
362 TEST_COMPARE(te->eventInRange(0.5, 1.0 + -10.0e-14), ==,
364 TEST_COMPARE(te->eventInRange(0.5, 1.0 + -0.1e-14), ==,
366 TEST_COMPARE(te->eventInRange(0.5, 1.0 + 0.0), ==,
368 TEST_COMPARE(te->eventInRange(0.5, 1.0 + 0.1e-14), ==,
370 TEST_COMPARE(te->eventInRange(0.5, 1.0 + 10.0e-14), ==,
374 TEST_COMPARE(te->eventInRange(2.5, 3.0 + -10.0e-14), ==,
376 TEST_COMPARE(te->eventInRange(2.5, 3.0 + -0.1e-14), ==,
378 TEST_COMPARE(te->eventInRange(2.5, 3.0 + 0.0), ==,
380 TEST_COMPARE(te->eventInRange(2.5, 3.0 + 0.1e-14), ==,
382 TEST_COMPARE(te->eventInRange(2.5, 3.0 + 10.0e-14), ==,
387 TEST_COMPARE(te->eventInRange(-10.0e-14, 0.5), ==,
389 TEST_COMPARE(te->eventInRange(-0.1e-14, 0.5), ==,
391 TEST_COMPARE(te->eventInRange(0.0, 0.5), ==,
false);
392 TEST_COMPARE(te->eventInRange(0.1e-14, 0.5), ==,
394 TEST_COMPARE(te->eventInRange(10.0e-14, 0.5), ==,
398 TEST_COMPARE(te->eventInRange(1.0 + -10.0e-14, 1.5), ==,
400 TEST_COMPARE(te->eventInRange(1.0 + -0.1e-14, 1.5), ==,
402 TEST_COMPARE(te->eventInRange(1.0 + 0.0, 1.5), ==,
404 TEST_COMPARE(te->eventInRange(1.0 + 0.1e-14, 1.5), ==,
406 TEST_COMPARE(te->eventInRange(1.0 + 10.0e-14, 1.5), ==,
410 TEST_COMPARE(te->eventInRange(3.0 + -10.0e-14, 4.0), ==,
412 TEST_COMPARE(te->eventInRange(3.0 + -0.1e-14, 4.0), ==,
414 TEST_COMPARE(te->eventInRange(3.0 + 0.0, 4.0), ==,
416 TEST_COMPARE(te->eventInRange(3.0 + 0.1e-14, 4.0), ==,
418 TEST_COMPARE(te->eventInRange(3.0 + 10.0e-14, 4.0), ==,
428 auto pl = ter->getValidParameters();
430 TEST_COMPARE(pl->get<std::string>(
"Type"), ==,
"Range");
431 TEST_COMPARE(pl->get<std::string>(
"Name"), ==,
"TimeEventRange (0; 0; 0)");
432 TEST_FLOATING_EQUALITY(pl->get<
double>(
"Start Time"), 0.0, 1.0e-14);
433 TEST_FLOATING_EQUALITY(pl->get<
double>(
"Stop Time"), 0.0, 1.0e-14);
434 TEST_FLOATING_EQUALITY(pl->get<
double>(
"Stride Time"), 0.0, 1.0e-14);
435 TEST_COMPARE(pl->get<
int>(
"Number of Events"), ==, 1);
436 TEST_FLOATING_EQUALITY(pl->get<
double>(
"Relative Tolerance"),
437 std::numeric_limits<double>::epsilon() * 100.0,
439 TEST_COMPARE(pl->get<
bool>(
"Land On Exactly"), ==,
true);
442 std::ostringstream unusedParameters;
443 pl->unused(unusedParameters);
444 TEST_COMPARE(unusedParameters.str(), ==,
"");
453 Teuchos::RCP<Teuchos::ParameterList> pl =
454 Teuchos::parameterList(
"Time Event Range");
456 pl->set(
"Name",
"Unit Test Time Event Range");
457 pl->set(
"Type",
"Range");
458 pl->set(
"Start Time", -0.1);
459 pl->set(
"Stop Time", 1.1);
460 pl->set(
"Stride Time", 0.1);
461 pl->set(
"Relative Tolerance", 1.0e-10);
462 pl->set(
"Land On Exactly",
false);
465 auto ter = Tempus::createTimeEventRange<double>(pl);
469 TEST_COMPARE(ter->getName(), ==,
"Unit Test Time Event Range");
470 TEST_COMPARE(ter->getType(), ==,
"Range");
471 TEST_FLOATING_EQUALITY(ter->getTimeStart(), -0.1, 1.0e-14);
472 TEST_FLOATING_EQUALITY(ter->getTimeStop(), 1.1, 1.0e-14);
473 TEST_FLOATING_EQUALITY(ter->getTimeStride(), 0.1, 1.0e-14);
474 TEST_COMPARE(ter->getNumEvents(), ==, 13);
475 TEST_FLOATING_EQUALITY(ter->getRelTol(), 1.0e-10, 1.0e-14);
476 TEST_COMPARE(ter->getLandOnExactly(), ==,
false);
484 "SingleEventAtZero",
true));
485 ter->describe(out, Teuchos::VERB_EXTREME);
487 TEST_COMPARE(ter->getNumEvents(), ==, 1);
489 TEST_COMPARE(ter->isTime(0.0), ==,
true);
490 TEST_FLOATING_EQUALITY(ter->timeToNextEvent(-1.0), 1.0, 1.0e-14);
491 TEST_FLOATING_EQUALITY(ter->timeOfNextEvent(-1.0), 0.0, 1.0e-14);
492 TEST_FLOATING_EQUALITY(ter->timeToNextEvent(0.0), ter->getDefaultTime(),
494 TEST_FLOATING_EQUALITY(ter->timeOfNextEvent(0.0), ter->getDefaultTime(),
496 TEST_COMPARE(ter->eventInRange(-1.0, 1.0), ==,
true);
497 TEST_COMPARE(ter->eventInRange(0.0, 1.0), ==,
false);
498 TEST_COMPARE(ter->eventInRange(0.0, 0.0), ==,
false);