Edit

kc3-lang/ftgl/test/FTSize-Test.cpp

Branch :

  • Show log

    Commit

  • Author : henry
    Date : 2004-09-29 23:07:54
    Hash : 2c46125c
    Message : Removed the pixels per em function because no one is using them.

  • test/FTSize-Test.cpp
  • #include <cppunit/extensions/HelperMacros.h>
    #include <cppunit/TestCaller.h>
    #include <cppunit/TestCase.h>
    #include <cppunit/TestSuite.h>
    #include <assert.h>
    
    #include <ft2build.h>
    #include FT_FREETYPE_H
    #include FT_GLYPH_H
    
    #include "Fontdefs.h"
    #include "FTSize.h"
    
    
    class FTSizeTest : public CppUnit::TestCase
    {
        CPPUNIT_TEST_SUITE( FTSizeTest);
            CPPUNIT_TEST( testConstructor);
            CPPUNIT_TEST( testSetCharSize);
        CPPUNIT_TEST_SUITE_END();
            
        public:
            FTSizeTest() : CppUnit::TestCase( "FTSize Test")
            {}
            
            FTSizeTest( const std::string& name) : CppUnit::TestCase(name) {}
    
            void testConstructor()
            {
                FTSize size;
                
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.CharSize(), 0.01);
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.Ascender(), 0.01);
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.Descender(), 0.01);
    
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.Height(), 0.01);
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.Width(), 0.01);
    
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.Underline(), 0.01);
    
            }
            
            
            void testSetCharSize()
            {
                setUpFreetype();
                
                FTSize size;
    
                CPPUNIT_ASSERT( size.CharSize( &face, FONT_POINT_SIZE, RESOLUTION, RESOLUTION));
                CPPUNIT_ASSERT( size.Error() == 0);
                
                CPPUNIT_ASSERT_DOUBLES_EQUAL(  72, size.CharSize(), 0.01);
                CPPUNIT_ASSERT_DOUBLES_EQUAL(  52, size.Ascender(), 0.01);
                CPPUNIT_ASSERT_DOUBLES_EQUAL( -15, size.Descender(), 0.01);
    
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 81.86, size.Height(), 0.01);
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 76.32, size.Width(), 0.01);
    
                CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, size.Underline(), 0.01);
                
                tearDownFreetype();
            }
            
            
            void setUp() 
            {}
            
            
            void tearDown() 
            {}
            
        private:
            FT_Library   library;
            FT_Face      face;
    
            void setUpFreetype()
            {
                FT_Error error = FT_Init_FreeType( &library);
                assert(!error);
                error = FT_New_Face( library, GOOD_FONT_FILE, 0, &face);
                assert(!error);
            }
            
            void tearDownFreetype()
            {
                FT_Done_Face( face);
                FT_Done_FreeType( library);
            }
            
    };
    
    CPPUNIT_TEST_SUITE_REGISTRATION( FTSizeTest);