processing 0.5.33 → 1.0.1

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/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