📄 ftcontour-test.cpp
字号:
#include <cppunit/extensions/HelperMacros.h>#include <cppunit/TestCaller.h>#include <cppunit/TestCase.h>#include <cppunit/TestSuite.h>#include "FTContour.h"// FT_Curve_Tag_On 1// FT_Curve_Tag_Conic 0// FT_Curve_Tag_Cubic 2static FT_Vector shortLine[2] ={ { 1, 1}, { 2, 2},};static FT_Vector straightLinePoints[3] = { { 0, 0}, { 6, 7}, { 9, -2}};static char straightLineTags[3] ={ FT_Curve_Tag_On, FT_Curve_Tag_On, FT_Curve_Tag_On};static char brokenTags[3] ={ FT_Curve_Tag_Conic, 69, FT_Curve_Tag_On};static FT_Vector simpleConicPoints[3] = { { 0, 0}, { 6, 7}, { 9, -2}};static FT_Vector brokenPoints[3] = { { 0, 0}, { 0, 0}, { 0, 0}};static char simpleConicTags[3] = { FT_Curve_Tag_Conic, FT_Curve_Tag_On, FT_Curve_Tag_On};static FT_Vector doubleConicPoints[4] = { { 0, 0}, { 6, 7}, { 9, -2}, { 4, 0}};static char doubleConicTags[4] = { FT_Curve_Tag_On, FT_Curve_Tag_On, FT_Curve_Tag_Conic, FT_Curve_Tag_Conic};static FT_Vector cubicPoints[4] = { { 0, 0}, { 6, 7}, { 9, -2}, { 4, 0}};static char cubicTags[4] = { FT_Curve_Tag_On, FT_Curve_Tag_On, FT_Curve_Tag_Cubic, FT_Curve_Tag_Cubic};// ARIAl 'd'static FT_Vector compositePoints[18] = { { 1856, 0}, { 1856, 279}, { 1625, -64}, { 1175, -64}, { 884, -64}, { 396, 251}, { 128, 815}, { 128, 1182}, { 128, 1539}, { 370, 2121}, { 855, 2432}, { 1156, 2432}, { 1375, 2432}, { 1718, 2257}, { 1826, 2118}, { 1826, 3264}, { 2240, 3264}, { 2240, 0},};static char compositeTags[18] = { FT_Curve_Tag_On, FT_Curve_Tag_On, FT_Curve_Tag_Conic, FT_Curve_Tag_On, FT_Curve_Tag_Conic, FT_Curve_Tag_Conic, FT_Curve_Tag_Conic, FT_Curve_Tag_On, FT_Curve_Tag_Conic, FT_Curve_Tag_Conic, FT_Curve_Tag_Conic, FT_Curve_Tag_On, FT_Curve_Tag_Conic, FT_Curve_Tag_Conic, FT_Curve_Tag_On, FT_Curve_Tag_On, FT_Curve_Tag_On, FT_Curve_Tag_On};class FTContourTest : public CppUnit::TestCase{ CPPUNIT_TEST_SUITE( FTContourTest); CPPUNIT_TEST( testNullCurve); CPPUNIT_TEST( testBrokenCurve); CPPUNIT_TEST( testStraightLine); CPPUNIT_TEST( testConicCurve); CPPUNIT_TEST( testDoubleConicCurve); CPPUNIT_TEST( testCubicCurve); CPPUNIT_TEST( testCompositeCurve); CPPUNIT_TEST_SUITE_END(); public: FTContourTest() : CppUnit::TestCase( "FTContour Test") {} FTContourTest( const std::string& name) : CppUnit::TestCase(name) {} void testNullCurve() { FTContour contour( NULL, NULL, 0); CPPUNIT_ASSERT( contour.PointCount() == 0); } void testBrokenCurve() { FTContour contour( brokenPoints, simpleConicTags, 3); CPPUNIT_ASSERT( contour.PointCount() == 1); FTContour shortContour( shortLine, simpleConicTags, 2); CPPUNIT_ASSERT( shortContour.PointCount() == 6); FTContour reallyShortContour( shortLine, simpleConicTags, 1); CPPUNIT_ASSERT( reallyShortContour.PointCount() == 1); FTContour brokenTagtContour( shortLine, brokenTags, 3); CPPUNIT_ASSERT( brokenTagtContour.PointCount() == 7); } void testStraightLine() { FTContour contour( straightLinePoints, straightLineTags, 3); CPPUNIT_ASSERT( contour.PointCount() == 3); } void testConicCurve() { FTContour contour( simpleConicPoints, simpleConicTags, 3); CPPUNIT_ASSERT( contour.PointCount() == 7); } void testDoubleConicCurve() { FTContour contour( doubleConicPoints, doubleConicTags, 4); CPPUNIT_ASSERT( contour.PointCount() == 12); } void testCubicCurve() { FTContour contour( cubicPoints, cubicTags, 4); CPPUNIT_ASSERT( contour.PointCount() == 7); } void testCompositeCurve() { FTContour contour( compositePoints, compositeTags, 18); CPPUNIT_ASSERT( contour.PointCount() == 50); } void setUp() {} void tearDown() {} private:};CPPUNIT_TEST_SUITE_REGISTRATION( FTContourTest);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -