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