gruff 0.3.7 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (540) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -1
  3. data/.travis.yml +6 -0
  4. data/Gemfile +2 -8
  5. data/History.txt +76 -0
  6. data/MIT-LICENSE +3 -2
  7. data/README.md +96 -6
  8. data/RELEASE.md +92 -0
  9. data/Rakefile +203 -23
  10. data/gruff.gemspec +13 -10
  11. data/lib/gruff.rb +8 -7
  12. data/lib/gruff/accumulator_bar.rb +4 -13
  13. data/lib/gruff/area.rb +6 -13
  14. data/lib/gruff/bar.rb +24 -3
  15. data/lib/gruff/bar_conversion.rb +31 -31
  16. data/lib/gruff/base.rb +310 -267
  17. data/lib/gruff/bezier.rb +46 -0
  18. data/lib/gruff/bullet.rb +3 -1
  19. data/lib/gruff/dot.rb +56 -44
  20. data/lib/gruff/line.rb +83 -69
  21. data/lib/gruff/net.rb +7 -9
  22. data/lib/gruff/pie.rb +2 -4
  23. data/lib/gruff/scatter.rb +25 -29
  24. data/lib/gruff/side_bar.rb +54 -37
  25. data/lib/gruff/side_stacked_bar.rb +25 -5
  26. data/lib/gruff/spider.rb +22 -21
  27. data/lib/gruff/themes.rb +102 -0
  28. data/lib/gruff/version.rb +1 -1
  29. data/test/gruff_test_case.rb +68 -38
  30. data/test/image_compare.rb +58 -0
  31. data/test/output/accum_bar.png +0 -0
  32. data/test/output/area_keynote.png +0 -0
  33. data/test/output/area_keynote_small.png +0 -0
  34. data/test/output/area_many.png +0 -0
  35. data/test/output/area_many_areas_small.png +0 -0
  36. data/test/output/area_tiny.png +0 -0
  37. data/test/output/area_wide.png +0 -0
  38. data/test/output/bar2_wrapped_legend_16_400.png +0 -0
  39. data/test/output/bar2_wrapped_legend_16_800.png +0 -0
  40. data/test/output/bar2_wrapped_legend_30_400.png +0 -0
  41. data/test/output/bar2_wrapped_legend_30_800.png +0 -0
  42. data/test/output/bar2_wrapped_legend_4_400.png +0 -0
  43. data/test/output/bar2_wrapped_legend_4_800.png +0 -0
  44. data/test/output/bar2_wrapped_legend__400.png +0 -0
  45. data/test/output/bar2_wrapped_legend__800.png +0 -0
  46. data/test/output/bar_background_gradient_bottom_top.png +0 -0
  47. data/test/output/bar_background_gradient_left_right.png +0 -0
  48. data/test/output/bar_background_gradient_right_left.png +0 -0
  49. data/test/output/bar_background_gradient_top_bottom.png +0 -0
  50. data/test/output/bar_background_gradient_topleft_bottomright.png +0 -0
  51. data/test/output/bar_background_gradient_topright_bottomleft.png +0 -0
  52. data/test/output/bar_formatted_numbers.png +0 -0
  53. data/test/output/bar_keynote.png +0 -0
  54. data/test/output/bar_keynote_small.png +0 -0
  55. data/test/output/bar_long_legend_text.png +0 -0
  56. data/test/output/bar_manual_colors.png +0 -0
  57. data/test/output/bar_marker_shadow.png +0 -0
  58. data/test/output/bar_nearly_zero_max_10.png +0 -0
  59. data/test/output/bar_no_legend.png +0 -0
  60. data/test/output/bar_no_line_markers.png +0 -0
  61. data/test/output/bar_no_title.png +0 -0
  62. data/test/output/bar_no_title_or_legend.png +0 -0
  63. data/test/output/bar_odeo.png +0 -0
  64. data/test/output/bar_one_value.png +0 -0
  65. data/test/output/bar_pos_neg.png +0 -0
  66. data/test/output/bar_rails_keynote.png +0 -0
  67. data/test/output/bar_set_absolute_trunc.png +0 -0
  68. data/test/output/bar_set_label_stagger_height.png +0 -0
  69. data/test/output/bar_set_legend_box_size_lg.png +0 -0
  70. data/test/output/bar_set_legend_box_size_sm.png +0 -0
  71. data/test/output/bar_set_marker.png +0 -0
  72. data/test/output/bar_set_trailing_dots_trunc.png +0 -0
  73. data/test/output/bar_spacing_full.png +0 -0
  74. data/test/output/bar_spacing_half.png +0 -0
  75. data/test/output/bar_spacing_none.png +0 -0
  76. data/test/output/bar_tall_graph.png +0 -0
  77. data/test/output/bar_tall_graph_small.png +0 -0
  78. data/test/output/bar_themed.png +0 -0
  79. data/test/output/bar_title_margin.png +0 -0
  80. data/test/output/bar_value_labels.png +0 -0
  81. data/test/output/bar_wide_graph.png +0 -0
  82. data/test/output/bar_wide_graph_small.png +0 -0
  83. data/test/output/bar_wrapped_legend_16_400.png +0 -0
  84. data/test/output/bar_wrapped_legend_16_800.png +0 -0
  85. data/test/output/bar_wrapped_legend_30_400.png +0 -0
  86. data/test/output/bar_wrapped_legend_30_800.png +0 -0
  87. data/test/output/bar_wrapped_legend_4_400.png +0 -0
  88. data/test/output/bar_wrapped_legend_4_800.png +0 -0
  89. data/test/output/bar_wrapped_legend__400.png +0 -0
  90. data/test/output/bar_wrapped_legend__800.png +0 -0
  91. data/test/output/bar_x_y_labels.png +0 -0
  92. data/test/output/bar_y_increment_1.png +0 -0
  93. data/test/output/bar_y_increment_2.0.png +0 -0
  94. data/test/output/bar_y_increment_20.png +0 -0
  95. data/test/output/bar_y_increment_5.png +0 -0
  96. data/test/output/bar_zero_marker_count.png +0 -0
  97. data/test/output/bar_zero_spacing.png +0 -0
  98. data/test/output/bezier.png +0 -0
  99. data/test/output/bezier_2.png +0 -0
  100. data/test/output/bezier_3.png +0 -0
  101. data/test/output/bullet_greyscale.png +0 -0
  102. data/test/output/bullet_no_options.png +0 -0
  103. data/test/output/dot.png +0 -0
  104. data/test/output/dot_manual_colors.png +0 -0
  105. data/test/output/dot_nearly_zero_max_10.png +0 -0
  106. data/test/output/dot_no_legend.png +0 -0
  107. data/test/output/dot_no_line_markers.png +0 -0
  108. data/test/output/dot_no_title.png +0 -0
  109. data/test/output/dot_no_title_or_legend.png +0 -0
  110. data/test/output/dot_one_value.png +0 -0
  111. data/test/output/dot_pos_neg.png +0 -0
  112. data/test/output/dot_set_legend_box_size_lg.png +0 -0
  113. data/test/output/dot_set_legend_box_size_sm.png +0 -0
  114. data/test/output/dot_set_marker.png +0 -0
  115. data/test/output/dot_small.png +0 -0
  116. data/test/output/dot_tall_graph.png +0 -0
  117. data/test/output/dot_tall_graph_small.png +0 -0
  118. data/test/output/dot_themed.png +0 -0
  119. data/test/output/dot_wide_graph.png +0 -0
  120. data/test/output/dot_wide_graph_small.png +0 -0
  121. data/test/output/dot_x_y_labels.png +0 -0
  122. data/test/output/dot_y_increment_1.png +0 -0
  123. data/test/output/dot_y_increment_2.0.png +0 -0
  124. data/test/output/dot_y_increment_20.png +0 -0
  125. data/test/output/dot_y_increment_5.png +0 -0
  126. data/test/output/enhancements-1.png +0 -0
  127. data/test/output/enhancements.png +0 -0
  128. data/test/output/line_all_neg.png +0 -0
  129. data/test/output/line_all_neg_400.png +0 -0
  130. data/test/output/line_all_neg_no_max.png +0 -0
  131. data/test/output/line_baseline.png +0 -0
  132. data/test/output/line_hang_value.png +0 -0
  133. data/test/output/line_hide_dots.png +0 -0
  134. data/test/output/line_hide_lines.png +0 -0
  135. data/test/output/line_jruby_error.png +0 -0
  136. data/test/output/line_large.png +0 -0
  137. data/test/output/line_large_baseline.png +0 -0
  138. data/test/output/line_legend_at_bottom.png +0 -0
  139. data/test/output/line_many.png +0 -0
  140. data/test/output/line_many_lines_small.png +0 -0
  141. data/test/output/line_many_numbers.png +0 -0
  142. data/test/output/line_marker_label_accuracy.png +0 -0
  143. data/test/output/line_more_sets_than_colors.png +0 -0
  144. data/test/output/line_no_data.png +0 -0
  145. data/test/output/line_no_data_msg.png +0 -0
  146. data/test/output/line_no_data_other.png +0 -0
  147. data/test/output/line_no_hide.png +0 -0
  148. data/test/output/line_no_legend.png +0 -0
  149. data/test/output/line_no_line_markers.png +0 -0
  150. data/test/output/line_no_title.png +0 -0
  151. data/test/output/line_nothing_but_the_graph.png +0 -0
  152. data/test/output/line_one_value.png +0 -0
  153. data/test/output/line_one_value_array.png +0 -0
  154. data/test/output/line_pos_neg.png +0 -0
  155. data/test/output/line_pos_neg_400.png +0 -0
  156. data/test/output/line_similar_high_end_values.png +0 -0
  157. data/test/output/line_similar_high_end_values_with_floor.png +0 -0
  158. data/test/output/line_small_small_zero.png +0 -0
  159. data/test/output/line_small_values.png +0 -0
  160. data/test/output/line_small_values_small.png +0 -0
  161. data/test/output/line_small_zero.png +0 -0
  162. data/test/output/line_some_nil_points.png +0 -0
  163. data/test/output/line_theme_37signals_.png +0 -0
  164. data/test/output/line_theme_37signals_400.png +0 -0
  165. data/test/output/line_theme_keynote_.png +0 -0
  166. data/test/output/line_theme_keynote_400.png +0 -0
  167. data/test/output/line_theme_odeo_.png +0 -0
  168. data/test/output/line_theme_odeo_400.png +0 -0
  169. data/test/output/line_theme_rails_keynote_.png +0 -0
  170. data/test/output/line_theme_rails_keynote_400.png +0 -0
  171. data/test/output/line_tiny.png +0 -0
  172. data/test/output/line_transparent.png +0 -0
  173. data/test/output/line_very_small.png +0 -0
  174. data/test/output/line_wide_graph.png +0 -0
  175. data/test/output/line_wide_graph_small.png +0 -0
  176. data/test/output/line_xy.png +0 -0
  177. data/test/output/line_xy_pairs.png +0 -0
  178. data/test/output/line_y_axis_increment.png +0 -0
  179. data/test/output/mini_bar.png +0 -0
  180. data/test/output/mini_pie.png +0 -0
  181. data/test/output/mini_pie_right_legend.png +0 -0
  182. data/test/output/mini_side_bar.png +0 -0
  183. data/test/output/mini_side_bar_multi_color.png +0 -0
  184. data/test/output/net_dots_tiny.png +0 -0
  185. data/test/output/net_large.png +0 -0
  186. data/test/output/net_many.png +0 -0
  187. data/test/output/net_many_nets_small.png +0 -0
  188. data/test/output/net_no_data.png +0 -0
  189. data/test/output/net_no_data_msg.png +0 -0
  190. data/test/output/net_no_data_other.png +0 -0
  191. data/test/output/net_no_legend.png +0 -0
  192. data/test/output/net_no_net_markers.png +0 -0
  193. data/test/output/net_no_title.png +0 -0
  194. data/test/output/net_nothing_but_the_graph.png +0 -0
  195. data/test/output/net_similar_high_end_values.png +0 -0
  196. data/test/output/net_small.png +0 -0
  197. data/test/output/net_small_small.png +0 -0
  198. data/test/output/net_small_small_zero.png +0 -0
  199. data/test/output/net_small_zero.png +0 -0
  200. data/test/output/net_wide_graph.png +0 -0
  201. data/test/output/net_wide_graph_small.png +0 -0
  202. data/test/output/pie_equal.png +0 -0
  203. data/test/output/pie_grey.png +0 -0
  204. data/test/output/pie_keynote.png +0 -0
  205. data/test/output/pie_keynote_small.png +0 -0
  206. data/test/output/pie_legend.png +0 -0
  207. data/test/output/pie_legend_small.png +0 -0
  208. data/test/output/pie_nearly_equal.png +0 -0
  209. data/test/output/pie_one_val.png +0 -0
  210. data/test/output/pie_pastel.png +0 -0
  211. data/test/output/pie_simple.png +0 -0
  212. data/test/output/pie_wide.png +0 -0
  213. data/test/output/pie_wrapped_legend_16_400.png +0 -0
  214. data/test/output/pie_wrapped_legend_16_800.png +0 -0
  215. data/test/output/pie_wrapped_legend_30_400.png +0 -0
  216. data/test/output/pie_wrapped_legend_30_800.png +0 -0
  217. data/test/output/pie_wrapped_legend_4_400.png +0 -0
  218. data/test/output/pie_wrapped_legend_4_800.png +0 -0
  219. data/test/output/pie_wrapped_legend__400.png +0 -0
  220. data/test/output/pie_wrapped_legend__800.png +0 -0
  221. data/test/output/pie_zero.png +0 -0
  222. data/test/output/scatter_all_neg.png +0 -0
  223. data/test/output/scatter_all_neg_400.png +0 -0
  224. data/test/output/scatter_basic.png +0 -0
  225. data/test/output/scatter_many.png +0 -0
  226. data/test/output/scatter_no_data.png +0 -0
  227. data/test/output/scatter_no_data_msg.png +0 -0
  228. data/test/output/scatter_no_data_other.png +0 -0
  229. data/test/output/scatter_no_hide.png +0 -0
  230. data/test/output/scatter_no_labels.png +0 -0
  231. data/test/output/scatter_no_legend.png +0 -0
  232. data/test/output/scatter_no_line_markers.png +0 -0
  233. data/test/output/scatter_no_title.png +0 -0
  234. data/test/output/scatter_nothing_but_the_graph.png +0 -0
  235. data/test/output/scatter_pos_neg.png +0 -0
  236. data/test/output/scatter_pos_neg_400.png +0 -0
  237. data/test/output/scatter_wide_graph.png +0 -0
  238. data/test/output/scatter_wide_graph_small.png +0 -0
  239. data/test/output/scene_hazy_night.png +0 -0
  240. data/test/output/scene_not_hazy_day.png +0 -0
  241. data/test/output/scene_partly_cloudy_day.png +0 -0
  242. data/test/output/scene_stormy_day.png +0 -0
  243. data/test/output/scene_stormy_night.png +0 -0
  244. data/test/output/side_bar.png +0 -0
  245. data/test/output/side_bar_data_range.png +0 -0
  246. data/test/output/side_bar_labels.png +0 -0
  247. data/test/output/side_bar_spacing_full.png +0 -0
  248. data/test/output/side_bar_spacing_half.png +0 -0
  249. data/test/output/side_bar_spacing_none.png +0 -0
  250. data/test/output/side_stacked_bar_keynote.png +0 -0
  251. data/test/output/side_stacked_bar_keynote_small.png +0 -0
  252. data/test/output/side_stacked_bar_labels.png +0 -0
  253. data/test/output/side_stacked_bar_long_label.png +0 -0
  254. data/test/output/side_stacked_bar_wide.png +0 -0
  255. data/test/output/spider_37signals.png +0 -0
  256. data/test/output/spider_equal.png +0 -0
  257. data/test/output/spider_keynote.png +0 -0
  258. data/test/output/spider_legend.png +0 -0
  259. data/test/output/spider_legend_small.png +0 -0
  260. data/test/output/spider_lots_of_data.png +0 -0
  261. data/test/output/spider_lots_of_data_normal_names.png +0 -0
  262. data/test/output/spider_nearly_equal.png +0 -0
  263. data/test/output/spider_no_axes.png +0 -0
  264. data/test/output/spider_no_background.png +0 -0
  265. data/test/output/spider_no_print.png +0 -0
  266. data/test/output/spider_overlay_1.png +0 -0
  267. data/test/output/spider_overlay_2.png +0 -0
  268. data/test/output/spider_rotation.png +0 -0
  269. data/test/output/spider_small.png +0 -0
  270. data/test/output/spider_wide.png +0 -0
  271. data/test/output/spider_zero.png +0 -0
  272. data/test/output/stacked_area_keynote.png +0 -0
  273. data/test/output/stacked_area_keynote_small.png +0 -0
  274. data/test/output/stacked_bar_keynote.png +0 -0
  275. data/test/output/stacked_bar_keynote_small.png +0 -0
  276. data/test/output_java/accum_bar.png +0 -0
  277. data/test/output_java/area_keynote.png +0 -0
  278. data/test/output_java/area_keynote_small.png +0 -0
  279. data/test/output_java/area_many.png +0 -0
  280. data/test/output_java/area_many_areas_small.png +0 -0
  281. data/test/output_java/area_tiny.png +0 -0
  282. data/test/output_java/area_wide.png +0 -0
  283. data/test/output_java/bar2_wrapped_legend_16_400.png +0 -0
  284. data/test/output_java/bar2_wrapped_legend_16_800.png +0 -0
  285. data/test/output_java/bar2_wrapped_legend_30_400.png +0 -0
  286. data/test/output_java/bar2_wrapped_legend_30_800.png +0 -0
  287. data/test/output_java/bar2_wrapped_legend_4_400.png +0 -0
  288. data/test/output_java/bar2_wrapped_legend_4_800.png +0 -0
  289. data/test/output_java/bar2_wrapped_legend__400.png +0 -0
  290. data/test/output_java/bar2_wrapped_legend__800.png +0 -0
  291. data/test/output_java/bar_background_gradient_bottom_top.png +0 -0
  292. data/test/output_java/bar_background_gradient_left_right.png +0 -0
  293. data/test/output_java/bar_background_gradient_right_left.png +0 -0
  294. data/test/output_java/bar_background_gradient_top_bottom.png +0 -0
  295. data/test/output_java/bar_background_gradient_topleft_bottomright.png +0 -0
  296. data/test/output_java/bar_background_gradient_topright_bottomleft.png +0 -0
  297. data/test/output_java/bar_formatted_numbers.png +0 -0
  298. data/test/output_java/bar_keynote.png +0 -0
  299. data/test/output_java/bar_keynote_small.png +0 -0
  300. data/test/output_java/bar_long_legend_text.png +0 -0
  301. data/test/output_java/bar_manual_colors.png +0 -0
  302. data/test/output_java/bar_marker_shadow.png +0 -0
  303. data/test/output_java/bar_nearly_zero_max_10.png +0 -0
  304. data/test/output_java/bar_no_legend.png +0 -0
  305. data/test/output_java/bar_no_line_markers.png +0 -0
  306. data/test/output_java/bar_no_title.png +0 -0
  307. data/test/output_java/bar_no_title_or_legend.png +0 -0
  308. data/test/output_java/bar_odeo.png +0 -0
  309. data/test/output_java/bar_one_value.png +0 -0
  310. data/test/output_java/bar_pos_neg.png +0 -0
  311. data/test/output_java/bar_rails_keynote.png +0 -0
  312. data/test/output_java/bar_set_absolute_trunc.png +0 -0
  313. data/test/output_java/bar_set_label_stagger_height.png +0 -0
  314. data/test/output_java/bar_set_legend_box_size_lg.png +0 -0
  315. data/test/output_java/bar_set_legend_box_size_sm.png +0 -0
  316. data/test/output_java/bar_set_marker.png +0 -0
  317. data/test/output_java/bar_set_trailing_dots_trunc.png +0 -0
  318. data/test/output_java/bar_spacing_full.png +0 -0
  319. data/test/output_java/bar_spacing_half.png +0 -0
  320. data/test/output_java/bar_spacing_none.png +0 -0
  321. data/test/output_java/bar_tall_graph.png +0 -0
  322. data/test/output_java/bar_tall_graph_small.png +0 -0
  323. data/test/output_java/bar_themed.png +0 -0
  324. data/test/output_java/bar_title_margin.png +0 -0
  325. data/test/output_java/bar_value_labels.png +0 -0
  326. data/test/output_java/bar_wide_graph.png +0 -0
  327. data/test/output_java/bar_wide_graph_small.png +0 -0
  328. data/test/output_java/bar_wrapped_legend_16_400.png +0 -0
  329. data/test/output_java/bar_wrapped_legend_16_800.png +0 -0
  330. data/test/output_java/bar_wrapped_legend_30_400.png +0 -0
  331. data/test/output_java/bar_wrapped_legend_30_800.png +0 -0
  332. data/test/output_java/bar_wrapped_legend_4_400.png +0 -0
  333. data/test/output_java/bar_wrapped_legend_4_800.png +0 -0
  334. data/test/output_java/bar_wrapped_legend__400.png +0 -0
  335. data/test/output_java/bar_wrapped_legend__800.png +0 -0
  336. data/test/output_java/bar_x_y_labels.png +0 -0
  337. data/test/output_java/bar_y_increment_1.png +0 -0
  338. data/test/output_java/bar_y_increment_2.0.png +0 -0
  339. data/test/output_java/bar_y_increment_20.png +0 -0
  340. data/test/output_java/bar_y_increment_5.png +0 -0
  341. data/test/output_java/bar_zero_marker_count.png +0 -0
  342. data/test/output_java/bar_zero_spacing.png +0 -0
  343. data/test/output_java/bezier.png +0 -0
  344. data/test/output_java/bezier_2.png +0 -0
  345. data/test/output_java/bezier_3.png +0 -0
  346. data/test/output_java/bullet_greyscale.png +0 -0
  347. data/test/output_java/bullet_no_options.png +0 -0
  348. data/test/output_java/dot.png +0 -0
  349. data/test/output_java/dot_manual_colors.png +0 -0
  350. data/test/output_java/dot_nearly_zero_max_10.png +0 -0
  351. data/test/output_java/dot_no_legend.png +0 -0
  352. data/test/output_java/dot_no_line_markers.png +0 -0
  353. data/test/output_java/dot_no_title.png +0 -0
  354. data/test/output_java/dot_no_title_or_legend.png +0 -0
  355. data/test/output_java/dot_one_value.png +0 -0
  356. data/test/output_java/dot_pos_neg.png +0 -0
  357. data/test/output_java/dot_set_legend_box_size_lg.png +0 -0
  358. data/test/output_java/dot_set_legend_box_size_sm.png +0 -0
  359. data/test/output_java/dot_set_marker.png +0 -0
  360. data/test/output_java/dot_small.png +0 -0
  361. data/test/output_java/dot_tall_graph.png +0 -0
  362. data/test/output_java/dot_tall_graph_small.png +0 -0
  363. data/test/output_java/dot_themed.png +0 -0
  364. data/test/output_java/dot_wide_graph.png +0 -0
  365. data/test/output_java/dot_wide_graph_small.png +0 -0
  366. data/test/output_java/dot_x_y_labels.png +0 -0
  367. data/test/output_java/dot_y_increment_1.png +0 -0
  368. data/test/output_java/dot_y_increment_2.0.png +0 -0
  369. data/test/output_java/dot_y_increment_20.png +0 -0
  370. data/test/output_java/dot_y_increment_5.png +0 -0
  371. data/test/output_java/enhancements-1.png +0 -0
  372. data/test/output_java/enhancements.png +0 -0
  373. data/test/output_java/line_all_neg.png +0 -0
  374. data/test/output_java/line_all_neg_400.png +0 -0
  375. data/test/output_java/line_all_neg_no_max.png +0 -0
  376. data/test/output_java/line_baseline.png +0 -0
  377. data/test/output_java/line_hang_value.png +0 -0
  378. data/test/output_java/line_hide_dots.png +0 -0
  379. data/test/output_java/line_hide_lines.png +0 -0
  380. data/test/output_java/line_jruby_error.png +0 -0
  381. data/test/output_java/line_large.png +0 -0
  382. data/test/output_java/line_large_baseline.png +0 -0
  383. data/test/output_java/line_legend_at_bottom.png +0 -0
  384. data/test/output_java/line_many.png +0 -0
  385. data/test/output_java/line_many_lines_small.png +0 -0
  386. data/test/output_java/line_many_numbers.png +0 -0
  387. data/test/output_java/line_marker_label_accuracy.png +0 -0
  388. data/test/output_java/line_more_sets_than_colors.png +0 -0
  389. data/test/output_java/line_no_data.png +0 -0
  390. data/test/output_java/line_no_data_msg.png +0 -0
  391. data/test/output_java/line_no_data_other.png +0 -0
  392. data/test/output_java/line_no_hide.png +0 -0
  393. data/test/output_java/line_no_legend.png +0 -0
  394. data/test/output_java/line_no_line_markers.png +0 -0
  395. data/test/output_java/line_no_title.png +0 -0
  396. data/test/output_java/line_nothing_but_the_graph.png +0 -0
  397. data/test/output_java/line_one_value.png +0 -0
  398. data/test/output_java/line_one_value_array.png +0 -0
  399. data/test/output_java/line_pos_neg.png +0 -0
  400. data/test/output_java/line_pos_neg_400.png +0 -0
  401. data/test/output_java/line_similar_high_end_values.png +0 -0
  402. data/test/output_java/line_similar_high_end_values_with_floor.png +0 -0
  403. data/test/output_java/line_small_small_zero.png +0 -0
  404. data/test/output_java/line_small_values.png +0 -0
  405. data/test/output_java/line_small_values_small.png +0 -0
  406. data/test/output_java/line_small_zero.png +0 -0
  407. data/test/output_java/line_some_nil_points.png +0 -0
  408. data/test/output_java/line_theme_37signals_.png +0 -0
  409. data/test/output_java/line_theme_37signals_400.png +0 -0
  410. data/test/output_java/line_theme_keynote_.png +0 -0
  411. data/test/output_java/line_theme_keynote_400.png +0 -0
  412. data/test/output_java/line_theme_odeo_.png +0 -0
  413. data/test/output_java/line_theme_odeo_400.png +0 -0
  414. data/test/output_java/line_theme_rails_keynote_.png +0 -0
  415. data/test/output_java/line_theme_rails_keynote_400.png +0 -0
  416. data/test/output_java/line_tiny.png +0 -0
  417. data/test/output_java/line_transparent.png +0 -0
  418. data/test/output_java/line_very_small.png +0 -0
  419. data/test/output_java/line_wide_graph.png +0 -0
  420. data/test/output_java/line_wide_graph_small.png +0 -0
  421. data/test/output_java/line_xy.png +0 -0
  422. data/test/output_java/line_xy_pairs.png +0 -0
  423. data/test/output_java/line_y_axis_increment.png +0 -0
  424. data/test/output_java/mini_bar.png +0 -0
  425. data/test/output_java/mini_pie.png +0 -0
  426. data/test/output_java/mini_pie_right_legend.png +0 -0
  427. data/test/output_java/mini_side_bar.png +0 -0
  428. data/test/output_java/mini_side_bar_multi_color.png +0 -0
  429. data/test/output_java/net_dots_tiny.png +0 -0
  430. data/test/output_java/net_large.png +0 -0
  431. data/test/output_java/net_many.png +0 -0
  432. data/test/output_java/net_many_nets_small.png +0 -0
  433. data/test/output_java/net_no_data.png +0 -0
  434. data/test/output_java/net_no_data_msg.png +0 -0
  435. data/test/output_java/net_no_data_other.png +0 -0
  436. data/test/output_java/net_no_legend.png +0 -0
  437. data/test/output_java/net_no_net_markers.png +0 -0
  438. data/test/output_java/net_no_title.png +0 -0
  439. data/test/output_java/net_nothing_but_the_graph.png +0 -0
  440. data/test/output_java/net_similar_high_end_values.png +0 -0
  441. data/test/output_java/net_small.png +0 -0
  442. data/test/output_java/net_small_small.png +0 -0
  443. data/test/output_java/net_small_small_zero.png +0 -0
  444. data/test/output_java/net_small_zero.png +0 -0
  445. data/test/output_java/net_wide_graph.png +0 -0
  446. data/test/output_java/net_wide_graph_small.png +0 -0
  447. data/test/output_java/pie_equal.png +0 -0
  448. data/test/output_java/pie_grey.png +0 -0
  449. data/test/output_java/pie_keynote.png +0 -0
  450. data/test/output_java/pie_keynote_small.png +0 -0
  451. data/test/output_java/pie_legend.png +0 -0
  452. data/test/output_java/pie_legend_small.png +0 -0
  453. data/test/output_java/pie_nearly_equal.png +0 -0
  454. data/test/output_java/pie_one_val.png +0 -0
  455. data/test/output_java/pie_pastel.png +0 -0
  456. data/test/output_java/pie_simple.png +0 -0
  457. data/test/output_java/pie_wide.png +0 -0
  458. data/test/output_java/pie_wrapped_legend_16_400.png +0 -0
  459. data/test/output_java/pie_wrapped_legend_16_800.png +0 -0
  460. data/test/output_java/pie_wrapped_legend_30_400.png +0 -0
  461. data/test/output_java/pie_wrapped_legend_30_800.png +0 -0
  462. data/test/output_java/pie_wrapped_legend_4_400.png +0 -0
  463. data/test/output_java/pie_wrapped_legend_4_800.png +0 -0
  464. data/test/output_java/pie_wrapped_legend__400.png +0 -0
  465. data/test/output_java/pie_wrapped_legend__800.png +0 -0
  466. data/test/output_java/pie_zero.png +0 -0
  467. data/test/output_java/scatter_all_neg.png +0 -0
  468. data/test/output_java/scatter_all_neg_400.png +0 -0
  469. data/test/output_java/scatter_basic.png +0 -0
  470. data/test/output_java/scatter_many.png +0 -0
  471. data/test/output_java/scatter_no_data.png +0 -0
  472. data/test/output_java/scatter_no_data_msg.png +0 -0
  473. data/test/output_java/scatter_no_data_other.png +0 -0
  474. data/test/output_java/scatter_no_hide.png +0 -0
  475. data/test/output_java/scatter_no_labels.png +0 -0
  476. data/test/output_java/scatter_no_legend.png +0 -0
  477. data/test/output_java/scatter_no_line_markers.png +0 -0
  478. data/test/output_java/scatter_no_title.png +0 -0
  479. data/test/output_java/scatter_nothing_but_the_graph.png +0 -0
  480. data/test/output_java/scatter_pos_neg.png +0 -0
  481. data/test/output_java/scatter_pos_neg_400.png +0 -0
  482. data/test/output_java/scatter_wide_graph.png +0 -0
  483. data/test/output_java/scatter_wide_graph_small.png +0 -0
  484. data/test/output_java/scene_hazy_night.png +0 -0
  485. data/test/output_java/scene_not_hazy_day.png +0 -0
  486. data/test/output_java/scene_partly_cloudy_day.png +0 -0
  487. data/test/output_java/scene_stormy_day.png +0 -0
  488. data/test/output_java/scene_stormy_night.png +0 -0
  489. data/test/output_java/side_bar.png +0 -0
  490. data/test/output_java/side_bar_data_range.png +0 -0
  491. data/test/output_java/side_bar_labels.png +0 -0
  492. data/test/output_java/side_bar_spacing_full.png +0 -0
  493. data/test/output_java/side_bar_spacing_half.png +0 -0
  494. data/test/output_java/side_bar_spacing_none.png +0 -0
  495. data/test/output_java/side_stacked_bar_keynote.png +0 -0
  496. data/test/output_java/side_stacked_bar_keynote_small.png +0 -0
  497. data/test/output_java/side_stacked_bar_labels.png +0 -0
  498. data/test/output_java/side_stacked_bar_long_label.png +0 -0
  499. data/test/output_java/side_stacked_bar_wide.png +0 -0
  500. data/test/output_java/spider_37signals.png +0 -0
  501. data/test/output_java/spider_equal.png +0 -0
  502. data/test/output_java/spider_keynote.png +0 -0
  503. data/test/output_java/spider_legend.png +0 -0
  504. data/test/output_java/spider_legend_small.png +0 -0
  505. data/test/output_java/spider_lots_of_data.png +0 -0
  506. data/test/output_java/spider_lots_of_data_normal_names.png +0 -0
  507. data/test/output_java/spider_nearly_equal.png +0 -0
  508. data/test/output_java/spider_no_axes.png +0 -0
  509. data/test/output_java/spider_no_background.png +0 -0
  510. data/test/output_java/spider_no_print.png +0 -0
  511. data/test/output_java/spider_overlay_1.png +0 -0
  512. data/test/output_java/spider_overlay_2.png +0 -0
  513. data/test/output_java/spider_rotation.png +0 -0
  514. data/test/output_java/spider_small.png +0 -0
  515. data/test/output_java/spider_wide.png +0 -0
  516. data/test/output_java/spider_zero.png +0 -0
  517. data/test/output_java/stacked_area_keynote.png +0 -0
  518. data/test/output_java/stacked_area_keynote_small.png +0 -0
  519. data/test/output_java/stacked_bar_keynote.png +0 -0
  520. data/test/output_java/stacked_bar_keynote_small.png +0 -0
  521. data/test/test_accumulator_bar.rb +7 -6
  522. data/test/test_area.rb +2 -2
  523. data/test/test_bar.rb +296 -112
  524. data/test/test_bezier.rb +33 -0
  525. data/test/test_bullet.rb +26 -26
  526. data/test/test_dot.rb +44 -54
  527. data/test/test_legend.rb +29 -29
  528. data/test/test_line.rb +250 -218
  529. data/test/test_net.rb +2 -1
  530. data/test/test_pie.rb +2 -2
  531. data/test/test_scatter.rb +85 -85
  532. data/test/test_side_bar.rb +13 -0
  533. data/test/test_sidestacked_bar.rb +16 -0
  534. data/test/test_spider.rb +11 -1
  535. data/test/test_stacked_area.rb +5 -5
  536. metadata +1041 -49
  537. data/.rvmrc +0 -5
  538. data/Gemfile.lock +0 -20
  539. data/LICENSE.txt +0 -22
  540. data/README.txt +0 -43
