28  TEST_COMPARE(te->getName(), ==, 
"TimeEventList");
 
   30  TEST_COMPARE(te->getTimeList().size(), ==, 0);
 
   31  TEST_FLOATING_EQUALITY(
 
   32      te->getRelTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
 
   33  TEST_FLOATING_EQUALITY(
 
   34      te->getAbsTol(), std::numeric_limits<double>::epsilon() * 100.0, 1.0e-14);
 
   36  TEST_COMPARE(te->getLandOnExactly(), ==, 
true);
 
   39  TEST_COMPARE(te->isIndex(1), ==, 
false);
 
   40  TEST_COMPARE(te->indexToNextEvent(1), ==, te->getDefaultIndex());
 
   41  TEST_COMPARE(te->indexOfNextEvent(1), ==, te->getDefaultIndex());
 
   42  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);
 
   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);
 
 
   78  te->setName(
"TestName");
 
   79  TEST_COMPARE(te->getName(), ==, 
"TestName");
 
   81  TEST_FLOATING_EQUALITY(te->getRelTol(), 0.1, 1.0e-14);
 
   82  te->setRelTol(1.0e-14);
 
   83  te->setLandOnExactly(
false);
 
   84  TEST_COMPARE(te->getLandOnExactly(), ==, 
false);
 
   97  auto testList = te->getTimeList();
 
   98  TEST_COMPARE(testList.size(), ==, 5);
 
   99  TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
 
  100  TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
 
  101  TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
 
  102  TEST_FLOATING_EQUALITY(testList[3], 
PI, 1.0e-14);
 
  103  TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
 
  106  te->addTime(2.0 + 1.0e-14);
 
  107  TEST_COMPARE(te->getTimeList().size(), ==, 5);
 
  108  te->addTime(2.0 + 1.0e-13);
 
  109  TEST_COMPARE(te->getTimeList().size(), ==, 6);
 
  113  te->setTimeList(testList);
 
  114  TEST_COMPARE(testList.size(), ==, 5);
 
  115  TEST_FLOATING_EQUALITY(testList[0], -1.0, 1.0e-14);
 
  116  TEST_FLOATING_EQUALITY(testList[1], 0.0, 1.0e-14);
 
  117  TEST_FLOATING_EQUALITY(testList[2], 2.0, 1.0e-14);
 
  118  TEST_FLOATING_EQUALITY(testList[3], 
PI, 1.0e-14);
 
  119  TEST_FLOATING_EQUALITY(testList[4], 5.0, 1.0e-14);
 
 
  132  te->setRelTol(1.0e-14);
 
  136  TEST_COMPARE(te->isTime(-10.0e-14), ==, 
false);  
 
  137  TEST_COMPARE(te->isTime(-0.1e-14), ==, 
true);    
 
  138  TEST_COMPARE(te->isTime(0.0), ==, 
true);         
 
  139  TEST_COMPARE(te->isTime(0.1e-14), ==, 
true);     
 
  140  TEST_COMPARE(te->isTime(10.0e-14), ==, 
false);   
 
  143  TEST_COMPARE(te->isTime(
PI + -10.0e-14), ==,
 
  145  TEST_COMPARE(te->isTime(
PI + -0.1e-14), ==, 
true);  
 
  146  TEST_COMPARE(te->isTime(
PI + 0.0), ==, 
true);       
 
  147  TEST_COMPARE(te->isTime(
PI + 0.1e-14), ==, 
true);   
 
  148  TEST_COMPARE(te->isTime(
PI + 10.0e-14), ==,
 
  152  TEST_COMPARE(te->isTime(5.0 + -10.0e-14), ==,
 
  154  TEST_COMPARE(te->isTime(5.0 + -0.1e-14), ==, 
true);  
 
  155  TEST_COMPARE(te->isTime(5.0 + 0.0), ==, 
true);       
 
  156  TEST_COMPARE(te->isTime(5.0 + 0.1e-14), ==, 
true);   
 
  157  TEST_COMPARE(te->isTime(5.0 + 10.0e-14), ==,
 
 
  165  std::vector<double> testList;
 
  166  testList.push_back(0.0);
 
  167  testList.push_back(
PI);
 
  168  testList.push_back(-1.0);
 
  169  testList.push_back(2.0);
 
  170  testList.push_back(5.0);
 
  177  TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + -10.0e-14), 1.0e-13,
 
  179  TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + -0.1e-14), 1.0 + 0.1e-14,
 
  181  TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 0.0), 1.0 + 0.0, 1.0e-02);
 
  182  TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 0.1e-14), 1.0 - 0.1e-14,
 
  184  TEST_FLOATING_EQUALITY(te->timeToNextEvent(-1.0 + 10.0e-14), 1.0 - 1.0e-13,
 
  188  TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + -10.0e-14), 1.0e-13, 1.0e-02);
 
  189  TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + -0.1e-14), 5.0 - 
