From d606ab61e8e1bba5254b6f118e58af986b54fb5f Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 9 Jun 2015 22:12:22 +0200
Subject: [PATCH] make chrono test less likely to fail...

---
 alib2std/test-src/extensions/ChronoTest.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/alib2std/test-src/extensions/ChronoTest.cpp b/alib2std/test-src/extensions/ChronoTest.cpp
index 7fef5eaeab..9797999410 100644
--- a/alib2std/test-src/extensions/ChronoTest.cpp
+++ b/alib2std/test-src/extensions/ChronoTest.cpp
@@ -1,7 +1,7 @@
 #include "ChronoTest.h"
 #include <chrono>
 #include <thread>
-
+#include <cmath>
 
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ChronoTest, "bits" );
 CPPUNIT_TEST_SUITE_REGISTRATION( ChronoTest );
@@ -53,9 +53,15 @@ void ChronoTest::testChrono2() {
 	std::chrono::measurements::end();
 
 	std::cout << "Default print" << std::endl << std::chrono::measurements::results() << std::endl;
+	auto sum1 = std::get<3>(std::chrono::measurements::results()[1]) + std::get<3>(std::chrono::measurements::results()[2]) + std::get<3>(std::chrono::measurements::results()[3]);
+	auto exp1 = std::get<2>(std::chrono::measurements::results()[3]);
+
+	CPPUNIT_ASSERT(std::abs(sum1.count() - exp1.count()) < 2000);
+
+	auto sum2 = std::get<3>(std::chrono::measurements::results()[0]) + std::get<3>(std::chrono::measurements::results()[1]) + std::get<3>(std::chrono::measurements::results()[2]) + std::get<3>(std::chrono::measurements::results()[3]) + std::get<3>(std::chrono::measurements::results()[4]) + std::get<3>(std::chrono::measurements::results()[5]);
+	auto exp2 = std::get<2>(std::chrono::measurements::results()[6]);
 
-	CPPUNIT_ASSERT((std::get<3>(std::chrono::measurements::results()[1]) + std::get<3>(std::chrono::measurements::results()[2]) + std::get<3>(std::chrono::measurements::results()[3]))/1000 == std::get<2>(std::chrono::measurements::results()[3])/1000);
-	CPPUNIT_ASSERT((std::get<3>(std::chrono::measurements::results()[0]) + std::get<3>(std::chrono::measurements::results()[1]) + std::get<3>(std::chrono::measurements::results()[2]) + std::get<3>(std::chrono::measurements::results()[3]) + std::get<3>(std::chrono::measurements::results()[4]) + std::get<3>(std::chrono::measurements::results()[5]))/1000 == std::get<2>(std::chrono::measurements::results()[6])/1000);
+	CPPUNIT_ASSERT(std::abs(sum2.count() - exp2.count()) < 2000);
 
 	std::cout << "Tree print" << std::endl << std::chrono::measurements::Format::TREE << std::chrono::measurements::results() << std::endl;
 	std::cout << "Tree print none" << std::endl << std::chrono::measurements::Format::TREE << std::chrono::measurements::Filter::NONE << std::chrono::measurements::results() << std::endl;
-- 
GitLab