data/test/test_net.rb CHANGED
@@ -5,6 +5,7 @@ require File.dirname(__FILE__) + "/gruff_test_case"
5
5
  class TestGruffNet < GruffTestCase
6
6
 
7
7
  def setup
8
+ super
8
9
  @datasets = [
9
10
  [:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]],
10
11
  [:Charles, [80, 54, 67, 54, 68, 70, 90, 95]],
@@ -23,7 +24,7 @@ class TestGruffNet < GruffTestCase
23
24
  5 => '6/12',
24
25
  6 => '6/21',
25
26
  7 => '6/28',
26
- }
27
+ }
27
28
  end
28
29
 
29
30
  def test_net_small_values
data/test/test_pie.rb CHANGED
@@ -30,7 +30,7 @@ class TestGruffPie < GruffTestCase
30
30
  def test_pie_graph_greyscale
31
31
  g = Gruff::Pie.new
32
32
  g.title = "Greyscale Pie Graph Test"
33
- g.theme_greyscale
33
+ g.theme = Gruff::Themes::GREYSCALE
34
34
  @datasets.each do |data|
35
35
  g.data(data[0], data[1])
36
36
  end
@@ -41,7 +41,7 @@ class TestGruffPie < GruffTestCase
41
41
 
42
42
  def test_pie_graph_pastel
