#ifndef _PAT_MAT_TEST_H #define _PAT_MAT_TEST_H #include #include #include #include #include #include "PatMatch.h" #include #include using namespace CppUnit; class PatMatchTest : public TestCase { private: BitmapFont *a; PatMatch *pat1,*pat2; public: void setUp(){ /* .....................@@. @@@@@@@@@@@@@@@@@@@@@@@@ ........@@....@@........ ........@@....@@........ ........@@....@@........ ........@@....@@........ ..@.....@@....@@....@@.. ..@@@@@@@@@@@@@@@@@@@@@. ..@@....@@....@@....@@.. ..@@....@@....@@....@@.. ..@@....@@....@@....@@.. ..@@....@@....@@....@@.. ..@@....@@....@@....@@.. ..@@....@@....@@....@@.. ..@@@@@@@@@@@@@@@@@@@@.. ..@@....@@....@@....@@.. ........@@....@@........ ........@@....@@........ ........@@....@@........ ........@@....@@........ ........@@....@@........ ........@@....@@.....@@. @@@@@@@@@@@@@@@@@@@@@@@@ ........................ */ a=new BitmapFont(24,24,"000006FFFFFF00C30000C30000C30000C30020C30C3FFFFE30C30C30C30C30C30C30C30C30C30C30C30C3FFFFC30C30C00C30000C30000C30000C30000C30000C306FFFFFF000000"); pat1=new PatMatch(3,3, "..." ".@@" "...",Assumption()); pat2=new PatMatch(4,3, "...." "@@@@" ".@@.",Assumption()); } void tearDown(){ delete a; delete pat1; delete pat2; } void testShow(){ std::cout << *pat1 << '\n'; std::vector ps=pat1->getPixels(10,10); std::vector::iterator it; for(it=ps.begin();it!=ps.end();it++){ std::cout << '(' << it->first << ',' << it->second << ')'; } std::cout << '\n'; } void testMatch(){ CPPUNIT_ASSERT( pat1->matchPenalty(*a,-1,0) >=0); CPPUNIT_ASSERT( pat1->matchPenalty(*a,0,0) <0); CPPUNIT_ASSERT( pat2->matchPenalty(*a,7,0) >=0); CPPUNIT_ASSERT( pat2->matchPenalty(*a,7,6) <0); } static Test *suite(){ TestSuite *suiteOfTests = new TestSuite; suiteOfTests->addTest (new TestCaller("testShow", &PatMatchTest::testShow)); suiteOfTests->addTest (new TestCaller("testMatch", &PatMatchTest::testMatch)); return suiteOfTests; } }; #endif /* _PAT_MAT_TEST_H */