Ejemplo n.º 1
0
//===========================================================================
// Complex higher level tests of markov database
//===========================================================================
TEST(MarkovTree,ComplexOneLevelTreeTest)
{
    MarkovData data(1);

    // ab, bb, bc, cd, bc, ac, ab, ba, bb, bb
    data.insert( MC2(a,b) ); data.insert( MC2(b,b) );
    data.insert( MC2(b,c) ); data.insert( MC2(c,d) );
    data.insert( MC2(b,c) ); data.insert( MC2(a,c) );
    data.insert( MC2(a,b) ); data.insert( MC2(b,a) );
    data.insert( MC2(b,b) ); data.insert( MC2(b,b) );

    // make sure sum is 10 and 3 children
    EXPECT_EQ( 3, data.childrenAtRoot() );
    EXPECT_EQ( 10, data.weightSumAtRoot() );

    // Verify chains
    // a branch
    EXPECT_TRUE( testSubchain( data, MC1(a),   3, 2 ) );
    EXPECT_TRUE( testSubchain( data, MC2(a,b), 2, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC2(a,c), 1, 0 ) );

    // b branch
    EXPECT_TRUE( testSubchain( data, MC1(b),   6, 3 ) );
    EXPECT_TRUE( testSubchain( data, MC2(b,a), 1, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC2(b,b), 3, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC2(b,c), 2, 0 ) );

    // c branch
    EXPECT_TRUE( testSubchain( data, MC1(c),   1, 1 ) );
    EXPECT_TRUE( testSubchain( data, MC2(c,d), 1, 0 ) );

    std::cout << data.debugDumpToString() << std::endl;
}
Ejemplo n.º 2
0
//===========================================================================
// Basic markov data tests
//===========================================================================
TEST(MarkovTree,FindNonexistantChainReturnsNull)
{
    MarkovData data(2);

    data.insert( MC3(aa,bb,cc) );

    EXPECT_TRUE( NULL == data.getNodeFor( MC1(xx) ) );
    EXPECT_TRUE( NULL == data.getNodeFor( MC2(aa,cc) ) );
}
Ejemplo n.º 3
0
TEST(MarkovTree,InsertChainCanRetrieveAllLevels)
{
    MarkovData data(2);

    data.insert( MC3(aa,bb,cc) );

    EXPECT_TRUE( testSubchain( data, MC1(aa),       1, 1 ) );
    EXPECT_TRUE( testSubchain( data, MC2(aa,bb),    1, 1 ) );
    EXPECT_TRUE( testSubchain( data, MC3(aa,bb,cc), 1, 0 ) );
}
Ejemplo n.º 4
0
TEST(MarkovTree,InsertChainCanRetrieveIt)
{
    MarkovData data(2);

    data.insert( MC3(a,b,c) );
    ElementNode * n = NULL;

    // Lookup {"a"} --> {"b", "c"}
    EXPECT_TRUE( n != data.getNodeFor( MC1(a) ) );
}
Ejemplo n.º 5
0
int main(int argc, char **argv) 
{
  ros::init(argc, argv, "manual_control_node");
  ros::NodeHandle nh;
  manual_control MC1(nh);
   while(ros::ok())
  {
    ros::spinOnce();  
  }
  return 0;
}
Ejemplo n.º 6
0
TEST(MarkovTree,BasicOneLevelTreeSameWeights)
{
    MarkovData data(1);

    data.insert( MC2(a,b) );
    data.insert( MC2(b,c) );
    data.insert( MC2(c,d) );

    // make sure three nodes at root
    EXPECT_EQ( 3, data.childrenAtRoot() );

    // Verify subchains
    //  {a,b}
    EXPECT_TRUE( testSubchain(data, MC1(a),   1, 1) );
    EXPECT_TRUE( testSubchain(data, MC2(a,b), 1, 0) );

    // {b,c}
    EXPECT_TRUE( testSubchain(data, MC1(b),   1, 1) );
    EXPECT_TRUE( testSubchain(data, MC2(b,c), 1, 0) );

    // {c,d}
    EXPECT_TRUE( testSubchain(data, MC1(c),   1, 1) );
    EXPECT_TRUE( testSubchain(data, MC2(c,d), 1, 0) );
}
Ejemplo n.º 7
0
TEST(MarkovChain,ComplexTwoLevelTTreeest)
{
    MarkovData data(2);

    /**
     * (ROOT:24)
     *   - A:6
     *      - B:2
     *          - A:1
     *          - D:1
     *      - C:4
     *          - D:2
     *          - A:1
     *          - C:1
     *   - B:11
     *      - B:3
     *          - A:3
     *      - A:5
     *          - A:1
     *          - B:2
     *          - C:1
     *          - D:1
     *      - C:3
     *          - A:1
     *          - D:2
     *   - C:3
     *      - B:3
     *          - D:3
     *   - D:4
     *      - A:1
     *          - C:1
     *      - B:3
     *          - A:2
     *          - D:1
     */
    data.insert( MC3(a,b,a) ); data.insert( MC3(a,c,c) );   // 1
    data.insert( MC3(d,a,c) ); data.insert( MC3(c,b,d) );   // 2
    data.insert( MC3(a,c,d) ); data.insert( MC3(a,c,d) );   // 3
    data.insert( MC3(b,a,a) ); data.insert( MC3(b,b,a) );   // 4
    data.insert( MC3(b,c,a) ); data.insert( MC3(c,b,d) );   // 5
    data.insert( MC3(c,b,d) ); data.insert( MC3(a,b,d) );   // 6

    data.insert( MC3(a,c,a) ); data.insert( MC3(b,c,d) );   // 7
    data.insert( MC3(d,b,a) ); data.insert( MC3(b,c,d) );   // 8
    data.insert( MC3(d,b,a) ); data.insert( MC3(d,b,d) );   // 9
    data.insert( MC3(b,b,a) ); data.insert( MC3(b,a,c) );   // 10
    data.insert( MC3(b,a,b) ); data.insert( MC3(b,a,b) );   // 11
    data.insert( MC3(b,a,d) ); data.insert( MC3(b,b,a) );   // 12

    // make sure sum is 10 and 3 children
    EXPECT_EQ( 4, data.childrenAtRoot() );
    EXPECT_EQ( 24, data.weightSumAtRoot() );

    // Verify chains
    // a branch
    EXPECT_TRUE( testSubchain( data, MC1(a),   6, 2 ) );
    EXPECT_TRUE( testSubchain( data, MC2(a,b), 2, 2 ) );
    EXPECT_TRUE( testSubchain( data, MC2(a,c), 4, 3 ) );

    EXPECT_TRUE( testSubchain( data, MC3(a,b,a), 1, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(a,b,d), 1, 0 ) );

    EXPECT_TRUE( testSubchain( data, MC3(a,c,d), 2, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(a,c,a), 1, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(a,c,c), 1, 0 ) );

    // b branch
    EXPECT_TRUE( testSubchain( data, MC1(b),  11, 3 ) );
    EXPECT_TRUE( testSubchain( data, MC2(b,a), 5, 4 ) );
    EXPECT_TRUE( testSubchain( data, MC2(b,b), 3, 1 ) );
    EXPECT_TRUE( testSubchain( data, MC2(b,c), 3, 2 ) );

    EXPECT_TRUE( testSubchain( data, MC3(b,b,a), 3, 0 ) );

    EXPECT_TRUE( testSubchain( data, MC3(b,a,a), 1, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(b,a,b), 2, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(b,a,c), 1, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(b,a,d), 1, 0 ) );

    EXPECT_TRUE( testSubchain( data, MC3(b,c,a), 1, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(b,c,d), 2, 0 ) );

    // c branch
    EXPECT_TRUE( testSubchain( data, MC1(c),   3, 1 ) );
    EXPECT_TRUE( testSubchain( data, MC2(c,b), 3, 1 ) );

    EXPECT_TRUE( testSubchain( data, MC3(c,b,d), 3, 0 ) );

    // d branch
    EXPECT_TRUE( testSubchain( data, MC1(d),   4, 2 ) );
    EXPECT_TRUE( testSubchain( data, MC2(d,a), 1, 1 ) );
    EXPECT_TRUE( testSubchain( data, MC2(d,b), 3, 2 ) );

    EXPECT_TRUE( testSubchain( data, MC3(d,a,c), 1, 0 ) );

    EXPECT_TRUE( testSubchain( data, MC3(d,b,a), 2, 0 ) );
    EXPECT_TRUE( testSubchain( data, MC3(d,b,d), 1, 0 ) );
}
Ejemplo n.º 8
0
TEST(MarkovTree,OneLengthChainsAreEqual)
{
    EXPECT_TRUE( isEqual( MC1(bear), MC1(bear) ) );
}
Ejemplo n.º 9
0
TEST(MarkovTree,OneElementChainToString)
{
    EXPECT_EQ( "<1;apple>", toString( MC1(apple) ) );
}