43
43
  g = Gruff::Pie.new
44
- g.theme_pastel
44
+ g.theme = Gruff::Themes::PASTEL
45
45
  g.title = "Pastel Pie Graph Test"
46
46
  @datasets.each do |data|
47
47
  g.data(data[0], data[1])
data/test/test_scatter.rb CHANGED
@@ -1,68 +1,68 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- require File.dirname(__FILE__) + "/gruff_test_case"
3
+ require File.dirname(__FILE__) + '/gruff_test_case'
4
4
 
5
5
  class TestGruffScatter < Test::Unit::TestCase
6
-
6
+
7
7
  def setup
8
8
  @datasets = [
9
- [:Chuck, [20,10,5,12,11,6,10,7], [5,10,19,6,9,1,14,8] ],
10
- [:Brown, [5,10,20,6,9,12,14,8], [20,10,5,12,11,6,10,7] ],
11
- [:Lucy, [19,9,6,11,12,7,15,8], [6,11,18,8,12,8,10,6] ]
9
+ [:Chuck, [20, 10, 5, 12, 11, 6, 10, 7], [5, 10, 19, 6, 9, 1, 14, 8]],
10
+ [:Brown, [5, 10, 20, 6, 9, 12, 14, 8], [20, 10, 5, 12, 11, 6, 10, 7]],
11
+ [:Lucy, [19, 9, 6, 11, 12, 7, 15, 8], [6, 11, 18, 8, 12, 8, 10, 6]]
12
12
  ]
