Spreadsheet-HTML 0.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/t/04-headless.rb ADDED
@@ -0,0 +1,70 @@
1
+ require "test/unit"
2
+ require "Spreadsheet/HTML"
3
+
4
+ class Test_Headless < Test::Unit::TestCase
5
+
6
+ def test_instance
7
+
8
+ data = Array[[1,'a'], [2,'b'], [3,'c']]
9
+ html = '<table><tr><td>2</td><td>b</td></tr><tr><td>3</td><td>c</td></tr></table>'
10
+
11
+ assert_equal(
12
+ html,
13
+ Spreadsheet::HTML.new( 'data' => data, 'headless' => 1 ).generate( 'headless' => 1 ),
14
+ "via constructor only"
15
+ )
16
+
17
+ assert_equal(
18
+ html,
19
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'headless' => 1 ),
20
+ "via constructor and method"
21
+ )
22
+
23
+ gen = Spreadsheet::HTML.new
24
+
25
+ assert_equal(
26
+ html,
27
+ gen.generate( [1,'a'], [2,'b'], [3,'c'], 'headless' => 1 ),
28
+ "two array refs"
29
+ )
30
+
31
+ assert_equal(
32
+ html,
33
+ gen.generate( data, 'headless' => 1 ),
34
+ "one array ref"
35
+ )
36
+
37
+ assert_equal(
38
+ html,
39
+ gen.generate( 'data' => data, 'headless' => 1 ),
40
+ "one named arg"
41
+ )
42
+
43
+ end
44
+
45
+ def test_class
46
+
47
+ data = Array[[1,'a'], [2,'b'], [3,'c']]
48
+ html = '<table><tr><td>2</td><td>b</td></tr><tr><td>3</td><td>c</td></tr></table>'
49
+
50
+ assert_equal(
51
+ html,
52
+ Spreadsheet::HTML.gen( [1,'a'], [2,'b'], [3,'c'], 'headless' => 1 ),
53
+ "two array refs"
54
+ )
55
+
56
+ assert_equal(
57
+ html,
58
+ Spreadsheet::HTML.gen( data, 'headless' => 1 ),
59
+ "one array ref"
60
+ )
61
+
62
+ assert_equal(
63
+ html,
64
+ Spreadsheet::HTML.gen( 'data' => data, 'headless' => 1 ),
65
+ "one named arg"
66
+ )
67
+
68
+ end
69
+
70
+ end
data/t/05-theta.rb ADDED
@@ -0,0 +1,418 @@
1
+ require "test/unit"
2
+ require "Spreadsheet/HTML"
3
+
4
+ class Test_Theta < Test::Unit::TestCase
5
+
6
+ def test_0flip
7
+
8
+ data = Array[
9
+ %w(header1 header2 header3 header4 ),
10
+ %w(foo1 bar1 baz1 qux1),
11
+ %w(foo2 bar2 baz2 qux2),
12
+ %w(foo3 bar3 baz3 qux3),
13
+ %w(foo4 bar4 baz4 qux4)
14
+ ]
15
+
16
+ html = '<table><tr><th>header4</th><th>header3</th><th>header2</th><th>header1</th></tr><tr><td>qux1</td><td>baz1</td><td>bar1</td><td>foo1</td></tr><tr><td>qux2</td><td>baz2</td><td>bar2</td><td>foo2</td></tr><tr><td>qux3</td><td>baz3</td><td>bar3</td><td>foo3</td></tr><tr><td>qux4</td><td>baz4</td><td>bar4</td><td>foo4</td></tr></table>'
17
+
18
+ assert_equal(
19
+ html,
20
+ Spreadsheet::HTML.new( 'data' => data, 'flip' => 1 ).generate(),
21
+ "via constructor only"
22
+ )
23
+ assert_equal(
24
+ html,
25
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'flip' => 1 ),
26
+ "via constructor and method"
27
+ )
28
+ assert_equal(
29
+ html,
30
+ Spreadsheet::HTML.new.generate( data, 'flip' => 1 ),
31
+ "with array ref"
32
+ )
33
+ assert_equal(
34
+ html,
35
+ Spreadsheet::HTML.new.generate( 'data' => data, 'flip' => 1 ),
36
+ "named args only"
37
+ )
38
+
39
+ end
40
+
41
+ def test_90
42
+
43
+ data = Array[
44
+ %w(header1 header2 header3 header4 ),
45
+ %w(foo1 bar1 baz1 qux1),
46
+ %w(foo2 bar2 baz2 qux2),
47
+ %w(foo3 bar3 baz3 qux3),
48
+ %w(foo4 bar4 baz4 qux4)
49
+ ]
50
+
51
+ html = '<table><tr><td>foo4</td><td>foo3</td><td>foo2</td><td>foo1</td><th>header1</th></tr><tr><td>bar4</td><td>bar3</td><td>bar2</td><td>bar1</td><th>header2</th></tr><tr><td>baz4</td><td>baz3</td><td>baz2</td><td>baz1</td><th>header3</th></tr><tr><td>qux4</td><td>qux3</td><td>qux2</td><td>qux1</td><th>header4</th></tr></table>'
52
+
53
+ assert_equal(
54
+ html,
55
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 90 ).generate(),
56
+ "via constructor only"
57
+ )
58
+ assert_equal(
59
+ html,
60
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => 90 ),
61
+ "via constructor and method"
62
+ )
63
+ assert_equal(
64
+ html,
65
+ Spreadsheet::HTML.new.generate( data, 'theta' => 90 ),
66
+ "with array ref"
67
+ )
68
+ assert_equal(
69
+ html,
70
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => 90 ),
71
+ "named args only"
72
+ )
73
+
74
+ end
75
+
76
+ def test_90_pinhead
77
+
78
+ data = Array[
79
+ %w(header1 header2 header3 header4 ),
80
+ %w(foo1 bar1 baz1 qux1),
81
+ %w(foo2 bar2 baz2 qux2),
82
+ %w(foo3 bar3 baz3 qux3),
83
+ %w(foo4 bar4 baz4 qux4)
84
+ ]
85
+
86
+ html = '<table><tr><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td><th>header1</th></tr><tr><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td><th>header2</th></tr><tr><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td><th>header3</th></tr><tr><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td><th>header4</th></tr></table>'
87
+
88
+ assert_equal(
89
+ html,
90
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 90, 'pinhead' => 1 ).generate(),
91
+ "via constructor only"
92
+ )
93
+ assert_equal(
94
+ html,
95
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => 90, 'pinhead' => 1 ),
96
+ "via constructor and method"
97
+ )
98
+ assert_equal(
99
+ html,
100
+ Spreadsheet::HTML.new.generate( data, 'theta' => 90, 'pinhead' => 1 ),
101
+ "with array ref"
102
+ )
103
+ assert_equal(
104
+ html,
105
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => 90, 'pinhead' => 1 ),
106
+ "named args only"
107
+ )
108
+
109
+ end
110
+
111
+ def test_neg90
112
+
113
+ data = Array[
114
+ %w(header1 header2 header3 header4 ),
115
+ %w(foo1 bar1 baz1 qux1),
116
+ %w(foo2 bar2 baz2 qux2),
117
+ %w(foo3 bar3 baz3 qux3),
118
+ %w(foo4 bar4 baz4 qux4)
119
+ ]
120
+
121
+ html = '<table><tr><td>qux4</td><td>qux3</td><td>qux2</td><td>qux1</td><th>header4</th></tr><tr><td>baz4</td><td>baz3</td><td>baz2</td><td>baz1</td><th>header3</th></tr><tr><td>bar4</td><td>bar3</td><td>bar2</td><td>bar1</td><th>header2</th></tr><tr><td>foo4</td><td>foo3</td><td>foo2</td><td>foo1</td><th>header1</th></tr></table>'
122
+
123
+ assert_equal(
124
+ html,
125
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -90 ).generate(),
126
+ "via constructor only"
127
+ )
128
+ assert_equal(
129
+ html,
130
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => -90 ),
131
+ "via constructor and method"
132
+ )
133
+ assert_equal(
134
+ html,
135
+ Spreadsheet::HTML.new.generate( data, 'theta' => -90 ),
136
+ "with array ref"
137
+ )
138
+ assert_equal(
139
+ html,
140
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -90 ),
141
+ "named args only"
142
+ )
143
+
144
+ end
145
+
146
+ def test_neg90_pinhead
147
+
148
+ data = Array[
149
+ %w(header1 header2 header3 header4 ),
150
+ %w(foo1 bar1 baz1 qux1),
151
+ %w(foo2 bar2 baz2 qux2),
152
+ %w(foo3 bar3 baz3 qux3),
153
+ %w(foo4 bar4 baz4 qux4)
154
+ ]
155
+
156
+ html = '<table><tr><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td><th>header4</th></tr><tr><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td><th>header3</th></tr><tr><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td><th>header2</th></tr><tr><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td><th>header1</th></tr></table>'
157
+
158
+ assert_equal(
159
+ html,
160
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -90, 'pinhead' => 1 ).generate(),
161
+ "via constructor only"
162
+ )
163
+ assert_equal(
164
+ html,
165
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => -90, 'pinhead' => 1 ),
166
+ "via constructor and method"
167
+ )
168
+ assert_equal(
169
+ html,
170
+ Spreadsheet::HTML.new.generate( data, 'theta' => -90, 'pinhead' => 1 ),
171
+ "with array ref"
172
+ )
173
+ assert_equal(
174
+ html,
175
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -90, 'pinhead' => 1 ),
176
+ "named args only"
177
+ )
178
+
179
+ end
180
+
181
+ def test_180
182
+
183
+ data = Array[
184
+ %w(header1 header2 header3 header4 ),
185
+ %w(foo1 bar1 baz1 qux1),
186
+ %w(foo2 bar2 baz2 qux2),
187
+ %w(foo3 bar3 baz3 qux3),
188
+ %w(foo4 bar4 baz4 qux4)
189
+ ]
190
+
191
+ html = '<table><tr><td>qux4</td><td>baz4</td><td>bar4</td><td>foo4</td></tr><tr><td>qux3</td><td>baz3</td><td>bar3</td><td>foo3</td></tr><tr><td>qux2</td><td>baz2</td><td>bar2</td><td>foo2</td></tr><tr><td>qux1</td><td>baz1</td><td>bar1</td><td>foo1</td></tr><tr><th>header4</th><th>header3</th><th>header2</th><th>header1</th></tr></table>'
192
+
193
+ assert_equal(
194
+ html,
195
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 180 ).generate(),
196
+ "via constructor only"
197
+ )
198
+ assert_equal(
199
+ html,
200
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => 180 ),
201
+ "via constructor and method"
202
+ )
203
+ assert_equal(
204
+ html,
205
+ Spreadsheet::HTML.new.generate( data, 'theta' => 180 ),
206
+ "with array ref"
207
+ )
208
+ assert_equal(
209
+ html,
210
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => 180 ),
211
+ "named args only"
212
+ )
213
+
214
+ end
215
+
216
+ def test_180_pinhead
217
+
218
+ data = Array[
219
+ %w(header1 header2 header3 header4 ),
220
+ %w(foo1 bar1 baz1 qux1),
221
+ %w(foo2 bar2 baz2 qux2),
222
+ %w(foo3 bar3 baz3 qux3),
223
+ %w(foo4 bar4 baz4 qux4)
224
+ ]
225
+
226
+ html = '<table><tr><td>qux1</td><td>baz1</td><td>bar1</td><td>foo1</td></tr><tr><td>qux2</td><td>baz2</td><td>bar2</td><td>foo2</td></tr><tr><td>qux3</td><td>baz3</td><td>bar3</td><td>foo3</td></tr><tr><td>qux4</td><td>baz4</td><td>bar4</td><td>foo4</td></tr><tr><th>header4</th><th>header3</th><th>header2</th><th>header1</th></tr></table>'
227
+
228
+ assert_equal(
229
+ html,
230
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 180, 'pinhead' => 1 ).generate(),
231
+ "via constructor only"
232
+ )
233
+ assert_equal(
234
+ html,
235
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => 180, 'pinhead' => 1 ),
236
+ "via constructor and method"
237
+ )
238
+ assert_equal(
239
+ html,
240
+ Spreadsheet::HTML.new.generate( data, 'theta' => 180, 'pinhead' => 1 ),
241
+ "with array ref"
242
+ )
243
+ assert_equal(
244
+ html,
245
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => 180, 'pinhead' => 1 ),
246
+ "named args only"
247
+ )
248
+
249
+ end
250
+
251
+ def test_neg180
252
+
253
+ data = Array[
254
+ %w(header1 header2 header3 header4 ),
255
+ %w(foo1 bar1 baz1 qux1),
256
+ %w(foo2 bar2 baz2 qux2),
257
+ %w(foo3 bar3 baz3 qux3),
258
+ %w(foo4 bar4 baz4 qux4)
259
+ ]
260
+
261
+ html = '<table><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></table>'
262
+
263
+ assert_equal(
264
+ html,
265
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -180 ).generate(),
266
+ "via constructor only"
267
+ )
268
+ assert_equal(
269
+ html,
270
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => -180 ),
271
+ "via constructor and method"
272
+ )
273
+ assert_equal(
274
+ html,
275
+ Spreadsheet::HTML.new.generate( data, 'theta' => -180 ),
276
+ "with array ref"
277
+ )
278
+ assert_equal(
279
+ html,
280
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -180 ),
281
+ "named args only"
282
+ )
283
+
284
+ end
285
+
286
+ def test_neg180_pinhead
287
+
288
+ data = Array[
289
+ %w(header1 header2 header3 header4 ),
290
+ %w(foo1 bar1 baz1 qux1),
291
+ %w(foo2 bar2 baz2 qux2),
292
+ %w(foo3 bar3 baz3 qux3),
293
+ %w(foo4 bar4 baz4 qux4)
294
+ ]
295
+
296
+ html = '<table><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></table>'
297
+
298
+ assert_equal(
299
+ html,
300
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -180, 'pinhead' => 1 ).generate(),
301
+ "via constructor only"
302
+ )
303
+ assert_equal(
304
+ html,
305
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => -180, 'pinhead' => 1 ),
306
+ "via constructor and method"
307
+ )
308
+ assert_equal(
309
+ html,
310
+ Spreadsheet::HTML.new.generate( data, 'theta' => -180, 'pinhead' => 1 ),
311
+ "with array ref"
312
+ )
313
+ assert_equal(
314
+ html,
315
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -180, 'pinhead' => 1 ),
316
+ "named args only"
317
+ )
318
+
319
+ end
320
+
321
+ def test_270
322
+
323
+ data = Array[
324
+ %w(header1 header2 header3 header4 ),
325
+ %w(foo1 bar1 baz1 qux1),
326
+ %w(foo2 bar2 baz2 qux2),
327
+ %w(foo3 bar3 baz3 qux3),
328
+ %w(foo4 bar4 baz4 qux4)
329
+ ]
330
+
331
+ html = '<table><tr><th>header4</th><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr><tr><th>header3</th><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><th>header2</th><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><th>header1</th><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr></table>'
332
+
333
+ assert_equal(
334
+ html,
335
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 270 ).generate(),
336
+ "via constructor only"
337
+ )
338
+ assert_equal(
339
+ html,
340
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => 270 ),
341
+ "via constructor and method"
342
+ )
343
+ assert_equal(
344
+ html,
345
+ Spreadsheet::HTML.new.generate( data, 'theta' => 270 ),
346
+ "with array ref"
347
+ )
348
+ assert_equal(
349
+ html,
350
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => 270 ),
351
+ "named args only"
352
+ )
353
+
354
+ end
355
+
356
+ def test_neg270
357
+
358
+ data = Array[
359
+ %w(header1 header2 header3 header4 ),
360
+ %w(foo1 bar1 baz1 qux1),
361
+ %w(foo2 bar2 baz2 qux2),
362
+ %w(foo3 bar3 baz3 qux3),
363
+ %w(foo4 bar4 baz4 qux4)
364
+ ]
365
+
366
+ html = '<table><tr><th>header1</th><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr><tr><th>header2</th><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><th>header3</th><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><th>header4</th><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr></table>'
367
+
368
+ assert_equal(
369
+ html,
370
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -270 ).generate(),
371
+ "via constructor only"
372
+ )
373
+ assert_equal(
374
+ html,
375
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'theta' => -270 ),
376
+ "via constructor and method"
377
+ )
378
+ assert_equal(
379
+ html,
380
+ Spreadsheet::HTML.new.generate( data, 'theta' => -270 ),
381
+ "with array ref"
382
+ )
383
+ assert_equal(
384
+ html,
385
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -270 ),
386
+ "named args only"
387
+ )
388
+
389
+ end
390
+
391
+ def test_flip
392
+
393
+ data = Array[
394
+ %w(header1 header2 header3 header4 ),
395
+ %w(foo1 bar1 baz1 qux1),
396
+ %w(foo2 bar2 baz2 qux2),
397
+ %w(foo3 bar3 baz3 qux3),
398
+ %w(foo4 bar4 baz4 qux4)
399
+ ]
400
+
401
+ assert_equal(
402
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 90 ).generate(),
403
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -90, 'flip' => 1 ).generate(),
404
+ "90"
405
+ )
406
+ assert_equal(
407
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 180 ).generate(),
408
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -180, 'flip' => 1 ).generate(),
409
+ "180"
410
+ )
411
+ assert_equal(
412
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 270 ).generate(),
413
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -270, 'flip' => 1 ).generate(),
414
+ "270"
415
+ )
416
+ end
417
+
418
+ end