writeexcel 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/.gitattributes +1 -1
  2. data/.gitignore +24 -24
  3. data/README.rdoc +34 -55
  4. data/VERSION +1 -1
  5. data/charts/chartex.rb +316 -316
  6. data/charts/demo1.rb +46 -46
  7. data/charts/demo2.rb +65 -65
  8. data/charts/demo3.rb +117 -117
  9. data/charts/demo4.rb +119 -119
  10. data/charts/demo5.rb +48 -48
  11. data/examples/a_simple.rb +43 -43
  12. data/examples/autofilter.rb +265 -265
  13. data/examples/bigfile.rb +30 -30
  14. data/examples/chart_area.rb +121 -121
  15. data/examples/chart_bar.rb +120 -120
  16. data/examples/chart_column.rb +120 -120
  17. data/examples/chart_line.rb +120 -120
  18. data/examples/chart_pie.rb +108 -108
  19. data/examples/chart_scatter.rb +121 -121
  20. data/examples/chart_stock.rb +148 -148
  21. data/examples/chess.rb +142 -142
  22. data/examples/colors.rb +129 -129
  23. data/examples/comments1.rb +27 -27
  24. data/examples/comments2.rb +352 -352
  25. data/examples/copyformat.rb +52 -52
  26. data/examples/data_validate.rb +279 -279
  27. data/examples/date_time.rb +87 -87
  28. data/examples/defined_name.rb +32 -32
  29. data/examples/demo.rb +124 -124
  30. data/examples/diag_border.rb +36 -36
  31. data/examples/formats.rb +490 -490
  32. data/examples/formula_result.rb +30 -30
  33. data/examples/header.rb +137 -137
  34. data/examples/hide_sheet.rb +29 -29
  35. data/examples/hyperlink.rb +43 -43
  36. data/examples/images.rb +63 -63
  37. data/examples/indent.rb +31 -31
  38. data/examples/merge1.rb +40 -40
  39. data/examples/merge2.rb +45 -45
  40. data/examples/merge3.rb +66 -66
  41. data/examples/merge4.rb +83 -83
  42. data/examples/merge5.rb +80 -80
  43. data/examples/merge6.rb +67 -67
  44. data/examples/outline.rb +255 -255
  45. data/examples/outline_collapsed.rb +209 -209
  46. data/examples/panes.rb +113 -113
  47. data/examples/properties.rb +34 -34
  48. data/examples/properties_jp.rb +33 -33
  49. data/examples/protection.rb +47 -47
  50. data/examples/regions.rb +53 -53
  51. data/examples/repeat.rb +43 -43
  52. data/examples/right_to_left.rb +27 -27
  53. data/examples/row_wrap.rb +53 -53
  54. data/examples/stats.rb +74 -74
  55. data/examples/stocks.rb +81 -81
  56. data/examples/tab_colors.rb +31 -31
  57. data/examples/utf8.rb +15 -15
  58. data/examples/write_arrays.rb +83 -83
  59. data/lib/writeexcel/biffwriter.rb +232 -232
  60. data/lib/writeexcel/caller_info.rb +12 -12
  61. data/lib/writeexcel/chart.rb +2190 -2177
  62. data/lib/writeexcel/charts/area.rb +154 -154
  63. data/lib/writeexcel/charts/bar.rb +177 -177
  64. data/lib/writeexcel/charts/column.rb +156 -156
  65. data/lib/writeexcel/charts/external.rb +66 -66
  66. data/lib/writeexcel/charts/line.rb +154 -154
  67. data/lib/writeexcel/charts/pie.rb +169 -169
  68. data/lib/writeexcel/charts/scatter.rb +192 -192
  69. data/lib/writeexcel/charts/stock.rb +213 -213
  70. data/lib/writeexcel/colors.rb +64 -64
  71. data/lib/writeexcel/compatibility.rb +0 -255
  72. data/lib/writeexcel/debug_info.rb +37 -33
  73. data/lib/writeexcel/excelformulaparser.rb +587 -587
  74. data/lib/writeexcel/format.rb +13 -4
  75. data/lib/writeexcel/formula.rb +26 -9
  76. data/lib/writeexcel/helper.rb +68 -64
  77. data/lib/writeexcel/olewriter.rb +311 -311
  78. data/lib/writeexcel/properties.rb +242 -240
  79. data/lib/writeexcel/storage_lite.rb +984 -978
  80. data/lib/writeexcel/workbook.rb +3210 -3192
  81. data/lib/writeexcel/worksheet.rb +143 -51
  82. data/lib/writeexcel/write_file.rb +44 -40
  83. data/lib/writeexcel.rb +1159 -1159
  84. data/test/helper.rb +31 -28
  85. data/test/perl_output/README +31 -31
  86. data/test/test_00_IEEE_double.rb +13 -13
  87. data/test/test_01_add_worksheet.rb +10 -10
  88. data/test/test_02_merge_formats.rb +53 -53
  89. data/test/test_04_dimensions.rb +392 -392
  90. data/test/test_05_rows.rb +179 -179
  91. data/test/test_06_extsst.rb +77 -77
  92. data/test/test_11_date_time.rb +479 -479
  93. data/test/test_12_date_only.rb +501 -501
  94. data/test/test_13_date_seconds.rb +481 -481
  95. data/test/test_21_escher.rb +637 -637
  96. data/test/test_22_mso_drawing_group.rb +745 -745
  97. data/test/test_23_note.rb +73 -73
  98. data/test/test_24_txo.rb +75 -75
  99. data/test/test_25_position_object.rb +84 -84
  100. data/test/test_26_autofilter.rb +314 -314
  101. data/test/test_27_autofilter.rb +131 -131
  102. data/test/test_28_autofilter.rb +161 -161
  103. data/test/test_29_process_jpg.rb +683 -683
  104. data/test/test_30_validation_dval.rb +77 -77
  105. data/test/test_31_validation_dv_strings.rb +126 -126
  106. data/test/test_32_validation_dv_formula.rb +206 -206
  107. data/test/test_40_property_types.rb +188 -188
  108. data/test/test_41_properties.rb +235 -235
  109. data/test/test_42_set_properties.rb +437 -437
  110. data/test/test_50_name_stored.rb +299 -299
  111. data/test/test_51_name_print_area.rb +357 -357
  112. data/test/test_52_name_print_titles.rb +454 -454
  113. data/test/test_53_autofilter.rb +203 -203
  114. data/test/test_60_chart_generic.rb +578 -578
  115. data/test/test_61_chart_subclasses.rb +95 -95
  116. data/test/test_62_chart_formats.rb +272 -272
  117. data/test/test_63_chart_area_formats.rb +649 -649
  118. data/test/test_biff.rb +75 -75
  119. data/test/test_compatibility.rb +12 -627
  120. data/test/test_example_match.rb +3144 -3144
  121. data/test/test_formula.rb +61 -61
  122. data/test/test_ole.rb +106 -106
  123. data/test/test_storage_lite.rb +125 -125
  124. data/test/test_workbook.rb +139 -139
  125. data/test/test_worksheet.rb +110 -110
  126. data/utils/add_magic_comment.rb +80 -80
  127. data/writeexcel.gemspec +4 -6
  128. data/writeexcel.rdoc +58 -15
  129. metadata +9 -6
  130. data/test/test_new_encoding.rb +0 -205