13
13
  end
14
-
14
+
15
15
  # Done
16
16
  def test_scatter_graph
17
17
  g = setup_basic_graph
18
- g.title = "Basic Scatter Plot Test"
19
- g.write("test/output/scatter_basic.png")
18
+ g.title = 'Basic Scatter Plot Test'
19
+ g.write('test/output/scatter_basic.png')
20
20
  end
21
-
21
+
22
22
  #~ # Done
23
23
  def test_many_datapoints
24
24
  g = Gruff::Scatter.new
25
- g.title = "Many Datapoint Graph Test"
26
- y_values = (0..50).collect {|i| rand(100) }
27
- x_values = (0..50).collect {|i| rand(100) }
25
+ g.title = 'Many Datapoint Graph Test'
26
+ y_values = (0..50).map { rand(100) }
27
+ x_values = (0..50).map { rand(100) }
28
28
  g.data('many points', y_values, x_values)
29
29
 
30
30
  # Default theme
31
- g.write("test/output/scatter_many.png")
31
+ g.write('test/output/scatter_many.png')
32
32
  end
33
-
33
+
34
34
  # Done
35
35
  def test_no_data
36
36
  g = Gruff::Scatter.new(400)
37
- g.title = "No Data"
37
+ g.title = 'No Data'
38
38
  # Default theme
