X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/1a62f78f4f3818ab697bddf51f80a1ba150ce9e7..131cab23209cb1dfa81930240b8cf722d2302131:/lib/gruff-0.2.8/test/test_spider.rb diff --git a/lib/gruff-0.2.8/test/test_spider.rb b/lib/gruff-0.2.8/test/test_spider.rb new file mode 100644 index 0000000..99dbb2d --- /dev/null +++ b/lib/gruff-0.2.8/test/test_spider.rb @@ -0,0 +1,216 @@ +#!/usr/bin/ruby + +require File.dirname(__FILE__) + "/gruff_test_case" + +class TestGruffSpider < GruffTestCase + + def setup + @datasets = [ + [:Strength, [10]], + [:Dexterity, [16]], + [:Constitution, [12]], + [:Intelligence, [12]], + [:Wisdom, [10]], + ["Charisma", [16]], + ] + +# @datasets = [ +# [:Darren, [25]], +# [:Chris, [80]], +# [:Egbert, [22]], +# [:Adam, [95]], +# [:Bill, [90]], +# ["Frank", [5]], +# ["Zero", [0]], +# ] + end + + def test_spider_graph + g = Gruff::Spider.new(20) + g.title = "Spider Graph Test" + @datasets.each do |data| + g.data(data[0], data[1]) + end + + # Default theme + g.write("test/output/spider_keynote.png") + end + + def test_pie_graph_small + g = Gruff::Spider.new(20, 400) + g.title = "Visual Spider Graph Test Small" + @datasets.each do |data| + g.data(data[0], data[1]) + end + + # Default theme + g.write("test/output/spider_small.png") + end + + def test_spider_graph_nearly_equal + g = Gruff::Spider.new(50) + g.title = "Spider Graph Nearly Equal" + + g.data(:Blake, [41]) + g.data(:Aaron, [42]) + g.data(:Grouch, [40]) +# g.data(:Snuffleupagus, [43]) + + g.write("test/output/spider_nearly_equal.png") + end + + def test_pie_graph_equal + g = Gruff::Spider.new(50) + g.title = "Spider Graph Equal" + + g.data(:Bert, [41]) + g.data(:Adam, [41]) + g.data(:Joe, [41]) + + g.write("test/output/spider_equal.png") + end + + def test_pie_graph_zero + g = Gruff::Spider.new(2) + g.title = "Pie Graph Two One Zero" + + g.data(:Bert, [0]) + g.data(:Adam, [1]) + g.data(:Sam, [2]) + + g.write("test/output/spider_zero.png") + end + + def test_wide + g = setup_basic_graph('800x400') + g.title = "Wide spider" + g.write("test/output/spider_wide.png") + end + + def test_label_size + g = setup_basic_graph() + g.title = "Spider With Small Legend" + g.legend_font_size = 10 + g.write("test/output/spider_legend.png") + + g = setup_basic_graph(400) + g.title = "Small spider With Small Legend" + g.legend_font_size = 10 + g.write("test/output/spider_legend_small.png") + end + + def test_theme_37signals + g = Gruff::Spider.new(20) + g.title = "Spider Graph Test" + @datasets.each do |data| + g.data(data[0], data[1]) + end + + g.theme_37signals + + # Default theme + g.write("test/output/spider_37signals.png") + end + + def test_no_axes + g = Gruff::Spider.new(20) + g.title = "Look ma, no axes" + g.hide_axes = true + @datasets.each do |data| + g.data(data[0], data[1]) + end + g.write("test/output/spider_no_axes.png") + + end + + def test_no_print + g = Gruff::Spider.new(20) + g.title = "Should not print" + g.hide_text = true + @datasets.each do |data| + g.data(data[0], data[1]) + end + g.write("test/output/spider_no_print.png") + end + + def test_transparency + g = Gruff::Spider.new(20) + g.title = "Transparent background" + g.hide_text = true + g.transparent_background = true + g.hide_axes = true + @datasets.each do |data| + g.data(data[0], data[1]) + end + g.write("test/output/spider_no_background.png") + end + + def test_overlay + g = Gruff::Spider.new(20) + g.title = "George (blue) vs Sarah (white)" + @datasets.each do |data| + g.data(data[0], data[1]) + end + g.write("test/output/spider_overlay_1.png") + + g = Gruff::Spider.new(20) + g.title = "Transparent background" + g.hide_text = true + g.hide_axes = true + g.transparent_background = true + @datasets = [ + [:Strength, [18]], + [:Dexterity, [10]], + [:Constitution, [18]], + [:Intelligence, [8]], + [:Wisdom, [14]], + ["Charisma", [4]], + ] + @datasets.each do |data| + g.data(data[0], data[1]) + end + g.marker_color = "#4F6EFF" + g.write("test/output/spider_overlay_2.png") + end + + def test_lots_of_data + g = Gruff::Spider.new(10) + @datasets = [[:a, [1]], [:b, [5]], [:c, [3]], [:d, [9]], [:e, [4]], + [:f, [7]], [:g, [0]], [:h, [4]], [:i, [6]], [:j, [0]], + [:k, [4]], [:l, [8]]] + + @datasets.each do |data| + g.data(data[0], data[1]) + end + + g.title = "Sample Data" + g.write("test/output/spider_lots_of_data.png") + end + + def test_lots_of_data_with_large_names + g = Gruff::Spider.new(10) + @datasets = [[:anteaters, [1]], [:bulls, [5]], [:cats, [3]], [:dogs, [9]], [:elephants, [4]], + [:frogs, [7]], [:giraffes, [0]], [:hamsters, [4]], [:iguanas, [6]], + [:jaguar, [0]], [:kangaroo, [4]], [:locust, [8]]] + + @datasets.each do |data| + g.data(data[0], data[1]) + end + + g.title = "Zoo Inventory" + g.write("test/output/spider_lots_of_data_normal_names.png") + end + + +protected + + def setup_basic_graph(size=800, max = 20) + g = Gruff::Spider.new(max, size) + g.title = "My Graph Title" + @datasets.each do |data| + g.data(data[0], data[1]) + end + return g + end + +end