processing 0.5.33 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/test/test_svg.rb ADDED
@@ -0,0 +1,257 @@
1
+ require_relative 'helper'
2
+
3
+
4
+ class TestSVG < Test::Unit::TestCase
5
+
6
+ def test_color_code()
7
+ assert_svg_draw '<rect width="500" height="600" fill="#ffaa55"/>'
8
+ assert_svg_draw '<rect width="500" height="600" fill="#ffaa5599"/>'
9
+ assert_svg_draw '<rect width="500" height="600" fill="#fa5"/>'
10
+ assert_svg_draw '<rect width="500" height="600" fill="#fa59"/>'
11
+ assert_svg_draw '<rect width="500" height="600" fill="red"/>'
12
+ end
13
+
14
+ def test_fill()
15
+ assert_svg_draw '<rect width="500" height="600" fill="green"/>'
16
+ end
17
+
18
+ def test_stroke_and_width()
19
+ assert_svg_draw <<~END
20
+ <line x1="200" y1="300" x2="500" y2="600"
21
+ stroke="green" stroke-width="200"/>
22
+ END
23
+ end
24
+
25
+ def test_strokeCap()
26
+ assert_svg_draw <<~END
27
+ <line x1="200" y1="300" x2="500" y2="600"
28
+ stroke="green" stroke-width="200" stroke-linecap="butt"/>
29
+ END
30
+ assert_svg_draw <<~END
31
+ <line x1="200" y1="300" x2="500" y2="600"
32
+ stroke="green" stroke-width="200" stroke-linecap="round"/>
33
+ END
34
+ assert_svg_draw <<~END
35
+ <line x1="200" y1="300" x2="500" y2="600"
36
+ stroke="green" stroke-width="200" stroke-linecap="square"/>
37
+ END
38
+ end
39
+
40
+ def test_strokeJoin()
41
+ assert_svg_draw <<~END
42
+ <path d="M 200,300 L 500,600 L 300,800"
43
+ stroke="green" stroke-width="200" stroke-linejoin="miter"/>
44
+ END
45
+ assert_svg_draw <<~END
46
+ <path d="M 200,300 L 500,600 L 300,800"
47
+ stroke="green" stroke-width="200" stroke-linejoin="miter-clip"/>
48
+ END
49
+ assert_svg_draw <<~END
50
+ <path d="M 200,300 L 500,600 L 300,800"
51
+ stroke="green" stroke-width="200" stroke-linejoin="round"/>
52
+ END
53
+ assert_svg_draw <<~END
54
+ <path d="M 200,300 L 500,600 L 300,800"
55
+ stroke="green" stroke-width="200" stroke-linejoin="bevel"/>
56
+ END
57
+ assert_svg_draw <<~END
58
+ <path d="M 200,300 L 500,600 L 300,800"
59
+ stroke="green" stroke-width="200" stroke-linejoin="arcs"/>
60
+ END
61
+ end
62
+
63
+ def test_line()
64
+ assert_svg_draw <<~END
65
+ <line x1="200" y1="300" x2="500" y2="600" stroke="black" stroke-width="300"/>
66
+ END
67
+ end
68
+
69
+ def test_rect()
70
+ assert_svg_draw '<rect width="500" height="600"/>'
71
+ assert_svg_draw '<rect width="500" height="600" x="100" y="200"/>'
72
+ assert_svg_draw '<rect width="500" height="600" x="100" y="200" rx="100" ry="100"/>'
73
+
74
+ assert_svg_draw <<~END, threshold: THRESHOLD_TO_BE_FIXED
75
+ <rect width="500" height="600" x="100" y="200" rx="100" ry="200"/>
76
+ END
77
+ assert_svg_draw <<~END, threshold: THRESHOLD_TO_BE_FIXED
78
+ <rect width="500" height="600" x="100" y="200" rx="200" ry="100"/>
79
+ END
80
+ end
81
+
82
+ def test_circle()
83
+ assert_svg_draw '<circle cx="500" cy="600" r="200"/>'
84
+ end
85
+
86
+ def test_ellipse()
87
+ assert_svg_draw '<ellipse cx="500" cy="600" rx="200" ry="300"/>'
88
+ end
89
+
90
+ def test_polyline()
91
+ assert_svg_draw <<~END
92
+ <polyline points="200,300 500,400 600,700 300,800" stroke="black" stroke-width="300"/>
93
+ END
94
+ assert_svg_draw <<~END
95
+ <polyline points="200,300 500,400 600,700 300,800" stroke="black" stroke-width="300"
96
+ fill="none"/>
97
+ END
98
+ end
99
+
100
+ def test_polygon()
101
+ assert_svg_draw <<~END
102
+ <polygon points="200,300 500,400 600,700 300,800" stroke="black" stroke-width="200"/>
103
+ END
104
+ assert_svg_draw <<~END
105
+ <polygon points="200,300 500,400 600,700 300,800" stroke="black" stroke-width="200"
106
+ fill="none"/>
107
+ END
108
+ end
109
+
110
+ def test_path_Mm()
111
+ assert_svg_draw path_xml "M 200,300 L 500,400"
112
+ assert_svg_draw path_xml "m 200,300 L 500,400"
113
+ assert_svg_draw path_xml "M 200,300 L 500,400 M 600,700 L 300,800"
114
+ assert_svg_draw path_xml "M 200,300 L 500,400 m 100,300 L 300,800"
115
+ assert_svg_draw path_xml "M 200,300 500,400 600,700 300,800"
116
+ assert_svg_draw path_xml "m 200,300 300,100 100,300 -300,100"
117
+ end
118
+
119
+ def test_path_Ll()
120
+ assert_svg_draw path_xml "M 200,300 L 500,400 L 600,700 L 300,800"
121
+ assert_svg_draw path_xml "M 200,300 L 500,400 600,700 300,800"
122
+ assert_svg_draw path_xml "M 200,300 l 300,100 l 100,300 l -300,100"
123
+ assert_svg_draw path_xml "M 200,300 l 300,100 100,300 -300,100"
124
+ end
125
+
126
+ def test_path_Hh()
127
+ assert_svg_draw path_xml "M 200,300 H 500 H 800"
128
+ assert_svg_draw path_xml "M 200,300 H 500 800"
129
+ assert_svg_draw path_xml "M 200,300 h 300 h 300"
130
+ assert_svg_draw path_xml "M 200,300 h 300 300"
131
+ end
132
+
133
+ def test_path_Vv()
134
+ assert_svg_draw path_xml "M 200,300 V 500 V 800"
135
+ assert_svg_draw path_xml "M 200,300 V 500 800"
136
+ assert_svg_draw path_xml "M 200,300 v 200 h 300"
137
+ assert_svg_draw path_xml "M 200,300 h 200 300"
138
+ end
139
+
140
+ def test_path_Qq()
141
+ assert_svg_draw path_xml "M 200,100 Q 800,300 300,400 Q 400,800 800,800"
142
+ assert_svg_draw path_xml "M 200,100 Q 800,300 300,400 400,800 800,800"
143
+ assert_svg_draw path_xml "M 200,100 q 600,200 100,300 q 100,400 500,400"
144
+ assert_svg_draw path_xml "M 200,100 q 600,200 100,300 100,400 500,400"
145
+ end
146
+
147
+ def test_path_Tt()
148
+ assert_svg_draw path_xml "M 200,100 T 300,400 T 800,800"
149
+ assert_svg_draw path_xml "M 200,100 T 300,400 800,800"
150
+ assert_svg_draw path_xml "M 200,100 t 100,300 t 500,400"
151
+ assert_svg_draw path_xml "M 200,100 t 100,300 500,400"
152
+ end
153
+
154
+ def test_path_Cc()
155
+ assert_svg_draw path_xml "M 200,100 C 800,200 300,300 700,400 C 600,800 300,500 200,700"
156
+ assert_svg_draw path_xml "M 200,100 C 800,200 300,300 700,400 600,800 300,500 200,700"
157
+ assert_svg_draw path_xml "M 200,100 c 600,100 100,200 500,300 c -100,400 -400,100 -500,300"
158
+ assert_svg_draw path_xml "M 200,100 c 600,100 100,200 500,300 -100,400 -400,100 -500,300"
159
+ end
160
+
161
+ def test_path_Ss()
162
+ assert_svg_draw path_xml "M 200,100 S 800,300 500,500 S 800,700 200,900"
163
+ assert_svg_draw path_xml "M 200,100 S 800,300 500,500 800,700 200,900"
164
+ assert_svg_draw path_xml "M 200,100 s 600,200 300,400 s 300,200 -300,400"
165
+ assert_svg_draw path_xml "M 200,100 s 600,200 300,400 300,200 -300,400"
166
+ end
167
+
168
+ def test_path_Aa()
169
+ assert_svg_draw path_xml(<<~END), threshold: THRESHOLD_TO_BE_FIXED
170
+ M 200,100 A 300,200 0 0 0 500,400 A 600,500 0 0 0 900,800
171
+ END
172
+ assert_svg_draw path_xml(<<~END), threshold: THRESHOLD_TO_BE_FIXED
173
+ M 200,100 A 300,200 0 0 0 500,400 600,500 0 0 0 900,800
174
+ END
175
+ assert_svg_draw path_xml(<<~END), threshold: THRESHOLD_TO_BE_FIXED
176
+ M 200,100 a 100,100 0 0 0 300,300 a 100,100 0 0 0 400,400
177
+ END
178
+ assert_svg_draw path_xml(<<~END), threshold: THRESHOLD_TO_BE_FIXED
179
+ M 200,100 a 100,100 0 0 0 300,300 100,100 0 0 0 400,400
180
+ END
181
+ end
182
+
183
+ def test_path_Zz()
184
+ assert_svg_draw path_xml "M 200,300 L 500,400 L 600,700 L 300,800 Z"
185
+ assert_svg_draw path_xml "M 200,300 L 500,400 L 600,700 L 300,800 z"
186
+ end
187
+
188
+ def test_group_fill()
189
+ assert_svg_draw <<~END
190
+ <g>
191
+ <rect x="200" y="300" width="500" height="600" fill="green"/>
192
+ </g>
193
+ END
194
+ assert_svg_draw <<~END
195
+ <g fill="red">
196
+ <rect x="200" y="300" width="500" height="600"/>
197
+ </g>
198
+ END
199
+ assert_svg_draw <<~END
200
+ <g fill="red">
201
+ <rect x="200" y="300" width="500" height="600" fill="green"/>
202
+ </g>
203
+ END
204
+ end
205
+
206
+ def test_group_stroke()
207
+ assert_svg_draw <<~END
208
+ <g>
209
+ <line x1="200" y1="300" x2="500" y2="600"
210
+ stroke-width="200" stroke="green"/>
211
+ </g>
212
+ END
213
+ assert_svg_draw <<~END
214
+ <g stroke="red">
215
+ <line x1="200" y1="300" x2="500" y2="600"
216
+ stroke-width="200"/>
217
+ </g>
218
+ END
219
+ assert_svg_draw <<~END
220
+ <g stroke="red">
221
+ <line x1="200" y1="300" x2="500" y2="600"
222
+ stroke-width="200" stroke="green"/>
223
+ </g>
224
+ END
225
+ end
226
+
227
+ def test_group_stroke_width()
228
+ assert_svg_draw <<~END
229
+ <g>
230
+ <line x1="200" y1="300" x2="500" y2="600" stroke="green" stroke-width="200"/>
231
+ </g>
232
+ END
233
+ assert_svg_draw <<~END
234
+ <g stroke-width="300">
235
+ <line x1="200" y1="300" x2="500" y2="600" stroke="green" />
236
+ </g>
237
+ END
238
+ assert_svg_draw <<~END
239
+ <g stroke-width="300">
240
+ <line x1="200" y1="300" x2="500" y2="600" stroke="green" stroke-width="400"/>
241
+ </g>
242
+ END
243
+ end
244
+
245
+ def test_path_data_shorthand()
246
+ assert_svg_draw path_xml "M200,300L500,400L600,700L300,800"
247
+ assert_svg_draw path_xml "M 200,300 l 500.99.400 0,200 -200,0.99.300,200"
248
+ assert_svg_draw path_xml "M 200,800 l 500-200-200-200-300-300"
249
+ end
250
+
251
+ def path_xml(d)
252
+ <<~END
253
+ <path fill="none" stroke="black" stroke-width="100" d="#{d}"/>
254
+ END
255
+ end
256
+
257
+ end# TestSVG
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: processing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.33
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-06 00:00:00.000000000 Z
11
+ date: 2024-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xot
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.42
19
+ version: '0.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.42
26
+ version: '0.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rucy
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.44
33
+ version: '0.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.44
40
+ version: '0.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rays
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.49
47
+ version: '0.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.49
54
+ version: '0.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: reflexion
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.57
61
+ version: '0.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.1.57
68
+ version: '0.2'
69
69
  description: Creative Coding Framework has API compatible to Processing or p5.js.