39
- g.write("test/output/scatter_no_data.png")
40
-
39
+ g.write('test/output/scatter_no_data.png')
40
+
41
41
  g = Gruff::Scatter.new(400)
42
- g.title = "No Data Title"
42
+ g.title = 'No Data Title'
43
43
  g.no_data_message = 'There is no data'
44
- g.write("test/output/scatter_no_data_msg.png")
44
+ g.write('test/output/scatter_no_data_msg.png')
45
45
  end
46
-
46
+
47
47
  # Done
48
48
  def test_all_zeros
49
49
  g = Gruff::Scatter.new(400)
50
- g.title = "All Zeros"
50
+ g.title = 'All Zeros'
51
51
 
52
- g.data(:gus, [0,0,0,0], [0,0,0,0])
52
+ g.data(:gus, [0, 0, 0, 0], [0, 0, 0, 0])
53
53
 
54
54
  # Default theme
55
- g.write("test/output/scatter_no_data_other.png")
55
+ g.write('test/output/scatter_no_data_other.png')
56
56
  end
57
-
57
+
58
58
  # Done
59
59
  def test_some_nil_points
60
60
  g = Gruff::Scatter.new
61
- g.title = "Some Nil Points"
61
+ g.title = 'Some Nil Points'
62
62
 
63
63
  @datasets = [
64
- [:data1, [1, 2, 3, nil, 3, 5, 6], [5, nil, nil, nil, nil, 5, 7] ]
65
- ]
64
+ [:data1, [1, 2, 3, nil, 3, 5, 6], [5, nil, nil, nil, nil, 5, 7]]
65
+ ]
66
66
 
