Skip to content

Commit

Permalink
New test suite.
Browse files Browse the repository at this point in the history
  • Loading branch information
dark-panda committed Feb 5, 2010
1 parent 31ba855 commit 84d9c60
Show file tree
Hide file tree
Showing 29 changed files with 1,178 additions and 0 deletions.
78 changes: 78 additions & 0 deletions test/canvas_test.rb
@@ -0,0 +1,78 @@
require 'test/unit'
require 'tmpdir'

require 'rubygems'
require 'gd2-jay'

require 'test/test_helper'

class CanvasTest < Test::Unit::TestCase
include TestHelper

def new_image
GD2::Image.new(256, 256)
end

def test_line
image = new_image
image.draw do |pen|
pen.color = image.palette.resolve(GD2::Color[255, 255, 255])
pen.line(64, 64, 192, 192)
end
assert(image == GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test_canvas_line.gd2'))))
end

def test_rectangle
image = new_image
image.draw do |pen|
pen.color = image.palette.resolve(GD2::Color[255, 255, 255])
pen.rectangle(64, 64, 192, 192)
end
assert(image == GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test_canvas_rectangle.gd2'))))
end

def test_filled_rectangle
image = new_image
image.draw do |pen|
pen.color = image.palette.resolve(GD2::Color[255, 255, 255])
pen.rectangle(64, 64, 192, 192, true)
end
assert(image == GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test_canvas_filled_rectangle.gd2'))))
end

def test_polygon
image = new_image
image.draw do |pen|
pen.color = image.palette.resolve(GD2::Color[255, 255, 255])
pen.polygon([
[ 64, 64 ],
[ 192, 192 ],
[ 64, 128 ]
])
end
assert(image == GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test_canvas_polygon.gd2'))))
end

def test_filled_polygon
image = new_image
image.draw do |pen|
pen.color = image.palette.resolve(GD2::Color[255, 255, 255])
pen.polygon([
[ 64, 64 ],
[ 192, 192 ],
[ 64, 128 ]
], true)
end
assert(image == GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test_canvas_filled_polygon.gd2'))))
end

def test_move_to_and_line_to
image = new_image
image.draw do |pen|
pen.color = image.palette.resolve(GD2::Color[255, 255, 255])
pen.move_to(64, 64)
pen.line_to(128, 128)
end
assert(image == GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test_canvas_move_to_and_line_to.gd2'))))
end
end
149 changes: 149 additions & 0 deletions test/image_test.rb
@@ -0,0 +1,149 @@
require 'test/unit'
require 'tmpdir'

require 'rubygems'
require 'gd2-jay'

require 'test/test_helper'

class ImageTest < Test::Unit::TestCase
include TestHelper

def test_image_new_and_release
img = GD2::Image.new(50, 50)
end

def test_image_true_color_new_and_release
img = GD2::Image::TrueColor.new(50, 50)
end

def test_image_indexed_color_new_and_release
img = GD2::Image::IndexedColor.new(50, 50)
end

[ :png, :gif, :jpg, :wbmp, :gd2 ].each do |ext|
self.class_eval(<<-EOF)
def test_load_#{ext}_from_file
img = GD2::Image.load(File.open(File.join(PATH_TO_IMAGES, 'test.#{ext}')))
end
def test_load_#{ext}_from_string
img = GD2::Image.load(File.read(File.join(PATH_TO_IMAGES, 'test.#{ext}')))
end
EOF
end

# TODO: add xbm, xpm and wbmp tests
[ :png, :gif, :jpg, :gd, :gd2 ].each do |ext|
self.class_eval(<<-EOF)
def test_import_#{ext}_from_file
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
end
def test_export_#{ext}
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2'))
out = File.join(Dir.tmpdir, 'test.#{ext}')
img.export(out)
assert(File.exists?(out))
imgA = GD2::Image.import(out)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert(imgA == imgB)
File.unlink(out)
end
def test_compare_#{ext}
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert_equal(imgA.compare(imgB), 0)
assert_equal(imgA.compare(imgA.dup), 0)
end
def test_eqeq_#{ext}
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert(imgA == imgB)
assert(imgA == imgA.dup)
end
def test_height_#{ext}
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert_equal(img.height, 256)
end
def test_width_#{ext}
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert_equal(img.width, 256)
end
def test_size_#{ext}
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert_equal(img.size, [ 256, 256 ])
end
def test_aspect_#{ext}
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.#{ext}'))
assert_in_delta(img.aspect, 1.0, 0.00000001)
end
EOF
end

def test_rotate
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2')).rotate!(Math::PI)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_rotated_180.gd2'))

assert(imgA == imgB)
end

def test_crop
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2')).crop!(64, 64, 128, 128)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_cropped.gd2'))

assert(imgA == imgB)
end

def test_uncrop
img = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2')).crop!(64, 64, 128, 128)
img.uncrop!(64)

assert_equal(img.size, [ 256, 256 ])
end

def test_resize
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2')).resize!(512, 512)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_resized.gd2'))

assert(imgA == imgB)
end

def test_resampled
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2')).resize!(512, 512, true)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_resampled.gd2'))

assert(imgA == imgB)
end

def test_resampled
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test.gd2')).polar_transform!(100)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_polar_transform.gd2'))

assert(imgA == imgB)
end

def test_resampled
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_color.gd2')).sharpen(100)
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_color_sharpened.gd2'))

assert(imgA == imgB)
end

def test_resampled
imgA = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_color.gd2')).to_indexed_color
imgB = GD2::Image.import(File.join(PATH_TO_IMAGES, 'test_color_indexed.gd2'))

assert(imgA == imgB)
end
end
Binary file added test/images/test.bmp
Binary file not shown.
Binary file added test/images/test.gd
Binary file not shown.
Binary file added test/images/test.gd2
Binary file not shown.
Binary file added test/images/test.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added test/images/test.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added test/images/test.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added test/images/test.wbmp
Binary file not shown.

0 comments on commit 84d9c60

Please sign in to comment.