70
70
  email: xordog@gmail.com
71
71
  executables: []
@@ -108,19 +108,22 @@ files:
108
108
  - lib/processing/image.rb
109
109
  - lib/processing/shader.rb
110
110
  - lib/processing/shape.rb
111
+ - lib/processing/svg.rb
111
112
  - lib/processing/touch.rb
112
113
  - lib/processing/vector.rb
113
114
  - lib/processing/window.rb
114
115
  - processing.gemspec
116
+ - test/browser.rb
115
117
  - test/helper.rb
116
- - test/p5.rb
117
118
  - test/test_capture.rb
119
+ - test/test_color.rb
118
120
  - test/test_font.rb
119
121
  - test/test_graphics.rb
120
122
  - test/test_graphics_context.rb
121
123
  - test/test_image.rb
122
124
  - test/test_shader.rb
123
125
  - test/test_shape.rb
126
+ - test/test_svg.rb
124
127
  - test/test_text_bounds.rb
125
128
  - test/test_touch.rb
126
129
  - test/test_utility.rb
@@ -149,15 +152,17 @@ signing_key:
149
152
  specification_version: 4
150
153
  summary: Processing compatible Creative Coding Framework.
151
154
  test_files:
155
+ - test/browser.rb
152
156
  - test/helper.rb
153
- - test/p5.rb
154
157
  - test/test_capture.rb
158
+ - test/test_color.rb
155
159
  - test/test_font.rb
156
160
  - test/test_graphics.rb
157
161
  - test/test_graphics_context.rb
158
162
  - test/test_image.rb
159
163
  - test/test_shader.rb
160
164
  - test/test_shape.rb
165
+ - test/test_svg.rb
161
166
  - test/test_text_bounds.rb
162
167
  - test/test_touch.rb
163
168
  - test/test_utility.rb