67
67
  @datasets.each do |data|
68
68
  assert_raise ArgumentError do
@@ -70,164 +70,164 @@ class TestGruffScatter < Test::Unit::TestCase
70
70
  end
71
71
  end
72
72
  end
73
-
73
+
74
74
  # Done
75
75
  def test_unequal_number_of_x_and_y_values
76
76
  g = Gruff::Scatter.new
77
- g.title = "Unequal number of X and Y values"
78
-
77
+ g.title = 'Unequal number of X and Y values'
78
+
79
79
  @datasets = [
80
- [:data1, [1,2,3], [1,2]],
81
- [:data2, [1,2,3,4,5], [1,2,3,4,5,6]],
80
+ [:data1, [1, 2, 3], [1, 2]],
81
+ [:data2, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6]],
82
82
  ]
83
-
83
+
84
84
  @datasets.each do |data|
85
85
  assert_raise ArgumentError do
86
86
  g.data(*data)
87
87
  end
88
88
  end
89
89
  end
90
-
90
+
91
91
  # Done
92
92
  def test_empty_set_of_axis_values
93
93
  g = Gruff::Scatter.new
94
- g.title = "Missing Axis Values"
95
-
94
+ g.title = 'Missing Axis Values'
95
+
96
96
  @datasets = [
97
- [:data1, [1,2,3,4,5]]
97
+ [:data1, [1, 2, 3, 4, 5]]
98
98
  ]
