1*e1fe3e4aSElliott Hughesimport glob 2*e1fe3e4aSElliott Hughesimport os 3*e1fe3e4aSElliott Hughes 4*e1fe3e4aSElliott Hughesimport pytest 5*e1fe3e4aSElliott Hughes 6*e1fe3e4aSElliott Hughesfrom fontTools import tfmLib 7*e1fe3e4aSElliott Hughes 8*e1fe3e4aSElliott HughesDATA_DIR = os.path.join(os.path.dirname(__file__), "data") 9*e1fe3e4aSElliott Hughes 10*e1fe3e4aSElliott Hughes 11*e1fe3e4aSElliott Hughes@pytest.mark.parametrize("path", glob.glob(f"{DATA_DIR}/cm*.tfm")) 12*e1fe3e4aSElliott Hughesdef test_read(path): 13*e1fe3e4aSElliott Hughes tfm = tfmLib.TFM(path) 14*e1fe3e4aSElliott Hughes assert tfm.designsize == 10.0 15*e1fe3e4aSElliott Hughes assert tfm.fontdimens 16*e1fe3e4aSElliott Hughes assert len(tfm.fontdimens) >= 7 17*e1fe3e4aSElliott Hughes assert tfm.extraheader == {} 18*e1fe3e4aSElliott Hughes assert tfm.right_boundary_char is None 19*e1fe3e4aSElliott Hughes assert tfm.left_boundary_char is None 20*e1fe3e4aSElliott Hughes assert len(tfm.chars) == 128 21*e1fe3e4aSElliott Hughes 22*e1fe3e4aSElliott Hughes 23*e1fe3e4aSElliott Hughesdef test_read_boundary_char(): 24*e1fe3e4aSElliott Hughes path = os.path.join(DATA_DIR, "dummy-space.tfm") 25*e1fe3e4aSElliott Hughes tfm = tfmLib.TFM(path) 26*e1fe3e4aSElliott Hughes assert tfm.right_boundary_char == 1 27*e1fe3e4aSElliott Hughes assert tfm.left_boundary_char == 256 28*e1fe3e4aSElliott Hughes 29*e1fe3e4aSElliott Hughes 30*e1fe3e4aSElliott Hughesdef test_read_fontdimens_vanilla(): 31*e1fe3e4aSElliott Hughes path = os.path.join(DATA_DIR, "cmr10.tfm") 32*e1fe3e4aSElliott Hughes tfm = tfmLib.TFM(path) 33*e1fe3e4aSElliott Hughes assert tfm.fontdimens == { 34*e1fe3e4aSElliott Hughes "SLANT": 0.0, 35*e1fe3e4aSElliott Hughes "SPACE": 0.33333396911621094, 36*e1fe3e4aSElliott Hughes "STRETCH": 0.16666698455810547, 37*e1fe3e4aSElliott Hughes "SHRINK": 0.11111164093017578, 38*e1fe3e4aSElliott Hughes "XHEIGHT": 0.4305553436279297, 39*e1fe3e4aSElliott Hughes "QUAD": 1.0000028610229492, 40*e1fe3e4aSElliott Hughes "EXTRASPACE": 0.11111164093017578, 41*e1fe3e4aSElliott Hughes } 42*e1fe3e4aSElliott Hughes 43*e1fe3e4aSElliott Hughes 44*e1fe3e4aSElliott Hughesdef test_read_fontdimens_mathex(): 45*e1fe3e4aSElliott Hughes path = os.path.join(DATA_DIR, "cmex10.tfm") 46*e1fe3e4aSElliott Hughes tfm = tfmLib.TFM(path) 47*e1fe3e4aSElliott Hughes assert tfm.fontdimens == { 48*e1fe3e4aSElliott Hughes "SLANT": 0.0, 49*e1fe3e4aSElliott Hughes "SPACE": 0.0, 50*e1fe3e4aSElliott Hughes "STRETCH": 0.0, 51*e1fe3e4aSElliott Hughes "SHRINK": 0.0, 52*e1fe3e4aSElliott Hughes "XHEIGHT": 0.4305553436279297, 53*e1fe3e4aSElliott Hughes "QUAD": 1.0000028610229492, 54*e1fe3e4aSElliott Hughes "EXTRASPACE": 0.0, 55*e1fe3e4aSElliott Hughes "DEFAULTRULETHICKNESS": 0.03999900817871094, 56*e1fe3e4aSElliott Hughes "BIGOPSPACING1": 0.11111164093017578, 57*e1fe3e4aSElliott Hughes "BIGOPSPACING2": 0.16666698455810547, 58*e1fe3e4aSElliott Hughes "BIGOPSPACING3": 0.19999980926513672, 59*e1fe3e4aSElliott Hughes "BIGOPSPACING4": 0.6000003814697266, 60*e1fe3e4aSElliott Hughes "BIGOPSPACING5": 0.10000038146972656, 61*e1fe3e4aSElliott Hughes } 62*e1fe3e4aSElliott Hughes 63*e1fe3e4aSElliott Hughes 64*e1fe3e4aSElliott Hughesdef test_read_fontdimens_mathsy(): 65*e1fe3e4aSElliott Hughes path = os.path.join(DATA_DIR, "cmsy10.tfm") 66*e1fe3e4aSElliott Hughes tfm = tfmLib.TFM(path) 67*e1fe3e4aSElliott Hughes assert tfm.fontdimens == { 68*e1fe3e4aSElliott Hughes "SLANT": 0.25, 69*e1fe3e4aSElliott Hughes "SPACE": 0.0, 70*e1fe3e4aSElliott Hughes "STRETCH": 0.0, 71*e1fe3e4aSElliott Hughes "SHRINK": 0.0, 72*e1fe3e4aSElliott Hughes "XHEIGHT": 0.4305553436279297, 73*e1fe3e4aSElliott Hughes "QUAD": 1.0000028610229492, 74*e1fe3e4aSElliott Hughes "EXTRASPACE": 0.0, 75*e1fe3e4aSElliott Hughes "NUM1": 0.6765079498291016, 76*e1fe3e4aSElliott Hughes "NUM2": 0.39373207092285156, 77*e1fe3e4aSElliott Hughes "NUM3": 0.44373130798339844, 78*e1fe3e4aSElliott Hughes "DENOM1": 0.6859512329101562, 79*e1fe3e4aSElliott Hughes "DENOM2": 0.34484100341796875, 80*e1fe3e4aSElliott Hughes "SUP1": 0.41289234161376953, 81*e1fe3e4aSElliott Hughes "SUP2": 0.36289215087890625, 82*e1fe3e4aSElliott Hughes "SUP3": 0.28888893127441406, 83*e1fe3e4aSElliott Hughes "SUB1": 0.14999961853027344, 84*e1fe3e4aSElliott Hughes "SUB2": 0.24721717834472656, 85*e1fe3e4aSElliott Hughes "SUBDROP": 0.05000019073486328, 86*e1fe3e4aSElliott Hughes "SUPDROP": 0.3861083984375, 87*e1fe3e4aSElliott Hughes "DELIM1": 2.3899993896484375, 88*e1fe3e4aSElliott Hughes "DELIM2": 1.010000228881836, 89*e1fe3e4aSElliott Hughes "AXISHEIGHT": 0.25, 90*e1fe3e4aSElliott Hughes } 91