@@ -1,649 +1,649 @@
1
- # -*- coding: utf-8 -*-
2
- require 'helper'
3
- require 'stringio'
4
-
5
- ###############################################################################
6
- #
7
- # A test for Spreadsheet::Writeexcel::Chart.
8
- #
9
- # Tests for the Excel Chart.pm format conversion methods.
10
- #
11
- # reverse('ゥ'), January 2010, John McNamara, jmcnamara@cpan.org
12
- #
13
- # original written in Perl by John McNamara
14
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
15
- #
16
- class TC_ChartAreaFormats < Test::Unit::TestCase
17
- def setup
18
- @io = StringIO.new
19
- @workbook = WriteExcel.new(@io)
20
- @chart = @workbook.add_chart(:type => 'Chart::Column')
21
- @chart.using_tmpfile = false
22
- @caption1 = " \tChart: chartarea format - line";
23
- @caption2 = " \tChart: chartarea format - area";
24
- @embed_caption1 = " \tChart: embedded chartarea format - line";
25
- @embed_caption2 = " \tChart: embedded chartarea format - area";
26
- @plotarea_caption1 = " \tChart: plotarea format - line";
27
- @plotarea_caption2 = " \tChart: plotarea format - area";
28
- end
29
-
30
- def teardown
31
- @workbook.close
32
- end
33
-
34
- ###############################################################################
35
- #
36
- # 1. Test the chartarea format methods. See the set_*area() properties below.
37
- #
38
- def test_the_chartarea_format_methods
39
- reset_chart(@chart)
40
-
41
- @chart.set_chartarea(
42
- :color => 'red',
43
- :line_color => 'black',
44
- :line_pattern => 2,
45
- :line_weight => 3
46
- )
47
-
48
- expected_line = %w(
49
- 07 10 0C 00 00 00 00 00 01 00 01 00 00 00 08 00
50
- ).join(' ')
51
-
52
- expected_area = %w(
53
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
54
- 0A 00 08 00
55
- ).join(' ')
56
-
57
- got_line, got_area = get_chartarea_formats(@chart)
58
-
59
- assert_equal(expected_line, got_line, @caption1)
60
- assert_equal(expected_area, got_area, @caption2)
61
-
62
-
63
- reset_chart(@chart)
64
-
65
- @chart.set_chartarea(
66
- :color => 'red'
67
- )
68
-
69
- expected_line = %w(
70
- 07 10 0C 00 00 00 00 00 05 00 FF FF 08 00 4D 00
71
- ).join(' ')
72
-
73
- expected_area = %w(
74
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
75
- 0A 00 08 00
76
- ).join(' ')
77
-
78
- got_line, got_area = get_chartarea_formats(@chart)
79
-
80
- assert_equal(expected_line, got_line, @caption1)
81
- assert_equal(expected_area, got_area, @caption2)
82
-
83
-
84
- reset_chart(@chart)
85
-
86
- @chart.set_chartarea(
87
- :line_color => 'red'
88
- )
89
-
90
- expected_line = %w(
91
- 07 10 0C 00 FF 00 00 00 00 00 FF FF 00 00 0A 00
92
- ).join(' ')
93
-
94
- expected_area = %w(
95
- 0A 10 10 00 FF FF FF 00 00 00 00 00 00 00 00 00
96
- 4E 00 4D 00
97
- ).join(' ')
98
-
99
- got_line, got_area = get_chartarea_formats(@chart)
100
-
101
- assert_equal(expected_line, got_line, @caption1)
102
- assert_equal(expected_area, got_area, @caption2)
103
-
104
-
105
- reset_chart(@chart)
106
-
107
- @chart.set_chartarea(
108
- :line_pattern => 2
109
- )
110
-
111
- expected_line = %w(
112
- 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
113
- ).join(' ')
114
-
115
- expected_area = %w(
116
- 0A 10 10 00 FF FF FF 00 00 00 00 00 00 00 00 00
117
- 4E 00 4D 00
118
- ).join(' ')
119
-
120
- got_line, got_area = get_chartarea_formats(@chart)
121
-
122
- assert_equal(expected_line, got_line, @caption1)
123
- assert_equal(expected_area, got_area, @caption2)
124
-
125
-
126
- reset_chart(@chart)
127
-
128
- @chart.set_chartarea(
129
- :line_weight => 3
130
- )
131
-
132
- expected_line = %w(
133
- 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
134
- ).join(' ')
135
-
136
- expected_area = %w(
137
- 0A 10 10 00 FF FF FF 00 00 00 00 00 00 00 00 00
138
- 4E 00 4D 00
139
- ).join(' ')
140
-
141
- got_line, got_area = get_chartarea_formats(@chart)
142
-
143
- assert_equal(expected_line, got_line, @caption1)
144
- assert_equal(expected_area, got_area, @caption2)
145
-
146
-
147
- reset_chart(@chart)
148
-
149
- @chart.set_chartarea(
150
- :color => 'red',
151
- :line_color => 'black'
152
- )
153
-
154
- expected_line = %w(
155
- 07 10 0C 00 00 00 00 00 00 00 FF FF 00 00 08 00
156
- ).join(' ')
157
-
158
- expected_area = %w(
159
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
160
- 0A 00 08 00
161
- ).join(' ')
162
-
163
- got_line, got_area = get_chartarea_formats(@chart)
164
-
165
- assert_equal(expected_line, got_line, @caption1)
166
- assert_equal(expected_area, got_area, @caption2)
167
-
168
-
169
- reset_chart(@chart)
170
-
171
- @chart.set_chartarea(
172
- :color => 'red',
173
- :line_pattern => 2
174
- )
175
-
176
- expected_line = %w(
177
- 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
178
- ).join(' ')
179
-
180
- expected_area = %w(
181
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
182
- 0A 00 08 00
183
- ).join(' ')
184
-
185
- got_line, got_area = get_chartarea_formats(@chart)
186
-
187
- assert_equal(expected_line, got_line, @caption1)
188
- assert_equal(expected_area, got_area, @caption2)
189
-
190
-
191
- reset_chart(@chart)
192
-
193
- @chart.set_chartarea(
194
- :color => 'red',
195
- :line_weight => 3
196
- )
197
-
198
- expected_line = %w(
199
- 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
200
- ).join(' ')
201
-
202
- expected_area = %w(
203
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
204
- 0A 00 08 00
205
- ).join(' ')
206
-
207
- got_line, got_area = get_chartarea_formats(@chart)
208
-
209
- assert_equal(expected_line, got_line, @caption1)
210
- assert_equal(expected_area, got_area, @caption2)
211
-
212
-
213
- @chart.embedded = true
214
-
215
- reset_chart(@chart, true)
216
-
217
- @chart.set_chartarea(
218
- )
219
-
220
- expected_line = %w(
221
- 07 10 0C 00 00 00 00 00 00 00 00 00 09 00 4D 00
222
- ).join(' ')
223
-
224
- expected_area = %w(
225
- 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
226
- 4E 00 4D 00
227
- ).join(' ')
228
-
229
- got_line, got_area = get_chartarea_formats(@chart)
230
-
231
- assert_equal(expected_line, got_line, @embed_caption1)
232
- assert_equal(expected_area, got_area, @embed_caption2)
233
-
234
-
235
- reset_chart(@chart, true)
236
-
237
- @chart.set_chartarea(
238
- :color => 'red',
239
- :line_color => 'black',
240
- :line_pattern => 2,
241
- :line_weight => 3
242
- )
243
-
244
- expected_line = %w(
245
- 07 10 0C 00 00 00 00 00 01 00 01 00 00 00 08 00
246
- ).join(' ')
247
-
248
- expected_area = %w(
249
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
250
- 0A 00 08 00
251
- ).join(' ')
252
-
253
- got_line, got_area = get_chartarea_formats(@chart)
254
-
255
- assert_equal(expected_line, got_line, @embed_caption1)
256
- assert_equal(expected_area, got_area, @embed_caption2)
257
-
258
-
259
- reset_chart(@chart, true)
260
-
261
- @chart.set_chartarea(
262
- :color => 'red'
263
- )
264
-
265
- expected_line = %w(
266
- 07 10 0C 00 00 00 00 00 00 00 FF FF 09 00 4D 00
267
- ).join(' ')
268
-
269
- expected_area = %w(
270
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
271
- 0A 00 08 00
272
- ).join(' ')
273
-
274
- got_line, got_area = get_chartarea_formats(@chart)
275
-
276
- assert_equal(expected_line, got_line, @embed_caption1)
277
- assert_equal(expected_area, got_area, @embed_caption2)
278
-
279
-
280
- reset_chart(@chart, true)
281
-
282
- @chart.set_chartarea(
283
- :line_color => 'red'
284
- )
285
-
286
- expected_line = %w(
287
- 07 10 0C 00 FF 00 00 00 00 00 FF FF 00 00 0A 00
288
- ).join(' ')
289
-
290
- expected_area = %w(
291
- 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
292
- 4E 00 4D 00
293
- ).join(' ')
294
-
295
- got_line, got_area = get_chartarea_formats(@chart)
296
-
297
- assert_equal(expected_line, got_line, @embed_caption1)
298
- assert_equal(expected_area, got_area, @embed_caption2)
299
-
300
-
301
- reset_chart(@chart, true)
302
-
303
- @chart.set_chartarea(
304
- :line_pattern => 2
305
- )
306
-
307
- expected_line = %w(
308
- 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
309
- ).join(' ')
310
-
311
- expected_area = %w(
312
- 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
313
- 4E 00 4D 00
314
- ).join(' ')
315
-
316
- got_line, got_area = get_chartarea_formats(@chart)
317
-
318
- assert_equal(expected_line, got_line, @embed_caption1)
319
- assert_equal(expected_area, got_area, @embed_caption2)
320
-
321
-
322
- reset_chart(@chart, true)
323
-
324
- @chart.set_chartarea(
325
- :line_weight => 3
326
- )
327
-
328
- expected_line = %w(
329
- 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
330
- ).join(' ')
331
-
332
- expected_area = %w(
333
- 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
334
- 4E 00 4D 00
335
- ).join(' ')
336
-
337
- got_line, got_area = get_chartarea_formats(@chart)
338
-
339
- assert_equal(expected_line, got_line, @embed_caption1)
340
- assert_equal(expected_area, got_area, @embed_caption2)
341
-
342
-
343
- reset_chart(@chart, true)
344
-
345
- @chart.set_chartarea(
346
- :color => 'red',
347
- :line_color => 'black'
348
- )
349
-
350
- expected_line = %w(
351
- 07 10 0C 00 00 00 00 00 00 00 FF FF 00 00 08 00
352
- ).join(' ')
353
-
354
- expected_area = %w(
355
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
356
- 0A 00 08 00
357
- ).join(' ')
358
-
359
- got_line, got_area = get_chartarea_formats(@chart)
360
-
361
- assert_equal(expected_line, got_line, @embed_caption1)
362
- assert_equal(expected_area, got_area, @embed_caption2)
363
-
364
-
365
- reset_chart(@chart, true)
366
-
367
- @chart.set_chartarea(
368
- :color => 'red',
369
- :line_pattern => 2
370
- )
371
-
372
- expected_line = %w(
373
- 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
374
- ).join(' ')
375
-
376
- expected_area = %w(
377
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
378
- 0A 00 08 00
379
- ).join(' ')
380
-
381
- got_line, got_area = get_chartarea_formats(@chart)
382
-
383
- assert_equal(expected_line, got_line, @embed_caption1)
384
- assert_equal(expected_area, got_area, @embed_caption2)
385
-
386
-
387
- reset_chart(@chart, true)
388
-
389
- @chart.set_chartarea(
390
- :color => 'red',
391
- :line_weight => 3
392
- )
393
-
394
- expected_line = %w(
395
- 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
396
- ).join(' ')
397
-
398
- expected_area = %w(
399
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
400
- 0A 00 08 00
401
- ).join(' ')
402
-
403
- got_line, got_area = get_chartarea_formats(@chart)
404
-
405
- assert_equal(expected_line, got_line, @embed_caption1)
406
- assert_equal(expected_area, got_area, @embed_caption2)
407
-
408
-
409
- @chart.embedded = false
410
-
411
- reset_chart(@chart)
412
-
413
- @chart.set_plotarea(
414
- )
415
-
416
- expected_line = %w(
417
- 07 10 0C 00 80 80 80 00 00 00 00 00 00 00 17 00
418
- ).join(' ')
419
-
420
- expected_area = %w(
421
- 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
422
- 16 00 4F 00
423
- ).join(' ')
424
-
425
- got_line, got_area = get_plotarea_formats(@chart)
426
-
427
- assert_equal(expected_line, got_line, @plotarea_caption1)
428
- assert_equal(expected_area, got_area, @plotarea_caption2)
429
-
430
-
431
- reset_chart(@chart)
432
-
433
- @chart.set_plotarea(
434
- :color => 'red',
435
- :line_color => 'black',
436
- :line_pattern => 2,
437
- :line_weight => 3
438
- )
439
-
440
- expected_line = %w(
441
- 07 10 0C 00 00 00 00 00 01 00 01 00 00 00 08 00
442
- ).join(' ')
443
-
444
- expected_area = %w(
445
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
446
- 0A 00 08 00
447
- ).join(' ')
448
-
449
- got_line, got_area = get_plotarea_formats(@chart)
450
-
451
- assert_equal(expected_line, got_line, @plotarea_caption1)
452
- assert_equal(expected_area, got_area, @plotarea_caption2)
453
-
454
-
455
- reset_chart(@chart)
456
-
457
- @chart.set_plotarea(
458
- :color => 'red'
459
- )
460
-
461
- expected_line = %w(
462
- 07 10 0C 00 80 80 80 00 00 00 00 00 00 00 17 00
463
- ).join(' ')
464
-
465
- expected_area = %w(
466
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
467
- 0A 00 08 00
468
- ).join(' ')
469
-
470
- got_line, got_area = get_plotarea_formats(@chart)
471
-
472
- assert_equal(expected_line, got_line, @plotarea_caption1)
473
- assert_equal(expected_area, got_area, @plotarea_caption2)
474
-
475
-
476
- reset_chart(@chart)
477
-
478
- @chart.set_plotarea(
479
- :line_color => 'red'
480
- )
481
-
482
- expected_line = %w(
483
- 07 10 0C 00 FF 00 00 00 00 00 00 00 00 00 0A 00
484
- ).join(' ')
485
-
486
- expected_area = %w(
487
- 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
488
- 16 00 08 00
489
- ).join(' ')
490
-
491
- got_line, got_area = get_plotarea_formats(@chart)
492
-
493
- assert_equal(expected_line, got_line, @plotarea_caption1)
494
- assert_equal(expected_area, got_area, @plotarea_caption2)
495
-
496
-
497
- reset_chart(@chart)
498
-
499
- @chart.set_plotarea(
500
- :line_pattern => 2
501
- )
502
-
503
- expected_line = %w(
504
- 07 10 0C 00 80 80 80 00 01 00 00 00 00 00 17 00
505
- ).join(' ')
506
-
507
- expected_area = %w(
508
- 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
509
- 16 00 08 00
510
- ).join(' ')
511
-
512
- got_line, got_area = get_plotarea_formats(@chart)
513
-
514
- assert_equal(expected_line, got_line, @plotarea_caption1)
515
- assert_equal(expected_area, got_area, @plotarea_caption2)
516
-
517
-
518
- reset_chart(@chart)
519
-
520
- @chart.set_plotarea(
521
- :line_weight => 3
522
- )
523
-
524
- expected_line = %w(
525
- 07 10 0C 00 80 80 80 00 00 00 01 00 00 00 17 00
526
- ).join(' ')
527
-
528
- expected_area = %w(
529
- 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
530
- 16 00 08 00
531
- ).join(' ')
532
-
533
- got_line, got_area = get_plotarea_formats(@chart)
534
-
535
- assert_equal(expected_line, got_line, @plotarea_caption1)
536
- assert_equal(expected_area, got_area, @plotarea_caption2)
537
-
538
-
539
- reset_chart(@chart)
540
-
541
- @chart.set_plotarea(
542
- :color => 'red',
543
- :line_color => 'black'
544
- )
545
-
546
- expected_line = %w(
547
- 07 10 0C 00 00 00 00 00 00 00 00 00 00 00 08 00
548
- ).join(' ')
549
-
550
- expected_area = %w(
551
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
552
- 0A 00 08 00
553
- ).join(' ')
554
-
555
- got_line, got_area = get_plotarea_formats(@chart)
556
-
557
- assert_equal(expected_line, got_line, @plotarea_caption1)
558
- assert_equal(expected_area, got_area, @plotarea_caption2)
559
-
560
-
561
- reset_chart(@chart)
562
-
563
- @chart.set_plotarea(
564
- :color => 'red',
565
- :line_pattern => 2
566
- )
567
-
568
- expected_line = %w(
569
- 07 10 0C 00 80 80 80 00 01 00 00 00 00 00 17 00
570
- ).join(' ')
571
-
572
- expected_area = %w(
573
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
574
- 0A 00 08 00
575
- ).join(' ')
576
-
577
- got_line, got_area = get_plotarea_formats(@chart)
578
-
579
- assert_equal(expected_line, got_line, @plotarea_caption1)
580
- assert_equal(expected_area, got_area, @plotarea_caption2)
581
-
582
-
583
- reset_chart(@chart)
584
-
585
- @chart.set_plotarea(
586
- :color => 'red',
587
- :line_weight => 3
588
- )
589
-
590
- expected_line = %w(
591
- 07 10 0C 00 80 80 80 00 00 00 01 00 00 00 17 00
592
- ).join(' ')
593
-
594
- expected_area = %w(
595
- 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
596
- 0A 00 08 00
597
- ).join(' ')
598
-
599
- got_line, got_area = get_plotarea_formats(@chart)
600
-
601
- assert_equal(expected_line, got_line, @plotarea_caption1)
602
- assert_equal(expected_area, got_area, @plotarea_caption2)
603
- end
604
-
605
-
606
- ###############################################################################
607
- #
608
- # Reset the chart data for testing.
609
- #
610
- def reset_chart(chart, embedded = nil)
611
- # Reset the chart data.
612
- chart.data = ''
613
- chart.set_default_properties
614
-
615
- if embedded
616
- chart.set_embedded_config_data
617
- end
618
- end
619
-
620
- ###############################################################################
621
- #
622
- # Extract Line and Area format records from the Chartarea Frame stream.
623
- #
624
- def get_chartarea_formats(chart)
625
- chart.store_chartarea_frame_stream
626
-
627
- line = unpack_record(chart.data[12, 16])
628
- area = unpack_record(chart.data[28, 20])
629
-
630
- [line, area]
631
- end
632
-
633
- ###############################################################################
634
- #
635
- # Extract Line and Area format records from the Chartarea Frame stream.
636
- #
637
- def get_plotarea_formats(chart)
638
- chart.store_plotarea_frame_stream
639
-
640
- line = unpack_record(chart.data[12, 16])
641
- area = unpack_record(chart.data[28, 20])
642
-
643
- [line, area]
644
- end
645
-
646
- def unpack_record(data)
647
- data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
648
- end
649
- end
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'stringio'
4
+
5
+ ###############################################################################
6
+ #
7
+ # A test for Spreadsheet::Writeexcel::Chart.
8
+ #
9
+ # Tests for the Excel Chart.pm format conversion methods.
10
+ #
11
+ # reverse('ゥ'), January 2010, John McNamara, jmcnamara@cpan.org
12
+ #
13
+ # original written in Perl by John McNamara
14
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
15
+ #
16
+ class TC_ChartAreaFormats < Test::Unit::TestCase
17
+ def setup
18
+ @io = StringIO.new
19
+ @workbook = WriteExcel.new(@io)
20
+ @chart = @workbook.add_chart(:type => 'Chart::Column')
21
+ @chart.using_tmpfile = false
22
+ @caption1 = " \tChart: chartarea format - line";
23
+ @caption2 = " \tChart: chartarea format - area";
24
+ @embed_caption1 = " \tChart: embedded chartarea format - line";
25
+ @embed_caption2 = " \tChart: embedded chartarea format - area";
26
+ @plotarea_caption1 = " \tChart: plotarea format - line";
27
+ @plotarea_caption2 = " \tChart: plotarea format - area";
28
+ end
29
+
30
+ def teardown
31
+ @workbook.close
32
+ end
33
+
34
+ ###############################################################################
35
+ #
36
+ # 1. Test the chartarea format methods. See the set_*area() properties below.
37
+ #
38
+ def test_the_chartarea_format_methods
39
+ reset_chart(@chart)
40
+
41
+ @chart.set_chartarea(
42
+ :color => 'red',
43
+ :line_color => 'black',
44
+ :line_pattern => 2,
45
+ :line_weight => 3
46
+ )
47
+
48
+ expected_line = %w(
49
+ 07 10 0C 00 00 00 00 00 01 00 01 00 00 00 08 00
50
+ ).join(' ')
51
+
52
+ expected_area = %w(
53
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
54
+ 0A 00 08 00
55
+ ).join(' ')
56
+
57
+ got_line, got_area = get_chartarea_formats(@chart)
58
+
59
+ assert_equal(expected_line, got_line, @caption1)
60
+ assert_equal(expected_area, got_area, @caption2)
61
+
62
+
63
+ reset_chart(@chart)
64
+
65
+ @chart.set_chartarea(
66
+ :color => 'red'
67
+ )
68
+
69
+ expected_line = %w(
70
+ 07 10 0C 00 00 00 00 00 05 00 FF FF 08 00 4D 00
71
+ ).join(' ')
72
+
73
+ expected_area = %w(
74
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
75
+ 0A 00 08 00
76
+ ).join(' ')
77
+
78
+ got_line, got_area = get_chartarea_formats(@chart)
79
+
80
+ assert_equal(expected_line, got_line, @caption1)
81
+ assert_equal(expected_area, got_area, @caption2)
82
+
83
+
84
+ reset_chart(@chart)
85
+
86
+ @chart.set_chartarea(
87
+ :line_color => 'red'
88
+ )
89
+
90
+ expected_line = %w(
91
+ 07 10 0C 00 FF 00 00 00 00 00 FF FF 00 00 0A 00
92
+ ).join(' ')
93
+
94
+ expected_area = %w(
95
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 00 00 00 00
96
+ 4E 00 4D 00
97
+ ).join(' ')
98
+
99
+ got_line, got_area = get_chartarea_formats(@chart)
100
+
101
+ assert_equal(expected_line, got_line, @caption1)
102
+ assert_equal(expected_area, got_area, @caption2)
103
+
104
+
105
+ reset_chart(@chart)
106
+
107
+ @chart.set_chartarea(
108
+ :line_pattern => 2
109
+ )
110
+
111
+ expected_line = %w(
112
+ 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
113
+ ).join(' ')
114
+
115
+ expected_area = %w(
116
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 00 00 00 00
117
+ 4E 00 4D 00
118
+ ).join(' ')
119
+
120
+ got_line, got_area = get_chartarea_formats(@chart)
121
+
122
+ assert_equal(expected_line, got_line, @caption1)
123
+ assert_equal(expected_area, got_area, @caption2)
124
+
125
+
126
+ reset_chart(@chart)
127
+
128
+ @chart.set_chartarea(
129
+ :line_weight => 3
130
+ )
131
+
132
+ expected_line = %w(
133
+ 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
134
+ ).join(' ')
135
+
136
+ expected_area = %w(
137
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 00 00 00 00
138
+ 4E 00 4D 00
139
+ ).join(' ')
140
+
141
+ got_line, got_area = get_chartarea_formats(@chart)
142
+
143
+ assert_equal(expected_line, got_line, @caption1)
144
+ assert_equal(expected_area, got_area, @caption2)
145
+
146
+
147
+ reset_chart(@chart)
148
+
149
+ @chart.set_chartarea(
150
+ :color => 'red',
151
+ :line_color => 'black'
152
+ )
153
+
154
+ expected_line = %w(
155
+ 07 10 0C 00 00 00 00 00 00 00 FF FF 00 00 08 00
156
+ ).join(' ')
157
+
158
+ expected_area = %w(
159
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
160
+ 0A 00 08 00
161
+ ).join(' ')
162
+
163
+ got_line, got_area = get_chartarea_formats(@chart)
164
+
165
+ assert_equal(expected_line, got_line, @caption1)
166
+ assert_equal(expected_area, got_area, @caption2)
167
+
168
+
169
+ reset_chart(@chart)
170
+
171
+ @chart.set_chartarea(
172
+ :color => 'red',
173
+ :line_pattern => 2
174
+ )
175
+
176
+ expected_line = %w(
177
+ 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
178
+ ).join(' ')
179
+
180
+ expected_area = %w(
181
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
182
+ 0A 00 08 00
183
+ ).join(' ')
184
+
185
+ got_line, got_area = get_chartarea_formats(@chart)
186
+
187
+ assert_equal(expected_line, got_line, @caption1)
188
+ assert_equal(expected_area, got_area, @caption2)
189
+
190
+
191
+ reset_chart(@chart)
192
+
193
+ @chart.set_chartarea(
194
+ :color => 'red',
195
+ :line_weight => 3
196
+ )
197
+
198
+ expected_line = %w(
199
+ 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
200
+ ).join(' ')
201
+
202
+ expected_area = %w(
203
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
204
+ 0A 00 08 00
205
+ ).join(' ')
206
+
207
+ got_line, got_area = get_chartarea_formats(@chart)
208
+
209
+ assert_equal(expected_line, got_line, @caption1)
210
+ assert_equal(expected_area, got_area, @caption2)
211
+
212
+
213
+ @chart.embedded = true
214
+
215
+ reset_chart(@chart, true)
216
+
217
+ @chart.set_chartarea(
218
+ )
219
+
220
+ expected_line = %w(
221
+ 07 10 0C 00 00 00 00 00 00 00 00 00 09 00 4D 00
222
+ ).join(' ')
223
+
224
+ expected_area = %w(
225
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
226
+ 4E 00 4D 00
227
+ ).join(' ')
228
+
229
+ got_line, got_area = get_chartarea_formats(@chart)
230
+
231
+ assert_equal(expected_line, got_line, @embed_caption1)
232
+ assert_equal(expected_area, got_area, @embed_caption2)
233
+
234
+
235
+ reset_chart(@chart, true)
236
+
237
+ @chart.set_chartarea(
238
+ :color => 'red',
239
+ :line_color => 'black',
240
+ :line_pattern => 2,
241
+ :line_weight => 3
242
+ )
243
+
244
+ expected_line = %w(
245
+ 07 10 0C 00 00 00 00 00 01 00 01 00 00 00 08 00
246
+ ).join(' ')
247
+
248
+ expected_area = %w(
249
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
250
+ 0A 00 08 00
251
+ ).join(' ')
252
+
253
+ got_line, got_area = get_chartarea_formats(@chart)
254
+
255
+ assert_equal(expected_line, got_line, @embed_caption1)
256
+ assert_equal(expected_area, got_area, @embed_caption2)
257
+
258
+
259
+ reset_chart(@chart, true)
260
+
261
+ @chart.set_chartarea(
262
+ :color => 'red'
263
+ )
264
+
265
+ expected_line = %w(
266
+ 07 10 0C 00 00 00 00 00 00 00 FF FF 09 00 4D 00
267
+ ).join(' ')
268
+
269
+ expected_area = %w(
270
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
271
+ 0A 00 08 00
272
+ ).join(' ')
273
+
274
+ got_line, got_area = get_chartarea_formats(@chart)
275
+
276
+ assert_equal(expected_line, got_line, @embed_caption1)
277
+ assert_equal(expected_area, got_area, @embed_caption2)
278
+
279
+
280
+ reset_chart(@chart, true)
281
+
282
+ @chart.set_chartarea(
283
+ :line_color => 'red'
284
+ )
285
+
286
+ expected_line = %w(
287
+ 07 10 0C 00 FF 00 00 00 00 00 FF FF 00 00 0A 00
288
+ ).join(' ')
289
+
290
+ expected_area = %w(
291
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
292
+ 4E 00 4D 00
293
+ ).join(' ')
294
+
295
+ got_line, got_area = get_chartarea_formats(@chart)
296
+
297
+ assert_equal(expected_line, got_line, @embed_caption1)
298
+ assert_equal(expected_area, got_area, @embed_caption2)
299
+
300
+
301
+ reset_chart(@chart, true)
302
+
303
+ @chart.set_chartarea(
304
+ :line_pattern => 2
305
+ )
306
+
307
+ expected_line = %w(
308
+ 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
309
+ ).join(' ')
310
+
311
+ expected_area = %w(
312
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
313
+ 4E 00 4D 00
314
+ ).join(' ')
315
+
316
+ got_line, got_area = get_chartarea_formats(@chart)
317
+
318
+ assert_equal(expected_line, got_line, @embed_caption1)
319
+ assert_equal(expected_area, got_area, @embed_caption2)
320
+
321
+
322
+ reset_chart(@chart, true)
323
+
324
+ @chart.set_chartarea(
325
+ :line_weight => 3
326
+ )
327
+
328
+ expected_line = %w(
329
+ 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
330
+ ).join(' ')
331
+
332
+ expected_area = %w(
333
+ 0A 10 10 00 FF FF FF 00 00 00 00 00 01 00 01 00
334
+ 4E 00 4D 00
335
+ ).join(' ')
336
+
337
+ got_line, got_area = get_chartarea_formats(@chart)
338
+
339
+ assert_equal(expected_line, got_line, @embed_caption1)
340
+ assert_equal(expected_area, got_area, @embed_caption2)
341
+
342
+
343
+ reset_chart(@chart, true)
344
+
345
+ @chart.set_chartarea(
346
+ :color => 'red',
347
+ :line_color => 'black'
348
+ )
349
+
350
+ expected_line = %w(
351
+ 07 10 0C 00 00 00 00 00 00 00 FF FF 00 00 08 00
352
+ ).join(' ')
353
+
354
+ expected_area = %w(
355
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
356
+ 0A 00 08 00
357
+ ).join(' ')
358
+
359
+ got_line, got_area = get_chartarea_formats(@chart)
360
+
361
+ assert_equal(expected_line, got_line, @embed_caption1)
362
+ assert_equal(expected_area, got_area, @embed_caption2)
363
+
364
+
365
+ reset_chart(@chart, true)
366
+
367
+ @chart.set_chartarea(
368
+ :color => 'red',
369
+ :line_pattern => 2
370
+ )
371
+
372
+ expected_line = %w(
373
+ 07 10 0C 00 00 00 00 00 01 00 FF FF 00 00 4F 00
374
+ ).join(' ')
375
+
376
+ expected_area = %w(
377
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
378
+ 0A 00 08 00
379
+ ).join(' ')
380
+
381
+ got_line, got_area = get_chartarea_formats(@chart)
382
+
383
+ assert_equal(expected_line, got_line, @embed_caption1)
384
+ assert_equal(expected_area, got_area, @embed_caption2)
385
+
386
+
387
+ reset_chart(@chart, true)
388
+
389
+ @chart.set_chartarea(
390
+ :color => 'red',
391
+ :line_weight => 3
392
+ )
393
+
394
+ expected_line = %w(
395
+ 07 10 0C 00 00 00 00 00 00 00 01 00 00 00 4F 00
396
+ ).join(' ')
397
+
398
+ expected_area = %w(
399
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
400
+ 0A 00 08 00
401
+ ).join(' ')
402
+
403
+ got_line, got_area = get_chartarea_formats(@chart)
404
+
405
+ assert_equal(expected_line, got_line, @embed_caption1)
406
+ assert_equal(expected_area, got_area, @embed_caption2)
407
+
408
+
409
+ @chart.embedded = false
410
+
411
+ reset_chart(@chart)
412
+
413
+ @chart.set_plotarea(
414
+ )
415
+
416
+ expected_line = %w(
417
+ 07 10 0C 00 80 80 80 00 00 00 00 00 00 00 17 00
418
+ ).join(' ')
419
+
420
+ expected_area = %w(
421
+ 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
422
+ 16 00 4F 00
423
+ ).join(' ')
424
+
425
+ got_line, got_area = get_plotarea_formats(@chart)
426
+
427
+ assert_equal(expected_line, got_line, @plotarea_caption1)
428
+ assert_equal(expected_area, got_area, @plotarea_caption2)
429
+
430
+
431
+ reset_chart(@chart)
432
+
433
+ @chart.set_plotarea(
434
+ :color => 'red',
435
+ :line_color => 'black',
436
+ :line_pattern => 2,
437
+ :line_weight => 3
438
+ )
439
+
440
+ expected_line = %w(
441
+ 07 10 0C 00 00 00 00 00 01 00 01 00 00 00 08 00
442
+ ).join(' ')
443
+
444
+ expected_area = %w(
445
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
446
+ 0A 00 08 00
447
+ ).join(' ')
448
+
449
+ got_line, got_area = get_plotarea_formats(@chart)
450
+
451
+ assert_equal(expected_line, got_line, @plotarea_caption1)
452
+ assert_equal(expected_area, got_area, @plotarea_caption2)
453
+
454
+
455
+ reset_chart(@chart)
456
+
457
+ @chart.set_plotarea(
458
+ :color => 'red'
459
+ )
460
+
461
+ expected_line = %w(
462
+ 07 10 0C 00 80 80 80 00 00 00 00 00 00 00 17 00
463
+ ).join(' ')
464
+
465
+ expected_area = %w(
466
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
467
+ 0A 00 08 00
468
+ ).join(' ')
469
+
470
+ got_line, got_area = get_plotarea_formats(@chart)
471
+
472
+ assert_equal(expected_line, got_line, @plotarea_caption1)
473
+ assert_equal(expected_area, got_area, @plotarea_caption2)
474
+
475
+
476
+ reset_chart(@chart)
477
+
478
+ @chart.set_plotarea(
479
+ :line_color => 'red'
480
+ )
481
+
482
+ expected_line = %w(
483
+ 07 10 0C 00 FF 00 00 00 00 00 00 00 00 00 0A 00
484
+ ).join(' ')
485
+
486
+ expected_area = %w(
487
+ 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
488
+ 16 00 08 00
489
+ ).join(' ')
490
+
491
+ got_line, got_area = get_plotarea_formats(@chart)
492
+
493
+ assert_equal(expected_line, got_line, @plotarea_caption1)
494
+ assert_equal(expected_area, got_area, @plotarea_caption2)
495
+
496
+
497
+ reset_chart(@chart)
498
+
499
+ @chart.set_plotarea(
500
+ :line_pattern => 2
501
+ )
502
+
503
+ expected_line = %w(
504
+ 07 10 0C 00 80 80 80 00 01 00 00 00 00 00 17 00
505
+ ).join(' ')
506
+
507
+ expected_area = %w(
508
+ 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
509
+ 16 00 08 00
510
+ ).join(' ')
511
+
512
+ got_line, got_area = get_plotarea_formats(@chart)
513
+
514
+ assert_equal(expected_line, got_line, @plotarea_caption1)
515
+ assert_equal(expected_area, got_area, @plotarea_caption2)
516
+
517
+
518
+ reset_chart(@chart)
519
+
520
+ @chart.set_plotarea(
521
+ :line_weight => 3
522
+ )
523
+
524
+ expected_line = %w(
525
+ 07 10 0C 00 80 80 80 00 00 00 01 00 00 00 17 00
526
+ ).join(' ')
527
+
528
+ expected_area = %w(
529
+ 0A 10 10 00 C0 C0 C0 00 00 00 00 00 01 00 00 00
530
+ 16 00 08 00
531
+ ).join(' ')
532
+
533
+ got_line, got_area = get_plotarea_formats(@chart)
534
+
535
+ assert_equal(expected_line, got_line, @plotarea_caption1)
536
+ assert_equal(expected_area, got_area, @plotarea_caption2)
537
+
538
+
539
+ reset_chart(@chart)
540
+
541
+ @chart.set_plotarea(
542
+ :color => 'red',
543
+ :line_color => 'black'
544
+ )
545
+
546
+ expected_line = %w(
547
+ 07 10 0C 00 00 00 00 00 00 00 00 00 00 00 08 00
548
+ ).join(' ')
549
+
550
+ expected_area = %w(
551
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
552
+ 0A 00 08 00
553
+ ).join(' ')
554
+
555
+ got_line, got_area = get_plotarea_formats(@chart)
556
+
557
+ assert_equal(expected_line, got_line, @plotarea_caption1)
558
+ assert_equal(expected_area, got_area, @plotarea_caption2)
559
+
560
+
561
+ reset_chart(@chart)
562
+
563
+ @chart.set_plotarea(
564
+ :color => 'red',
565
+ :line_pattern => 2
566
+ )
567
+
568
+ expected_line = %w(
569
+ 07 10 0C 00 80 80 80 00 01 00 00 00 00 00 17 00
570
+ ).join(' ')
571
+
572
+ expected_area = %w(
573
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
574
+ 0A 00 08 00
575
+ ).join(' ')
576
+
577
+ got_line, got_area = get_plotarea_formats(@chart)
578
+
579
+ assert_equal(expected_line, got_line, @plotarea_caption1)
580
+ assert_equal(expected_area, got_area, @plotarea_caption2)
581
+
582
+
583
+ reset_chart(@chart)
584
+
585
+ @chart.set_plotarea(
586
+ :color => 'red',
587
+ :line_weight => 3
588
+ )
589
+
590
+ expected_line = %w(
591
+ 07 10 0C 00 80 80 80 00 00 00 01 00 00 00 17 00
592
+ ).join(' ')
593
+
594
+ expected_area = %w(
595
+ 0A 10 10 00 FF 00 00 00 00 00 00 00 01 00 00 00
596
+ 0A 00 08 00
597
+ ).join(' ')
598
+
599
+ got_line, got_area = get_plotarea_formats(@chart)
600
+
601
+ assert_equal(expected_line, got_line, @plotarea_caption1)
602
+ assert_equal(expected_area, got_area, @plotarea_caption2)
603
+ end
604
+
605
+
606
+ ###############################################################################
607
+ #
608
+ # Reset the chart data for testing.
609
+ #
610
+ def reset_chart(chart, embedded = nil)
611
+ # Reset the chart data.
612
+ chart.data = ''
613
+ chart.set_default_properties
614
+
615
+ if embedded
616
+ chart.set_embedded_config_data
617
+ end
618
+ end
619
+
620
+ ###############################################################################
621
+ #
622
+ # Extract Line and Area format records from the Chartarea Frame stream.
623
+ #
624
+ def get_chartarea_formats(chart)
625
+ chart.store_chartarea_frame_stream
626
+
627
+ line = unpack_record(chart.data[12, 16])
628
+ area = unpack_record(chart.data[28, 20])
629
+
630
+ [line, area]
631
+ end
632
+
633
+ ###############################################################################
634
+ #
635
+ # Extract Line and Area format records from the Chartarea Frame stream.
636
+ #
637
+ def get_plotarea_formats(chart)
638
+ chart.store_plotarea_frame_stream
639
+
640
+ line = unpack_record(chart.data[12, 16])
641
+ area = unpack_record(chart.data[28, 20])
642
+
643
+ [line, area]
644
+ end
645
+
646
+ def unpack_record(data)
647
+ data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
648
+ end
649
+ end