99
-
99
+
100
100
  @datasets.each do |data|
101
101
  assert_raise ArgumentError do
102
102
  g.data(*data)
103
103
  end
104
104
  end
105
105
  end
106
-
106
+
107
107
  # Done
108
108
  def test_no_title
109
109
  g = Gruff::Scatter.new(400)
110
- g.data(:data1, [1,2,3,4,5], [1,2,3,4,5])
111
- g.write("test/output/scatter_no_title.png")
110
+ g.data(:data1, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
111
+ g.write('test/output/scatter_no_title.png')
112
112
  end
113
113
 
114
114
  # Done
115
115
  def test_no_line_markers
116
116
  g = setup_basic_graph(400)
117
- g.title = "No Line Markers"
117
+ g.title = 'No Line Markers'
118
118
  g.hide_line_markers = true
119
- g.write("test/output/scatter_no_line_markers.png")
119
+ g.write('test/output/scatter_no_line_markers.png')
120
120
  end
121
121
 
122
122
  # Done
123
123
  def test_no_legend
124
124
  g = setup_basic_graph(400)
125
- g.title = "No Legend"
125
+ g.title = 'No Legend'
126
126
  g.hide_legend = true
127
- g.write("test/output/scatter_no_legend.png")
127
+ g.write('test/output/scatter_no_legend.png')
128
128
  end
129
129
 
130
130
  # Done
131
131
  def test_nothing_but_the_graph
132
132
  g = setup_basic_graph(400)
133
- g.title = "THIS TITLE SHOULD NOT DISPLAY!!!"
133
+ g.title = 'THIS TITLE SHOULD NOT DISPLAY!!!'
134
134
  g.hide_line_markers = true
135
135
  g.hide_legend = true
136
136
  g.hide_title = true
137
- g.write("test/output/scatter_nothing_but_the_graph.png")
137
+ g.write('test/output/scatter_nothing_but_the_graph.png')
138
138
  end
139
-
139
+
140
140
  # TODO Implement baselines on x and y axis
141
141
  #~ def test_baseline_larger_than_data
142
- #~ g = setup_basic_graph(400)
143
- #~ g.title = "Baseline Larger Than Data"
144
- #~ g.baseline_value = 150
145
- #~ g.write("test/output/scatter_large_baseline.png")
142
+ #~ g = setup_basic_graph(400)
143
+ #~ g.title = "Baseline Larger Than Data"
144
+ #~ g.baseline_value = 150
145
+ #~ g.write("test/output/scatter_large_baseline.png")
146
146
  #~ end
147
-
147
+
148
148
  # Done
149
149
  def test_wide_graph
150
150
  g = setup_basic_graph('800x400')
151
- g.title = "Wide Graph"
152
- g.write("test/output/scatter_wide_graph.png")
151
+ g.title = 'Wide Graph'
152
+ g.write('test/output/scatter_wide_graph.png')
153
153
 
154
154
  g = setup_basic_graph('400x200')
155
- g.title = "Wide Graph Small"
156
- g.write("test/output/scatter_wide_graph_small.png")
155
+ g.title = 'Wide Graph Small'
156
+ g.write('test/output/scatter_wide_graph_small.png')
157
157
  end
158
-
158
+
159
159
  # Done
160
160
  def test_negative
161
161
  g = setup_pos_neg(800)
162
- g.write("test/output/scatter_pos_neg.png")
163
-
162
+ g.write('test/output/scatter_pos_neg.png')
163
+
164
164
  g = setup_pos_neg(400)
165
165
  g.title = 'Pos/Neg Line Test Small'
166
- g.write("test/output/scatter_pos_neg_400.png")
166
+ g.write('test/output/scatter_pos_neg_400.png')
167
167
  end
168
168
 
169
169
  # Done
170
170
  def test_all_negative
171
171
  g = setup_all_neg(800)
172
- g.write("test/output/scatter_all_neg.png")
173
-
172
+ g.write('test/output/scatter_all_neg.png')
173
+
174
174
  g = setup_all_neg(400)
175
175
  g.title = 'All Neg Line Test Small'
176
- g.write("test/output/scatter_all_neg_400.png")
176
+ g.write('test/output/scatter_all_neg_400.png')
177
177
  end
178
-
178
+
179
179
  # Done
180
180
  def test_no_hide_line_no_labels
181
181
  g = Gruff::Scatter.new
182
- g.title = "No Hide Line No Labels"
182
+ g.title = 'No Hide Line No Labels'
183
183
  @datasets.each do |data|
184
184
  g.data(data[0], data[1], data[2])
185
185
  end
186
186
  g.hide_line_markers = false
187
187
  g.write('test/output/scatter_no_hide.png')
188
188
  end
189
-
189
+
190
190
  def test_no_set_labels
191
191
  g = Gruff::Scatter.new
192
- g.title = "Setting Labels Test"
192
+ g.title = 'Setting Labels Test'
193
193
  g.labels = {
194
- 0 => 'This',
195
- 1 => 'should',
196
- 2 => 'not',
197
- 3 => 'show',
198
- 4 => 'up'
194
+ 0 => 'This',
195
+ 1 => 'should',
196
+ 2 => 'not',
197
+ 3 => 'show',
198
+ 4 => 'up'
199
199
  }
200
200
  @datasets.each do |data|
201
201
  g.data(data[0], data[1], data[2])
202
202
  end
203
203
  g.write('test/output/scatter_no_labels.png')
204
204
  end
205
-
206
- protected
207
-
205
+
206
+ protected
207
+
208
208
  def setup_basic_graph(size=800)
209
209
  g = Gruff::Scatter.new(size)
210
- g.title = "Rad Graph"
210
+ g.title = 'Rad Graph'
211
211
  @datasets.each do |data|
212
212
  g.data(data[0], data[1], data[2])
213
213
  end
214
214
  g
215
215
  end
216
-
216
+
217
217
  def setup_pos_neg(size=800)
218
218
  g = Gruff::Scatter.new(size)
219
- g.title = "Pos/Neg Scatter Graph Test"
219
+ g.title = 'Pos/Neg Scatter Graph Test'
220
220
  g.data(:apples, [-1, 0, 4, -4], [-5, -1, 3, 4])
221
221
  g.data(:peaches, [10, 8, 6, 3], [-1, 1, 3, 3])
222
- return g
222
+ g
223
223
  end
224
-
224
+
225
225
  def setup_all_neg(size=800)
226
226
  g = Gruff::Scatter.new(size)
227
- g.title = "Neg Scatter Graph Test"
227
+ g.title = 'Neg Scatter Graph Test'
228
228
  g.data(:apples, [-1, -1, -4, -4], [-5, -1, -3, -4])
229
229
  g.data(:peaches, [-10, -8, -6, -3], [-1, -1, -3, -3])
230
- return g
230
+ g
231
231
  end
232
-
233
- end # end GruffTestCase
232
+
233
+ end # end GruffTestCase
@@ -38,6 +38,19 @@ class TestGruffSideBar < GruffTestCase
38
38
  g.labels = {0 => '2003', 2 => '2004', 4 => '2005'}
39
39
  g.write("test/output/side_bar_data_range.png")
40
40
  end
41
+
42
+ def test_bar_labels
43
+ g = Gruff::SideBar.new('400x300')
44
+ g.title = 'Should show labels for each bar'
45
+ g.data("Grapes", [8])
46
+ g.data("Apples", [24])
47
+ g.data("Oranges", [32])
48
+ g.data("Watermelon", [8])
49
+ g.data("Peaches", [12])
50
+ g.labels = {0 => '2003', 2 => '2004', 4 => '2005'}
51
+ g.show_labels_for_bar_values = true
52
+ g.write("test/output/side_bar_labels.png")
53
+ end
41
54
 
42
55
  end
43
56
 
@@ -72,6 +72,22 @@ class TestGruffSideStackedBar < GruffTestCase
72
72
  end
73
73
  g.write "test/output/side_stacked_bar_long_label.png"
74
74
  end
75
+
76
+ def test_bar_labels
77
+ g = Gruff::SideStackedBar.new
78
+ g.title = "Stacked Bar Long Label"
79
+ g.labels = {
80
+ 0 => 'September',
81
+ 1 => 'Oct',
82
+ 2 => 'Nov',
83
+ 3 => 'Dec',
84
+ }
85
+ @datasets.each do |data|
86
+ g.data(data[0], data[1])
87
+ end
88
+ g.show_labels_for_bar_values = true
89
+ g.write "test/output/side_stacked_bar_labels.png"
90
+ end
75
91
 
76
92
  protected
77
93
 
data/test/test_spider.rb CHANGED
@@ -106,7 +106,7 @@ class TestGruffSpider < GruffTestCase
106
106
  g.data(data[0], data[1])
107
107
  end
108
108
 
109
- g.theme_37signals
109
+ g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
110
110
 
111
111
  # Default theme
112
112
  g.write("test/output/spider_37signals.png")
@@ -201,6 +201,16 @@ class TestGruffSpider < GruffTestCase
201
201
  g.write("test/output/spider_lots_of_data_normal_names.png")
202
202
  end
203
203
 
204
+ def test_rotation
205
+ g = Gruff::Spider.new(20)
206
+ g.title = "Rotation"
207
+ @datasets.each do |data|
208
+ g.data(data[0], data[1])
209
+ end
210
+
211
+ g.rotation = 45 # degrees
212
+ g.write("test/output/spider_rotation.png")
213
+ end
204
214
 
205
215
  protected
206
216
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- require File.dirname(__FILE__) + "/gruff_test_case"
3
+ require File.dirname(__FILE__) + '/gruff_test_case'
4
4
 
5
5
  class TestGruffStackedArea < GruffTestCase
6
6
 
@@ -20,7 +20,7 @@ class TestGruffStackedArea < GruffTestCase
20
20
 
21
21
  def test_area_graph
22
22
  g = Gruff::StackedArea.new
23
- g.title = "Visual Stacked Area Graph Test"
23
+ g.title = 'Visual Stacked Area Graph Test'
24
24
  g.labels = {
25
25
  0 => '5/6',
26
26
  1 => '5/15',
@@ -30,13 +30,13 @@ class TestGruffStackedArea < GruffTestCase
30
30
  @datasets.each do |data|
31
31
  g.data(data[0], data[1])
32
32
  end
33
- g.write "test/output/stacked_area_keynote.png"
33
+ g.write 'test/output/stacked_area_keynote.png'
34
34
  end
35
35
 
36
36
 
37
37
  def test_area_graph_small
38
38
  g = Gruff::StackedArea.new(400)
39
- g.title = "Visual Stacked Area Graph Test"
39
+ g.title = 'Visual Stacked Area Graph Test'
40
40
  g.labels = {
41
41
  0 => '5/6',
42
42
  1 => '5/15',
@@ -46,7 +46,7 @@ class TestGruffStackedArea < GruffTestCase
46
46
  @datasets.each do |data|
47
47
  g.data(data[0], data[1])
48
48
  end
49
- g.write "test/output/stacked_area_keynote_small.png"
49
+ g.write 'test/output/stacked_area_keynote_small.png'
50
50
  end
51
51
 
52
52
  end