test/gruff_test_case.rb in gruff-0.2.4 vs test/gruff_test_case.rb in gruff-0.2.5

- old
+ new

@@ -1,12 +1,57 @@ $:.unshift(File.dirname(__FILE__) + "/../lib/") require 'test/unit' require 'gruff' +require 'test_timer' class GruffTestCase < Test::Unit::TestCase + def setup + @datasets = [ + [:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]], + [:Charles, [80, 54, 67, 54, 68, 70, 90, 95]], + [:Julie, [22, 29, 35, 38, 36, 40, 46, 57]], + [:Jane, [95, 95, 95, 90, 85, 80, 88, 100]], + [:Philip, [90, 34, 23, 12, 78, 89, 98, 88]], + ["Arthur", [5, 10, 13, 11, 6, 16, 22, 32]], + ] + + @labels = { + 0 => '5/6', + 1 => '5/15', + 2 => '5/24', + 3 => '5/30', + 4 => '6/4', + 5 => '6/12', + 6 => '6/21', + 7 => '6/28', + } + end + + def setup_single_dataset + @datasets = [ + [:Jimmy, [25, 36, 86]] + ] + + @labels = { + 0 => 'You', + 1 => 'Average', + 2 => 'Lifetime' + } + end + + def setup_wide_dataset + @datasets = [ + ["Auto", 25], + ["Food", 5], + ["Entertainment", 15] + ] + + @labels = { 0 => 'This Month' } + end + def test_dummy assert true end protected @@ -17,19 +62,56 @@ # # graph_sized 'bar_basic' do |g| # g.data('students', [1, 2, 3, 4]) # end # - def graph_sized(filename, &block) + def graph_sized(filename, sizes=['', 400]) class_name = self.class.name.gsub(/^TestGruff/, '') - ['', 400].each do |size| + Array(sizes).each do |size| g = instance_eval("Gruff::#{class_name}.new #{size}") - block.call g - write_test_file g, "#{filename}#{size}.png" + g.title = "#{class_name} Graph" + yield g + write_test_file g, "#{filename}_#{size}.png" end end def write_test_file(graph, filename) graph.write(File.dirname(__FILE__) + "/output/#{filename}") + end + + ## + # Example: + # + # setup_basic_graph Gruff::Pie, 400 + # + def setup_basic_graph(*args) + klass, size = Gruff::Bar, 400 + # Allow args to be klass, size or just klass or just size. + # + # TODO Refactor + case args.length + when 1 + case args[0] + when Fixnum + size = args[0] + klass = eval("Gruff::#{self.class.name.gsub(/^TestGruff/, '')}") + when String + size = args[0] + klass = eval("Gruff::#{self.class.name.gsub(/^TestGruff/, '')}") + else + klass = args[0] + end + when 2 + klass, size = args[0], args[1] + end + + g = klass.new(size) + g.title = "My Bar Graph" + g.labels = @labels + + @datasets.each do |data| + g.data(data[0], data[1]) + end + g end end