69 TUDEF(
"TimeRange",
"Constructor" );
80 testFramework.assert(
true,
"Construction of empty TimeRange object worked",
85 testFramework.assert(
false,
"Construction of empty TimeRange object failed",
93 testFramework.assert(emptyConstructed.
getStart() ==
95 "Start value for empty TimeRange is not the expected value", __LINE__);
96 testFramework.assert(emptyConstructed.
getEnd() ==
98 "End value for empty TimeRange is not the expected value" , __LINE__);
107 TimeRange copyConstructed(emptyConstructed);
108 testFramework.assert(
true,
109 "Construction using TimeRange copy constructor worked", __LINE__);
113 testFramework.assert(
false,
114 "Construction using TimeRange copy constructor failed", __LINE__);
117 TimeRange copyConstructed(emptyConstructed);
118 testFramework.assert(emptyConstructed.
getStart() ==
120 "Start value for copy constructed TimeRange is not the expected value",
122 testFramework.assert(emptyConstructed.
getEnd() ==
124 "End value for copy constructed TimeRange is not the expected value" ,
139 bool beginningIncluded =
true;
140 bool endIncluded =
false;
146 TimeRange fourInputConstructed(endEndpoint,startEndpoint,beginningIncluded,
148 testFramework.assert(
false,
149 "CommonTime constructor allowed for the end time to be earlier than the start time",
154 testFramework.assert(
true,
"CommonTime constructor threw the expected error",
159 testFramework.assert(
false,
160 "CommonTime constructor threw an unexpected error for when the end time is earlier than the start time",
168 TimeRange fourInputConstructed(startEndpoint,endEndpoint,beginningIncluded,
170 testFramework.assert(
true,
171 "CommonTime constructor for valid data functioned properly", __LINE__);
175 testFramework.assert(
false,
176 "CommonTime constructor for valid data functioned threw an error", __LINE__);
181 TimeRange fourInputConstructed(startEndpoint,endEndpoint,beginningIncluded,
183 testFramework.assert(fourInputConstructed.
getStart() == startEndpoint,
184 "CommonTime constructor did not set the start time properly", __LINE__);
185 testFramework.assert(fourInputConstructed.
getEnd() == endEndpoint ,
186 "CommonTime constructor did not set the end time properly" , __LINE__);
194 inputPair = std::make_pair(startEndpoint,endEndpoint);
195 invertedPair = std::make_pair(endEndpoint,startEndpoint);
201 TimeRange threeInputConstructed(invertedPair,beginningIncluded, endIncluded);
202 testFramework.assert(
false,
203 "DTPair constructor allowed for the end time to be earlier than the start time",
208 testFramework.assert(
true,
"DTPair constructor threw the expected error",
213 testFramework.assert(
false,
214 "DTPair constructor threw an unexpected error for when the end time is earlier than the start time",
222 TimeRange threeInputConstructed(inputPair,beginningIncluded, endIncluded);
223 testFramework.assert(
true,
224 "DTPair constructor for valid data functioned properly", __LINE__);
228 testFramework.assert(
false,
229 "DTPair constructor for valid data functioned threw an error", __LINE__);
234 TimeRange threeInputConstructed(inputPair,beginningIncluded, endIncluded);
235 testFramework.assert(threeInputConstructed.
getStart() == startEndpoint,
236 "CommonTime constructor did not set the start time properly", __LINE__);
237 testFramework.assert(threeInputConstructed.
getEnd() == endEndpoint ,
238 "CommonTime constructor did not set the end time properly" , __LINE__);
241 return testFramework.countFails();
252 TUDEF(
"TimeRange",
"inRange" );
267 bool beginningIncluded =
true;
268 bool endIncluded =
true;
269 TimeRange bothEndsIncluded(startEndpoint, endEndpoint, beginningIncluded,
273 beginningIncluded =
false;
275 TimeRange bothEndsExcluded(startEndpoint, endEndpoint, beginningIncluded,
281 testFramework.assert(!bothEndsIncluded.
inRange(earlierThanRange),
282 "inRange returned true for time before the TimeRange" ,
284 testFramework.assert( bothEndsIncluded.
inRange(startEndpoint) ,
285 "inRange returned false for the start time for an inclusive TimeRange",
287 testFramework.assert( bothEndsIncluded.
inRange(timeInRange) ,
288 "inRange returned false for time internal to the TimeRange" ,
290 testFramework.assert( bothEndsIncluded.
inRange(endEndpoint) ,
291 "inRange returned false for the end time for an inclusive TimeRange" ,
293 testFramework.assert(!bothEndsIncluded.
inRange(laterThanRange) ,
294 "inRange returned true for time after the TimeRange" ,
301 testFramework.assert(!bothEndsExcluded.
inRange(earlierThanRange),
302 "inRange returned true for time before the TimeRange" ,
304 testFramework.assert(!bothEndsExcluded.
inRange(startEndpoint) ,
305 "inRange returned true for the start time for an exclusive TimeRange" ,
307 testFramework.assert( bothEndsExcluded.
inRange(timeInRange) ,
308 "inRange returned false for time internal to the TimeRange" ,
310 testFramework.assert(!bothEndsExcluded.
inRange(endEndpoint) ,
311 "inRange returned true for the end time for an exclusive TimeRange" ,
313 testFramework.assert(!bothEndsIncluded.
inRange(laterThanRange) ,
314 "inRange returned true for time after the TimeRange" ,
317 return testFramework.countFails();
326 TUDEF(
"TimeRange",
"isPriorTo" );
351 bool beginningIncluded =
true;
352 bool endIncluded =
true;
355 TimeRange referenceTimeRange (startEndpoint, endEndpoint,
356 beginningIncluded, endIncluded);
357 TimeRange priorTimeRange (earlierThanRangeStart, earlierThanRangeEnd,
358 beginningIncluded, endIncluded);
359 TimeRange earlyOverlapTimeRange (earlierThanRangeStart, timeInRangeEnd,
360 beginningIncluded, endIncluded);
361 TimeRange interiorTimeRange (timeInRangeStart, timeInRangeEnd,
362 beginningIncluded, endIncluded);
363 TimeRange lateOverlapTimeRange (timeInRangeStart, laterThanRangeEnd,
364 beginningIncluded, endIncluded);
365 TimeRange completeOverlapTimeRange (earlierThanRangeStart, laterThanRangeEnd,
366 beginningIncluded, endIncluded);
367 TimeRange afterTimeRange (laterThanRangeStart, laterThanRangeEnd,
368 beginningIncluded, endIncluded);
369 TimeRange priorEdgeCase (earlierThanRangeStart, startEndpoint,
370 beginningIncluded, endIncluded);
371 TimeRange priorEdgeCaseNoOverlap (earlierThanRangeStart, startEndpoint,
372 beginningIncluded,
false );
373 TimeRange interiorEarlyEdge (startEndpoint, timeInRangeEnd,
374 beginningIncluded, endIncluded);
375 TimeRange interiorLateEdge (timeInRangeStart, endEndpoint,
376 beginningIncluded, endIncluded);
377 TimeRange afterEdgeCase (endEndpoint, laterThanRangeEnd,
378 beginningIncluded, endIncluded);
379 TimeRange afterEdgeCaseNoOverlap (endEndpoint, laterThanRangeEnd,
382 std::string testMessageArray[13];
383 testMessageArray[0] =
384 "isPriorTo returned true when the target TimeRange comes before the reference TimeRange";
385 testMessageArray[1] =
386 "isPriorTo returned true when the target TimeRange overlaps the beginning of the reference TimeRange";
387 testMessageArray[2] =
388 "isPriorTo returned true when the target TimeRange is interior to the reference TimeRange";
389 testMessageArray[3] =
390 "isPriorTo returned true when the target TimeRange overlaps a later portion of the reference TimeRange";
391 testMessageArray[4] =
392 "isPriorTo returned true when the reference TimeRange is interior to the target TimeRange";
393 testMessageArray[5] =
394 "isPriorTo returned false when the target TimeRange is after the reference TimeRange";
395 testMessageArray[6] =
396 "isPriorTo returned true when the target TimeRange ends at and includes the beginning of the reference TimeRange";
397 testMessageArray[7] =
398 "isPriorTo returned true when the target TimeRange ends at but does not include the beginning of the reference TimeRange";
399 testMessageArray[8] =
400 "isPriorTo returned true when the target TimeRange is interior to the reference TimeRange and shares a start value";
401 testMessageArray[9] =
402 "isPriorTo returned true when the target TimeRange is interior to the reference TimeRange and shares an end value";
403 testMessageArray[10] =
404 "isPriorTo returned true when the target TimeRange starts at and includes the end of reference TimeRange";
405 testMessageArray[11] =
406 "isPriorTo returned false when the target TimeRange starts at but does not include the end of reference TimeRange";
407 testMessageArray[12] =
408 "isPriorTo returned true when the target TimeRange starts equals reference TimeRange";
410 return testFramework.countFails();
420 TUDEF(
"TimeRange",
"overlaps" );
445 bool beginningIncluded =
true;
446 bool endIncluded =
true;
449 TimeRange referenceTimeRange (startEndpoint, endEndpoint,
450 beginningIncluded, endIncluded);
451 TimeRange priorTimeRange (earlierThanRangeStart, earlierThanRangeEnd,
452 beginningIncluded, endIncluded);
453 TimeRange earlyOverlapTimeRange (earlierThanRangeStart, timeInRangeEnd,
454 beginningIncluded, endIncluded);
455 TimeRange interiorTimeRange (timeInRangeStart, timeInRangeEnd,
456 beginningIncluded, endIncluded);
457 TimeRange lateOverlapTimeRange (timeInRangeStart, laterThanRangeEnd,
458 beginningIncluded, endIncluded);
459 TimeRange completeOverlapTimeRange (earlierThanRangeStart, laterThanRangeEnd,
460 beginningIncluded, endIncluded);
461 TimeRange afterTimeRange (laterThanRangeStart, laterThanRangeEnd,
462 beginningIncluded, endIncluded);
463 TimeRange priorEdgeCase (earlierThanRangeStart, startEndpoint,
464 beginningIncluded, endIncluded);
465 TimeRange priorEdgeCaseNoOverlap (earlierThanRangeStart, startEndpoint,
466 beginningIncluded,
false );
467 TimeRange interiorEarlyEdge (startEndpoint, timeInRangeEnd,
468 beginningIncluded, endIncluded);
469 TimeRange interiorLateEdge (timeInRangeStart, endEndpoint,
470 beginningIncluded, endIncluded);
471 TimeRange afterEdgeCase (endEndpoint, laterThanRangeEnd,
472 beginningIncluded, endIncluded);
473 TimeRange afterEdgeCaseNoOverlap (endEndpoint, laterThanRangeEnd,
476 std::string testMessageArray[13];
477 testMessageArray[0] =
478 "overlaps returned true when the target TimeRange is completely before the reference TimeRange";
479 testMessageArray[1] =
480 "overlaps returned false when the target TimeRange overlaps the earlier portion of the reference TimeRange";
481 testMessageArray[2] =
482 "overlaps returned false when the target TimeRange is interior to the reference TimeRange";
483 testMessageArray[3] =
484 "overlaps returned false when the target TimeRange overlaps a later portion of the reference TimeRange";
485 testMessageArray[4] =
486 "overlaps returned false when the reference TimeRange is interior to the target TimeRange";
487 testMessageArray[5] =
488 "overlaps returned true when the target TimeRange is after the reference TimeRange";
489 testMessageArray[6] =
490 "overlaps returned false when the target TimeRange ends at and includes the beginning of the reference TimeRange";
491 testMessageArray[7] =
492 "overlaps returned true when the target TimeRange ends at but does not include the beginning of the reference TimeRange";
493 testMessageArray[8] =
494 "overlaps returned false when the target TimeRange is interior to the reference TimeRange and shares a start value";
495 testMessageArray[9] =
496 "overlaps returned false when the target TimeRange is interior to the reference TimeRange and shares an end value";
497 testMessageArray[10] =
498 "overlaps returned false when the target TimeRange starts at and includes the end of reference TimeRange";
499 testMessageArray[11] =
500 "overlaps returned true when the target TimeRange starts at but does not include the end of reference TimeRange";
501 testMessageArray[12] =
502 "overlaps returned false when the target TimeRange starts equals reference TimeRange";
505 testFramework.assert(!referenceTimeRange.
overlaps(priorTimeRange) ,
506 testMessageArray[0] , __LINE__);
507 testFramework.assert( referenceTimeRange.
overlaps(earlyOverlapTimeRange) ,
508 testMessageArray[1] , __LINE__);
509 testFramework.assert( referenceTimeRange.
overlaps(interiorTimeRange) ,
510 testMessageArray[2] , __LINE__);
511 testFramework.assert( referenceTimeRange.
overlaps(lateOverlapTimeRange) ,
512 testMessageArray[3] , __LINE__);
513 testFramework.assert( referenceTimeRange.
overlaps(completeOverlapTimeRange),
514 testMessageArray[4] , __LINE__);
515 testFramework.assert(!referenceTimeRange.
overlaps(afterTimeRange) ,
516 testMessageArray[5] , __LINE__);
517 testFramework.assert( referenceTimeRange.
overlaps(priorEdgeCase) ,
518 testMessageArray[6] , __LINE__);
519 testFramework.assert(!referenceTimeRange.
overlaps(priorEdgeCaseNoOverlap) ,
520 testMessageArray[7] , __LINE__);
521 testFramework.assert( referenceTimeRange.
overlaps(interiorEarlyEdge) ,
522 testMessageArray[8] , __LINE__);
523 testFramework.assert( referenceTimeRange.
overlaps(interiorLateEdge) ,
524 testMessageArray[9] , __LINE__);
525 testFramework.assert( referenceTimeRange.
overlaps(afterEdgeCase) ,
526 testMessageArray[10], __LINE__);
527 testFramework.assert(!referenceTimeRange.
overlaps(afterEdgeCaseNoOverlap) ,
528 testMessageArray[11], __LINE__);
529 testFramework.assert( referenceTimeRange.
overlaps(referenceTimeRange) ,
530 testMessageArray[12], __LINE__);
534 return testFramework.countFails();
544 TUDEF(
"TimeRange",
"isSubsetOf" );
569 bool beginningIncluded =
true;
570 bool endIncluded =
true;
573 TimeRange referenceTimeRange (startEndpoint, endEndpoint,
574 beginningIncluded, endIncluded);
575 TimeRange priorTimeRange (earlierThanRangeStart, earlierThanRangeEnd,
576 beginningIncluded, endIncluded);
577 TimeRange earlyOverlapTimeRange (earlierThanRangeStart, timeInRangeEnd,
578 beginningIncluded, endIncluded);
579 TimeRange interiorTimeRange (timeInRangeStart, timeInRangeEnd,
580 beginningIncluded, endIncluded);
581 TimeRange lateOverlapTimeRange (timeInRangeStart, laterThanRangeEnd,
582 beginningIncluded, endIncluded);
583 TimeRange completeOverlapTimeRange (earlierThanRangeStart, laterThanRangeEnd,
584 beginningIncluded, endIncluded);
585 TimeRange afterTimeRange (laterThanRangeStart, laterThanRangeEnd,
586 beginningIncluded, endIncluded);
587 TimeRange priorEdgeCase (earlierThanRangeStart, startEndpoint,
588 beginningIncluded, endIncluded);
589 TimeRange priorEdgeCaseNoOverlap (earlierThanRangeStart, startEndpoint,
590 beginningIncluded,
false );
591 TimeRange interiorEarlyEdge (startEndpoint, timeInRangeEnd,
592 beginningIncluded, endIncluded);
593 TimeRange interiorLateEdge (timeInRangeStart, endEndpoint,
594 beginningIncluded, endIncluded);
595 TimeRange afterEdgeCase (endEndpoint, laterThanRangeEnd,
596 beginningIncluded, endIncluded);
597 TimeRange afterEdgeCaseNoOverlap (endEndpoint, laterThanRangeEnd,
598 beginningIncluded,
false );
600 std::string testMessageArray[13];
601 testMessageArray[0] =
602 "isSubsetOf returned true when the target TimeRange is completely before the reference TimeRange";
603 testMessageArray[1] =
604 "isSubsetOf returned true when the target TimeRange overlaps the earlier portion of the reference TimeRange";
605 testMessageArray[2] =
606 "isSubsetOf returned true when the target TimeRange is interior to the reference TimeRange";
607 testMessageArray[3] =
608 "isSubsetOf returned true when the target TimeRange overlaps a later portion of the reference TimeRange";
609 testMessageArray[4] =
610 "isSubsetOf returned false when the reference TimeRange is interior to the target TimeRange";
611 testMessageArray[5] =
612 "isSubsetOf returned true when the target TimeRange is after the reference TimeRange";
613 testMessageArray[6] =
614 "isSubsetOf returned true when the target TimeRange ends at and includes the beginning of the reference TimeRange";
615 testMessageArray[7] =
616 "isSubsetOf returned true when the target TimeRange ends at but does not include the beginning of the reference TimeRange";
617 testMessageArray[8] =
618 "isSubsetOf returned true when the target TimeRange is interior to the reference TimeRange and shares a start value";
619 testMessageArray[9] =
620 "isSubsetOf returned true when the target TimeRange is interior to the reference TimeRange and shares an end value";
621 testMessageArray[10] =
622 "isSubsetOf returned true when the target TimeRange starts at and includes the end of reference TimeRange";
623 testMessageArray[11] =
624 "isSubsetOf returned true when the target TimeRange starts at but does not include the end of reference TimeRange";
625 testMessageArray[12] =
626 "isSubsetOf returned false when the target TimeRange starts equals reference TimeRange";
629 testFramework.assert(!referenceTimeRange.
isSubsetOf(priorTimeRange) ,
630 testMessageArray[0] , __LINE__);
631 testFramework.assert(!referenceTimeRange.
isSubsetOf(earlyOverlapTimeRange) ,
632 testMessageArray[1] , __LINE__);
633 testFramework.assert(!referenceTimeRange.
isSubsetOf(interiorTimeRange) ,
634 testMessageArray[2] , __LINE__);
635 testFramework.assert(!referenceTimeRange.
isSubsetOf(lateOverlapTimeRange) ,
636 testMessageArray[3] , __LINE__);
637 testFramework.assert( referenceTimeRange.
isSubsetOf(completeOverlapTimeRange),
638 testMessageArray[4] , __LINE__);
639 testFramework.assert(!referenceTimeRange.
isSubsetOf(afterTimeRange) ,
640 testMessageArray[5] , __LINE__);
641 testFramework.assert(!referenceTimeRange.
isSubsetOf(priorEdgeCase) ,
642 testMessageArray[6] , __LINE__);
643 testFramework.assert(!referenceTimeRange.
isSubsetOf(priorEdgeCaseNoOverlap) ,
644 testMessageArray[7] , __LINE__);
645 testFramework.assert(!referenceTimeRange.
isSubsetOf(interiorEarlyEdge) ,
646 testMessageArray[8] , __LINE__);
647 testFramework.assert(!referenceTimeRange.
isSubsetOf(interiorLateEdge) ,
648 testMessageArray[9] , __LINE__);
649 testFramework.assert(!referenceTimeRange.
isSubsetOf(afterEdgeCase) ,
650 testMessageArray[10], __LINE__);
651 testFramework.assert(!referenceTimeRange.
isSubsetOf(afterEdgeCaseNoOverlap) ,
652 testMessageArray[11], __LINE__);
653 testFramework.assert( referenceTimeRange.
isSubsetOf(referenceTimeRange) ,
654 testMessageArray[12], __LINE__);
656 return testFramework.countFails();
667 TUDEF(
"TimeRange",
"isAfter" );
692 bool beginningIncluded =
true;
693 bool endIncluded =
true;
696 TimeRange referenceTimeRange (startEndpoint, endEndpoint,
697 beginningIncluded, endIncluded);
698 TimeRange priorTimeRange (earlierThanRangeStart, earlierThanRangeEnd,
699 beginningIncluded, endIncluded);
700 TimeRange earlyOverlapTimeRange (earlierThanRangeStart, timeInRangeEnd,
701 beginningIncluded, endIncluded);
702 TimeRange interiorTimeRange (timeInRangeStart, timeInRangeEnd,
703 beginningIncluded, endIncluded);
704 TimeRange lateOverlapTimeRange (timeInRangeStart, laterThanRangeEnd,
705 beginningIncluded, endIncluded);
706 TimeRange completeOverlapTimeRange (earlierThanRangeStart, laterThanRangeEnd,
707 beginningIncluded, endIncluded);
708 TimeRange afterTimeRange (laterThanRangeStart, laterThanRangeEnd,
709 beginningIncluded, endIncluded);
710 TimeRange priorEdgeCase (earlierThanRangeStart, startEndpoint,
711 beginningIncluded, endIncluded);
712 TimeRange priorEdgeCaseNoOverlap (earlierThanRangeStart, startEndpoint,
713 beginningIncluded,
false );
714 TimeRange interiorEarlyEdge (startEndpoint, timeInRangeEnd,
715 beginningIncluded, endIncluded);
716 TimeRange interiorLateEdge (timeInRangeStart, endEndpoint,
717 beginningIncluded, endIncluded);
718 TimeRange afterEdgeCase (endEndpoint, laterThanRangeEnd,
719 beginningIncluded, endIncluded);
720 TimeRange afterEdgeCaseNoOverlap (endEndpoint, laterThanRangeEnd,
721 beginningIncluded,
false );
724 std::string testMessageArray[13];
725 testMessageArray[0] =
726 "isAfter returned false when the target TimeRange is completely before the reference TimeRange";
727 testMessageArray[1] =
728 "isAfter returned true when the target TimeRange overlaps the earlier portion of the reference TimeRange";
729 testMessageArray[2] =
730 "isAfter returned true when the target TimeRange is interior to the reference TimeRange";
731 testMessageArray[3] =
732 "isAfter returned true when the target TimeRange overlaps a later portion of the reference TimeRange";
733 testMessageArray[4] =
734 "isAfter returned true when the reference TimeRange is interior to the target TimeRange";
735 testMessageArray[5] =
736 "isAfter returned true when the target TimeRange is after the reference TimeRange";
737 testMessageArray[6] =
738 "isAfter returned true when the target TimeRange ends at and includes the beginning of the reference TimeRange";
739 testMessageArray[7] =
740 "isAfter returned false when the target TimeRange ends at but does not include the beginning of the reference TimeRange";
741 testMessageArray[8] =
742 "isAfter returned true when the target TimeRange is interior to the reference TimeRange and shares a start value";
743 testMessageArray[9] =
744 "isAfter returned true when the target TimeRange is interior to the reference TimeRange and shares an end value";
745 testMessageArray[10] =
746 "isAfter returned true when the target TimeRange starts at and includes the end of reference TimeRange";
747 testMessageArray[11] =
748 "isAfter returned true when the target TimeRange starts at but does not include the end of reference TimeRange";
749 testMessageArray[12] =
750 "isAfter returned true when the target TimeRange starts equals reference TimeRange";
753 testFramework.assert( referenceTimeRange.
isAfter(priorTimeRange) ,
754 testMessageArray[0] , __LINE__);
755 testFramework.assert(!referenceTimeRange.
isAfter(earlyOverlapTimeRange) ,
756 testMessageArray[1] , __LINE__);
757 testFramework.assert(!referenceTimeRange.
isAfter(interiorTimeRange) ,
758 testMessageArray[2] , __LINE__);
759 testFramework.assert(!referenceTimeRange.
isAfter(lateOverlapTimeRange) ,
760 testMessageArray[3] , __LINE__);
761 testFramework.assert(!referenceTimeRange.
isAfter(completeOverlapTimeRange),
762 testMessageArray[4] , __LINE__);
763 testFramework.assert(!referenceTimeRange.
isAfter(afterTimeRange) ,
764 testMessageArray[5] , __LINE__);
765 testFramework.assert(!referenceTimeRange.
isAfter(priorEdgeCase) ,
766 testMessageArray[6] , __LINE__);
767 testFramework.assert( referenceTimeRange.
isAfter(priorEdgeCaseNoOverlap) ,
768 testMessageArray[7] , __LINE__);
769 testFramework.assert(!referenceTimeRange.
isAfter(interiorEarlyEdge) ,
770 testMessageArray[8] , __LINE__);
771 testFramework.assert(!referenceTimeRange.
isAfter(interiorLateEdge) ,
772 testMessageArray[9] , __LINE__);
773 testFramework.assert(!referenceTimeRange.
isAfter(afterEdgeCase) ,
774 testMessageArray[10], __LINE__);
775 testFramework.assert(!referenceTimeRange.
isAfter(afterEdgeCaseNoOverlap) ,
776 testMessageArray[11], __LINE__);
777 testFramework.assert(!referenceTimeRange.
isAfter(referenceTimeRange) ,
778 testMessageArray[12], __LINE__);
781 return testFramework.countFails();
793 TUDEF(
"TimeRange",
"setToString");
802 const int NUMTESTS = 21;
803 std::string testStrings[NUMTESTS] =
807 "[2012 1 1 0 0 0.0, 2012 1 31 23 59 59.9]",
808 "(2012 1 1 0 0 0.0, 2012 1 31 23 59 59.9)",
809 "2012 1 1 0 0 0.0, 2012 1 31 23 59 59.9",
810 "(2012 1 1 0 0 0.0, 2012 1 31 23 59 59.9]",
811 "[2012 1 1 0 0 0.0, 2012 1 31 23 59 59.9)",
814 "2012 1 1 0 0 0.0,@ 2012 1 31 23 59 59.9)",
817 "[2012 1 1 ! 0 0 0.0, 2012 1 31 $ 23 59 59.*",
826 "[2012 001 0.0, 2012 031 86399.0]",
827 "(2003 1 42300.0, 2003 180 42300.0)",
828 "2011 360 0.0, 2012 364 84599.0",
831 "2016 4 23000.0, 2016 4 8$000.0",
835 "random four word string",
840 " [1906 254884, 1906 254890]",
841 "(1801 114924, 1903 254890)",
842 "1900 123456, 1906 254777",
846 " 1900 abc 123456, 1906 254777)"
849 std::string testFmts[NUMTESTS]=
878 CivilTime(2012, 1, 31, 23, 59, 59.9).convertToCommonTime(),
881 CivilTime(2012, 1, 31, 23, 59, 59.9).convertToCommonTime(),
884 CivilTime(2012, 1, 31, 23, 59, 59.9).convertToCommonTime()
887 CivilTime(2012, 1, 31, 23, 59, 59.9).convertToCommonTime(),
890 CivilTime(2012, 1, 31, 23, 59, 59.9).convertToCommonTime(),
893 CivilTime(2012, 1, 31, 23, 59, 59.9).convertToCommonTime(),
896 CivilTime(2012, 1, 31, 0, 23, 59).convertToCommonTime(),
899 CivilTime(2012, 1, 31, 0, 23, 59).convertToCommonTime(),
902 CivilTime(2012, 1, 31, 0, 23, 59).convertToCommonTime(),
905 CivilTime(2012, 1, 31, 0, 23, 59).convertToCommonTime(),
908 CivilTime(2012, 1, 31, 0, 23, 59).convertToCommonTime(),
948 int invalid[] = {5,6,7,8,9,10,14,15,16,20};
950 for (
size_t i = 0; i < NUMTESTS; ++i)
955 ss <<
"setToString loop Index " << i;
959 TUASSERT(hardcodedResults[i] == testRange);
961 catch(StringUtils::StringException& exc)
965 int * it = std::find(invalid, invalid+10, i);
966 if (it != (invalid+10))
968 TUPASS(
"Received expected exception when trying to call setToString: "
973 TUFAIL(
"Received unexpected exception when trying to call setToString: "
977 catch(TimeRange::TimeRangeException& exc)
979 int * it = std::find(invalid, invalid+10, i);
980 if (it != (invalid+10))
982 TUPASS(
"Received expected exception when trying to call setToString: "
987 TUFAIL(
"Received unexpected exception when trying to call setToString: "
991 catch (gnsstk::InvalidRequest& exc)
993 TUFAIL(
"Received unexpected exception when trying to call setToString: "
998 TUFAIL(
"Received unexpected exception when trying to call setToString");
1012 TUDEF(
"TimeRange",
"OperatorEquivalence" );
1023 TimeRange referenceTimeRange(startPoint, endPoint,
true,
true );
1024 TimeRange differentStart (anotherTime, endPoint,
true,
true );
1025 TimeRange differentEnd (startPoint, anotherTime,
true,
true );
1026 TimeRange noInitialPoint (startPoint, endPoint,
false,
true );
1027 TimeRange noFinalPoint (startPoint, endPoint,
true,
false);
1028 TimeRange copiedTimeRange (referenceTimeRange);
1030 testFramework.assert( !(referenceTimeRange == differentStart) ,
1031 "Equivalence operator returned true when the start time is different"
1033 testFramework.assert( !(referenceTimeRange == differentEnd) ,
1034 "Equivalence operator returned true when the end time is different"
1036 testFramework.assert( !(referenceTimeRange == noInitialPoint) ,
1037 "Equivalence operator returned true when the start time inclusion boolean is different",
1039 testFramework.assert( !(referenceTimeRange == noFinalPoint) ,
1040 "Equivalence operator returned true when the end time inclusion boolean is different"
1042 testFramework.assert( (referenceTimeRange == copiedTimeRange),
1043 "Equivalence operator returned false when the time ranges are copies"
1047 return testFramework.countFails();
1058 TUDEF(
"TimeRange",
"OperatorLessThan" );
1069 TimeRange referenceTimeRange(startPoint, endPoint,
true,
true );
1070 TimeRange laterStart (anotherTime, endPoint,
true,
true );
1071 TimeRange noInitialPoint (startPoint, endPoint,
false,
true );
1072 TimeRange copiedTimeRange (referenceTimeRange);
1074 testFramework.assert( !(referenceTimeRange < copiedTimeRange),
1075 "Less than operator returned true when the time ranges are copies"
1078 testFramework.assert( referenceTimeRange < laterStart,
1079 "Less than operator returned false when the left start < right start"
1082 testFramework.assert( !(laterStart < referenceTimeRange),
1083 "Less than operator returned true when the left start > right start"
1086 testFramework.assert( referenceTimeRange < noInitialPoint,
1087 "Less than operator returned true when the left start inclusive == right start exclusive"
1090 return testFramework.countFails();
1101 TUDEF(
"TimeRange",
"set" );
1113 TimeRange referenceTimeRange(startPoint, endPoint,
true,
true );
1121 changedTimeRange.
set(anotherTime, startPoint,
true,
true);
1122 testFramework.assert(
false,
1123 "set method allowed for the end time to be earlier than the start time",
1128 testFramework.assert(
true,
"set method threw the expected error", __LINE__);
1132 testFramework.assert(
false,
1133 "set method threw an unexpected error for when the end time is earlier than the start time",
1141 changedTimeRange.
set(startPoint, endPoint,
true,
true);
1142 testFramework.assert(
true,
"set method for valid data functioned properly",
1147 testFramework.assert(
false,
1148 "set method for valid data functioned threw an error", __LINE__);
1151 changedTimeRange.
set(startPoint, endPoint,
true,
true);
1152 testFramework.assert( (changedTimeRange == referenceTimeRange),
1153 "One of the values was not set properly", __LINE__ );
1155 return testFramework.countFails();
1165 TUDEF(
"TimeRange",
"printf" );
1168 std::stringstream printfOutputStream;
1178 timeRangeArray[0].
set(startPoint, endPoint,
true,
true );
1179 timeRangeArray[1].
set(startPoint, endPoint,
true,
false );
1180 timeRangeArray[2].
set(startPoint, endPoint,
false,
true );
1181 timeRangeArray[3].
set(startPoint, endPoint,
false,
false );
1182 timeRangeArray[4].
set(startPoint, endPoint,
true,
true );
1183 timeRangeArray[5].
set(startPoint, endPoint,
true,
true );
1184 timeRangeArray[6].
set(startPoint, endPoint,
true,
true );
1186 std::string testFmts[]=
1188 "%Y %m %d %H %M %S",
1189 "%Y %m %d %H %M %S",
1190 "%Y %m %d %H %M %S",
1191 "%Y %m %d %H %M %S",
1192 "%02m/%02d/%02y %02H:%02M:%02S",
1193 "%02b %02d, %04Y %02H:%02M:%02S",
1198 std::string correctResults[]=
1200 "[2011 1 1 0 0 0, 2011 1 31 23 59 59]",
1201 "[2011 1 1 0 0 0, 2011 1 31 23 59 59)",
1202 "(2011 1 1 0 0 0, 2011 1 31 23 59 59]",
1203 "(2011 1 1 0 0 0, 2011 1 31 23 59 59)",
1204 "[01/01/11 00:00:00, 01/31/11 23:59:59]",
1205 "[Jan 01, 2011 00:00:00, Jan 31, 2011 23:59:59]",
1206 "[2011 1 0.000000, 2011 31 86399.590000]"
1209 std::string testMessage =
"Printed string did not match expected output";
1211 for (
int i = 0; i < 7; i++)
1213 printfOutputStream << timeRangeArray[i].
printf(testFmts[i]);
1214 testFramework.assert( (printfOutputStream.str() == correctResults[i]),
1215 testMessage, __LINE__ );
1216 printfOutputStream.str(std::string());
1219 return testFramework.countFails();
1227 TUDEF(
"TimeRange",
"dump" );
1229 std::stringstream dumpOutputStream;
1239 timeRangeArray[0].
set(startPoint, endPoint,
true,
true );
1240 timeRangeArray[1].
set(startPoint, endPoint,
true,
false );
1241 timeRangeArray[2].
set(startPoint, endPoint,
false,
true );
1242 timeRangeArray[3].
set(startPoint, endPoint,
false,
false );
1243 timeRangeArray[4].
set(startPoint, endPoint,
true,
true );
1244 timeRangeArray[5].
set(startPoint, endPoint,
true,
true );
1245 timeRangeArray[6].
set(startPoint, endPoint,
true,
true );
1247 std::string testFmts[]=
1249 "%Y %m %d %H %M %S",
1250 "%Y %m %d %H %M %S",
1251 "%Y %m %d %H %M %S",
1252 "%Y %m %d %H %M %S",
1253 "%02m/%02d/%02y %02H:%02M:%02S",
1254 "%02b %02d, %04Y %02H:%02M:%02S",
1259 std::string correctResults[]=
1261 "[Start:2011 1 1 0 0 0, End: 2011 1 31 23 59 59]",
1262 "[Start:2011 1 1 0 0 0, End: 2011 1 31 23 59 59)",
1263 "(Start:2011 1 1 0 0 0, End: 2011 1 31 23 59 59]",
1264 "(Start:2011 1 1 0 0 0, End: 2011 1 31 23 59 59)",
1265 "[Start:01/01/11 00:00:00, End: 01/31/11 23:59:59]",
1266 "[Start:Jan 01, 2011 00:00:00, End: Jan 31, 2011 23:59:59]",
1267 "[Start:2011 1 0.000000, End: 2011 31 86399.590000]"
1270 std::string testMessage =
"Printed string did not match expected output";
1272 for (
int i = 0; i < 7; i++)
1274 dumpOutputStream << timeRangeArray[i].
dump(testFmts[i]);
1275 testFramework.assert( (dumpOutputStream.str() == correctResults[i]),
1276 testMessage, __LINE__ );
1277 dumpOutputStream.str(std::string());
1280 return testFramework.countFails();
1302 errorTotal += testClass.
setTest();
1304 errorTotal += testClass.
dumpTest();
1306 cout <<
"Total Failures for " << __FILE__ <<
": " << errorTotal << endl;