9 #include "Teuchos_UnitTestHarness.hpp" 
   10 #include "Teuchos_XMLParameterListHelpers.hpp" 
   11 #include "Teuchos_TimeMonitor.hpp" 
   12 #include "Teuchos_DefaultComm.hpp" 
   14 #include "Tempus_TimeEventListIndex.hpp" 
   16 #include "../TestUtils/Tempus_ConvergenceTestUtils.hpp" 
   19 namespace Tempus_Unit_Test {
 
   23 using Teuchos::rcp_const_cast;
 
   24 using Teuchos::rcp_dynamic_cast;
 
   33   TEST_COMPARE(te->getName(), ==, 
"TimeEventListIndex");
 
   35   TEST_COMPARE(te->getIndexList().size(), ==, 0);
 
   37   TEST_COMPARE(te->isIndex(-1), ==, 
false);
 
   38   TEST_COMPARE(te->isIndex(te->getDefaultIndex()), ==, 
true );
 
   39   TEST_COMPARE(te->isIndex( 1), ==, 
false);
 
   41   TEST_COMPARE(te->indexToNextEvent(0), ==, te->getDefaultIndex());
 
   42   TEST_COMPARE(te->indexOfNextEvent(0), ==, te->getDefaultIndex());
 
   43   TEST_COMPARE(te->eventInRangeIndex(2, -1), ==, 
false);
 
   46   TEST_COMPARE(te->isTime(1.0), ==, 
false);
 
   47   TEST_COMPARE(te->timeToNextEvent(1.0), ==, te->getDefaultTime());
 
   48   TEST_COMPARE(te->timeOfNextEvent(1.0), ==, te->getDefaultTime());
 
   49   TEST_COMPARE(te->eventInRange(1.0, 4.0), ==, 
false);
 
   57   std::vector<int> testVector;
 
   58   testVector.push_back(-2);
 
   59   testVector.push_back( 0);
 
   60   testVector.push_back( 7);
 
   61   testVector.push_back( 3);
 
   62   testVector.push_back(-5);
 
   65                 "TestName", testVector));
 
   67   TEST_COMPARE(te->getName(), ==, 
"TestName");
 
   69   auto testList = te->getIndexList();
 
   70   TEST_COMPARE(testList.size(), ==, 5);
 
   71   TEST_COMPARE(testList[0], ==, -5);
 
   72   TEST_COMPARE(testList[1], ==, -2);
 
   73   TEST_COMPARE(testList[2], ==,  0);
 
   74   TEST_COMPARE(testList[3], ==,  3);
 
   75   TEST_COMPARE(testList[4], ==,  7);
 
   79   TEST_COMPARE(te->getIndexList().size(), ==, 5);
 
   81   TEST_COMPARE(te->getIndexList().size(), ==, 6);
 
   91   te->setName(
"TestName");
 
   92   TEST_COMPARE(te->getName(), ==, 
"TestName");
 
   96   TEST_COMPARE(te->isIndex(-6), ==, 
false);
 
   97   TEST_COMPARE(te->isIndex(-5), ==, true );
 
   98   TEST_COMPARE(te->isIndex(-4), ==, 
false);
 
  102   TEST_COMPARE(te->isIndex(0), ==, 
false);
 
  103   TEST_COMPARE(te->isIndex(1), ==, true );
 
  104   TEST_COMPARE(te->isIndex(2), ==, 
false);
 
  110   auto testList = te->getIndexList();
 
  111   TEST_COMPARE(testList.size(), ==, 5);
 
  112   TEST_COMPARE(testList[0], ==, -9);
 
  113   TEST_COMPARE(testList[1], ==, -5);
 
  114   TEST_COMPARE(testList[2], ==, -2);
 
  115   TEST_COMPARE(testList[3], ==,  1);
 
  116   TEST_COMPARE(testList[4], ==,  4);
 
  124   std::vector<int> testListIndex;
 
  125   testListIndex.push_back(-5);
 
  126   testListIndex.push_back( 1);
 
  127   testListIndex.push_back(-2);
 
  128   testListIndex.push_back( 4);
 
  129   testListIndex.push_back(-9);
 
  132                 "teListIndex", testListIndex));
 
  136   TEST_COMPARE(te->indexToNextEvent(-12), ==,  3);
 
  137   TEST_COMPARE(te->indexToNextEvent( -9), ==,  0);
 
  138   TEST_COMPARE(te->indexToNextEvent( -8), ==,  3);
 
  141   TEST_COMPARE(te->indexToNextEvent(-4), ==,  2);
 
  142   TEST_COMPARE(te->indexToNextEvent(-2), ==,  0);
 
  143   TEST_COMPARE(te->indexToNextEvent( 0), ==,  1);
 
  146   TEST_COMPARE(te->indexToNextEvent(2), ==,  2);
 
  147   TEST_COMPARE(te->indexToNextEvent(4), ==,  0);
 
  148   TEST_COMPARE(te->indexToNextEvent(9), ==, -5);
 
  156   std::vector<int> testListIndex;
 
  157   testListIndex.push_back(-5);
 
  158   testListIndex.push_back( 1);
 
  159   testListIndex.push_back(-2);
 
  160   testListIndex.push_back( 4);
 
  161   testListIndex.push_back(-9);
 
  164                 "teListIndex", testListIndex));
 
  168   TEST_COMPARE(te->indexOfNextEvent(-12), ==, -9);
 
  169   TEST_COMPARE(te->indexOfNextEvent( -9), ==, -9);
 
  170   TEST_COMPARE(te->indexOfNextEvent( -8), ==, -5);
 
  173   TEST_COMPARE(te->indexOfNextEvent(-4), ==, -2);
 
  174   TEST_COMPARE(te->indexOfNextEvent(-2), ==, -2);
 
  175   TEST_COMPARE(te->indexOfNextEvent( 0), ==,  1);
 
  178   TEST_COMPARE(te->indexOfNextEvent(2), ==,  4);
 
  179   TEST_COMPARE(te->indexOfNextEvent(4), ==,  4);
 
  180   TEST_COMPARE(te->indexOfNextEvent(9), ==,  4);
 
  188   std::vector<int> testListIndex;
 
  189   testListIndex.push_back(-5);
 
  190   testListIndex.push_back( 1);
 
  191   testListIndex.push_back(-2);
 
  192   testListIndex.push_back( 4);
 
  193   testListIndex.push_back(-9);
 
  196                 "teListIndex", testListIndex));
 
  200   TEST_COMPARE(te->eventInRangeIndex(-12.0, -10), ==, 
false);   
 
  201   TEST_COMPARE(te->eventInRangeIndex(-12.0,  -9), ==, true );
 
  202   TEST_COMPARE(te->eventInRangeIndex(-12.0,  -8), ==, true );
 
  204   TEST_COMPARE(te->eventInRangeIndex(-4, -3), ==, 
false);   
 
  205   TEST_COMPARE(te->eventInRangeIndex(-4, -2), ==, true );
 
  206   TEST_COMPARE(te->eventInRangeIndex(-4, -1), ==, true );
 
  208   TEST_COMPARE(te->eventInRangeIndex(3, 3), ==, 
false);   
 
  209   TEST_COMPARE(te->eventInRangeIndex(3, 4), ==, true );
 
  210   TEST_COMPARE(te->eventInRangeIndex(3, 6), ==, true );
 
  213   TEST_COMPARE(te->eventInRangeIndex(-12, -7), ==, true );   
 
  214   TEST_COMPARE(te->eventInRangeIndex( -9, -7), ==, true );
 
  215   TEST_COMPARE(te->eventInRangeIndex( -8, -7), ==, 
false);
 
  217   TEST_COMPARE(te->eventInRangeIndex(-3, 0), ==, true );   
 
  218   TEST_COMPARE(te->eventInRangeIndex(-2, 0), ==, true );
 
  219   TEST_COMPARE(te->eventInRangeIndex(-1, 0), ==, 
false);
 
  221   TEST_COMPARE(te->eventInRangeIndex(3, 8), ==, true );   
 
  222   TEST_COMPARE(te->eventInRangeIndex(4, 8), ==, true );
 
  223   TEST_COMPARE(te->eventInRangeIndex(5, 8), ==, 
false);
 
TimeEventListIndex specifies a list of index events. 
 
TEUCHOS_UNIT_TEST(BackwardEuler, Default_Construction)