PI + 0.1e-14,
 
  191  TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 0.0), 5.0 - 
PI + 0.0,
 
  193  TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 0.1e-14), 5.0 - 
PI - 0.1e-14,
 
  195  TEST_FLOATING_EQUALITY(te->timeToNextEvent(
PI + 10.0e-14), 5.0 - 
PI - 1.0e-13,
 
  199  TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + -10.0e-14), 1.0e-13,
 
  201  TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + -0.1e-14),
 
  202                         te->getDefaultTime(), 1.0e-01);
 
  203  TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + 0.0), te->getDefaultTime(),
 
  205  TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + 0.1e-14),
 
  206                         te->getDefaultTime(), 1.0e-01);
 
  207  TEST_FLOATING_EQUALITY(te->timeToNextEvent(5.0 + 10.0e-14),
 
  208                         te->getDefaultTime(), 1.0e-02);
 
 
  215  std::vector<double> testList;
 
  216  testList.push_back(0.0);
 
  217  testList.push_back(
PI);
 
  218  testList.push_back(-1.0);
 
  219  testList.push_back(2.0);
 
  220  testList.push_back(5.0);
 
  227  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + -10.0e-14), -1.0, 1.0e-14);
 
  228  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + -0.1e-14), 0.0, 1.0e-14);
 
  229  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 0.0), 0.0, 1.0e-14);
 
  230  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 0.1e-14), 0.0, 1.0e-14);
 
  231  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(-1.0 + 10.0e-14), 0.0, 1.0e-14);
 
  234  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + -10.0e-14), 2.0, 1.0e-14);
 
  235  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + -0.1e-14), 
PI, 1.0e-14);
 
  236  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + 0.0), 
PI, 1.0e-14);
 
  237  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + 0.1e-14), 
PI, 1.0e-14);
 
  238  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(2.0 + 10.0e-14), 
PI, 1.0e-14);
 
  241  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + -10.0e-14), 5.0, 1.0e-14);
 
  242  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + -0.1e-14),
 
  243                         te->getDefaultTime(), 1.0e-14);
 
  244  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + 0.0), te->getDefaultTime(),
 
  246  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + 0.1e-14),
 
  247                         te->getDefaultTime(), 1.0e-14);
 
  248  TEST_FLOATING_EQUALITY(te->timeOfNextEvent(5.0 + 10.0e-14),
 
  249                         te->getDefaultTime(), 1.0e-14);
 
 
  256  std::vector<double> testList;
 
  257  testList.push_back(0.0);
 
  258  testList.push_back(
PI);
 
  259  testList.push_back(-1.0);
 
  260  testList.push_back(2.0);
 
  261  testList.push_back(5.0);
 
  268  TEST_COMPARE(te->eventInRange(-2.0, -1.0 + -10.0e-14), ==,
 
  270  TEST_COMPARE(te->eventInRange(-2.0, -1.0 + -0.1e-14), ==, 
true);
 
  271  TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 0.0), ==, 
true);
 
  272  TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 0.1e-14), ==, 
