gruff 0.7.0-java → 0.12.0-java
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.
- checksums.yaml +5 -5
- data/{History.txt → CHANGELOG.md} +81 -25
- data/Gemfile +3 -1
- data/README.md +51 -23
- data/assets/plastik/blue.png +0 -0
- data/assets/plastik/green.png +0 -0
- data/assets/plastik/red.png +0 -0
- data/gruff.gemspec +23 -13
- data/init.rb +2 -0
- data/lib/gruff.rb +33 -4
- data/lib/gruff/accumulator_bar.rb +17 -9
- data/lib/gruff/area.rb +31 -21
- data/lib/gruff/bar.rb +90 -46
- data/lib/gruff/base.rb +476 -710
- data/lib/gruff/bezier.rb +29 -18
- data/lib/gruff/bullet.rb +58 -71
- data/lib/gruff/dot.rb +35 -83
- data/lib/gruff/helper/bar_conversion.rb +47 -0
- data/lib/gruff/helper/bar_value_label_mixin.rb +33 -0
- data/lib/gruff/helper/stacked_mixin.rb +23 -0
- data/lib/gruff/histogram.rb +59 -0
- data/lib/gruff/line.rb +121 -199
- data/lib/gruff/mini/bar.rb +17 -10
- data/lib/gruff/mini/legend.rb +26 -38
- data/lib/gruff/mini/pie.rb +18 -13
- data/lib/gruff/mini/side_bar.rb +25 -12
- data/lib/gruff/net.rb +69 -83
- data/lib/gruff/patch/rmagick.rb +31 -0
- data/lib/gruff/patch/string.rb +13 -0
- data/lib/gruff/photo_bar.rb +36 -43
- data/lib/gruff/pie.rb +42 -103
- data/lib/gruff/renderer/bezier.rb +22 -0
- data/lib/gruff/renderer/circle.rb +22 -0
- data/lib/gruff/renderer/dash_line.rb +23 -0
- data/lib/gruff/renderer/dot.rb +40 -0
- data/lib/gruff/renderer/ellipse.rb +22 -0
- data/lib/gruff/renderer/line.rb +43 -0
- data/lib/gruff/renderer/polygon.rb +24 -0
- data/lib/gruff/renderer/polyline.rb +22 -0
- data/lib/gruff/renderer/rectangle.rb +20 -0
- data/lib/gruff/renderer/renderer.rb +120 -0
- data/lib/gruff/renderer/text.rb +57 -0
- data/lib/gruff/scatter.rb +128 -201
- data/lib/gruff/scene.rb +30 -41
- data/lib/gruff/side_bar.rb +100 -68
- data/lib/gruff/side_stacked_bar.rb +92 -63
- data/lib/gruff/spider.rb +47 -53
- data/lib/gruff/stacked_area.rb +37 -34
- data/lib/gruff/stacked_bar.rb +99 -54
- data/lib/gruff/store/basic_data.rb +36 -0
- data/lib/gruff/store/custom_data.rb +36 -0
- data/lib/gruff/store/store.rb +81 -0
- data/lib/gruff/store/xy_data.rb +58 -0
- data/lib/gruff/themes.rb +32 -33
- data/lib/gruff/version.rb +3 -1
- metadata +74 -102
- data/.gitignore +0 -7
- data/.travis.yml +0 -19
- data/Manifest.txt +0 -81
- data/RELEASE.md +0 -30
- data/Rakefile +0 -218
- data/assets/bubble.png +0 -0
- data/assets/city_scene/background/0000.png +0 -0
- data/assets/city_scene/background/0600.png +0 -0
- data/assets/city_scene/background/2000.png +0 -0
- data/assets/city_scene/clouds/cloudy.png +0 -0
- data/assets/city_scene/clouds/partly_cloudy.png +0 -0
- data/assets/city_scene/clouds/stormy.png +0 -0
- data/assets/city_scene/grass/default.png +0 -0
- data/assets/city_scene/haze/true.png +0 -0
- data/assets/city_scene/number_sample/1.png +0 -0
- data/assets/city_scene/number_sample/2.png +0 -0
- data/assets/city_scene/number_sample/default.png +0 -0
- data/assets/city_scene/sky/0000.png +0 -0
- data/assets/city_scene/sky/0200.png +0 -0
- data/assets/city_scene/sky/0400.png +0 -0
- data/assets/city_scene/sky/0600.png +0 -0
- data/assets/city_scene/sky/0800.png +0 -0
- data/assets/city_scene/sky/1000.png +0 -0
- data/assets/city_scene/sky/1200.png +0 -0
- data/assets/city_scene/sky/1400.png +0 -0
- data/assets/city_scene/sky/1500.png +0 -0
- data/assets/city_scene/sky/1700.png +0 -0
- data/assets/city_scene/sky/2000.png +0 -0
- data/assets/pc306715.jpg +0 -0
- data/lib/gruff/bar_conversion.rb +0 -46
- data/lib/gruff/deprecated.rb +0 -39
- data/lib/gruff/stacked_mixin.rb +0 -23
- data/test/gruff_test_case.rb +0 -152
- data/test/image_compare.rb +0 -58
- data/test/test_accumulator_bar.rb +0 -51
- data/test/test_area.rb +0 -134
- data/test/test_bar.rb +0 -505
- data/test/test_base.rb +0 -33
- data/test/test_bezier.rb +0 -33
- data/test/test_bullet.rb +0 -26
- data/test/test_dot.rb +0 -263
- data/test/test_labels_for_null_data.rb +0 -27
- data/test/test_legend.rb +0 -68
- data/test/test_line.rb +0 -674
- data/test/test_mini_bar.rb +0 -33
- data/test/test_mini_pie.rb +0 -25
- data/test/test_mini_side_bar.rb +0 -36
- data/test/test_net.rb +0 -231
- data/test/test_photo.rb +0 -41
- data/test/test_pie.rb +0 -194
- data/test/test_scatter.rb +0 -270
- data/test/test_scene.rb +0 -100
- data/test/test_side_bar.rb +0 -56
- data/test/test_sidestacked_bar.rb +0 -105
- data/test/test_spider.rb +0 -226
- data/test/test_stacked_area.rb +0 -52
- data/test/test_stacked_bar.rb +0 -68
data/lib/gruff/deprecated.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
|
2
|
-
##
|
3
|
-
# A mixin for methods that need to be deleted or have been
|
4
|
-
# replaced by cleaner code.
|
5
|
-
|
6
|
-
module Gruff
|
7
|
-
module Deprecated
|
8
|
-
|
9
|
-
def scale_measurements
|
10
|
-
setup_graph_measurements
|
11
|
-
end
|
12
|
-
|
13
|
-
def total_height
|
14
|
-
@rows + 10
|
15
|
-
end
|
16
|
-
|
17
|
-
def graph_top
|
18
|
-
@graph_top * @scale
|
19
|
-
end
|
20
|
-
|
21
|
-
def graph_height
|
22
|
-
@graph_height * @scale
|
23
|
-
end
|
24
|
-
|
25
|
-
def graph_left
|
26
|
-
@graph_left * @scale
|
27
|
-
end
|
28
|
-
|
29
|
-
def graph_width
|
30
|
-
@graph_width * @scale
|
31
|
-
end
|
32
|
-
|
33
|
-
# TODO Should be calculate_graph_height
|
34
|
-
# def setup_graph_height
|
35
|
-
# @graph_height = @graph_bottom - @graph_top
|
36
|
-
# end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
data/lib/gruff/stacked_mixin.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
|
2
|
-
module Gruff::Base::StackedMixin
|
3
|
-
# Used by StackedBar and child classes.
|
4
|
-
#
|
5
|
-
# tsal: moved from Base 03 FEB 2007
|
6
|
-
DATA_VALUES_INDEX = Gruff::Base::DATA_VALUES_INDEX
|
7
|
-
def get_maximum_by_stack
|
8
|
-
# Get sum of each stack
|
9
|
-
max_hash = {}
|
10
|
-
@data.each do |data_set|
|
11
|
-
data_set[DATA_VALUES_INDEX].each_with_index do |data_point, i|
|
12
|
-
max_hash[i] = 0.0 unless max_hash[i]
|
13
|
-
max_hash[i] += data_point.to_f
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# @maximum_value = 0
|
18
|
-
max_hash.keys.each do |key|
|
19
|
-
@maximum_value = max_hash[key] if max_hash[key] > @maximum_value
|
20
|
-
end
|
21
|
-
@minimum_value = 0
|
22
|
-
end
|
23
|
-
end
|
data/test/gruff_test_case.rb
DELETED
@@ -1,152 +0,0 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__) + '/../lib/')
|
2
|
-
|
3
|
-
RMAGICK_BYPASS_VERSION_TEST = true
|
4
|
-
|
5
|
-
require 'gruff'
|
6
|
-
require 'fileutils'
|
7
|
-
|
8
|
-
TEST_OUTPUT_DIR = File.dirname(__FILE__) + "/output#{'_java' if RUBY_PLATFORM == 'java'}"
|
9
|
-
FileUtils.mkdir_p(TEST_OUTPUT_DIR)
|
10
|
-
FileUtils.rm_f Dir[TEST_OUTPUT_DIR + '/*']
|
11
|
-
|
12
|
-
require 'minitest/autorun'
|
13
|
-
require 'minitest/reporters'
|
14
|
-
Minitest::Reporters.use!
|
15
|
-
|
16
|
-
class Gruff::Base
|
17
|
-
alias :write_org :write
|
18
|
-
|
19
|
-
def write(filename='graph.png')
|
20
|
-
basefilename = File.basename(filename).split('.')[0..-2].join('.')
|
21
|
-
extension = filename.slice(/\.[^\.]*$/)
|
22
|
-
testfilename = File.join(TEST_OUTPUT_DIR, basefilename) + extension
|
23
|
-
counter = 0
|
24
|
-
while File.exist?(testfilename)
|
25
|
-
counter += 1
|
26
|
-
testfilename = File.join(TEST_OUTPUT_DIR, basefilename) + "-#{counter}#{extension}"
|
27
|
-
end
|
28
|
-
write_org(testfilename)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class GruffTestCase < Minitest::Test
|
33
|
-
def setup
|
34
|
-
srand 42
|
35
|
-
@datasets = [
|
36
|
-
[:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]],
|
37
|
-
[:Charles, [80, 54, 67, 54, 68, 70, 90, 95]],
|
38
|
-
[:Julie, [22, 29, 35, 38, 36, 40, 46, 57]],
|
39
|
-
[:Jane, [95, 95, 95, 90, 85, 80, 88, 100]],
|
40
|
-
[:Philip, [90, 34, 23, 12, 78, 89, 98, 88]],
|
41
|
-
[:Arthur, [5, 10, 13, 11, 6, 16, 22, 32]],
|
42
|
-
]
|
43
|
-
|
44
|
-
@labels = {
|
45
|
-
0 => '5/6',
|
46
|
-
1 => '5/15',
|
47
|
-
2 => '5/24',
|
48
|
-
3 => '5/30',
|
49
|
-
4 => '6/4',
|
50
|
-
5 => '6/12',
|
51
|
-
6 => '6/21',
|
52
|
-
7 => '6/28',
|
53
|
-
}
|
54
|
-
end
|
55
|
-
|
56
|
-
def setup_single_dataset
|
57
|
-
@datasets = [
|
58
|
-
[:Jimmy, [25, 36, 86]]
|
59
|
-
]
|
60
|
-
|
61
|
-
@labels = {
|
62
|
-
0 => 'You',
|
63
|
-
1 => 'Average',
|
64
|
-
2 => 'Lifetime'
|
65
|
-
}
|
66
|
-
end
|
67
|
-
|
68
|
-
def setup_wide_dataset
|
69
|
-
@datasets = [
|
70
|
-
['Auto', 25],
|
71
|
-
['Food', 5],
|
72
|
-
['Entertainment', 15]
|
73
|
-
]
|
74
|
-
|
75
|
-
@labels = {0 => 'This Month'}
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_dummy
|
79
|
-
assert true
|
80
|
-
end
|
81
|
-
|
82
|
-
protected
|
83
|
-
|
84
|
-
# Generate graphs at several sizes.
|
85
|
-
#
|
86
|
-
# Also writes the graph to disk.
|
87
|
-
#
|
88
|
-
# graph_sized 'bar_basic' do |g|
|
89
|
-
# g.data('students', [1, 2, 3, 4])
|
90
|
-
# end
|
91
|
-
#
|
92
|
-
def graph_sized(filename, sizes=['', 400])
|
93
|
-
class_name = self.class.name.gsub(/^TestGruff/, '')
|
94
|
-
Array(sizes).each do |size|
|
95
|
-
g = instance_eval("Gruff::#{class_name}.new #{size}")
|
96
|
-
g.title = "#{class_name} Graph"
|
97
|
-
yield g
|
98
|
-
write_test_file g, "#{filename}_#{size}.png"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def write_test_file(graph, filename)
|
103
|
-
testfilename = [TEST_OUTPUT_DIR, filename].join('/')
|
104
|
-
basefilename = filename.split('.')[0..-2].join('.')
|
105
|
-
extension = filename.slice(/\..*$/)
|
106
|
-
counter = 0
|
107
|
-
while File.exist? testfilename
|
108
|
-
counter += 1
|
109
|
-
testfilename = [TEST_OUTPUT_DIR, basefilename].join('/') + "-#{counter}#{extension}"
|
110
|
-
end
|
111
|
-
graph.write(testfilename)
|
112
|
-
end
|
113
|
-
|
114
|
-
##
|
115
|
-
# Example:
|
116
|
-
#
|
117
|
-
# setup_basic_graph Gruff::Pie, 400
|
118
|
-
#
|
119
|
-
def setup_basic_graph(*args)
|
120
|
-
klass, size = Gruff::Bar, 400
|
121
|
-
# Allow args to be klass, size or just klass or just size.
|
122
|
-
#
|
123
|
-
# TODO Refactor
|
124
|
-
case args.length
|
125
|
-
when 1
|
126
|
-
case args[0]
|
127
|
-
when Fixnum
|
128
|
-
size = args[0]
|
129
|
-
klass = eval("Gruff::#{self.class.name.gsub(/^TestGruff/, '')}")
|
130
|
-
when String
|
131
|
-
size = args[0]
|
132
|
-
klass = eval("Gruff::#{self.class.name.gsub(/^TestGruff/, '')}")
|
133
|
-
else
|
134
|
-
klass = args[0]
|
135
|
-
end
|
136
|
-
when 2
|
137
|
-
klass, size = args[0], args[1]
|
138
|
-
end
|
139
|
-
|
140
|
-
g = klass.new(size)
|
141
|
-
g.title = 'My Bar Graph'
|
142
|
-
g.labels = @labels
|
143
|
-
g.font = '/Library/Fonts/Verdana.ttf'
|
144
|
-
|
145
|
-
|
146
|
-
@datasets.each do |data|
|
147
|
-
g.data(data[0], data[1])
|
148
|
-
end
|
149
|
-
g
|
150
|
-
end
|
151
|
-
|
152
|
-
end
|
data/test/image_compare.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
#!ruby
|
2
|
-
|
3
|
-
require 'chunky_png'
|
4
|
-
|
5
|
-
class ImageCompare
|
6
|
-
include ChunkyPNG::Color
|
7
|
-
|
8
|
-
def self.compare(file_name, old_file_name)
|
9
|
-
name = file_name.chomp('.png')
|
10
|
-
org_file_name = "#{name}_0.png~"
|
11
|
-
new_file_name = "#{name}_1.png~"
|
12
|
-
|
13
|
-
return nil unless File.exists? old_file_name
|
14
|
-
images = [
|
15
|
-
ChunkyPNG::Image.from_file(old_file_name),
|
16
|
-
ChunkyPNG::Image.from_file(file_name),
|
17
|
-
]
|
18
|
-
|
19
|
-
sizes = images.map(&:width).uniq + images.map(&:height).uniq
|
20
|
-
if sizes.size != 2
|
21
|
-
logger.warn "Image size has changed for #{name}: #{sizes}"
|
22
|
-
return nil
|
23
|
-
end
|
24
|
-
|
25
|
-
diff = []
|
26
|
-
images.first.height.times do |y|
|
27
|
-
images.first.row(y).each_with_index do |pixel, x|
|
28
|
-
unless pixel == images.last[x, y]
|
29
|
-
diff << [x, y]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
if diff.empty?
|
35
|
-
File.delete(org_file_name) if File.exists? org_file_name
|
36
|
-
File.delete(new_file_name) if File.exists? new_file_name
|
37
|
-
return false
|
38
|
-
end
|
39
|
-
|
40
|
-
x, y = diff.map { |xy| xy[0] }, diff.map { |xy| xy[1] }
|
41
|
-
(1..2).each do |i|
|
42
|
-
images.each do |image|
|
43
|
-
image.rect(x.min - i, y.min - i, x.max + i, y.max + i, ChunkyPNG::Color.rgb(255, 0, 0))
|
44
|
-
end
|
45
|
-
end
|
46
|
-
images.first.save(org_file_name)
|
47
|
-
images.last.save(new_file_name)
|
48
|
-
true
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
if $0 == __FILE__
|
53
|
-
unless ARGV.size == 2
|
54
|
-
puts "Usage: #$0 <image1> <image2>"
|
55
|
-
exit 1
|
56
|
-
end
|
57
|
-
ImageCompare.compare(ARGV[0], ARGV[1])
|
58
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/gruff_test_case'
|
2
|
-
|
3
|
-
class TestGruffAccumulatorBar < GruffTestCase
|
4
|
-
|
5
|
-
# TODO Delete old output files once when starting tests
|
6
|
-
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
@datasets = [
|
10
|
-
(1..20).to_a.map { rand(10) }
|
11
|
-
]
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_accumulator
|
15
|
-
g = Gruff::AccumulatorBar.new 500
|
16
|
-
g.title = 'Your Savings'
|
17
|
-
g.hide_legend = true
|
18
|
-
|
19
|
-
# g.font = File.expand_path(File.dirname(__FILE__) + "/../assets/fonts/ATMA____.TTF")
|
20
|
-
|
21
|
-
g.marker_font_size = 18
|
22
|
-
|
23
|
-
g.theme = {
|
24
|
-
:colors => ['#aedaa9', '#12a702'],
|
25
|
-
:marker_color => '#dddddd',
|
26
|
-
:font_color => 'black',
|
27
|
-
:background_colors => 'white'
|
28
|
-
# :background_image => File.expand_path(File.dirname(__FILE__) + "/../assets/backgrounds/43things.png")
|
29
|
-
}
|
30
|
-
|
31
|
-
# Attempt at negative numbers
|
32
|
-
# g.data 'Savings', (1..20).to_a.map { rand(10) * (rand(2) > 0 ? 1 : -1) }
|
33
|
-
g.data 'Savings', (1..12).to_a.map { rand(100) }
|
34
|
-
g.labels = (0..11).to_a.inject({}) {|memo, index| {index => '12-26'}.merge(memo)}
|
35
|
-
|
36
|
-
g.maximum_value = 1000
|
37
|
-
g.minimum_value = 0
|
38
|
-
|
39
|
-
g.write('test/output/accum_bar.png')
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_too_many_args
|
43
|
-
assert_raises(Gruff::IncorrectNumberOfDatasetsException) {
|
44
|
-
g = Gruff::AccumulatorBar.new
|
45
|
-
g.data 'First', [1,1,1]
|
46
|
-
g.data 'Too Many', [1,1,1]
|
47
|
-
g.write('test/output/_SHOULD_NOT_ACTUALLY_BE_WRITTEN.png')
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
data/test/test_area.rb
DELETED
@@ -1,134 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
require File.dirname(__FILE__) + "/gruff_test_case"
|
4
|
-
|
5
|
-
class TestGruffArea < GruffTestCase
|
6
|
-
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
@datasets = [
|
10
|
-
[:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]],
|
11
|
-
[:Charles, [80, 54, 67, 54, 68, 70, 90, 95]],
|
12
|
-
[:Julie, [22, 29, 35, 38, 36, 40, 46, 57]],
|
13
|
-
[:Jane, [95, 95, 95, 90, 85, 80, 88, 100]],
|
14
|
-
[:Philip, [90, 34, 23, 12, 78, 89, 98, 88]],
|
15
|
-
["Arthur", [5, 10, 13, 11, 6, 16, 22, 32]],
|
16
|
-
]
|
17
|
-
@sample_labels = {
|
18
|
-
0 => '5/6',
|
19
|
-
1 => '5/15',
|
20
|
-
2 => '5/24',
|
21
|
-
3 => '5/30',
|
22
|
-
4 => '6/4',
|
23
|
-
5 => '6/12',
|
24
|
-
6 => '6/21',
|
25
|
-
7 => '6/28',
|
26
|
-
}
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_area_graph
|
30
|
-
g = Gruff::Area.new
|
31
|
-
g.title = "Visual Multi-Area Graph Test"
|
32
|
-
g.labels = {
|
33
|
-
0 => '5/6',
|
34
|
-
2 => '5/15',
|
35
|
-
4 => '5/24',
|
36
|
-
6 => '5/30',
|
37
|
-
}
|
38
|
-
@datasets.each do |data|
|
39
|
-
g.data(data[0], data[1])
|
40
|
-
end
|
41
|
-
|
42
|
-
# Default theme
|
43
|
-
g.write("test/output/area_keynote.png")
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_resize
|
47
|
-
g = Gruff::Area.new(400)
|
48
|
-
g.title = "Small Size Multi-Area Graph Test"
|
49
|
-
g.labels = {
|
50
|
-
0 => '5/6',
|
51
|
-
2 => '5/15',
|
52
|
-
4 => '5/24',
|
53
|
-
6 => '5/30',
|
54
|
-
}
|
55
|
-
@datasets.each do |data|
|
56
|
-
g.data(data[0], data[1])
|
57
|
-
end
|
58
|
-
|
59
|
-
# Default theme
|
60
|
-
g.write("test/output/area_keynote_small.png")
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_many_datapoints
|
64
|
-
g = Gruff::Area.new
|
65
|
-
g.title = "Many Multi-Area Graph Test"
|
66
|
-
g.labels = {
|
67
|
-
0 => 'June',
|
68
|
-
10 => 'July',
|
69
|
-
30 => 'August',
|
70
|
-
50 => 'September',
|
71
|
-
}
|
72
|
-
g.data('many points', (0..50).collect {|i| rand(100) })
|
73
|
-
|
74
|
-
# Default theme
|
75
|
-
g.write("test/output/area_many.png")
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_many_areas_graph_small
|
79
|
-
g = Gruff::Area.new(400)
|
80
|
-
g.title = "Many Values Area Test 400px"
|
81
|
-
g.labels = {
|
82
|
-
0 => '5/6',
|
83
|
-
10 => '5/15',
|
84
|
-
20 => '5/24',
|
85
|
-
30 => '5/30',
|
86
|
-
40 => '6/4',
|
87
|
-
50 => '6/16'
|
88
|
-
}
|
89
|
-
%w{jimmy jane philip arthur julie bert}.each do |student_name|
|
90
|
-
g.data(student_name, (0..50).collect { |i| rand 100 })
|
91
|
-
end
|
92
|
-
|
93
|
-
# Default theme
|
94
|
-
g.write("test/output/area_many_areas_small.png")
|
95
|
-
end
|
96
|
-
|
97
|
-
def test_area_graph_tiny
|
98
|
-
g = Gruff::Area.new(300)
|
99
|
-
g.title = "Area Test 300px"
|
100
|
-
g.labels = {
|
101
|
-
0 => '5/6',
|
102
|
-
10 => '5/15',
|
103
|
-
20 => '5/24',
|
104
|
-
30 => '5/30',
|
105
|
-
40 => '6/4',
|
106
|
-
50 => '6/16'
|
107
|
-
}
|
108
|
-
%w{jimmy jane philip arthur julie bert}.each do |student_name|
|
109
|
-
g.data(student_name, (0..50).collect { |i| rand 100 })
|
110
|
-
end
|
111
|
-
|
112
|
-
# Default theme
|
113
|
-
g.write("test/output/area_tiny.png")
|
114
|
-
end
|
115
|
-
|
116
|
-
def test_wide
|
117
|
-
g = setup_basic_graph('800x400')
|
118
|
-
g.title = "Area Wide"
|
119
|
-
g.write("test/output/area_wide.png")
|
120
|
-
end
|
121
|
-
|
122
|
-
protected
|
123
|
-
|
124
|
-
def setup_basic_graph(size=800)
|
125
|
-
g = Gruff::Area.new(size)
|
126
|
-
g.title = "My Graph Title"
|
127
|
-
g.labels = @sample_labels
|
128
|
-
@datasets.each do |data|
|
129
|
-
g.data(data[0], data[1])
|
130
|
-
end
|
131
|
-
return g
|
132
|
-
end
|
133
|
-
|
134
|
-
end
|