29 TEST_COMPARE(te->getName(), ==,
"TimeEventList");
31 TEST_COMPARE(te->getTimeList().size(), ==, 0);
32 TEST_FLOATING_EQUALITY(te->getRelTol(), std::numeric_limits<double>::epsilon()*100.0, 1.0e-14);
33 TEST_FLOATING_EQUALITY(te->getAbsTol(), std::numeric_limits<double>::epsilon()*100.0, 1.0e-14);
35 TEST_COMPARE(te->getLandOnExactly(), ==,
true);
38 TEST_COMPARE(te->isIndex(1), ==,
false);
39 TEST_COMPARE(te->indexToNextEvent(1), ==, te->getDefaultIndex());
40 TEST_COMPARE(te->indexOfNextEvent(1), ==, te->getDefaultIndex());
41 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);
57 testVector,
"TestName",
true, 1.0e-14));
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);
79 te->setName(
"TestName");
80 TEST_COMPARE(te->getName(), ==,
"TestName");
82 TEST_FLOATING_EQUALITY(te->getRelTol(), 0.1, 1.0e-14);
83 te->setRelTol(1.0e-14);
84 te->setLandOnExactly(
false);
85 TEST_COMPARE(te->getLandOnExactly(), ==,
false);
98 auto testList = te->getTimeList();
99 TEST_COMPARE(testList.size(), ==, 5);
100 TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
101 TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
102 TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
103 TEST_FLOATING_EQUALITY(testList[3],
PI, 1.0e-14);
104 TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
107 te->addTime( 2.0 + 1.0e-14);
108 TEST_COMPARE(te->getTimeList().size(), ==, 5);
109 te->addTime( 2.0 + 1.0e-13);
110 TEST_COMPARE(te->getTimeList().size(), ==, 6);
114 te->setTimeList(testList);
115 TEST_COMPARE(testList.size(), ==, 5);
116 TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
117 TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
118 TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
119 TEST_FLOATING_EQUALITY(testList[3],
PI, 1.0e-14);
120 TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
134 te->setRelTol(1.0e-14);
138 TEST_COMPARE(te->isTime(-10.0e-14), ==,
false);
139 TEST_COMPARE(te->isTime( -0.1e-14), ==,
true );
140 TEST_COMPARE(te->isTime( 0.0 ), ==,
true );
141 TEST_COMPARE(te->isTime( 0.1e-14), ==,
true );
142 TEST_COMPARE(te->isTime( 10.0e-14), ==,
false);
145 TEST_COMPARE(te->isTime(
PI + -10.0e-14), ==,
false);
146 TEST_COMPARE(te->isTime(
PI + -0.1e-14), ==,
true );
147 TEST_COMPARE(te->isTime(
PI + 0.0 ), ==,
true );
148 TEST_COMPARE(te->isTime(
PI + 0.1e-14), ==,
true );
149 TEST_COMPARE(te->isTime(
PI + 10.0e-14), ==,
false);
152 TEST_COMPARE(te->isTime(5.0 + -10.0e-14), ==,
false);
153 TEST_COMPARE(te->isTime(5.0 + -0.1e-14), ==,
true );
154 TEST_COMPARE(te->isTime(5.0 + 0.0 ), ==,
true );
155 TEST_COMPARE(te->isTime(5.0 + 0.1e-14), ==,
true );
156 TEST_COMPARE(te->isTime(5.0 + 10.0e-14), ==,
false);
164 std::vector<double> testList;
165 testList.push_back( 0.0);
166 testList.push_back(
PI);
167 testList.push_back(-1.0);
168 testList.push_back( 2.0);
169 testList.push_back( 5.0);
172 testList,
"testList",
true, 1.0e-14));
176 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + -10.0e-14), 1.0e-13, 1.0e-02);
177 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + -0.1e-14), 1.0+0.1e-14, 1.0e-01);
178 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 0.0 ), 1.0+0.0 , 1.0e-02);
179 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 0.1e-14), 1.0-0.1e-14, 1.0e-02);
180 TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 10.0e-14), 1.0-1.0e-13, 1.0e-14);
183 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + -10.0e-14), 1.0e-13, 1.0e-02);
184 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + -0.1e-14), 5.0-
PI+0.1e-14, 1.0e-01);
185 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 0.0 ), 5.0-
PI+0.0 , 1.0e-02);
186 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 0.1e-14), 5.0-
PI-0.1e-14, 1.0e-01);
187 TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 10.0e-14), 5.0-
PI-1.0e-13, 1.0e-14);
190 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0+ -10.0e-14), 1.0e-13, 1.0e-02);
191 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0+ -0.1e-14), te->getDefaultTime(), 1.0e-01);
192 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0+ 0.0 ), te->getDefaultTime(), 1.0e-02);
193 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0+ 0.1e-14), te->getDefaultTime(), 1.0e-01);
194 TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0+ 10.0e-14), te->getDefaultTime(), 1.0e-02);
202 std::vector<double> testList;
203 testList.push_back( 0.0);
204 testList.push_back(
PI);
205 testList.push_back(-1.0);
206 testList.push_back( 2.0);
207 testList.push_back( 5.0);
210 testList,
"testList",
true, 1.0e-14));
214 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + -10.0e-14), -1.0, 1.0e-14);
215 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + -0.1e-14), 0.0, 1.0e-14);
216 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 0.0 ), 0.0, 1.0e-14);
217 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 0.1e-14), 0.0, 1.0e-14);
218 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 10.0e-14), 0.0, 1.0e-14);
221 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0+ -10.0e-14), 2.0, 1.0e-14);
222 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0+ -0.1e-14),
PI, 1.0e-14);
223 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0+ 0.0 ),
PI, 1.0e-14);
224 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0+ 0.1e-14),
PI, 1.0e-14);
225 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0+ 10.0e-14),
PI, 1.0e-14);
228 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0+ -10.0e-14), 5.0, 1.0e-14);
229 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0+ -0.1e-14), te->getDefaultTime(), 1.0e-14);
230 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0+ 0.0 ), te->getDefaultTime(), 1.0e-14);
231 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0+ 0.1e-14), te->getDefaultTime(), 1.0e-14);
232 TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0+ 10.0e-14), te->getDefaultTime(), 1.0e-14);
240 std::vector<double> testList;
241 testList.push_back( 0.0);
242 testList.push_back(
PI);
243 testList.push_back(-1.0);
244 testList.push_back( 2.0);
245 testList.push_back( 5.0);
248 testList,
"testList",
true, 1.0e-14));
252 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + -10.0e-14), ==,
false);
253 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + -0.1e-14), ==,
true );
254 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 0.0 ), ==,
true );
255 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 0.1e-14), ==,
true );
256 TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 10.0e-14), ==,
true );
258 TEST_COMPARE(te->eventInRange(3.0,
PI + -10.0e-14), ==,
false);
259 TEST_COMPARE(te->eventInRange(3.0,
PI + -0.1e-14), ==,
true );
260 TEST_COMPARE(te->eventInRange(3.0,
PI + 0.0 ), ==,
true );
261 TEST_COMPARE(te->eventInRange(3.0,
PI + 0.1e-14), ==,
true );
262 TEST_COMPARE(te->eventInRange(3.0,
PI + 10.0e-14), ==,
true );
264 TEST_COMPARE(te->eventInRange(4.5, 5.0 + -10.0e-14), ==,
false);
265 TEST_COMPARE(te->eventInRange(4.5, 5.0 + -0.1e-14), ==,
true );
266 TEST_COMPARE(te->eventInRange(4.5, 5.0 + 0.0 ), ==,
true );
267 TEST_COMPARE(te->eventInRange(4.5, 5.0 + 0.1e-14), ==,
true );
268 TEST_COMPARE(te->eventInRange(4.5, 5.0 + 10.0e-14), ==,
true );
271 TEST_COMPARE(te->eventInRange(-1.0 + -10.0e-14, -0.5), ==,
true );
272 TEST_COMPARE(te->eventInRange(-1.0 + -0.1e-14, -0.5), ==,
false);
273 TEST_COMPARE(te->eventInRange(-1.0 + 0.0 , -0.5), ==,
false);
274 TEST_COMPARE(te->eventInRange(-1.0 + 0.1e-14, -0.5), ==,
false);
275 TEST_COMPARE(te->eventInRange(-1.0 + 10.0e-14, -0.5), ==,
false);
277 TEST_COMPARE(te->eventInRange(
PI + -10.0e-14, 3.5), ==,
true );
278 TEST_COMPARE(te->eventInRange(
PI + -0.1e-14, 3.5), ==,
false);
279 TEST_COMPARE(te->eventInRange(
PI + 0.0 , 3.5), ==,
false);
280 TEST_COMPARE(te->eventInRange(
PI + 0.1e-14, 3.5), ==,
false);
281 TEST_COMPARE(te->eventInRange(
PI + 10.0e-14, 3.5), ==,
false);
283 TEST_COMPARE(te->eventInRange(5.0 + -10.0e-14, 6.0), ==,
true );
284 TEST_COMPARE(te->eventInRange(5.0 + -0.1e-14, 6.0), ==,
false);
285 TEST_COMPARE(te->eventInRange(5.0 + 0.0 , 6.0), ==,
false);
286 TEST_COMPARE(te->eventInRange(5.0 + 0.1e-14, 6.0), ==,
false);
287 TEST_COMPARE(te->eventInRange(5.0 + 10.0e-14, 6.0), ==,
false);
297 auto pl = tel->getValidParameters();
299 TEST_COMPARE (pl->get<std::string>(
"Type"), ==,
"List");
300 TEST_COMPARE (pl->get<std::string>(
"Name"), ==,
"TimeEventList");
301 TEST_FLOATING_EQUALITY(pl->get<
double>(
"Relative Tolerance"),
302 std::numeric_limits<double>::epsilon()*100.0, 1.0e-14);
303 TEST_COMPARE (pl->get<
bool>(
"Land On Exactly"), ==,
true);
304 TEST_COMPARE (pl->get<std::string>(
"Time List"), ==,
"");
307 std::ostringstream unusedParameters;
308 pl->unused(unusedParameters);
309 TEST_COMPARE ( unusedParameters.str(), ==,
"");
319 Teuchos::RCP<Teuchos::ParameterList> pl = Teuchos::parameterList(
"Time Event List");
321 pl->set(
"Name",
"Unit Test Time Event List");
322 pl->set(
"Type",
"List");
323 pl->set(
"Relative Tolerance", 1.0e-10);
324 pl->set(
"Land On Exactly",
false);
326 std::vector<double> times;
327 times.push_back(-0.1);
328 times.push_back( 0.1);
329 times.push_back( 0.5);
330 times.push_back( 1.1);
331 std::ostringstream list;
332 for(std::size_t i = 0; i < times.size()-1; ++i) list << times[i] <<
", ";
333 list << times[times.size()-1];
334 pl->set<std::string>(
"Time List", list.str());
337 auto tel = Tempus::createTimeEventList<double>(pl);
339 tel->describe(out, Teuchos::VERB_EXTREME);
341 TEST_COMPARE ( tel->getName() , ==,
"Unit Test Time Event List");
342 TEST_COMPARE ( tel->getType() , ==,
"List" );
343 TEST_FLOATING_EQUALITY( tel->getRelTol() , 1.0e-10, 1.0e-14);
344 TEST_COMPARE ( tel->getLandOnExactly(), ==,
false );
345 auto teList = tel->getTimeList();
346 TEST_FLOATING_EQUALITY( teList[0], -0.1, 1.0e-14);
347 TEST_FLOATING_EQUALITY( teList[1], 0.1, 1.0e-14);
348 TEST_FLOATING_EQUALITY( teList[2], 0.5, 1.0e-14);
349 TEST_FLOATING_EQUALITY( teList[3], 1.1, 1.0e-14);