Merge pull request #1429 from rsms/misc-encodeFloat-test
Adds test for misc.psCharStrings.encodeFloat that exposes a bug
This commit is contained in:
commit
3f1956949a
@ -1,7 +1,7 @@
|
|||||||
from __future__ import print_function, division, absolute_import
|
from __future__ import print_function, division, absolute_import
|
||||||
from fontTools.cffLib import PrivateDict
|
from fontTools.cffLib import PrivateDict
|
||||||
from fontTools.cffLib.specializer import stringToProgram
|
from fontTools.cffLib.specializer import stringToProgram
|
||||||
from fontTools.misc.psCharStrings import T2CharString
|
from fontTools.misc.psCharStrings import T2CharString, encodeFloat
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|
||||||
@ -47,6 +47,27 @@ class T2CharStringTest(unittest.TestCase):
|
|||||||
cs2.program, [100, 'rmoveto', -50, -150, 200.5, 0, -50, 150,
|
cs2.program, [100, 'rmoveto', -50, -150, 200.5, 0, -50, 150,
|
||||||
'rrcurveto'])
|
'rrcurveto'])
|
||||||
|
|
||||||
|
def test_encodeFloat(self):
|
||||||
|
def hexenc(s):
|
||||||
|
return ' '.join('%02x' % x for x in s)
|
||||||
|
testNums = [
|
||||||
|
# value expected hex encoded result
|
||||||
|
(-9.399999999999999, '1e e9 a3 99 99 99 99 99 99 99 ff'),
|
||||||
|
(9.399999999999999999, '1e 9a 4f'), # 9.4
|
||||||
|
(456.8, '1e 45 6a 8f'), # 456.8
|
||||||
|
(0, '1e 0f'), # 0
|
||||||
|
(-0.0, '1e ea 0f'), # 0
|
||||||
|
(1, '1e 1f'), # 1
|
||||||
|
(-1, '1e e1 ff'), # -1
|
||||||
|
(98765.37e2, '1e 98 76 53 7a 0f'), # 9876537
|
||||||
|
(1234567890, '1e 12 34 56 78 90 ff'), # 1234567890
|
||||||
|
(9.876537e-24, '1e 9a 87 65 37 c2 4f'), # 9.876537e-24
|
||||||
|
(9.876537e+24, '1e 9a 87 65 37 b2 4f'), # 9.876537e+24
|
||||||
|
]
|
||||||
|
for n in testNums:
|
||||||
|
r = encodeFloat(n[0])
|
||||||
|
self.assertEqual(hexenc(r), n[1])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
|
Loading…
x
Reference in New Issue
Block a user