Example #1
0
    void testInsert()
    {
        InvertedIndex index;

        const Term term1("foo");
        index.insert(term1, 0);
        CPPUNIT_ASSERT(index.getPostings(term1).size() == 1);
        CPPUNIT_ASSERT(isContain(index.getPostings(term1), 0));

        index.insert(term1, 1);
        CPPUNIT_ASSERT(index.getPostings(term1).size() == 2);
        CPPUNIT_ASSERT(isContain(index.getPostings(term1), 0));
        CPPUNIT_ASSERT(isContain(index.getPostings(term1), 1));
        
        CPPUNIT_ASSERT(!isContain(index.getPostings(term1), 2));

        const Term term2("bar");
        index.insert(term2, 0);
        CPPUNIT_ASSERT(index.getPostings(term2).size() == 1);
        CPPUNIT_ASSERT(isContain(index.getPostings(term2), 0));

        index.insert(term2, 1);
        CPPUNIT_ASSERT(index.getPostings(term2).size() == 2);
        CPPUNIT_ASSERT(isContain(index.getPostings(term2), 0));
        CPPUNIT_ASSERT(isContain(index.getPostings(term2), 1));
        
        CPPUNIT_ASSERT(!isContain(index.getPostings(term2), 2));
    }
Example #2
0
    void testOrder()
    {
        InvertedIndex index;

        const Term term1("foo");

        index.insert(term1, 0);
        index.insert(term1, 2);
        index.insert(term1, 1);
        index.insert(term1, 5);
        index.insert(term1, 4);
        index.insert(term1, 3);
        index.insert(term1, 6);

        const Postings &postings = index.getPostings(term1);

        CPPUNIT_ASSERT(postings.size() == 7);
        Postings::const_iterator iter = postings.begin();
        DocId prevId = *iter;
        ++iter;
        for(; iter != postings.end(); ++iter)
        {
            CPPUNIT_ASSERT(prevId < *iter);
            prevId = *iter;
        }
        CPPUNIT_ASSERT(prevId == 6);
    }