aslakhellesoy-png 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,77 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+
4
+ require 'png/font'
5
+
6
+ class TestPngFont < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @font = PNG::Font.default
10
+ end
11
+
12
+ def test_height
13
+ assert_equal 6, @font.height
14
+ end
15
+
16
+ def test_width
17
+ assert_equal 6, @font.width
18
+ end
19
+
20
+ def test_coordinates
21
+ assert_equal [ 0, 0, 5, 5], @font.coordinates('(')
22
+ assert_equal [ 0, 6, 5, 11], @font.coordinates('0')
23
+ assert_equal [ 0, 12, 5, 17], @font.coordinates('a')
24
+ assert_equal [ 0, 18, 5, 23], @font.coordinates('A')
25
+
26
+ assert_equal [42, 12, 47, 17], @font.coordinates('h')
27
+ assert_equal [42, 18, 47, 23], @font.coordinates('H')
28
+ end
29
+
30
+ def test_index
31
+ expected = "
32
+ 0000....0000
33
+ 00..0000..00
34
+ 00..0000..00
35
+ 00........00
36
+ 00..0000..00
37
+ 000000000000
38
+ ".strip + "\n"
39
+
40
+ assert_equal expected, @font['A'].to_s
41
+
42
+ expected = "
43
+ 00000000..00
44
+ 00000000..00
45
+ 00000000..00
46
+ 00000000..00
47
+ 00000000..00
48
+ 000000000000
49
+ ".strip + "\n"
50
+
51
+ assert_equal expected, @font['l'].to_s
52
+ end
53
+
54
+ def test_index_identity
55
+ assert_same @font['A'], @font['A']
56
+ end
57
+
58
+ def test_annotate
59
+ canvas = PNG::Canvas.new 30, 6, PNG::Color::White
60
+ canvas.annotate "hello", 0, 0
61
+
62
+ expected = "
63
+ 00..0000000000000000000000000000..0000000000..00000000000000
64
+ 00......000000......000000000000..0000000000..000000....0000
65
+ 00..0000..00..0000....0000000000..0000000000..0000..0000..00
66
+ 00..0000..00..00..00000000000000..0000000000..0000..0000..00
67
+ 00..0000..0000......000000000000..0000000000..000000....0000
68
+ 000000000000000000000000000000000000000000000000000000000000
69
+ ".strip + "\n"
70
+
71
+ assert_equal expected, canvas.to_s
72
+ end
73
+
74
+ def test_identity
75
+ assert_same PNG::Font.default, PNG::Font.default
76
+ end
77
+ end
@@ -0,0 +1,87 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+
4
+ require 'png/reader'
5
+
6
+ class TestPngReader < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @canvas = PNG::Canvas.new 5, 10, PNG::Color::White
10
+ @png = PNG.new @canvas
11
+
12
+ @IHDR_length = "\000\000\000\r"
13
+ @IHDR_crc = "\2152\317\275"
14
+ @IHDR_crc_value = @IHDR_crc.unpack('N').first
15
+ @IHDR_data = "\000\000\000\n\000\000\000\n\b\006\000\000\000"
16
+ @IHDR_chunk = "#{@IHDR_length}IHDR#{@IHDR_data}#{@IHDR_crc}"
17
+
18
+ @blob = <<-EOF.unpack('m*').first
19
+ iVBORw0KGgoAAAANSUhEUgAAAAUAAAAKCAYAAAB8OZQwAAAAD0lEQVR4nGP4
20
+ jwUwDGVBALuJxzlQugpEAAAAAElFTkSuQmCC
21
+ EOF
22
+ end
23
+
24
+ def test_class_check_crc
25
+ assert PNG.check_crc('IHDR', @IHDR_data, @IHDR_crc_value)
26
+ end
27
+
28
+ def test_class_check_crc_exception
29
+ begin
30
+ PNG.check_crc('IHDR', @IHDR_data, @IHDR_crc_value + 1)
31
+ rescue ArgumentError => e
32
+ assert_equal "Invalid CRC encountered in IHDR chunk", e.message
33
+ else
34
+ flunk "exception wasn't raised"
35
+ end
36
+ end
37
+
38
+ def test_class_read_chunk
39
+ data = PNG.read_chunk 'IHDR', @IHDR_chunk
40
+
41
+ assert_equal @IHDR_data, data
42
+ end
43
+
44
+ def test_class_read_IDAT
45
+ canvas = PNG::Canvas.new 5, 10, PNG::Color::White
46
+
47
+ data = ([ 0, [255] * (4*5) ] * 10)
48
+ data = data.flatten.map { |n| n.chr }.join
49
+ data = Zlib::Deflate.deflate(data)
50
+
51
+ PNG.read_IDAT data, 8, PNG::RGBA, canvas
52
+
53
+ assert_equal @blob, PNG.new(canvas).to_blob
54
+ end
55
+
56
+ def test_class_read_IHDR
57
+ bit_depth, color_type, width, height = PNG.read_IHDR @IHDR_data
58
+ assert_equal 10, width
59
+ assert_equal 10, height
60
+ end
61
+
62
+ def test_class_load_metadata
63
+ png, canvas = util_png
64
+
65
+ width, height, bit_depth = PNG.load(png.to_blob, :metadata)
66
+
67
+ assert_equal 2, width
68
+ assert_equal 2, height
69
+ assert_equal 8, bit_depth
70
+ end
71
+
72
+ def test_class_load
73
+ png, canvas = util_png
74
+
75
+ new_png = PNG.load(png.to_blob)
76
+
77
+ assert_equal canvas.data, new_png.data
78
+ end
79
+
80
+ def util_png
81
+ canvas = PNG::Canvas.new 2, 2
82
+ canvas[0, 0] = PNG::Color::Black
83
+ canvas[1, 1] = PNG::Color::Black
84
+ png = PNG.new canvas
85
+ return png, canvas
86
+ end
87
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: aslakhellesoy-png
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Davis
8
+ - Eric Hodel
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-06-22 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: RubyInline
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 3.5.0
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: hoe
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.12.2
35
+ version:
36
+ description: PNG is an almost-pure-ruby PNG library. It lets you write a PNG without any C libraries.
37
+ email:
38
+ - ryand-ruby@zenspider.com
39
+ - drbrain@segment7.net
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files:
45
+ - History.txt
46
+ - Manifest.txt
47
+ - README.txt
48
+ files:
49
+ - History.txt
50
+ - Manifest.txt
51
+ - README.txt
52
+ - Rakefile
53
+ - example/lines.rb
54
+ - example/profile.rb
55
+ - example/profile_lines.rb
56
+ - lib/png.rb
57
+ - lib/png/default_font.png
58
+ - lib/png/font.rb
59
+ - lib/png/pie.rb
60
+ - lib/png/reader.rb
61
+ - test/test_png.rb
62
+ - test/test_png_font.rb
63
+ - test/test_png_reader.rb
64
+ has_rdoc: false
65
+ homepage: http://seattlerb.rubyforge.org/
66
+ post_install_message:
67
+ rdoc_options:
68
+ - --main
69
+ - README.txt
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
84
+ requirements: []
85
+
86
+ rubyforge_project: seattlerb
87
+ rubygems_version: 1.2.0
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: PNG is an almost-pure-ruby PNG library
91
+ test_files:
92
+ - test/test_png.rb
93
+ - test/test_png_font.rb
94
+ - test/test_png_reader.rb