Exemplo n.º 1
0
static void validate_test_dataset1_forest(Cursor cur, Cursor e)
{
    Cursor c = cur;
    BOOST_CHECK_EQUAL(*c, 8);
    BOOST_CHECK_EQUAL(*c.to_begin(), 3);
    BOOST_CHECK_EQUAL(*++c, 6);
    BOOST_CHECK_EQUAL(*++c, 7);
    BOOST_CHECK(++c == cur.end());
    
    c = cur.begin();
    BOOST_CHECK_EQUAL(*c.to_begin(), 1);
    BOOST_CHECK(++c == cur.begin().end());

    c = cur.begin();
    ++c;
    Cursor d = c; 
    BOOST_CHECK_EQUAL(*c.to_begin(), 4);
    BOOST_CHECK(++c == d.end());
    
    c = cur;
    BOOST_CHECK_EQUAL(*++c, 10);
    BOOST_CHECK_EQUAL(*++c, 14);
    d = c;
    BOOST_CHECK(++c == e);
    c = d;
    BOOST_CHECK_EQUAL(*c.to_begin(), 13);
    BOOST_CHECK(++c == d.end());
    c = d.to_begin();
    BOOST_CHECK_EQUAL(*c.to_begin(), 11);
    BOOST_CHECK_EQUAL(*++c, 12);
    BOOST_CHECK(++c == d.end());
}
static void validate_test_dataset1_tree(Cursor cur)
{
    BOOST_CHECK_EQUAL(*cur, 8);
    BOOST_CHECK_EQUAL(*cur.begin(), 3);
    BOOST_CHECK_EQUAL(*cur.begin().begin(), 1);
    BOOST_CHECK(cur.begin().begin().end().is_leaf());
    BOOST_CHECK(cur.begin().begin().begin().is_leaf()); //Leaf
    
    BOOST_CHECK_EQUAL(*cur.begin().end(), 6);
    BOOST_CHECK_EQUAL(*cur.begin().end().begin(), 4);
    BOOST_CHECK(cur.begin().end().begin().begin().is_leaf()); //Leaf

    BOOST_CHECK_EQUAL(*cur.begin().end().end(), 7);
    BOOST_CHECK(cur.begin().end().end().begin().is_leaf()); //Leaf

    BOOST_CHECK_EQUAL(*cur.end(), 10);
    BOOST_CHECK(cur.end().begin().is_leaf());
    BOOST_CHECK_EQUAL(*cur.end().end(), 14);
    BOOST_CHECK(cur.end().end().end().is_leaf());
    BOOST_CHECK_EQUAL(*cur.end().end().begin(), 13);
    BOOST_CHECK(cur.end().end().begin().end().is_leaf());
    BOOST_CHECK_EQUAL(*cur.end().end().begin().begin(), 11);
    BOOST_CHECK(cur.end().end().begin().begin().begin().is_leaf()); 
    BOOST_CHECK_EQUAL(*cur.end().end().begin().begin().end(), 12);
    BOOST_CHECK(cur.end().end().begin().begin().end().begin().is_leaf()); //Leaf
}
static void validate_test_dataset1_minus_1_tree(Cursor cur)
{
    BOOST_CHECK_EQUAL(*cur, 7);
    BOOST_CHECK_EQUAL(*cur.begin(), 2);    
    BOOST_CHECK_EQUAL(*cur.begin().begin(), 0);  //Leaf
    BOOST_CHECK_EQUAL(*cur.begin().end(), 5);        
    BOOST_CHECK_EQUAL(*cur.begin().end().begin(), 3); //Leaf
    BOOST_CHECK_EQUAL(*cur.begin().end().end(), 6); //Leaf

    BOOST_CHECK_EQUAL(*cur.end(), 9);
    BOOST_CHECK_EQUAL(*cur.end().end(), 13);
    BOOST_CHECK_EQUAL(*cur.end().end().begin(), 12);
    BOOST_CHECK_EQUAL(*cur.end().end().begin().begin(), 10); 
    BOOST_CHECK_EQUAL(*cur.end().end().begin().begin().end(), 11); //Leaf
}