11#include "Tempus_TimeEventListIndex.hpp"
18using Teuchos::rcp_const_cast;
19using Teuchos::rcp_dynamic_cast;
28 TEST_COMPARE(te->getName(), ==,
"TimeEventListIndex");
30 TEST_COMPARE(te->getIndexList().size(), ==, 0);
32 TEST_COMPARE(te->isIndex(-1), ==,
false);
33 TEST_COMPARE(te->isIndex( 0), ==,
false);
34 TEST_COMPARE(te->isIndex( 1), ==,
false);
36 TEST_COMPARE(te->indexToNextEvent(0), ==, te->getDefaultIndex());
37 TEST_COMPARE(te->indexOfNextEvent(0), ==, te->getDefaultIndex());
38 TEST_COMPARE(te->eventInRangeIndex(2, -1), ==,
false);
41 TEST_COMPARE(te->isTime(1.0), ==,
false);
42 TEST_COMPARE(te->timeToNextEvent(1.0), ==, te->getDefaultTime());
43 TEST_COMPARE(te->timeOfNextEvent(1.0), ==, te->getDefaultTime());
44 TEST_COMPARE(te->eventInRange(1.0, 4.0), ==,
false);
52 std::vector<int> testVector;
53 testVector.push_back(-2);
54 testVector.push_back( 0);
55 testVector.push_back( 7);
56 testVector.push_back( 3);
57 testVector.push_back(-5);
60 testVector,
"TestName"));
62 TEST_COMPARE(te->getName(), ==,
"TestName");
64 auto testList = te->getIndexList();
65 TEST_COMPARE(testList.size(), ==, 5);
66 TEST_COMPARE(testList[0], ==, -5);
67 TEST_COMPARE(testList[1], ==, -2);
68 TEST_COMPARE(testList[2], ==, 0);
69 TEST_COMPARE(testList[3], ==, 3);
70 TEST_COMPARE(testList[4], ==, 7);
74 TEST_COMPARE(te->getIndexList().size(), ==, 5);
76 TEST_COMPARE(te->getIndexList().size(), ==, 6);
86 te->setName(
"TestName");
87 TEST_COMPARE(te->getName(), ==,
"TestName");
91 TEST_COMPARE(te->isIndex(-6), ==,
false);
92 TEST_COMPARE(te->isIndex(-5), ==,
true );
93 TEST_COMPARE(te->isIndex(-4), ==,
false);
97 TEST_COMPARE(te->isIndex(0), ==,
false);
98 TEST_COMPARE(te->isIndex(1), ==,
true );
99 TEST_COMPARE(te->isIndex(2), ==,
false);
105 auto testList = te->getIndexList();
106 TEST_COMPARE(testList.size(), ==, 5);
107 TEST_COMPARE(testList[0], ==, -9);
108 TEST_COMPARE(testList[1], ==, -5);
109 TEST_COMPARE(testList[2], ==, -2);
110 TEST_COMPARE(testList[3], ==, 1);
111 TEST_COMPARE(testList[4], ==, 4);
119 std::vector<int> testListIndex;
120 testListIndex.push_back(-5);
121 testListIndex.push_back( 1);
122 testListIndex.push_back(-2);
123 testListIndex.push_back( 4);
124 testListIndex.push_back(-9);
127 testListIndex,
"teListIndex"));
131 TEST_COMPARE(te->indexToNextEvent(-12), ==, 3);
132 TEST_COMPARE(te->indexToNextEvent( -9), ==, 4);
133 TEST_COMPARE(te->indexToNextEvent( -8), ==, 3);
136 TEST_COMPARE(te->indexToNextEvent(-4), ==, 2);
137 TEST_COMPARE(te->indexToNextEvent(-2), ==, 3);
138 TEST_COMPARE(te->indexToNextEvent( 0), ==, 1);
141 TEST_COMPARE(te->indexToNextEvent(2), ==, 2);
142 TEST_COMPARE(te->indexToNextEvent(4), ==, te->getDefaultIndex()-4);
143 TEST_COMPARE(te->indexToNextEvent(9), ==, te->getDefaultIndex()-9);
151 std::vector<int> testListIndex;
152 testListIndex.push_back(-5);
153 testListIndex.push_back( 1);
154 testListIndex.push_back(-2);
155 testListIndex.push_back( 4);
156 testListIndex.push_back(-9);
159 testListIndex,
"teListIndex"));
163 TEST_COMPARE(te->indexOfNextEvent(-12), ==, -9);
164 TEST_COMPARE(te->indexOfNextEvent( -9), ==, -5);
165 TEST_COMPARE(te->indexOfNextEvent( -8), ==, -5);
168 TEST_COMPARE(te->indexOfNextEvent(-4), ==, -2);
169 TEST_COMPARE(te->indexOfNextEvent(-2), ==, 1);
170 TEST_COMPARE(te->indexOfNextEvent( 0), ==, 1);
173 TEST_COMPARE(te->indexOfNextEvent(2), ==, 4);
174 TEST_COMPARE(te->indexOfNextEvent(4), ==, te->getDefaultIndex());
175 TEST_COMPARE(te->indexOfNextEvent(9), ==, te->getDefaultIndex());
183 std::vector<int> testListIndex;
184 testListIndex.push_back(-5);
185 testListIndex.push_back( 1);
186 testListIndex.push_back(-2);
187 testListIndex.push_back( 4);
188 testListIndex.push_back(-9);
191 testListIndex,
"teListIndex"));
195 TEST_COMPARE(te->eventInRangeIndex(-12.0, -10), ==,
false);
196 TEST_COMPARE(te->eventInRangeIndex(-12.0, -9), ==,
true );
197 TEST_COMPARE(te->eventInRangeIndex(-12.0, -8), ==,
true );
199 TEST_COMPARE(te->eventInRangeIndex(-4, -3), ==,
false);
200 TEST_COMPARE(te->eventInRangeIndex(-4, -2), ==,
true );
201 TEST_COMPARE(te->eventInRangeIndex(-4, -1), ==,
true );
203 TEST_COMPARE(te->eventInRangeIndex(3, 3), ==,
false);
204 TEST_COMPARE(te->eventInRangeIndex(3, 4), ==,
true );
205 TEST_COMPARE(te->eventInRangeIndex(3, 6), ==,
true );
208 TEST_COMPARE(te->eventInRangeIndex(-12, -7), ==,
true );
209 TEST_COMPARE(te->eventInRangeIndex( -9, -7), ==,
false);
210 TEST_COMPARE(te->eventInRangeIndex( -8, -7), ==,
false);
212 TEST_COMPARE(te->eventInRangeIndex(-3, 0), ==,
true );
213 TEST_COMPARE(te->eventInRangeIndex(-2, 0), ==,
false);
214 TEST_COMPARE(te->eventInRangeIndex(-1, 0), ==,
false);
216 TEST_COMPARE(te->eventInRangeIndex(3, 8), ==,
true );
217 TEST_COMPARE(te->eventInRangeIndex(4, 8), ==,
false);
218 TEST_COMPARE(te->eventInRangeIndex(5, 8), ==,
false);
230 auto pl = teli->getValidParameters();
232 TEST_COMPARE( pl->get<std::string>(
"Type"), ==,
"List Index");
233 TEST_COMPARE( pl->get<std::string>(
"Name"), ==,
"TimeEventListIndex");
234 TEST_COMPARE( pl->get<std::string>(
"Index List"), ==,
"");
237 std::ostringstream unusedParameters;
238 pl->unused(unusedParameters);
239 TEST_COMPARE ( unusedParameters.str(), ==,
"");
249 Teuchos::RCP<Teuchos::ParameterList> pl =
250 Teuchos::parameterList(
"Time Event List Index");
252 pl->set(
"Name",
"Unit Test Time Event List Index");
253 pl->set(
"Type",
"List Index");
255 std::vector<int> indices;
256 indices.push_back(-99);
257 indices.push_back( 13);
258 indices.push_back( 97);
259 indices.push_back(101);
260 std::ostringstream list;
261 for(std::size_t i = 0; i < indices.size()-1; ++i) list << indices[i] <<
", ";
262 list << indices[indices.size()-1];
263 pl->set<std::string>(
"Index List", list.str());
266 auto teli = Tempus::createTimeEventListIndex<double>(pl);
268 teli->describe(out, Teuchos::VERB_EXTREME);
270 TEST_COMPARE( teli->getName() , ==,
"Unit Test Time Event List Index");
271 TEST_COMPARE( teli->getType() , ==,
"List Index");
272 auto teList = teli->getIndexList();
273 TEST_COMPARE( teList[0] , ==, -99);
274 TEST_COMPARE( teList[1] , ==, 13);
275 TEST_COMPARE( teList[2] , ==, 97);
276 TEST_COMPARE( teList[3] , ==, 101);
TimeEventListIndex specifies a list of index events.
TEUCHOS_UNIT_TEST(BackwardEuler, Default_Construction)