true);
 
  273  TEST_COMPARE(te->eventInRange(-2.0, -1.0 + 10.0e-14), ==, 
true);
 
  275  TEST_COMPARE(te->eventInRange(3.0, 
PI + -10.0e-14), ==,
 
  277  TEST_COMPARE(te->eventInRange(3.0, 
PI + -0.1e-14), ==, 
true);
 
  278  TEST_COMPARE(te->eventInRange(3.0, 
PI + 0.0), ==, 
true);
 
  279  TEST_COMPARE(te->eventInRange(3.0, 
PI + 0.1e-14), ==, 
true);
 
  280  TEST_COMPARE(te->eventInRange(3.0, 
PI + 10.0e-14), ==, 
true);
 
  282  TEST_COMPARE(te->eventInRange(4.5, 5.0 + -10.0e-14), ==,
 
  284  TEST_COMPARE(te->eventInRange(4.5, 5.0 + -0.1e-14), ==, 
true);
 
  285  TEST_COMPARE(te->eventInRange(4.5, 5.0 + 0.0), ==, 
true);
 
  286  TEST_COMPARE(te->eventInRange(4.5, 5.0 + 0.1e-14), ==, 
true);
 
  287  TEST_COMPARE(te->eventInRange(4.5, 5.0 + 10.0e-14), ==, 
true);
 
  290  TEST_COMPARE(te->eventInRange(-1.0 + -10.0e-14, -0.5), ==,
 
  292  TEST_COMPARE(te->eventInRange(-1.0 + -0.1e-14, -0.5), ==, 
false);
 
  293  TEST_COMPARE(te->eventInRange(-1.0 + 0.0, -0.5), ==, 
false);
 
  294  TEST_COMPARE(te->eventInRange(-1.0 + 0.1e-14, -0.5), ==, 
false);
 
  295  TEST_COMPARE(te->eventInRange(-1.0 + 10.0e-14, -0.5), ==, 
false);
 
  297  TEST_COMPARE(te->eventInRange(
PI + -10.0e-14, 3.5), ==,
 
  299  TEST_COMPARE(te->eventInRange(
PI + -0.1e-14, 3.5), ==, 
false);
 
  300  TEST_COMPARE(te->eventInRange(
PI + 0.0, 3.5), ==, 
false);
 
  301  TEST_COMPARE(te->eventInRange(
PI + 0.1e-14, 3.5), ==, 
false);
 
  302  TEST_COMPARE(te->eventInRange(
PI + 10.0e-14, 3.5), ==, 
false);
 
  304  TEST_COMPARE(te->eventInRange(5.0 + -10.0e-14, 6.0), ==,
 
  306  TEST_COMPARE(te->eventInRange(5.0 + -0.1e-14, 6.0), ==, 
false);
 
  307  TEST_COMPARE(te->eventInRange(5.0 + 0.0, 6.0), ==, 
false);
 
  308  TEST_COMPARE(te->eventInRange(5.0 + 0.1e-14, 6.0), ==, 
false);
 
  309  TEST_COMPARE(te->eventInRange(5.0 + 10.0e-14, 6.0), ==, 
false);
 
 
  318  auto pl = tel->getValidParameters();
 
  320  TEST_COMPARE(pl->get<std::string>(
"Type"), ==, 
"List");
 
  321  TEST_COMPARE(pl->get<std::string>(
"Name"), ==, 
"TimeEventList");
 
  322  TEST_FLOATING_EQUALITY(pl->get<
double>(
"Relative Tolerance"),
 
  323                         std::numeric_limits<double>::epsilon() * 100.0,
 
  325  TEST_COMPARE(pl->get<
bool>(
"Land On Exactly"), ==, 
true);
 
  326  TEST_COMPARE(pl->get<std::string>(
"Time List"), ==, 
"");
 
  329    std::ostringstream unusedParameters;
 
  330    pl->unused(unusedParameters);
 
  331    TEST_COMPARE(unusedParameters.str(), ==, 
"");
 
 
  340  Teuchos::RCP<Teuchos::ParameterList> pl =
 
  341      Teuchos::parameterList(
"Time Event List");
 
  343  pl->set(
"Name", 
"Unit Test Time Event List");
 
  344  pl->set(
"Type", 
"List");
 
  345  pl->set(
"Relative Tolerance", 1.0e-10);
 
  346  pl->set(
"Land On Exactly", 
false);
 
  348  std::vector<double> times;
 
  349  times.push_back(-0.1);
 
  350  times.push_back(0.1);
 
  351  times.push_back(0.5);
 
  352  times.push_back(1.1);
 
  353  std::ostringstream list;
 
  354  for (std::size_t i = 0; i < times.size() - 1; ++i) list << times[i] << 
", ";
 
  355  list << times[times.size() - 1];
 
  356  pl->set<std::string>(
"Time List", list.str());
 
  359  auto tel = Tempus::createTimeEventList<double>(pl);
 
  361  tel->describe(out, Teuchos::VERB_EXTREME);
 
  363  TEST_COMPARE(tel->getName(), ==, 
"Unit Test Time Event List");
 
  364  TEST_COMPARE(tel->getType(), ==, 
"List");
 
  365  TEST_FLOATING_EQUALITY(tel->getRelTol(), 1.0e-10, 1.0e-14);
 
  366  TEST_COMPARE(tel->getLandOnExactly(), ==, 
false);
 
  367  auto teList = tel->getTimeList();
 
  368  TEST_FLOATING_EQUALITY(teList[0], -0.1, 1.0e-14);
 
  369  TEST_FLOATING_EQUALITY(teList[1], 0.1, 1.0e-14);
 
  370  TEST_FLOATING_EQUALITY(teList[2], 0.5, 1.0e-14);
 
  371  TEST_FLOATING_EQUALITY(teList[3], 1.1, 1.0e-14);