10 #include "Tempus_TimeEventRange.hpp"
12 static double PI = M_PI;
14 namespace Tempus_Unit_Test {
18 using Teuchos::rcp_const_cast;
19 using Teuchos::rcp_dynamic_cast;
27 TEST_COMPARE(te->getName(), ==,
"TimeEventRange (0; 0; 0)");
28 te->setName(
"TestName");
37 te->getRelTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
39 te->getAbsTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
62 -
PI / 2.0,
PI / 2.0,
PI / 4.0,
"teRange2",
true, 1.0e-14));
92 te->setRelTol(1.0e-14);
93 te->setLandOnExactly(
false);
95 te->setLandOnExactly(
true);
98 te->setTimeStart(1.0);
105 te->setTimeStop(4.0);
112 te->setTimeStride(0.5);
124 te->setTimeStart(1.0);
125 te->setTimeStop(4.0);
126 te->setTimeStride(0.5);
129 te->setTimeStride(-0.5);
136 te->setTimeStride(5.0);
143 te->setTimeStride(1.0e-14);
157 te->setTimeRange(0.0,
PI, 1.0);
169 te->setTimeRange(0.0,
PI, 1.0);
170 te->setRelTol(1.0e-14);
224 te->setTimeRange(0.0,
PI, 1.0);
225 te->setRelTol(1.0e-14);
256 te->getDefaultTime(),
261 te->getDefaultTime(),
264 te->getDefaultTime(),
273 te->setTimeRange(0.0,
PI, 1.0);
274 te->setRelTol(1.0e-14);
305 te->getDefaultTime(),
310 te->getDefaultTime(),
313 te->getDefaultTime(),
322 te->setTimeRange(0.0,
PI, 1.0);
323 te->setRelTol(1.0e-14);
339 TEST_COMPARE(te->eventInRange(0.5, 1.0 + -10.0e-14), ==,
351 TEST_COMPARE(te->eventInRange(2.5, 3.0 + -10.0e-14), ==,
375 TEST_COMPARE(te->eventInRange(1.0 + -10.0e-14, 1.5), ==,
387 TEST_COMPARE(te->eventInRange(3.0 + -10.0e-14, 4.0), ==,
405 auto pl = ter->getValidParameters();
407 TEST_COMPARE(pl->get<std::string>(
"Type"), ==,
"Range");
408 TEST_COMPARE(pl->get<std::string>(
"Name"), ==,
"TimeEventRange (0; 0; 0)");
414 std::numeric_limits<double>::epsilon() * 100.0,
416 TEST_COMPARE(pl->get<
bool>(
"Land On Exactly"), ==,
true);
419 std::ostringstream unusedParameters;
420 pl->unused(unusedParameters);
431 Teuchos::parameterList(
"Time Event Range");
433 pl->
set(
"Name",
"Unit Test Time Event Range");
434 pl->
set(
"Type",
"Range");
435 pl->
set(
"Start Time", -0.1);
436 pl->
set(
"Stop Time", 1.1);
437 pl->
set(
"Stride Time", 0.1);
438 pl->
set(
"Relative Tolerance", 1.0e-10);
439 pl->
set(
"Land On Exactly",
false);
442 auto ter = Tempus::createTimeEventRange<double>(pl);
446 TEST_COMPARE(ter->getName(), ==,
"Unit Test Time Event Range");
461 "SingleEventAtZero",
true));
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
#define TEST_COMPARE(v1, comp, v2)
#define TEST_FLOATING_EQUALITY(v1, v2, tol)
TimeEventRange specifies a start, stop and stride time.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< TimeEventRange< Scalar > > createTimeEventRange(Teuchos::RCP< Teuchos::ParameterList > pList)
Nonmember Constructor via ParameterList.
TEUCHOS_UNIT_TEST(BackwardEuler, Default_Construction)