[Test] strange test behavior
Greetings, I have the following class to test a class named Scoring (implements a graph using Boost Graph Library). If the line marked with //!!! below is uncommented the scores yielded by _s.getNetwork().getVertexScore(*it) are garbage values (like 2.57117366e+29 ). If it is commented test fails but the values are initial (sensible) values. When I run the same function apart from the tests, the function behaves correctly and gives correct calculated scores. There should be a context problem but I could not figure it out. I would be grateful for any suggestions and ideas. class TestScoring { Scoring _s; public: TestScoring() { _s = Scoring("test_vertices_small.txt", "test_edges_small.txt"); } ~TestScoring() { } void test_calculatedScores() { float vertex_scores[] = { 0.75, 4.0/3, 1.5, 1.0/3, 0.005 }; std::size_t n_vertex = sizeof(vertex_scores)/sizeof(float); //!!! this call changes the behavior of the test //!!! _s.run(1,2); VertexIterator it, itEnd; for(boost::tie(it, itEnd) = _s.getNetwork().getVertexIterator(); it != itEnd; it++) { BOOST_CHECK_CLOSE(_s.getNetwork().getVertexScore(*it), vertex_scores[_s.getNetwork().getVertexIndex(*it)], 0.00001f); } } }; // TestScoring is called from the following suite class TestSuiteScoring: public test_suite { public: TestSuiteScoring(): test_suite("test_suite_scoring") { shared_ptr<TestScoring> instance(new TestScoring()); test_case *calculatedScores = BOOST_CLASS_TEST_CASE( &TestScoring::test_calculatedScores, instance); add(calculatedScores); } ~TestScoring() { //instance.release(); } }; Emre
Emre Guney wrote:
There should be a context problem but I could not figure it out. I would be grateful for any suggestions and ideas.
I know little about Boost.Graph library. But from Boost.Test prospective everything looks kosher. Maybe you can debug it a bit. also if you could simplify it and post failing example here, we might be able to help more. Gennadiy
participants (2)
-
Emre Guney
-
Gennadiy Rozental