Sha256: acd3e29016d194fb111c781da5c43bbb4d43efede920e289ccf119531214b1b2

Contents?: true

Size: 1.51 KB

Versions: 59

Compression:

Stored size: 1.51 KB

Contents

# -*- encoding: utf-8 -*-

require 'test_helper'
require 'stringio'
require 'hexapdf/font/true_type/table'
require_relative 'common'

describe HexaPDF::Font::TrueType::Table do
  before do
    io = StringIO.new('some string')
    @file = Object.new
    @file.define_singleton_method(:io) { io }
    @entry = HexaPDF::Font::TrueType::Table::Directory::Entry.new('tagg', 0, 0, @file.io.string.length)
  end

  describe "initialize" do
    it "reads the data from the associated file" do
      table = TestHelper::TrueTypeTestTable.new(@file, @entry)
      assert_equal(@file.io.string, table.data)
    end
  end

  describe "checksum_valid?" do
    it "checks whether an entry's checksum is valid" do
      @file.io.string = 254.chr * 17 + 0.chr * 3
      @entry.checksum = (0xfefefefe * 4 + 0xfe000000) % 2**32
      @entry.length = @file.io.string.length
      table = TestHelper::TrueTypeTestTable.new(@file, @entry)
      assert(table.checksum_valid?)
    end
  end

  describe "read_fixed" do
    it "works for unsigned values" do
      @file.io.string = [1, 20480].pack('nn')
      @entry.length = @file.io.string.length
      table = TestHelper::TrueTypeTestTable.new(@file, @entry)
      assert_equal(1 + Rational(20480, 65536), table.send(:read_fixed))
    end

    it "works for signed values" do
      @file.io.string = [-1, 20480].pack('nn')
      @entry.length = @file.io.string.length
      table = TestHelper::TrueTypeTestTable.new(@file, @entry)
      assert_equal(-1 + Rational(20480, 65536), table.send(:read_fixed))
    end
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
hexapdf-0.24.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.23.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.22.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.21.1 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.21.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.20.4 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.20.3 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.20.2 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.20.1 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.20.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.19.3 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.19.2 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.19.1 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.19.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.18.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.17.3 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.17.2 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.16.0 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.15.9 test/hexapdf/font/true_type/test_table.rb
hexapdf-0.15.8 test/hexapdf/font/true_type/test_table.rb