forked from dark-panda/gd2-ffij
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
31ba855
commit 84d9c60
Showing
29 changed files
with
1,178 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 not shown.
Binary file not shown.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Oops, something went wrong.