caxlsx 3.1.1 → 3.2.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.
Files changed (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -343
  5. data/LICENSE +21 -21
  6. data/README.md +168 -172
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -98
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +97 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +388 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -71
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +494 -420
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +410 -401
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +395 -370
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -294
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -768
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -171
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -86
  186. data/test/drawing/tc_bar_chart.rb +86 -86
  187. data/test/drawing/tc_bar_series.rb +46 -46
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -10
  247. data/test/tc_package.rb +317 -314
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -143
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -62
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -160
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -77
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +101 -101
@@ -1,33 +1,33 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestPieSeries < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- chart = @ws.add_chart Axlsx::Pie3DChart, :title => "fishery"
9
- @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob", :colors => ["FF0000", "00FF00", "0000FF"]
10
- end
11
-
12
- def test_initialize
13
- assert_equal(@series.title.text, "bob", "series title has been applied")
14
- assert_equal(@series.labels.class, Axlsx::AxDataSource)
15
- assert_equal(@series.data.class, Axlsx::NumDataSource)
16
- assert_equal(@series.explosion, nil, "series shape has been applied")
17
- end
18
-
19
- def test_explosion
20
- assert_raise(ArgumentError, "require valid explosion") { @series.explosion = :lots }
21
- assert_nothing_raised("allow valid explosion") { @series.explosion = 20 }
22
- assert(@series.explosion == 20)
23
- # issue 58 - explosion caused to_xml_string to fail - now tested
24
- assert_nothing_raised("allow to_xml_string") { @series.to_xml_string }
25
- end
26
-
27
- def test_to_xml_string
28
- doc = Nokogiri::XML(@series.to_xml_string)
29
- assert(doc.xpath("//srgbClr[@val='#{@series.colors[0]}']"))
30
- end
31
- #TODO test unique serialization parts
32
-
33
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestPieSeries < Test::Unit::TestCase
4
+
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
8
+ chart = @ws.add_chart Axlsx::Pie3DChart, :title => "fishery"
9
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob", :colors => ["FF0000", "00FF00", "0000FF"]
10
+ end
11
+
12
+ def test_initialize
13
+ assert_equal(@series.title.text, "bob", "series title has been applied")
14
+ assert_equal(@series.labels.class, Axlsx::AxDataSource)
15
+ assert_equal(@series.data.class, Axlsx::NumDataSource)
16
+ assert_equal(@series.explosion, nil, "series shape has been applied")
17
+ end
18
+
19
+ def test_explosion
20
+ assert_raise(ArgumentError, "require valid explosion") { @series.explosion = :lots }
21
+ assert_nothing_raised("allow valid explosion") { @series.explosion = 20 }
22
+ assert(@series.explosion == 20)
23
+ # issue 58 - explosion caused to_xml_string to fail - now tested
24
+ assert_nothing_raised("allow to_xml_string") { @series.to_xml_string }
25
+ end
26
+
27
+ def test_to_xml_string
28
+ doc = Nokogiri::XML(@series.to_xml_string)
29
+ assert(doc.xpath("//srgbClr[@val='#{@series.colors[0]}']"))
30
+ end
31
+ #TODO test unique serialization parts
32
+
33
+ end
@@ -1,36 +1,36 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestScaling < Test::Unit::TestCase
4
- def setup
5
- @scaling = Axlsx::Scaling.new
6
- end
7
-
8
- def teardown
9
- end
10
-
11
- def test_initialization
12
- assert(@scaling.orientation == :minMax)
13
- end
14
-
15
- def test_logBase
16
- assert_raise(ArgumentError) { @scaling.logBase = 1}
17
- assert_nothing_raised {@scaling.logBase = 10}
18
- end
19
-
20
- def test_orientation
21
- assert_raise(ArgumentError) { @scaling.orientation = "1"}
22
- assert_nothing_raised {@scaling.orientation = :maxMin}
23
- end
24
-
25
-
26
- def test_max
27
- assert_raise(ArgumentError) { @scaling.max = 1}
28
- assert_nothing_raised {@scaling.max = 10.5}
29
- end
30
-
31
- def test_min
32
- assert_raise(ArgumentError) { @scaling.min = 1}
33
- assert_nothing_raised {@scaling.min = 10.5}
34
- end
35
-
36
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestScaling < Test::Unit::TestCase
4
+ def setup
5
+ @scaling = Axlsx::Scaling.new
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_initialization
12
+ assert(@scaling.orientation == :minMax)
13
+ end
14
+
15
+ def test_logBase
16
+ assert_raise(ArgumentError) { @scaling.logBase = 1}
17
+ assert_nothing_raised {@scaling.logBase = 10}
18
+ end
19
+
20
+ def test_orientation
21
+ assert_raise(ArgumentError) { @scaling.orientation = "1"}
22
+ assert_nothing_raised {@scaling.orientation = :maxMin}
23
+ end
24
+
25
+
26
+ def test_max
27
+ assert_raise(ArgumentError) { @scaling.max = 1}
28
+ assert_nothing_raised {@scaling.max = 10.5}
29
+ end
30
+
31
+ def test_min
32
+ assert_raise(ArgumentError) { @scaling.min = 1}
33
+ assert_nothing_raised {@scaling.min = 10.5}
34
+ end
35
+
36
+ end
@@ -1,48 +1,48 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestScatterChart < Test::Unit::TestCase
4
- def setup
5
- @p = Axlsx::Package.new
6
- @chart = nil
7
- @p.workbook.add_worksheet do |sheet|
8
- sheet.add_row ["First", 1, 5, 7, 9]
9
- sheet.add_row ["", 1, 25, 49, 81]
10
- sheet.add_row ["Second", 5, 2, 14, 9]
11
- sheet.add_row ["", 5, 10, 15, 20]
12
- sheet.add_chart(Axlsx::ScatterChart, :title => "example 7: Scatter Chart") do |chart|
13
- chart.start_at 0, 4
14
- chart.end_at 10, 19
15
- chart.add_series :xData => sheet["B1:E1"], :yData => sheet["B2:E2"], :title => sheet["A1"]
16
- chart.add_series :xData => sheet["B3:E3"], :yData => sheet["B4:E4"], :title => sheet["A3"]
17
- @chart = chart
18
- end
19
- end
20
- end
21
-
22
- def teardown
23
- end
24
-
25
- def test_scatter_style
26
- @chart.scatterStyle = :marker
27
- assert(@chart.scatterStyle == :marker)
28
- assert_raise(ArgumentError) { @chart.scatterStyle = :buckshot }
29
- end
30
- def test_initialization
31
- assert_equal(@chart.scatterStyle, :lineMarker, "scatterStyle defualt incorrect")
32
- assert_equal(@chart.series_type, Axlsx::ScatterSeries, "series type incorrect")
33
- assert(@chart.xValAxis.is_a?(Axlsx::ValAxis), "independant value axis not created")
34
- assert(@chart.yValAxis.is_a?(Axlsx::ValAxis), "dependant value axis not created")
35
- end
36
-
37
- def test_to_xml_string
38
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
39
- doc = Nokogiri::XML(@chart.to_xml_string)
40
- errors = []
41
- schema.validate(doc).each do |error|
42
- errors.push error
43
- puts error.message
44
- end
45
- assert(errors.empty?, "error free validation")
46
- end
47
-
48
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestScatterChart < Test::Unit::TestCase
4
+ def setup
5
+ @p = Axlsx::Package.new
6
+ @chart = nil
7
+ @p.workbook.add_worksheet do |sheet|
8
+ sheet.add_row ["First", 1, 5, 7, 9]
9
+ sheet.add_row ["", 1, 25, 49, 81]
10
+ sheet.add_row ["Second", 5, 2, 14, 9]
11
+ sheet.add_row ["", 5, 10, 15, 20]
12
+ sheet.add_chart(Axlsx::ScatterChart, :title => "example 7: Scatter Chart") do |chart|
13
+ chart.start_at 0, 4
14
+ chart.end_at 10, 19
15
+ chart.add_series :xData => sheet["B1:E1"], :yData => sheet["B2:E2"], :title => sheet["A1"]
16
+ chart.add_series :xData => sheet["B3:E3"], :yData => sheet["B4:E4"], :title => sheet["A3"]
17
+ @chart = chart
18
+ end
19
+ end
20
+ end
21
+
22
+ def teardown
23
+ end
24
+
25
+ def test_scatter_style
26
+ @chart.scatterStyle = :marker
27
+ assert(@chart.scatterStyle == :marker)
28
+ assert_raise(ArgumentError) { @chart.scatterStyle = :buckshot }
29
+ end
30
+ def test_initialization
31
+ assert_equal(@chart.scatterStyle, :lineMarker, "scatterStyle defualt incorrect")
32
+ assert_equal(@chart.series_type, Axlsx::ScatterSeries, "series type incorrect")
33
+ assert(@chart.xValAxis.is_a?(Axlsx::ValAxis), "independant value axis not created")
34
+ assert(@chart.yValAxis.is_a?(Axlsx::ValAxis), "dependant value axis not created")
35
+ end
36
+
37
+ def test_to_xml_string
38
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
39
+ doc = Nokogiri::XML(@chart.to_xml_string)
40
+ errors = []
41
+ schema.validate(doc).each do |error|
42
+ errors.push error
43
+ puts error.message
44
+ end
45
+ assert(errors.empty?, "error free validation")
46
+ end
47
+
48
+ end
@@ -1,56 +1,74 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestScatterSeries < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Scatter Chart"
9
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"exponents", :color => 'FF0000', :smooth => true
10
- end
11
-
12
- def test_initialize
13
- assert_equal(@series.title.text, "exponents", "series title has been applied")
14
- end
15
-
16
- def test_smoothed_chart_default_smoothing
17
- @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Smooth Chart", :scatter_style => :smoothMarker
18
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"smoothed exponents"
19
- assert(@series.smooth, "series is smooth by default on smooth charts")
20
- end
21
-
22
- def test_unsmoothed_chart_default_smoothing
23
- @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Unsmooth Chart", :scatter_style => :line
24
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"unsmoothed exponents"
25
- assert(!@series.smooth, "series is not smooth by default on non-smooth charts")
26
- end
27
-
28
- def test_explicit_smoothing
29
- @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Unsmooth Chart, Smooth Series", :scatter_style => :line
30
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"smoothed exponents", :smooth => true
31
- assert(@series.smooth, "series is smooth when overriding chart default")
32
- end
33
-
34
- def test_explicit_unsmoothing
35
- @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Smooth Chart, Unsmooth Series", :scatter_style => :smoothMarker
36
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"unsmoothed exponents", :smooth => false
37
- assert(!@series.smooth, "series is not smooth when overriding chart default")
38
- end
39
-
40
- def test_ln_width
41
- @chart = @ws.add_chart Axlsx::ScatterChart, :title => "ln width", :scatter_style => :line
42
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"ln_width"
43
- @series.ln_width = 12700
44
- assert_equal(@series.ln_width, 12700, 'line width assigment is allowed')
45
- end
46
-
47
- def test_to_xml_string
48
- @chart.scatter_style = :line
49
- @series.ln_width = 12700
50
- doc = Nokogiri::XML(@chart.to_xml_string)
51
- assert_equal(12700, @series.ln_width)
52
- assert_equal(doc.xpath("//a:srgbClr[@val='#{@series.color}']").size,4)
53
- assert_equal(doc.xpath("//a:ln[@w='#{@series.ln_width}']").length, 1)
54
- end
55
-
56
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestScatterSeries < Test::Unit::TestCase
4
+
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
8
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Scatter Chart"
9
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"exponents", :color => 'FF0000', :smooth => true
10
+ end
11
+
12
+ def test_initialize
13
+ assert_equal(@series.title.text, "exponents", "series title has been applied")
14
+ end
15
+
16
+ def test_smoothed_chart_default_smoothing
17
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Smooth Chart", :scatter_style => :smoothMarker
18
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"smoothed exponents"
19
+ assert(@series.smooth, "series is smooth by default on smooth charts")
20
+ end
21
+
22
+ def test_unsmoothed_chart_default_smoothing
23
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Unsmooth Chart", :scatter_style => :line
24
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"unsmoothed exponents"
25
+ assert(!@series.smooth, "series is not smooth by default on non-smooth charts")
26
+ end
27
+
28
+ def test_explicit_smoothing
29
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Unsmooth Chart, Smooth Series", :scatter_style => :line
30
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"smoothed exponents", :smooth => true
31
+ assert(@series.smooth, "series is smooth when overriding chart default")
32
+ end
33
+
34
+ def test_explicit_unsmoothing
35
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => "Smooth Chart, Unsmooth Series", :scatter_style => :smoothMarker
36
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"unsmoothed exponents", :smooth => false
37
+ assert(!@series.smooth, "series is not smooth when overriding chart default")
38
+ end
39
+
40
+ def test_ln_width
41
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => "ln width", :scatter_style => :line
42
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"ln_width"
43
+ @series.ln_width = 12700
44
+ assert_equal(@series.ln_width, 12700, 'line width assigment is allowed')
45
+ end
46
+
47
+ def test_to_xml_string
48
+ @chart.scatter_style = :line
49
+ @series.ln_width = 12700
50
+ doc = Nokogiri::XML(@chart.to_xml_string)
51
+ assert_equal(12700, @series.ln_width)
52
+ assert_equal(doc.xpath("//a:srgbClr[@val='#{@series.color}']").size,4)
53
+ assert_equal(doc.xpath("//a:ln[@w='#{@series.ln_width}']").length, 1)
54
+ end
55
+
56
+ def test_false_show_marker
57
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => 'Smooth Chart', :scatter_style => :smoothMarker
58
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9]
59
+ assert(@series.show_marker, 'markers are enabled for marker-related styles')
60
+ end
61
+
62
+ def test_true_show_marker
63
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => 'Line chart', :scatter_style => :line
64
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9]
65
+ assert(!@series.show_marker, 'markers are disabled for markerless scatter styles')
66
+ end
67
+
68
+ def test_marker_symbol
69
+ @chart = @ws.add_chart Axlsx::ScatterChart, :title => 'Line chart', :scatter_style => :line
70
+ @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :marker_symbol => :diamond
71
+ assert_equal(@series.marker_symbol, :diamond, 'series could have own custom marker symbol')
72
+ end
73
+
74
+ end
@@ -1,31 +1,31 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestSerAxis < Test::Unit::TestCase
4
- def setup
5
- @axis = Axlsx::SerAxis.new
6
- end
7
-
8
- def teardown
9
- end
10
-
11
- def test_options
12
- a = Axlsx::SerAxis.new(:tick_lbl_skip => 9, :tick_mark_skip => 7)
13
- assert_equal(a.tick_lbl_skip, 9)
14
- assert_equal(a.tick_mark_skip, 7)
15
- end
16
-
17
-
18
- def test_tick_lbl_skip
19
- assert_raise(ArgumentError, "requires valid tick_lbl_skip") { @axis.tick_lbl_skip = -1 }
20
- assert_nothing_raised("accepts valid tick_lbl_skip") { @axis.tick_lbl_skip = 1 }
21
- assert_equal(@axis.tick_lbl_skip, 1)
22
- end
23
-
24
-
25
- def test_tick_mark_skip
26
- assert_raise(ArgumentError, "requires valid tick_mark_skip") { @axis.tick_mark_skip = :my_eyes }
27
- assert_nothing_raised("accepts valid tick_mark_skip") { @axis.tick_mark_skip = 2 }
28
- assert_equal(@axis.tick_mark_skip, 2)
29
- end
30
-
31
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestSerAxis < Test::Unit::TestCase
4
+ def setup
5
+ @axis = Axlsx::SerAxis.new
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_options
12
+ a = Axlsx::SerAxis.new(:tick_lbl_skip => 9, :tick_mark_skip => 7)
13
+ assert_equal(a.tick_lbl_skip, 9)
14
+ assert_equal(a.tick_mark_skip, 7)
15
+ end
16
+
17
+
18
+ def test_tick_lbl_skip
19
+ assert_raise(ArgumentError, "requires valid tick_lbl_skip") { @axis.tick_lbl_skip = -1 }
20
+ assert_nothing_raised("accepts valid tick_lbl_skip") { @axis.tick_lbl_skip = 1 }
21
+ assert_equal(@axis.tick_lbl_skip, 1)
22
+ end
23
+
24
+
25
+ def test_tick_mark_skip
26
+ assert_raise(ArgumentError, "requires valid tick_mark_skip") { @axis.tick_mark_skip = :my_eyes }
27
+ assert_nothing_raised("accepts valid tick_mark_skip") { @axis.tick_mark_skip = 2 }
28
+ assert_equal(@axis.tick_mark_skip, 2)
29
+ end
30
+
31
+ end
@@ -1,23 +1,23 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestSeries < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- chart = @ws.add_chart Axlsx::Chart, :title => "fishery"
9
- @series = chart.add_series :title=>"bob"
10
- end
11
-
12
- def test_initialize
13
- assert_equal(@series.title.text, "bob", "series title has been applied")
14
- assert_equal(@series.order, @series.index, "order is index by default")
15
- assert_equal(@series.index, @series.chart.series.index(@series), "index is applied")
16
- end
17
-
18
- def test_order
19
- @series.order = 2
20
- assert_equal(@series.order, 2)
21
- end
22
-
23
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestSeries < Test::Unit::TestCase
4
+
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
8
+ chart = @ws.add_chart Axlsx::Chart, :title => "fishery"
9
+ @series = chart.add_series :title=>"bob"
10
+ end
11
+
12
+ def test_initialize
13
+ assert_equal(@series.title.text, "bob", "series title has been applied")
14
+ assert_equal(@series.order, @series.index, "order is index by default")
15
+ assert_equal(@series.index, @series.chart.series.index(@series), "index is applied")
16
+ end
17
+
18
+ def test_order
19
+ @series.order = 2
20
+ assert_equal(@series.order, 2)
21
+ end
22
+
23
+ end
@@ -1,54 +1,54 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestSeriesTitle < Test::Unit::TestCase
4
- def setup
5
- @p = Axlsx::Package.new
6
- ws = @p.workbook.add_worksheet
7
- @row = ws.add_row ["one", 1, Time.now]
8
- @title = Axlsx::SeriesTitle.new
9
- @chart = ws.add_chart Axlsx::Bar3DChart
10
- end
11
-
12
- def teardown
13
- end
14
-
15
- def test_initialization
16
- assert(@title.text == "")
17
- assert(@title.cell == nil)
18
- end
19
-
20
- def test_text
21
- assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
22
- @title.cell = @row.cells.first
23
- @title.text = "bob"
24
- assert(@title.cell == nil, "setting title with text clears the cell")
25
- end
26
-
27
- def test_cell
28
- assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
29
- @title.cell = @row.cells.first
30
- assert(@title.text == "one")
31
- end
32
-
33
- def test_to_xml_string_for_special_characters
34
- @chart.add_series(title: @title, data: [3, 7], labels: ['A', 'B'])
35
-
36
- @title.text = "&><'\""
37
-
38
- doc = Nokogiri::XML(@chart.to_xml_string)
39
- errors = doc.errors
40
- assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
41
- end
42
-
43
- def test_to_xml_string_for_special_characters_in_cell
44
- @chart.add_series(title: @title, data: [3, 7], labels: ['A', 'B'])
45
-
46
- cell = @row.cells.first
47
- cell.value = "&><'\""
48
- @title.cell = cell
49
-
50
- doc = Nokogiri::XML(@chart.to_xml_string)
51
- errors = doc.errors
52
- assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
53
- end
54
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestSeriesTitle < Test::Unit::TestCase
4
+ def setup
5
+ @p = Axlsx::Package.new
6
+ ws = @p.workbook.add_worksheet
7
+ @row = ws.add_row ["one", 1, Time.now]
8
+ @title = Axlsx::SeriesTitle.new
9
+ @chart = ws.add_chart Axlsx::Bar3DChart
10
+ end
11
+
12
+ def teardown
13
+ end
14
+
15
+ def test_initialization
16
+ assert(@title.text == "")
17
+ assert(@title.cell == nil)
18
+ end
19
+
20
+ def test_text
21
+ assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
22
+ @title.cell = @row.cells.first
23
+ @title.text = "bob"
24
+ assert(@title.cell == nil, "setting title with text clears the cell")
25
+ end
26
+
27
+ def test_cell
28
+ assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
29
+ @title.cell = @row.cells.first
30
+ assert(@title.text == "one")
31
+ end
32
+
33
+ def test_to_xml_string_for_special_characters
34
+ @chart.add_series(title: @title, data: [3, 7], labels: ['A', 'B'])
35
+
36
+ @title.text = "&><'\""
37
+
38
+ doc = Nokogiri::XML(@chart.to_xml_string)
39
+ errors = doc.errors
40
+ assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
41
+ end
42
+
43
+ def test_to_xml_string_for_special_characters_in_cell
44
+ @chart.add_series(title: @title, data: [3, 7], labels: ['A', 'B'])
45
+
46
+ cell = @row.cells.first
47
+ cell.value = "&><'\""
48
+ @title.cell = cell
49
+
50
+ doc = Nokogiri::XML(@chart.to_xml_string)
51
+ errors = doc.errors
52
+ assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
53
+ end
54
+ end
@@ -1,18 +1,18 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestStrData < Test::Unit::TestCase
4
-
5
- def setup
6
- @str_data = Axlsx::StrData.new :data => ["1", "2", "3"]
7
- end
8
-
9
- def test_to_xml_string_strLit
10
- str = '<?xml version="1.0" encoding="UTF-8"?>'
11
- str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
12
- str << @str_data.to_xml_string
13
- doc = Nokogiri::XML(str)
14
- assert_equal(doc.xpath("//c:strLit/c:ptCount[@val=3]").size, 1)
15
- assert_equal(doc.xpath("//c:strLit/c:pt/c:v[text()='1']").size, 1)
16
- end
17
-
18
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestStrData < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @str_data = Axlsx::StrData.new :data => ["1", "2", "3"]
7
+ end
8
+
9
+ def test_to_xml_string_strLit
10
+ str = '<?xml version="1.0" encoding="UTF-8"?>'
11
+ str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
12
+ str << @str_data.to_xml_string
13
+ doc = Nokogiri::XML(str)
14
+ assert_equal(doc.xpath("//c:strLit/c:ptCount[@val=3]").size, 1)
15
+ assert_equal(doc.xpath("//c:strLit/c:pt/c:v[text()='1']").size, 1)
16
+ end
17
+
18
+ end