skeptick 0.1.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.
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +584 -0
- data/Rakefile +10 -0
- data/foo.rb +1 -0
- data/lib/skeptick.rb +2 -0
- data/lib/skeptick/chain.rb +55 -0
- data/lib/skeptick/chain/dsl_context.rb +21 -0
- data/lib/skeptick/command.rb +46 -0
- data/lib/skeptick/convert.rb +109 -0
- data/lib/skeptick/convert/dsl_context.rb +27 -0
- data/lib/skeptick/core.rb +46 -0
- data/lib/skeptick/error.rb +4 -0
- data/lib/skeptick/helper.rb +26 -0
- data/lib/skeptick/image.rb +69 -0
- data/lib/skeptick/image/dsl_context.rb +29 -0
- data/lib/skeptick/railtie.rb +8 -0
- data/lib/skeptick/sugar.rb +8 -0
- data/lib/skeptick/sugar/composition.rb +55 -0
- data/lib/skeptick/sugar/debugging.rb +12 -0
- data/lib/skeptick/sugar/drawing.rb +32 -0
- data/lib/skeptick/sugar/edges.rb +70 -0
- data/lib/skeptick/sugar/formatting.rb +12 -0
- data/lib/skeptick/sugar/geometry.rb +38 -0
- data/lib/skeptick/sugar/resizing.rb +16 -0
- data/lib/skeptick/sugar/sequence_manipulation.rb +43 -0
- data/lib/skeptick/version.rb +3 -0
- data/logo.png +0 -0
- data/logo.rb +45 -0
- data/refresh_preview.scpt +2 -0
- data/skeptick.gemspec +21 -0
- data/test/chain_test.rb +94 -0
- data/test/convert_test.rb +177 -0
- data/test/image_test.rb +145 -0
- data/test/sugar/composition_test.rb +273 -0
- data/test/sugar/debugging_test.rb +24 -0
- data/test/sugar/drawing_test.rb +86 -0
- data/test/sugar/edges_test.rb +99 -0
- data/test/sugar/formatting_test.rb +19 -0
- data/test/sugar/geometry_test.rb +92 -0
- data/test/sugar/resizing_test.rb +25 -0
- data/test/sugar/sequence_manipulation_test.rb +98 -0
- data/test/test_helper.rb +11 -0
- metadata +117 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/debugging'
|
3
|
+
|
4
|
+
class DebuggingTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_save_in_image
|
8
|
+
img = image do
|
9
|
+
image 'foo'
|
10
|
+
save 'path'
|
11
|
+
end
|
12
|
+
|
13
|
+
cmd = convert(img)
|
14
|
+
assert_equal 'convert foo -write path miff:-', cmd.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_save_in_convert
|
18
|
+
cmd = convert('foo') do
|
19
|
+
save 'path'
|
20
|
+
end
|
21
|
+
|
22
|
+
assert_equal 'convert foo -write path miff:-', cmd.to_s
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/drawing'
|
3
|
+
|
4
|
+
class DrawingTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_canvas_in_image_with_size
|
8
|
+
img = image { canvas :none, size: '100x200' }
|
9
|
+
cmd = convert(img)
|
10
|
+
|
11
|
+
assert_equal 'convert -size 100x200 canvas:none miff:-', cmd.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_canvas_in_image_without_size
|
15
|
+
img = image { canvas :none }
|
16
|
+
cmd = convert(img)
|
17
|
+
assert_equal 'convert canvas:none miff:-', cmd.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_canvas_in_convert_with_size
|
21
|
+
cmd = convert { canvas :none, size: '100x200' }
|
22
|
+
assert_equal 'convert -size 100x200 canvas:none miff:-', cmd.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_canvas_in_convert_without_size
|
26
|
+
cmd = convert { canvas :none }
|
27
|
+
assert_equal 'convert canvas:none miff:-', cmd.to_s
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_draw_in_image
|
31
|
+
img = image { draw 'fill none bezier 1,2 3,4' }
|
32
|
+
cmd = convert(img)
|
33
|
+
assert_equal 'convert -draw fill\ none\ bezier\ 1,2\ 3,4 miff:-', cmd.to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_draw_in_convert
|
37
|
+
cmd = convert { draw 'fill none bezier 1,2 3,4' }
|
38
|
+
assert_equal 'convert -draw fill\ none\ bezier\ 1,2\ 3,4 miff:-', cmd.to_s
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_write_in_image_without_left_top
|
42
|
+
img = image { write 'Foo bar baz.' }
|
43
|
+
cmd = convert(img)
|
44
|
+
assert_equal 'convert -draw text\ \\\'Foo\ bar\ baz.\\\' miff:-', cmd.to_s
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_write_in_image_with_left_top
|
48
|
+
img = image { write 'Foo bar baz.', left: 7, top: 9 }
|
49
|
+
cmd = convert(img)
|
50
|
+
assert_equal 'convert -draw text\ 7,9\ \\\'Foo\ bar\ baz.\\\' miff:-',
|
51
|
+
cmd.to_s
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_write_in_image_with_left_only
|
55
|
+
img = image { write 'Foo bar baz.', left: 7 }
|
56
|
+
cmd = convert(img)
|
57
|
+
assert_equal 'convert -draw text\ \\\'Foo\ bar\ baz.\\\' miff:-', cmd.to_s
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_write_in_convert_without_left_top
|
61
|
+
cmd = convert { write 'Foo bar baz.' }
|
62
|
+
assert_equal 'convert -draw text\ \\\'Foo\ bar\ baz.\\\' miff:-', cmd.to_s
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_write_in_convert_with_left_top
|
66
|
+
cmd = convert { write 'Foo bar baz.', left: 7, top: 9 }
|
67
|
+
assert_equal 'convert -draw text\ 7,9\ \\\'Foo\ bar\ baz.\\\' miff:-',
|
68
|
+
cmd.to_s
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_write_in_convert_with_top_only
|
72
|
+
cmd = convert { write 'Foo bar baz.', top: 9 }
|
73
|
+
assert_equal 'convert -draw text\ \\\'Foo\ bar\ baz.\\\' miff:-', cmd.to_s
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_font_in_image
|
77
|
+
img = image { font 'handwriting - dakota Regular' }
|
78
|
+
cmd = convert(img)
|
79
|
+
assert_equal 'convert -font Handwriting---Dakota-Regular miff:-', cmd.to_s
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_font_in_convert
|
83
|
+
cmd = convert { font 'handwriting - dakota Regular' }
|
84
|
+
assert_equal 'convert -font Handwriting---Dakota-Regular miff:-', cmd.to_s
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/edges'
|
3
|
+
|
4
|
+
class EdgesTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_rounded_corners_image_without_block_and_radius
|
8
|
+
img = rounded_corners_image('foo', size: '200x300')
|
9
|
+
|
10
|
+
assert_equal 'convert foo ( +clone -alpha transparent -background none ' +
|
11
|
+
'-draw roundrectangle\ 1,1\ 200,300\ 15,15 ) -alpha set -compose dstin ' +
|
12
|
+
'-composite miff:-', img.to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_rounded_corners_image_with_block_and_radius
|
16
|
+
img = rounded_corners_image(size: '200x300', radius: 20) do
|
17
|
+
image 'tile:granite:'
|
18
|
+
apply '-brightness-contrast', '38x-33'
|
19
|
+
end
|
20
|
+
|
21
|
+
assert_equal 'convert tile:granite: -brightness-contrast 38x-33 ( +clone ' +
|
22
|
+
'-alpha transparent -background none -draw roundrectangle\ 1,1\ ' +
|
23
|
+
'200,300\ 20,20 ) -alpha set -compose dstin -composite miff:-', img.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_nested_rounded_corners_image
|
27
|
+
cmd = convert(to: 'bar') do
|
28
|
+
rounded_corners_image('foo', size: '200x300', radius: 5)
|
29
|
+
end
|
30
|
+
|
31
|
+
assert_equal 'convert ( foo ( +clone -alpha transparent -background none ' +
|
32
|
+
'-draw roundrectangle\\ 1,1\\ 200,300\\ 5,5 ) -alpha set -compose ' +
|
33
|
+
'dstin -composite ) bar', cmd.to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_nested_rounded_corners_image_via_lvar_arg
|
37
|
+
img = rounded_corners_image('foo', size: '200x300', radius: 5)
|
38
|
+
cmd = convert(img, to: 'bar')
|
39
|
+
|
40
|
+
assert_equal 'convert ( foo ( +clone -alpha transparent -background none ' +
|
41
|
+
'-draw roundrectangle\\ 1,1\\ 200,300\\ 5,5 ) -alpha set -compose ' +
|
42
|
+
'dstin -composite ) bar', cmd.to_s
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_nested_rounded_corners_image_via_lvar_in_block
|
46
|
+
img = rounded_corners_image('foo', size: '200x300', radius: 5)
|
47
|
+
cmd = convert(to: 'bar') { image(img) }
|
48
|
+
|
49
|
+
assert_equal 'convert ( foo ( +clone -alpha transparent -background none ' +
|
50
|
+
'-draw roundrectangle\\ 1,1\\ 200,300\\ 5,5 ) -alpha set -compose ' +
|
51
|
+
'dstin -composite ) bar', cmd.to_s
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_torn_paper_image_without_block_spread_blur_threshold
|
55
|
+
img = torn_paper_image('foo')
|
56
|
+
assert_equal 'convert foo ( +clone -alpha extract -virtual-pixel black ' +
|
57
|
+
'-spread 1 -blur 0x.7 -threshold 50% ) -alpha off ' +
|
58
|
+
'-compose copy_opacity -composite miff:-', img.to_s
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_torn_paper_image_with_block_spread_blur_threshold
|
62
|
+
img = torn_paper_image('foo', spread: 17, blur: '1x4', threshold: 70) do
|
63
|
+
image 'tile:granite:'
|
64
|
+
apply '-brightness-contrast', '38x-33'
|
65
|
+
end
|
66
|
+
|
67
|
+
assert_equal 'convert tile:granite: -brightness-contrast 38x-33 ( +clone ' +
|
68
|
+
'-alpha extract -virtual-pixel black -spread 17 -blur 1x4 -threshold ' +
|
69
|
+
'70% ) -alpha off -compose copy_opacity -composite miff:-', img.to_s
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_nested_torn_paper_image
|
73
|
+
cmd = convert(to: 'bar') do
|
74
|
+
torn_paper_image('foo')
|
75
|
+
end
|
76
|
+
|
77
|
+
assert_equal 'convert ( foo ( +clone -alpha extract -virtual-pixel black ' +
|
78
|
+
'-spread 1 -blur 0x.7 -threshold 50% ) -alpha off -compose ' +
|
79
|
+
'copy_opacity -composite ) bar', cmd.to_s
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_nested_torn_paper_image_via_lvar_arg
|
83
|
+
img = torn_paper_image('foo')
|
84
|
+
cmd = convert(img, to: 'bar')
|
85
|
+
|
86
|
+
assert_equal 'convert ( foo ( +clone -alpha extract -virtual-pixel black ' +
|
87
|
+
'-spread 1 -blur 0x.7 -threshold 50% ) -alpha off -compose ' +
|
88
|
+
'copy_opacity -composite ) bar', cmd.to_s
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_nested_torn_paper_image_via_lvar_in_block
|
92
|
+
img = torn_paper_image('foo')
|
93
|
+
cmd = convert(to: 'bar') { image(img) }
|
94
|
+
|
95
|
+
assert_equal 'convert ( foo ( +clone -alpha extract -virtual-pixel black ' +
|
96
|
+
'-spread 1 -blur 0x.7 -threshold 50% ) -alpha off -compose ' +
|
97
|
+
'copy_opacity -composite ) bar', cmd.to_s
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/formatting'
|
3
|
+
|
4
|
+
class FormattingTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_format_in_image
|
8
|
+
img = image { format "roundrectangle 1,1 %[fx:w], %[fx:h] 5,5" }
|
9
|
+
cmd = convert(img)
|
10
|
+
assert_equal 'convert -format roundrectangle\ 1,1\ \%\[fx:w\],\ ' +
|
11
|
+
'\%\[fx:h\]\ 5,5 miff:-', cmd.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_format_in_convert
|
15
|
+
cmd = convert { format "roundrectangle 1,1 %[fx:w], %[fx:h] 5,5" }
|
16
|
+
assert_equal 'convert -format roundrectangle\ 1,1\ \%\[fx:w\],\ ' +
|
17
|
+
'\%\[fx:h\]\ 5,5 miff:-', cmd.to_s
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/geometry'
|
3
|
+
|
4
|
+
class GeometryTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_blank_geometry
|
8
|
+
assert_equal '', geometry
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_geometry_with_size
|
12
|
+
assert_equal '100x200', geometry(size: '100x200')
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_geometry_with_width
|
16
|
+
assert_equal '100x', geometry(width: 100)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_geometry_with_height
|
20
|
+
assert_equal 'x200', geometry(height: 200)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_geometry_with_width_and_height
|
24
|
+
assert_equal '100x200', geometry(width: 100, height: 200)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_geometry_with_left
|
28
|
+
assert_equal '+5+0', geometry(left: 5)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_geometry_with_top
|
32
|
+
assert_equal '+0+7', geometry(top: 7)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_geometry_with_left_top
|
36
|
+
assert_equal '+5+7', geometry(left: 5, top: 7)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_geometry_with_negative_left
|
40
|
+
assert_equal '-5+7', geometry(left: -5, top: 7)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_geometry_with_negative_left_top
|
44
|
+
assert_equal '-5-7', geometry(left: -5, top: -7)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_geometry_with_left_width_height
|
48
|
+
assert_equal '100x200+5+0', geometry(left: 5, width: 100, height: 200)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_geometry_with_top_width_height
|
52
|
+
assert_equal '100x200+0+7', geometry(top: 7, width: 100, height: 200)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_geometry_with_left_top_width_height
|
56
|
+
assert_equal '100x200+5-7',
|
57
|
+
geometry(left: 5, top: -7, width: 100, height: 200)
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_geometry_with_percentage
|
61
|
+
assert_equal '100x200%',
|
62
|
+
geometry(width: 100, height: 200, percentage: true)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_geometry_with_exact
|
66
|
+
assert_equal '100x200!', geometry(width: 100, height: 200, exact: true)
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_geometry_with_expand_only
|
70
|
+
assert_equal '100x200<',
|
71
|
+
geometry(width: 100, height: 200, expand_only: true)
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_geometry_with_expand_only
|
75
|
+
assert_equal '100x200>',
|
76
|
+
geometry(width: 100, height: 200, shrink_only: true)
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_everything_together
|
80
|
+
assert_equal '100x200-7+5%!<>',
|
81
|
+
geometry(
|
82
|
+
width: 100,
|
83
|
+
height: 200,
|
84
|
+
left: -7,
|
85
|
+
top: 5,
|
86
|
+
percentage: true,
|
87
|
+
exact: true,
|
88
|
+
expand_only: true,
|
89
|
+
shrink_only: true
|
90
|
+
)
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/resizing'
|
3
|
+
|
4
|
+
class ResizingTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_resize_image_with_geometry_options
|
8
|
+
img = resized_image('foo', width: 200, shrink_only: true)
|
9
|
+
cmd = convert(img)
|
10
|
+
assert_equal 'convert foo[200x>] miff:-', cmd.to_s
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_resize_image_nested_via_lvar
|
14
|
+
img = resized_image('foo', width: 200, shrink_only: true)
|
15
|
+
cmd = convert { image(img) }
|
16
|
+
assert_equal 'convert foo[200x>] miff:-', cmd.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_resize_image_nested_via_block
|
20
|
+
cmd = convert do
|
21
|
+
resized_image('foo', height: 100, shrink_only: true)
|
22
|
+
end
|
23
|
+
assert_equal 'convert foo[x100>] miff:-', cmd.to_s
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'skeptick/sugar/sequence_manipulation'
|
3
|
+
|
4
|
+
class SequenceManipulationTest < Skeptick::TestCase
|
5
|
+
include Skeptick
|
6
|
+
|
7
|
+
def test_clone_without_args
|
8
|
+
cmd = convert { clone }
|
9
|
+
assert_equal 'convert +clone miff:-', cmd.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_clone_with_one_arg
|
13
|
+
cmd = convert { clone(1) }
|
14
|
+
assert_equal 'convert -clone 1 miff:-', cmd.to_s
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_clone_with_two_args
|
18
|
+
cmd = convert { clone(1,3) }
|
19
|
+
assert_equal 'convert -clone 1,3 miff:-', cmd.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_clone_with_array
|
23
|
+
cmd = convert { clone([1,3]) }
|
24
|
+
assert_equal 'convert -clone 1,3 miff:-', cmd.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_clone_with_inclusive_range
|
28
|
+
cmd = convert { clone(1..3) }
|
29
|
+
assert_equal 'convert -clone 1-3 miff:-', cmd.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_clone_with_exclusive_range
|
33
|
+
cmd = convert { clone(1...3) }
|
34
|
+
assert_equal 'convert -clone 1-2 miff:-', cmd.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_clone_in_nested_convert
|
38
|
+
cmd = convert { convert { clone } }
|
39
|
+
assert_equal 'convert ( +clone ) miff:-', cmd.to_s
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_delete_without_args
|
43
|
+
cmd = convert { delete }
|
44
|
+
assert_equal 'convert +delete miff:-', cmd.to_s
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_delete_with_one_arg
|
48
|
+
cmd = convert { delete(1) }
|
49
|
+
assert_equal 'convert -delete 1 miff:-', cmd.to_s
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_delete_with_two_args
|
53
|
+
cmd = convert { delete(1,3) }
|
54
|
+
assert_equal 'convert -delete 1,3 miff:-', cmd.to_s
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_delete_with_array
|
58
|
+
cmd = convert { delete([1,3]) }
|
59
|
+
assert_equal 'convert -delete 1,3 miff:-', cmd.to_s
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_delete_with_inclusive_range
|
63
|
+
cmd = convert { delete(1..3) }
|
64
|
+
assert_equal 'convert -delete 1-3 miff:-', cmd.to_s
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_delete_with_exclusive_range
|
68
|
+
cmd = convert { delete(1...3) }
|
69
|
+
assert_equal 'convert -delete 1-2 miff:-', cmd.to_s
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_delete_in_nested_convert
|
73
|
+
cmd = convert { convert { delete } }
|
74
|
+
assert_equal 'convert ( +delete ) miff:-', cmd.to_s
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_swap_without_args
|
78
|
+
cmd = convert { swap }
|
79
|
+
assert_equal 'convert +swap miff:-', cmd.to_s
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_swap_with_one_arg_raises_error
|
83
|
+
assert_raises(ArgumentError) do
|
84
|
+
convert{ swap(1) }.to_s
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_swap_with_two_args
|
89
|
+
cmd = convert { swap(1,2) }
|
90
|
+
assert_equal 'convert -swap 1,2 miff:-', cmd.to_s
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_swap_with_three_args_raises_error
|
94
|
+
assert_raises(ArgumentError) do
|
95
|
+
convert{ swap(1,2,3) }.to_s
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|