12 #include "Tempus_TimeEventRange.hpp"
13 #include "Tempus_TimeEventRangeIndex.hpp"
14 #include "Tempus_TimeEventList.hpp"
15 #include "Tempus_TimeEventListIndex.hpp"
18 static double PI = M_PI;
20 namespace Tempus_Unit_Test {
24 using Teuchos::rcp_const_cast;
25 using Teuchos::rcp_dynamic_cast;
33 0.0,
PI, 1.0,
"teRange1",
true, 1.0e-14));
40 -
PI/2.0,
PI/2.0,
PI/4.0,
"teRange2",
true, 1.0e-14));
47 4.0, 10.0, 4.0,
"teRange3",
true, 1.0e-14));
56 std::vector<double> testList1;
57 testList1.push_back(-1.0);
58 testList1.push_back( 0.0);
59 testList1.push_back( 5.0);
60 testList1.push_back( 2.0);
61 testList1.push_back(
PI);
64 testList1,
"teList1",
true, 1.0e-14));
70 std::vector<double> testList2;
71 testList2.push_back(-0.5);
72 testList2.push_back( 1.25);
73 testList2.push_back( 4.95);
74 testList2.push_back(12.34);
77 testList2,
"teList2",
true, 1.0e-14));
83 std::vector<double> testList3;
84 testList3.push_back(-5.0);
85 testList3.push_back(-
PI);
88 testList3,
"teList3",
true, 1.0e-14));
98 -1, 10, 3,
"teRangeIndex1"));
105 -5, 8, 4,
"teRangeIndex2"));
106 return teRangeIndex2;
112 10, 17, 5,
"teRangeIndex3"));
113 return teRangeIndex3;
121 std::vector<int> testListIndex1;
122 testListIndex1.push_back(-2);
123 testListIndex1.push_back( 0);
124 testListIndex1.push_back( 7);
125 testListIndex1.push_back( 3);
126 testListIndex1.push_back(-5);
129 testListIndex1,
"teListIndex1"));
135 std::vector<int> testListIndex2;
136 testListIndex2.push_back( 2);
139 testListIndex2,
"teListIndex2"));
145 std::vector<int> testListIndex3;
146 testListIndex3.push_back(14);
147 testListIndex3.push_back( 9);
150 testListIndex3,
"teListIndex3"));
170 TEST_COMPARE(tec->indexToNextEvent(0), ==, tec->getDefaultIndex());
171 TEST_COMPARE(tec->indexOfNextEvent(0), ==, tec->getDefaultIndex());
174 auto timeEvents = tec->getTimeEvents();
183 std::vector<Teuchos::RCP<Tempus::TimeEventBase<double> > > timeEvents;
190 "Test TimeEventComposite"));
194 TEST_COMPARE(tec->getName(), ==,
"Test TimeEventComposite");
209 TEST_COMPARE(tec->indexToNextEvent( 9), ==, tec->getDefaultIndex()-9);
219 TEST_COMPARE(tec->indexOfNextEvent( 9), ==, tec->getDefaultIndex());
227 TEST_COMPARE(tec->eventInRangeIndex(-8, -6), ==,
false);
230 TEST_COMPARE(tec->eventInRangeIndex( 8, 10), ==,
false);
231 TEST_COMPARE(tec->eventInRangeIndex(12, 14), ==,
false);
233 timeEvents = tec->getTimeEvents();
242 std::vector<Teuchos::RCP<Tempus::TimeEventBase<double> > > timeEvents;
250 tec->setTimeEvents(timeEvents);
252 auto timeEventsSet = tec->getTimeEvents();
272 auto timeEvents = tec->getTimeEvents();
294 auto timeEvents = tec->getTimeEvents();
324 auto timeEvents = tec->getTimeEvents();
344 auto timeEvents = tec->getTimeEvents();
366 auto timeEvents = tec->getTimeEvents();
395 auto timeEvents = tec->getTimeEvents();
407 tec->add(teRangeIndex1);
415 auto timeEvents = tec->getTimeEvents();
428 tec->add(teRangeIndex1);
429 tec->add(teRangeIndex2);
437 auto timeEvents = tec->getTimeEvents();
450 tec->add(teRangeIndex3);
451 tec->add(teRangeIndex2);
458 TEST_COMPARE(tec->indexOfNextEvent(16), ==, tec->getDefaultIndex());
459 TEST_COMPARE(tec->eventInRangeIndex(-3, -2), ==,
false);
464 TEST_COMPARE(tec->eventInRangeIndex(10, 13), ==,
false);
465 TEST_COMPARE(tec->eventInRangeIndex(14, 20), ==, true );
467 auto timeEvents = tec->getTimeEvents();
479 tec->add(teListIndex1);
487 auto timeEvents = tec->getTimeEvents();
500 tec->add(teListIndex1);
501 tec->add(teListIndex2);
509 auto timeEvents = tec->getTimeEvents();
522 tec->add(teListIndex3);
523 tec->add(teListIndex2);
529 TEST_COMPARE(tec->indexOfNextEvent(19), ==, tec->getDefaultIndex());
531 TEST_COMPARE(tec->eventInRangeIndex( 3, 10), ==, true );
532 TEST_COMPARE(tec->eventInRangeIndex(15, 20), ==,
false);
534 auto timeEvents = tec->getTimeEvents();
551 tec->add(teRangeIndex1);
552 tec->add(teListIndex1);
568 TEST_COMPARE(tec->indexToNextEvent( 9), ==, tec->getDefaultIndex()-9);
578 TEST_COMPARE(tec->indexOfNextEvent( 9), ==, tec->getDefaultIndex());
586 TEST_COMPARE(tec->eventInRangeIndex(-8, -6), ==,
false);
589 TEST_COMPARE(tec->eventInRangeIndex( 7, 10), ==, true );
590 TEST_COMPARE(tec->eventInRangeIndex(12, 14), ==,
false);
592 auto timeEvents = tec->getTimeEvents();
609 tec->add(teRangeIndex1);
610 tec->add(teListIndex1);
614 std::vector<Teuchos::RCP<Tempus::TimeEventBase<double> > > teCons;
620 TEST_COMPARE(tec->isTime (-1.0, teCons), ==, true );
621 TEST_COMPARE(teCons.size(), ==, 1);
622 TEST_COMPARE(teCons[0]->getName(), ==,
"teList1");
624 TEST_COMPARE(tec->isIndex( 2, teCons), ==, true );
625 TEST_COMPARE(teCons.size(), ==, 1);
626 TEST_COMPARE(teCons[0]->getName(), ==,
"teRangeIndex1");
628 TEST_COMPARE(tec->isIndex( -2, teCons), ==, true );
629 TEST_COMPARE(teCons.size(), ==, 1);
630 TEST_COMPARE(teCons[0]->getName(), ==,
"teListIndex1");
634 TEST_COMPARE(teCons.size(), ==, 1);
635 TEST_COMPARE(teCons[0]->getName(), ==,
"teList1");
638 TEST_COMPARE(teCons.size(), ==, 1);
639 TEST_COMPARE(teCons[0]->getName(), ==,
"teRange1");
642 TEST_COMPARE(teCons.size(), ==, 1);
643 TEST_COMPARE(teCons[0]->getName(), ==,
"teList1");
646 TEST_COMPARE(teCons.size(), ==, 0);
649 TEST_COMPARE(tec->indexToNextEvent(-6, teCons), ==, 1);
650 TEST_COMPARE(teCons.size(), ==, 1);
651 TEST_COMPARE(teCons[0]->getName(), ==,
"teListIndex1");
653 TEST_COMPARE(tec->indexToNextEvent( 1, teCons), ==, 1);
654 TEST_COMPARE(teCons.size(), ==, 1);
655 TEST_COMPARE(teCons[0]->getName(), ==,
"teRangeIndex1");
657 TEST_COMPARE(tec->indexToNextEvent( 7, teCons), ==, 1);
658 TEST_COMPARE(teCons.size(), ==, 1);
659 TEST_COMPARE(teCons[0]->getName(), ==,
"teRangeIndex1");
661 TEST_COMPARE(tec->indexToNextEvent( 9, teCons), ==, tec->getDefaultIndex()-9);
662 TEST_COMPARE(teCons.size(), ==, 0);
666 TEST_COMPARE(teCons.size(), ==, 1);
667 TEST_COMPARE(teCons[0]->getName(), ==,
"teList1");
670 TEST_COMPARE(teCons.size(), ==, 2);
671 TEST_COMPARE(teCons[0]->getName(), ==,
"teRange1");
672 TEST_COMPARE(teCons[1]->getName(), ==,
"teList1");
675 TEST_COMPARE(teCons.size(), ==, 1);
676 TEST_COMPARE(teCons[0]->getName(), ==,
"teRange1");
679 TEST_COMPARE(teCons.size(), ==, 0);
682 TEST_COMPARE(tec->indexOfNextEvent(-6, teCons), ==, -5);
683 TEST_COMPARE(teCons.size(), ==, 1);
684 TEST_COMPARE(teCons[0]->getName(), ==,
"teListIndex1");
686 TEST_COMPARE(tec->indexOfNextEvent( 1, teCons), ==, 2);
687 TEST_COMPARE(teCons.size(), ==, 1);
688 TEST_COMPARE(teCons[0]->getName(), ==,
"teRangeIndex1");
690 TEST_COMPARE(tec->indexOfNextEvent( 7, teCons), ==, 8);
691 TEST_COMPARE(teCons.size(), ==, 1);
692 TEST_COMPARE(teCons[0]->getName(), ==,
"teRangeIndex1");
694 TEST_COMPARE(tec->indexOfNextEvent( 9, teCons), ==, tec->getDefaultIndex());
695 TEST_COMPARE(teCons.size(), ==, 0);
697 TEST_COMPARE(tec->eventInRange(-5.0, -2.0, teCons), ==,
false);
698 TEST_COMPARE(teCons.size(), ==, 0);
699 TEST_COMPARE(tec->eventInRange(-2.0, -0.5, teCons), ==, true );
700 TEST_COMPARE(teCons.size(), ==, 1);
701 TEST_COMPARE(tec->eventInRange( 1.2, 1.8, teCons), ==,
false);
702 TEST_COMPARE(teCons.size(), ==, 0);
703 TEST_COMPARE(tec->eventInRange( 3.1, 4.0, teCons), ==, true );
704 TEST_COMPARE(teCons.size(), ==, 1);
705 TEST_COMPARE(tec->eventInRange( 4.5, 6.0, teCons), ==, true );
706 TEST_COMPARE(teCons.size(), ==, 1);
708 TEST_COMPARE(tec->eventInRangeIndex(-8, -6, teCons), ==,
false);
709 TEST_COMPARE(teCons.size(), ==, 0);
710 TEST_COMPARE(tec->eventInRangeIndex( 1, 1, teCons), ==,
false);
711 TEST_COMPARE(teCons.size(), ==, 0);
712 TEST_COMPARE(tec->eventInRangeIndex( 5, 7, teCons), ==, true );
713 TEST_COMPARE(teCons.size(), ==, 1);
714 TEST_COMPARE(tec->eventInRangeIndex( 8, 10, teCons), ==,
false);
715 TEST_COMPARE(teCons.size(), ==, 0);
716 TEST_COMPARE(tec->eventInRangeIndex(12, 14, teCons), ==,
false);
717 TEST_COMPARE(teCons.size(), ==, 0);
719 auto timeEvents = tec->getTimeEvents();
720 TEST_COMPARE(timeEvents.size(), ==, 4);
731 0.0, 20.0, 5.0,
"ter1",
true, 1.0e-14));
733 0.0, 20.0, 2.0,
"ter2",
false, 1.0e-14));
735 std::vector<double> testList1;
736 testList1.push_back( 0.0);
737 testList1.push_back( 4.0);
738 testList1.push_back( 5.0);
739 testList1.push_back( 9.0);
740 testList1.push_back(20.0);
742 testList1,
"tel1",
true, 1.0e-14));
744 std::vector<double> testList2;
745 testList2.push_back( 0.0);
746 testList2.push_back( 3.0);
747 testList2.push_back( 5.0);
748 testList2.push_back(13.0);
749 testList2.push_back(20.0);
751 testList2,
"tel2",
false, 1.0e-14));
754 0, 200, 50,
"teri1"));
756 0, 200, 20,
"teri2"));
758 std::vector<int> testListIndex1;
759 testListIndex1.push_back( 0);
760 testListIndex1.push_back( 40);
761 testListIndex1.push_back( 50);
762 testListIndex1.push_back( 90);
763 testListIndex1.push_back(200);
765 testListIndex1,
"teli1"));
767 std::vector<int> testListIndex2;
768 testListIndex2.push_back( 0);
769 testListIndex2.push_back( 30);
770 testListIndex2.push_back( 50);
771 testListIndex2.push_back(130);
772 testListIndex2.push_back(200);
774 testListIndex2,
"teli2"));
790 std::vector<Teuchos::RCP<Tempus::TimeEventBase<double> > > teCons;
795 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
796 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
797 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
799 TEST_COMPARE(tec->isTime ( 5.0, teCons), ==, true );
800 TEST_COMPARE(teCons.size(), ==, 3);
801 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
802 TEST_COMPARE(teCons[1]->getName(), ==,
"tel1");
803 TEST_COMPARE(teCons[2]->getName(), ==,
"tel2");
805 TEST_COMPARE(tec->isTime (10.0, teCons), ==, true );
806 TEST_COMPARE(teCons.size(), ==, 2);
807 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
808 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
810 TEST_COMPARE(tec->isTime (20.0, teCons), ==, true );
811 TEST_COMPARE(teCons.size(), ==, 4);
812 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
813 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
814 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
815 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
817 TEST_COMPARE(tec->isIndex ( 0, teCons), ==, true );
818 TEST_COMPARE(teCons.size(), ==, 4);
819 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
820 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
821 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1");
822 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2");
824 TEST_COMPARE(tec->isIndex ( 50, teCons), ==, true );
825 TEST_COMPARE(teCons.size(), ==, 3);
826 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
827 TEST_COMPARE(teCons[1]->getName(), ==,
"teli1");
828 TEST_COMPARE(teCons[2]->getName(), ==,
"teli2");
830 TEST_COMPARE(tec->isIndex (100, teCons), ==, true );
831 TEST_COMPARE(teCons.size(), ==, 2);
832 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
833 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
835 TEST_COMPARE(tec->isIndex (200, teCons), ==, true );
836 TEST_COMPARE(teCons.size(), ==, 4);
837 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
838 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
839 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1");
840 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2");
843 TEST_COMPARE(teCons.size(), ==, 4);
844 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
845 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
846 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
847 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
850 TEST_COMPARE(teCons.size(), ==, 3);
851 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
852 TEST_COMPARE(teCons[1]->getName(), ==,
"tel1");
853 TEST_COMPARE(teCons[2]->getName(), ==,
"tel2");
856 TEST_COMPARE(teCons.size(), ==, 2);
857 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
858 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
861 TEST_COMPARE(teCons.size(), ==, 4);
862 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
863 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
864 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
865 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
867 TEST_COMPARE(tec->indexOfNextEvent(-1, teCons), ==, 0);
868 TEST_COMPARE(teCons.size(), ==, 4);
869 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
870 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
871 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1");
872 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2");
874 TEST_COMPARE(tec->indexOfNextEvent( 40, teCons), ==, 50);
875 TEST_COMPARE(teCons.size(), ==, 3);
876 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
877 TEST_COMPARE(teCons[1]->getName(), ==,
"teli1");
878 TEST_COMPARE(teCons[2]->getName(), ==,
"teli2");
880 TEST_COMPARE(tec->indexOfNextEvent( 90, teCons), ==, 100);
881 TEST_COMPARE(teCons.size(), ==, 2);
882 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
883 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
885 TEST_COMPARE(tec->indexOfNextEvent(190, teCons), ==, 200);
886 TEST_COMPARE(teCons.size(), ==, 4);
887 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
888 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
889 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1");
890 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2");
893 TEST_COMPARE(tec->eventInRange(-1.0, 21.0, teCons), ==,
true);
894 TEST_COMPARE(teCons.size(), ==, 4);
895 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
896 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
897 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
898 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
901 TEST_COMPARE(tec->eventInRange( 0.0, 21.0, teCons), ==,
true);
902 TEST_COMPARE(teCons.size(), ==, 4);
903 TEST_COMPARE(teCons[0]->getName(), ==,
"ter2");
TEST_FLOATING_EQUALITY(teCons[0]->timeOfNextEvent( 0.0), 2.0, 1.0e-14);
904 TEST_COMPARE(teCons[1]->getName(), ==,
"tel2");
TEST_FLOATING_EQUALITY(teCons[1]->timeOfNextEvent( 0.0), 3.0, 1.0e-14);
905 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
TEST_FLOATING_EQUALITY(teCons[2]->timeOfNextEvent( 0.0), 4.0, 1.0e-14);
906 TEST_COMPARE(teCons[3]->getName(), ==,
"ter1");
TEST_FLOATING_EQUALITY(teCons[3]->timeOfNextEvent( 0.0), 5.0, 1.0e-14);
908 TEST_COMPARE(tec->eventInRange( 7.0, 21.0, teCons), ==,
true);
909 TEST_COMPARE(teCons.size(), ==, 4);
910 TEST_COMPARE(teCons[0]->getName(), ==,
"ter2");
TEST_FLOATING_EQUALITY(teCons[0]->timeOfNextEvent( 7.0), 8.0, 1.0e-14);
911 TEST_COMPARE(teCons[1]->getName(), ==,
"tel1");
TEST_FLOATING_EQUALITY(teCons[1]->timeOfNextEvent( 7.0), 9.0, 1.0e-14);
912 TEST_COMPARE(teCons[2]->getName(), ==,
"ter1");
TEST_FLOATING_EQUALITY(teCons[2]->timeOfNextEvent( 7.0),10.0, 1.0e-14);
913 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
TEST_FLOATING_EQUALITY(teCons[3]->timeOfNextEvent( 7.0),13.0, 1.0e-14);
915 TEST_COMPARE(tec->eventInRange(19.0, 21.0, teCons), ==,
true);
916 TEST_COMPARE(teCons.size(), ==, 4);
917 TEST_COMPARE(teCons[0]->getName(), ==,
"ter1");
TEST_FLOATING_EQUALITY(teCons[0]->timeOfNextEvent(19.0),20.0, 1.0e-14);
918 TEST_COMPARE(teCons[1]->getName(), ==,
"ter2");
TEST_FLOATING_EQUALITY(teCons[1]->timeOfNextEvent(19.0),20.0, 1.0e-14);
919 TEST_COMPARE(teCons[2]->getName(), ==,
"tel1");
TEST_FLOATING_EQUALITY(teCons[2]->timeOfNextEvent(19.0),20.0, 1.0e-14);
920 TEST_COMPARE(teCons[3]->getName(), ==,
"tel2");
TEST_FLOATING_EQUALITY(teCons[3]->timeOfNextEvent(19.0),20.0, 1.0e-14);
923 TEST_COMPARE(tec->eventInRangeIndex(-10, 210, teCons), ==,
true);
924 TEST_COMPARE(teCons.size(), ==, 4);
925 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1");
926 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2");
927 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1");
928 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2");
931 TEST_COMPARE(tec->eventInRangeIndex( 0, 210, teCons), ==,
true);
932 TEST_COMPARE(teCons.size(), ==, 4);
933 TEST_COMPARE(teCons[0]->getName(), ==,
"teri2"); TEST_COMPARE(teCons[0]->indexOfNextEvent( 0), == , 20);
934 TEST_COMPARE(teCons[1]->getName(), ==,
"teli2"); TEST_COMPARE(teCons[1]->indexOfNextEvent( 0), == , 30);
935 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1"); TEST_COMPARE(teCons[2]->indexOfNextEvent( 0), == , 40);
936 TEST_COMPARE(teCons[3]->getName(), ==,
"teri1"); TEST_COMPARE(teCons[3]->indexOfNextEvent( 0), == , 50);
938 TEST_COMPARE(tec->eventInRangeIndex( 70, 210, teCons), ==,
true);
939 TEST_COMPARE(teCons.size(), ==, 4);
940 TEST_COMPARE(teCons[0]->getName(), ==,
"teri2"); TEST_COMPARE(teCons[0]->indexOfNextEvent( 70), == , 80);
941 TEST_COMPARE(teCons[1]->getName(), ==,
"teli1"); TEST_COMPARE(teCons[1]->indexOfNextEvent( 70), == , 90);
942 TEST_COMPARE(teCons[2]->getName(), ==,
"teri1"); TEST_COMPARE(teCons[2]->indexOfNextEvent( 70), == ,100);
943 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2"); TEST_COMPARE(teCons[3]->indexOfNextEvent( 70), == ,130);
945 TEST_COMPARE(tec->eventInRangeIndex(190, 210, teCons), ==,
true);
946 TEST_COMPARE(teCons.size(), ==, 4);
947 TEST_COMPARE(teCons[0]->getName(), ==,
"teri1"); TEST_COMPARE(teCons[0]->indexOfNextEvent(190), == ,200);
948 TEST_COMPARE(teCons[1]->getName(), ==,
"teri2"); TEST_COMPARE(teCons[1]->indexOfNextEvent(190), == ,200);
949 TEST_COMPARE(teCons[2]->getName(), ==,
"teli1"); TEST_COMPARE(teCons[2]->indexOfNextEvent(190), == ,200);
950 TEST_COMPARE(teCons[3]->getName(), ==,
"teli2"); TEST_COMPARE(teCons[3]->indexOfNextEvent(190), == ,200);
966 ter-> setName(
"Test Range");
967 teri->setName(
"Test Range Index");
968 tel-> setName(
"Test List");
969 teli->setName(
"Test List Index");
977 tec->remove(
"Blah Blah");
980 tec->remove(
"Test Range Index");
982 auto names = tec->getTimeEventNames();
983 TEST_COMPARE( names, ==,
"Test Range, Test List, Test List Index");
985 tec->remove(
"Test List Index");
987 names = tec->getTimeEventNames();
990 tec->remove(
"Test Range");
992 names = tec->getTimeEventNames();
995 tec->remove(
"Test List");
997 names = tec->getTimeEventNames();
1014 ter-> setName(
"Test Range");
1015 teri->setName(
"Test Range Index");
1016 tel-> setName(
"Test List");
1017 teli->setName(
"Test List Index");
1025 auto teTest = tec->find(
"Test Range");
1028 teTest = tec->find(
"Test Range Index");
1029 TEST_COMPARE( teTest->getName(), ==,
"Test Range Index");
1031 teTest = tec->find(
"Test List");
1034 teTest = tec->find(
"Test List Index");
1035 TEST_COMPARE( teTest->getName(), ==,
"Test List Index");
1037 teTest = tec->find(
"Blah Blah");
1078 ter-> setName(
"Test Range");
1079 teri->setName(
"Test Range Index");
1080 tel-> setName(
"Test List");
1081 teli->setName(
"Test List Index");
1089 auto timeEvents = tec->getTimeEvents();
1092 auto pl = tec->getValidParameters();
1094 TEST_COMPARE( pl->get<std::string>(
"Name"), ==,
"TimeEventComposite");
1095 TEST_COMPARE( pl->get<std::string>(
"Type"), ==,
"Composite");
1096 TEST_COMPARE( pl->get<std::string>(
"Time Events"), ==,
"Test Range, Test Range Index, Test List, Test List Index");
1098 TEST_COMPARE( pl->isSublist(
"Test Range Index") , ==,
true);
1100 TEST_COMPARE( pl->isSublist(
"Test List Index") , ==,
true);
1103 std::ostringstream unusedParameters;
1104 pl->unused(unusedParameters);
1106 "WARNING: Parameter \"Test Range\" [unused] is unused\n"
1107 "WARNING: Parameter \"Test Range Index\" [unused] is unused\n"
1108 "WARNING: Parameter \"Test List\" [unused] is unused\n"
1109 "WARNING: Parameter \"Test List Index\" [unused] is unused\n");
1112 auto terPL = pl->sublist(
"Test Range");
1113 TEST_COMPARE ( terPL.get<std::string>(
"Type"), ==,
"Range");
1114 TEST_COMPARE ( terPL.get<std::string>(
"Name"), ==,
"Test Range");
1118 TEST_COMPARE ( terPL.get<
int>(
"Number of Events"), ==, 1);
1120 std::numeric_limits<double>::epsilon()*100.0, 1.0e-14);
1122 TEST_COMPARE ( terPL.get<
bool>(
"Land On Exactly"), ==,
true);
1125 std::ostringstream unusedParameters;
1126 terPL.unused(unusedParameters);
1130 auto teriPL = pl->sublist(
"Test Range Index");
1131 TEST_COMPARE( teriPL.get<std::string>(
"Type"), ==,
"Range Index");
1132 TEST_COMPARE( teriPL.get<std::string>(
"Name"), ==,
"Test Range Index");
1138 std::ostringstream unusedParameters;
1139 teriPL.unused(unusedParameters);
1143 auto telPL = pl->sublist(
"Test List");
1144 TEST_COMPARE ( telPL.get<std::string>(
"Type"), ==,
"List");
1145 TEST_COMPARE ( telPL.get<std::string>(
"Name"), ==,
"Test List");
1147 std::numeric_limits<double>::epsilon()*100.0, 1.0e-14);
1148 TEST_COMPARE ( telPL.get<
bool>(
"Land On Exactly"), ==,
true);
1149 TEST_COMPARE ( telPL.get<std::string>(
"Time List"), ==,
"");
1152 std::ostringstream unusedParameters;
1153 telPL.unused(unusedParameters);
1157 auto teliPL = pl->sublist(
"Test List Index");
1158 TEST_COMPARE( teliPL.get<std::string>(
"Type"), ==,
"List Index");
1159 TEST_COMPARE( teliPL.get<std::string>(
"Name"), ==,
"Test List Index");
1160 TEST_COMPARE( teliPL.get<std::string>(
"Index List"), ==,
"");
1163 std::ostringstream unusedParameters;
1164 teliPL.unused(unusedParameters);
1176 using Teuchos::rcp_const_cast;
1180 auto pl = rcp_const_cast<
ParameterList>(tecTmp->getValidParameters());
1182 auto tec = Tempus::createTimeEventComposite<double>(pl);
1185 TEST_COMPARE( tec->getName() , ==,
"TimeEventComposite");
1198 ter-> setName(
"Test Range");
1199 teri->setName(
"Test Range Index");
1200 tel-> setName(
"Test List");
1201 teli->setName(
"Test List Index");
1208 auto pl = rcp_const_cast<
ParameterList>(tecTmp->getValidParameters());
1210 auto tec = Tempus::createTimeEventComposite<double>(pl);
1213 TEST_COMPARE( tec->getName() , ==,
"TimeEventComposite");
1216 TEST_COMPARE( tec->getTimeEventNames(), ==,
"Test Range, Test Range Index, Test List, Test List Index");
1221 auto pl = rcp_const_cast<
ParameterList>(tecTmp->getValidParameters());
1224 Teuchos::parameterList(
"Application Time Event");
1225 nonTempusTE->set<std::string>(
"Name",
"Application Time Event");
1226 nonTempusTE->set<std::string>(
"Type",
"Application Time Event Type");
1227 nonTempusTE->set<
double>(
"Secret Sauce", 1.2345);
1228 pl->set(
"Application Time Event", *nonTempusTE);
1229 pl->set(
"Time Events",
"Application Time Event");
1231 auto tec = Tempus::createTimeEventComposite<double>(pl);
1234 TEST_COMPARE( tec->getName() , ==,
"TimeEventComposite");
Teuchos::RCP< Tempus::TimeEventRange< double > > getTestRange3()
TimeEventRangeIndex specifies a start, stop and stride index.
Teuchos::RCP< Tempus::TimeEventRange< double > > getTestRange2()
Teuchos::RCP< Tempus::TimeEventListIndex< double > > getTestListIndex2()
TimeEventListIndex specifies a list of index events.
#define TEST_COMPARE(v1, comp, v2)
Teuchos::RCP< Tempus::TimeEventRangeIndex< double > > getTestRangeIndex3()
#define TEST_FLOATING_EQUALITY(v1, v2, tol)
Teuchos::RCP< Tempus::TimeEventList< double > > getTestList3()
Teuchos::RCP< Tempus::TimeEventRange< double > > getTestRange1()
TimeEventRange specifies a start, stop and stride time.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< Tempus::TimeEventList< double > > getTestList1()
This composite TimeEvent loops over added TimeEvents.
TEUCHOS_UNIT_TEST(BackwardEuler, Default_Construction)
Teuchos::RCP< Tempus::TimeEventListIndex< double > > getTestListIndex3()
Teuchos::RCP< Tempus::TimeEventListIndex< double > > getTestListIndex1()
Teuchos::RCP< Tempus::TimeEventRangeIndex< double > > getTestRangeIndex1()
Teuchos::RCP< Tempus::TimeEventList< double > > getTestList2()
Teuchos::RCP< Tempus::TimeEventRangeIndex< double > > getTestRangeIndex2()
TimeEventList specifies a list of time events.
Teuchos::RCP< TimeEventComposite< Scalar > > createTimeEventComposite(Teuchos::RCP< Teuchos::ParameterList > const &pList)
TimeEventComposite nonmember constructor via ParameterList.