Ignore:
Timestamp:
Jul 14, 2014, 8:37:03 PM (11 years ago)
Author:
Frederik Heber <heber@…>
Children:
ef9dff6
Parents:
e93bfe
git-author:
Frederik Heber <heber@…> (06/18/14 08:14:25)
git-committer:
Frederik Heber <heber@…> (07/14/14 20:37:03)
Message:

FIX: Chronos is now working correctly, no more negative times.

  • extracted difference calculator into static function, making it thus accessible to unit testing.
  • kudos to Saskia Metzler for inspiring the test.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Helpers/unittests/ChronosUnitTest.cpp

    re93bfe rca940b  
    152152  std::cout << Chronos::getInstance() << std::endl;
    153153}
     154
     155/**
     156 * UnitTest for Chronos::calculateCorrectTimeDifference()
     157 */
     158void ChronosTest::calculateCorrectTimeDifferenceTest()
     159{
     160  Chronos::sec_ncsec_t first;
     161  Chronos::sec_ncsec_t second;
     162        {
     163                // 1.1 - 0.01
     164                first.first = 1;
     165                first.second = 1e8;
     166                second.first = 0;
     167                second.second = 1e7;
     168                double difference = Chronos::calculateCorrectTimeDifference(first, second);
     169    CPPUNIT_ASSERT( fabs(1.1-0.01 - difference) < std::numeric_limits<double>::epsilon()*1e2);
     170//              CPPUNIT_ASSERT_EQUAL( 1.1-0.01, difference);
     171        }
     172        {
     173                // 1.1 - 0.9
     174                first.first = 1;
     175                first.second = 1e8;
     176                second.first = 0;
     177                second.second = 9e8;
     178                double difference = Chronos::calculateCorrectTimeDifference(first, second);
     179                //    CPPUNIT_ASSERT_EQUAL( 1.1-0.9, difference);
     180                CPPUNIT_ASSERT( fabs(1.1-0.9 - difference) < std::numeric_limits<double>::epsilon()*1e2);
     181        }
     182        {
     183                // 1000.1 - 0.9
     184                first.first = 1000;
     185                first.second = 1e8;
     186                second.first = 0;
     187                second.second = 9e8;
     188                double difference = Chronos::calculateCorrectTimeDifference(first, second);
     189//              CPPUNIT_ASSERT_EQUAL( 1000.1-0.9, difference);
     190    CPPUNIT_ASSERT( fabs(1000.1-0.9 - difference) < std::numeric_limits<double>::epsilon()*1e2);
     191        }
     192}
Note: See TracChangeset for help on using the changeset viewer.