File: rbpdf_font_file_test.rb

package info (click to toggle)
ruby-rbpdf 1.19.0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 16,252 kB
  • ctags: 704
  • sloc: ruby: 135,876; makefile: 10
file content (116 lines) | stat: -rw-r--r-- 7,522 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
require 'test_helper'

class RbpdfFontFileTest < Test::Unit::TestCase
  test "Font path test" do
    font_path = RBPDFFontDescriptor.getfontpath
    assert_include Dir.entries(font_path), 'courier.rb'
  end

  test "Core Font File test" do
    fontlist = ['helvetica', 'helveticab', 'helveticai', 'helveticabi',
                'courier', 'courierb', 'courieri', 'courierbi',
                'times', 'timesb', 'timesi', 'timesbi',
                'zapfdingbats', 'symbol']
    fontlist.each {|fontname|
      fontfile = File.join RBPDFFontDescriptor.getfontpath, fontname + '.rb'
      require(fontfile) if File.exists?(fontfile)
      font_desc = RBPDFFontDescriptor.font(fontname)

      assert_equal fontname + 'core', fontname + font_desc[:type].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:dw].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cw].to_s
      assert_equal 256, font_desc[:cw].length
    }
  end

  test "cidfont0 Font File test" do
    fontlist = ['cid0cs', 'cid0ct', 'cid0jp', 'cid0kr',
                'hysmyeongjostdmedium', 'kozgopromedium', 'kozminproregular', 'msungstdlight',
                'stsongstdlight']

    font_path = RBPDFFontDescriptor.getfontpath
    fontlist.each {|fontname|
      fontfile = File.join font_path, fontname + '.rb'
      require(fontfile)
      font_desc = RBPDFFontDescriptor.font(fontname)

      assert_equal fontname + 'cidfont0', fontname + font_desc[:type].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:name].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:displayname].to_s unless fontname =~ /cid0(cs|ct|jp|kr)/
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Ascent'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Descent'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['CapHeight'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Flags'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['FontBBox'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['ItalicAngle'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['StemV'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['MissingWidth'].to_s if fontname =~ /cid0(cs|ct|jp|kr)/
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['XHeight'].to_s if fontname =~ /kozgopromedium|kozminproregular/

      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['Registry'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['Ordering'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['Supplement'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['uni2cid'].to_s if fontname =~ /cid0(cs|ct|jp|kr)/
      assert_not_equal '[' + fontname + ']:0', '[' + fontname + ']:' + font_desc[:cidinfo]['uni2cid'].length.to_s if fontname =~ /cid0(cs|ct|jp|kr)/

      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:up].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:ut].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:dw].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cw].to_s
      assert_not_equal 0, font_desc[:cw].length
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:enc].to_s
      if font_desc[:diff].nil? and fontname =~ /cid0(cs|ct|jp|kr)/
        assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:diff].to_s # font_desc[:diff] => nil
      end
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:originalsize].to_s if fontname =~ /cid0(cs|ct|jp|kr)/
    }
  end

  test "TrueTypeUnicode Font File test" do
    fontlist = ['freesans', 'freesansb', 'freesansi', 'freesansbi',
                'freemono', 'freemonob', 'freemonoi', 'freemonobi',
                'freeserif', 'freeserifb', 'freeserifi', 'freeserifbi',
                'dejavusans', 'dejavusansb', 'dejavusansi', 'dejavusansbi',
                'dejavusanscondensed', 'dejavusanscondensedb', 'dejavusanscondensedi', 'dejavusanscondensedbi',
                'dejavusansmono', 'dejavusansmonob', 'dejavusansmonoi', 'dejavusansmonobi',
                'dejavuserif', 'dejavuserifb', 'dejavuserifi', 'dejavuserifbi',
                'dejavusansextralight' ]

    font_path = RBPDFFontDescriptor.getfontpath
    fontlist.each {|fontname|
      fontfile = File.join font_path, fontname + '.rb'
      require(fontfile)
      font_desc = RBPDFFontDescriptor.font(fontname)

      assert_equal fontname + 'TrueTypeUnicode', fontname + font_desc[:type].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:name].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Ascent'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Descent'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['CapHeight'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Flags'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['FontBBox'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['ItalicAngle'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['StemV'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['MissingWidth'].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:up].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:ut].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:dw].to_s
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cw].to_s
      assert_not_equal '[' + fontname + ']:0', '[' + fontname + ']:' + font_desc[:cw].length.to_s
      if font_desc[:enc].nil?
        assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:enc].to_s
      end
      if font_desc[:diff].nil?
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:diff].to_s
      end
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:file].to_s
      assert_true File.exists?( File.join font_path, font_desc[:file])
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:ctg].to_s
      assert_true File.exists?( File.join font_path, font_desc[:ctg])
      assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:originalsize].to_s
    }
  end
end