10 #include "Tempus_TimeEventRange.hpp"
13 static double PI = M_PI;
15 namespace Tempus_Unit_Test {
19 using Teuchos::rcp_const_cast;
20 using Teuchos::rcp_dynamic_cast;
29 TEST_COMPARE(te->getName(), ==,
"TimeEventRange (0; 0; 0)");
30 te->setName(
"TestName");
50 0.0,
PI, 1.0,
"TestName",
true, 1.0e-14));
63 -
PI/2.0,
PI/2.0,
PI/4.0,
"teRange2",
true, 1.0e-14));
75 0.0,
PI, 5,
"TestName",
true, 1.0e-14));
95 te->setRelTol(1.0e-14);
96 te->setLandOnExactly(
false);
98 te->setLandOnExactly(
true);
101 te->setTimeStart(1.0);
108 te->setTimeStop(4.0);
115 te->setTimeStride(0.5);
128 te->setTimeStart(1.0);
129 te->setTimeStop(4.0);
130 te->setTimeStride(0.5);
133 te->setTimeStride(-0.5);
140 te->setTimeStride(5.0);
147 te->setTimeStride(1.0e-14);
162 te->setTimeRange(0.0,
PI, 1.0);
175 te->setTimeRange(0.0,
PI, 1.0);
176 te->setRelTol(1.0e-14);
221 te->setTimeRange(0.0,
PI, 1.0);
222 te->setRelTol(1.0e-14);
253 te->setTimeRange(0.0,
PI, 1.0);
254 te->setRelTol(1.0e-14);
285 te->setTimeRange(0.0,
PI, 1.0);
286 te->setRelTol(1.0e-14);
291 TEST_COMPARE(te->eventInRange(-1.0, -10.0e-14), ==,
false);
292 TEST_COMPARE(te->eventInRange(-1.0, -0.1e-14), ==, true );
294 TEST_COMPARE(te->eventInRange(-1.0, 0.1e-14), ==, true );
295 TEST_COMPARE(te->eventInRange(-1.0, 10.0e-14), ==, true );
298 TEST_COMPARE(te->eventInRange(0.5, 1.0 + -10.0e-14), ==,
false);
299 TEST_COMPARE(te->eventInRange(0.5, 1.0 + -0.1e-14), ==, true );
300 TEST_COMPARE(te->eventInRange(0.5, 1.0 + 0.0 ), ==, true );
301 TEST_COMPARE(te->eventInRange(0.5, 1.0 + 0.1e-14), ==, true );
302 TEST_COMPARE(te->eventInRange(0.5, 1.0 + 10.0e-14), ==, true );
305 TEST_COMPARE(te->eventInRange(2.5, 3.0 + -10.0e-14), ==,
false);
306 TEST_COMPARE(te->eventInRange(2.5, 3.0 + -0.1e-14), ==, true );
307 TEST_COMPARE(te->eventInRange(2.5, 3.0 + 0.0 ), ==, true );
308 TEST_COMPARE(te->eventInRange(2.5, 3.0 + 0.1e-14), ==, true );
309 TEST_COMPARE(te->eventInRange(2.5, 3.0 + 10.0e-14), ==, true );
313 TEST_COMPARE(te->eventInRange(-10.0e-14, 0.5), ==, true );
314 TEST_COMPARE(te->eventInRange( -0.1e-14, 0.5), ==,
false);
316 TEST_COMPARE(te->eventInRange( 0.1e-14, 0.5), ==,
false);
317 TEST_COMPARE(te->eventInRange( 10.0e-14, 0.5), ==,
false);
320 TEST_COMPARE(te->eventInRange(1.0 + -10.0e-14, 1.5), ==, true );
321 TEST_COMPARE(te->eventInRange(1.0 + -0.1e-14, 1.5), ==,
false);
322 TEST_COMPARE(te->eventInRange(1.0 + 0.0 , 1.5), ==,
false);
323 TEST_COMPARE(te->eventInRange(1.0 + 0.1e-14, 1.5), ==,
false);
324 TEST_COMPARE(te->eventInRange(1.0 + 10.0e-14, 1.5), ==,
false);
327 TEST_COMPARE(te->eventInRange(3.0 + -10.0e-14, 4.0), ==, true );
328 TEST_COMPARE(te->eventInRange(3.0 + -0.1e-14, 4.0), ==,
false);
329 TEST_COMPARE(te->eventInRange(3.0 + 0.0 , 4.0), ==,
false);
330 TEST_COMPARE(te->eventInRange(3.0 + 0.1e-14, 4.0), ==,
false);
331 TEST_COMPARE(te->eventInRange(3.0 + 10.0e-14, 4.0), ==,
false);
341 auto pl = ter->getValidParameters();
343 TEST_COMPARE (pl->get<std::string>(
"Type"), ==,
"Range");
344 TEST_COMPARE (pl->get<std::string>(
"Name"), ==,
"TimeEventRange (0; 0; 0)");
350 std::numeric_limits<double>::epsilon()*100.0, 1.0e-14);
351 TEST_COMPARE (pl->get<
bool>(
"Land On Exactly"), ==,
true);
354 std::ostringstream unusedParameters;
355 pl->unused(unusedParameters);
368 pl->
set(
"Name",
"Unit Test Time Event Range");
369 pl->
set(
"Type",
"Range");
370 pl->
set(
"Start Time", -0.1);
371 pl->
set(
"Stop Time", 1.1);
372 pl->
set(
"Stride Time", 0.1);
373 pl->
set(
"Relative Tolerance", 1.0e-10);
374 pl->
set(
"Land On Exactly",
false);
377 auto ter = Tempus::createTimeEventRange<double>(pl);
381 TEST_COMPARE ( ter->getName() , ==,
"Unit Test Time Event Range");
397 0.0, 0.0, 0.0,
"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)