font.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. -- love.font
  2. --------------------------------------------------------------------------------
  3. --------------------------------------------------------------------------------
  4. ------------------------------------OBJECTS-------------------------------------
  5. --------------------------------------------------------------------------------
  6. --------------------------------------------------------------------------------
  7. -- GlyphData (love.font.newGlyphData)
  8. love.test.font.GlyphData = function(test)
  9. -- create obj
  10. local rasterizer = love.font.newRasterizer('resources/font.ttf')
  11. local gdata = love.font.newGlyphData(rasterizer, 97) -- 'a'
  12. test:assertObject(gdata)
  13. -- check properties match expected
  14. test:assertNotNil(gdata:getString())
  15. test:assertEquals(128, gdata:getSize(), 'check data size')
  16. test:assertEquals(9, gdata:getAdvance(), 'check advance')
  17. test:assertEquals('la8', gdata:getFormat(), 'check format')
  18. test:assertEquals(97, gdata:getGlyph(), 'check glyph number')
  19. test:assertEquals('a', gdata:getGlyphString(), 'check glyph string')
  20. test:assertEquals(8, gdata:getHeight(), 'check height')
  21. test:assertEquals(8, gdata:getWidth(), 'check width')
  22. -- check boundary
  23. local x, y, w, h = gdata:getBoundingBox()
  24. local dw, dh = gdata:getDimensions()
  25. local bw, bh = gdata:getBearing()
  26. test:assertEquals(0, x, 'check bbox x')
  27. test:assertEquals(-3, y, 'check bbox y')
  28. test:assertEquals(8, w, 'check bbox w')
  29. test:assertEquals(14, h, 'check bbox h')
  30. test:assertEquals(8, dw, 'check dim width')
  31. test:assertEquals(8, dh, 'check dim height')
  32. test:assertEquals(0, bw, 'check bearing w')
  33. test:assertEquals(11, bh, 'check bearing h')
  34. end
  35. -- Rasterizer (love.font.newRasterizer)
  36. love.test.font.Rasterizer = function(test)
  37. -- create obj
  38. local rasterizer = love.font.newRasterizer('resources/font.ttf')
  39. test:assertObject(rasterizer)
  40. -- check properties match
  41. test:assertEquals(9, rasterizer:getAdvance(), 'check advance')
  42. test:assertEquals(9, rasterizer:getAscent(), 'check ascent')
  43. test:assertEquals(-3, rasterizer:getDescent(), 'check descent')
  44. test:assertEquals(77, rasterizer:getGlyphCount(), 'check glyph count')
  45. test:assertObject(rasterizer:getGlyphData('L'))
  46. test:assertEquals(12, rasterizer:getHeight(), 'check height')
  47. test:assertEquals(15, rasterizer:getLineHeight(), 'check line height')
  48. test:assertEquals(true, rasterizer:hasGlyphs('L', 'O', 'V', 'E'), 'check LOVE')
  49. end
  50. --------------------------------------------------------------------------------
  51. --------------------------------------------------------------------------------
  52. ------------------------------------METHODS-------------------------------------
  53. --------------------------------------------------------------------------------
  54. --------------------------------------------------------------------------------
  55. -- love.font.newBMFontRasterizer
  56. love.test.font.newBMFontRasterizer = function(test)
  57. local rasterizer = love.font.newBMFontRasterizer('resources/love.png');
  58. test:assertObject(rasterizer)
  59. end
  60. -- love.font.newGlyphData
  61. -- @NOTE this is just basic nil checking, objs have their own test method
  62. love.test.font.newGlyphData = function(test)
  63. local img = love.image.newImageData('resources/love.png')
  64. local rasterizer = love.font.newImageRasterizer(img, 'ABC', 0, 1);
  65. local glyphdata = love.font.newGlyphData(rasterizer, 65)
  66. test:assertObject(glyphdata)
  67. end
  68. -- love.font.newImageRasterizer
  69. -- @NOTE this is just basic nil checking, objs have their own test method
  70. love.test.font.newImageRasterizer = function(test)
  71. local img = love.image.newImageData('resources/love.png')
  72. local rasterizer = love.font.newImageRasterizer(img, 'ABC', 0, 1);
  73. test:assertObject(rasterizer)
  74. end
  75. -- love.font.newRasterizer
  76. -- @NOTE this is just basic nil checking, objs have their own test method
  77. love.test.font.newRasterizer = function(test)
  78. test:assertObject(love.font.newRasterizer('resources/font.ttf'))
  79. end
  80. -- love.font.newTrueTypeRasterizer
  81. -- @NOTE this is just basic nil checking, objs have their own test method
  82. love.test.font.newTrueTypeRasterizer = function(test)
  83. test:assertObject(love.font.newTrueTypeRasterizer(12, "normal", 1))
  84. test:assertObject(love.font.newTrueTypeRasterizer('resources/font.ttf', 8, "normal", 1))
  85. end