gruff 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
 
2
- require File.dirname(__FILE__) + "/gruff_test_case"
2
+ require File.expand_path('../gruff_test_case', __FILE__)
3
3
 
4
4
  class TestMiniBar < GruffTestCase
5
5
 
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + "/gruff_test_case"
1
+ require File.expand_path('../gruff_test_case', __FILE__)
3
2
 
4
3
  class TestMiniPie < GruffTestCase
5
4
 
@@ -7,6 +6,12 @@ class TestMiniPie < GruffTestCase
7
6
  g = setup_basic_graph(Gruff::Mini::Pie, 200)
8
7
  write_test_file g, 'mini_pie.png'
9
8
  end
9
+
10
+ def test_pie_with_legend_right
11
+ g = setup_basic_graph(Gruff::Mini::Pie, 200)
12
+ g.legend_position = :right
13
+ write_test_file g, 'mini_pie_right_legend.png'
14
+ end
10
15
 
11
16
  # def test_code_sample
12
17
  # g = Gruff::Mini::Pie.new(200)
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + "/gruff_test_case"
1
+ require File.expand_path('../gruff_test_case', __FILE__)
3
2
 
4
3
  class TestMiniSideBar < GruffTestCase
5
4
 
@@ -0,0 +1,233 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
+
5
+ class TestGruffScatter < Test::Unit::TestCase
6
+
7
+ def setup
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] ]
12
+ ]
13
+ end
14
+
15
+ # Done
16
+ def test_scatter_graph
17
+ g = setup_basic_graph
18
+ g.title = "Basic Scatter Plot Test"
19
+ g.write("test/output/scatter_basic.png")
20
+ end
21
+
22
+ #~ # Done
23
+ def test_many_datapoints
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) }
28
+ g.data('many points', y_values, x_values)
29
+
30
+ # Default theme
31
+ g.write("test/output/scatter_many.png")
32
+ end
33
+
34
+ # Done
35
+ def test_no_data
36
+ g = Gruff::Scatter.new(400)
37
+ g.title = "No Data"
38
+ # Default theme
39
+ g.write("test/output/scatter_no_data.png")
40
+
41
+ g = Gruff::Scatter.new(400)
42
+ g.title = "No Data Title"
43
+ g.no_data_message = 'There is no data'
44
+ g.write("test/output/scatter_no_data_msg.png")
45
+ end
46
+
47
+ # Done
48
+ def test_all_zeros
49
+ g = Gruff::Scatter.new(400)
50
+ g.title = "All Zeros"
51
+
52
+ g.data(:gus, [0,0,0,0], [0,0,0,0])
53
+
54
+ # Default theme
55
+ g.write("test/output/scatter_no_data_other.png")
56
+ end
57
+
58
+ # Done
59
+ def test_some_nil_points
60
+ g = Gruff::Scatter.new
61
+ g.title = "Some Nil Points"
62
+
63
+ @datasets = [
64
+ [:data1, [1, 2, 3, nil, 3, 5, 6], [5, nil, nil, nil, nil, 5, 7] ]
65
+ ]
66
+
67
+ @datasets.each do |data|
68
+ assert_raise ArgumentError do
69
+ g.data(*data)
70
+ end
71
+ end
72
+ end
73
+
74
+ # Done
75
+ def test_unequal_number_of_x_and_y_values
76
+ g = Gruff::Scatter.new
77
+ g.title = "Unequal number of X and Y values"
78
+
79
+ @datasets = [
80
+ [:data1, [1,2,3], [1,2]],
81
+ [:data2, [1,2,3,4,5], [1,2,3,4,5,6]],
82
+ ]
83
+
84
+ @datasets.each do |data|
85
+ assert_raise ArgumentError do
86
+ g.data(*data)
87
+ end
88
+ end
89
+ end
90
+
91
+ # Done
92
+ def test_empty_set_of_axis_values
93
+ g = Gruff::Scatter.new
94
+ g.title = "Missing Axis Values"
95
+
96
+ @datasets = [
97
+ [:data1, [1,2,3,4,5]]
98
+ ]
99
+
100
+ @datasets.each do |data|
101
+ assert_raise ArgumentError do
102
+ g.data(*data)
103
+ end
104
+ end
105
+ end
106
+
107
+ # Done
108
+ def test_no_title
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")
112
+ end
113
+
114
+ # Done
115
+ def test_no_line_markers
116
+ g = setup_basic_graph(400)
117
+ g.title = "No Line Markers"
118
+ g.hide_line_markers = true
119
+ g.write("test/output/scatter_no_line_markers.png")
120
+ end
121
+
122
+ # Done
123
+ def test_no_legend
124
+ g = setup_basic_graph(400)
125
+ g.title = "No Legend"
126
+ g.hide_legend = true
127
+ g.write("test/output/scatter_no_legend.png")
128
+ end
129
+
130
+ # Done
131
+ def test_nothing_but_the_graph
132
+ g = setup_basic_graph(400)
133
+ g.title = "THIS TITLE SHOULD NOT DISPLAY!!!"
134
+ g.hide_line_markers = true
135
+ g.hide_legend = true
136
+ g.hide_title = true
137
+ g.write("test/output/scatter_nothing_but_the_graph.png")
138
+ end
139
+
140
+ # TODO Implement baselines on x and y axis
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")
146
+ #~ end
147
+
148
+ # Done
149
+ def test_wide_graph
150
+ g = setup_basic_graph('800x400')
151
+ g.title = "Wide Graph"
152
+ g.write("test/output/scatter_wide_graph.png")
153
+
154
+ g = setup_basic_graph('400x200')
155
+ g.title = "Wide Graph Small"
156
+ g.write("test/output/scatter_wide_graph_small.png")
157
+ end
158
+
159
+ # Done
160
+ def test_negative
161
+ g = setup_pos_neg(800)
162
+ g.write("test/output/scatter_pos_neg.png")
163
+
164
+ g = setup_pos_neg(400)
165
+ g.title = 'Pos/Neg Line Test Small'
166
+ g.write("test/output/scatter_pos_neg_400.png")
167
+ end
168
+
169
+ # Done
170
+ def test_all_negative
171
+ g = setup_all_neg(800)
172
+ g.write("test/output/scatter_all_neg.png")
173
+
174
+ g = setup_all_neg(400)
175
+ g.title = 'All Neg Line Test Small'
176
+ g.write("test/output/scatter_all_neg_400.png")
177
+ end
178
+
179
+ # Done
180
+ def test_no_hide_line_no_labels
181
+ g = Gruff::Scatter.new
182
+ g.title = "No Hide Line No Labels"
183
+ @datasets.each do |data|
184
+ g.data(data[0], data[1], data[2])
185
+ end
186
+ g.hide_line_markers = false
187
+ g.write('test/output/scatter_no_hide.png')
188
+ end
189
+
190
+ def test_no_set_labels
191
+ g = Gruff::Scatter.new
192
+ g.title = "Setting Labels Test"
193
+ g.labels = {
194
+ 0 => 'This',
195
+ 1 => 'should',
196
+ 2 => 'not',
197
+ 3 => 'show',
198
+ 4 => 'up'
199
+ }
200
+ @datasets.each do |data|
201
+ g.data(data[0], data[1], data[2])
202
+ end
203
+ g.write('test/output/scatter_no_labels.png')
204
+ end
205
+
206
+ protected
207
+
208
+ def setup_basic_graph(size=800)
209
+ g = Gruff::Scatter.new(size)
210
+ g.title = "Rad Graph"
211
+ @datasets.each do |data|
212
+ g.data(data[0], data[1], data[2])
213
+ end
214
+ g
215
+ end
216
+
217
+ def setup_pos_neg(size=800)
218
+ g = Gruff::Scatter.new(size)
219
+ g.title = "Pos/Neg Scatter Graph Test"
220
+ g.data(:apples, [-1, 0, 4, -4], [-5, -1, 3, 4])
221
+ g.data(:peaches, [10, 8, 6, 3], [-1, 1, 3, 3])
222
+ return g
223
+ end
224
+
225
+ def setup_all_neg(size=800)
226
+ g = Gruff::Scatter.new(size)
227
+ g.title = "Neg Scatter Graph Test"
228
+ g.data(:apples, [-1, -1, -4, -4], [-5, -1, -3, -4])
229
+ g.data(:peaches, [-10, -8, -6, -3], [-1, -1, -3, -3])
230
+ return g
231
+ end
232
+
233
+ end # end GruffTestCase
@@ -51,7 +51,7 @@ class TestGruffScene < GruffTestCase
51
51
 
52
52
  def test_layer
53
53
  l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "clouds")
54
- assert_equal %w(cloudy.png partly_cloudy.png stormy.png), l.filenames
54
+ assert_equal %w(cloudy.png partly_cloudy.png stormy.png), l.filenames.sort
55
55
 
56
56
  l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "grass")
57
57
  assert_equal 'default.png', l.selected_filename
@@ -8,5 +8,36 @@ class TestGruffSideBar < GruffTestCase
8
8
  write_test_file g, 'side_bar.png'
9
9
  end
10
10
 
11
+ def test_bar_spacing
12
+ g = setup_basic_graph(Gruff::SideBar, 800)
13
+ g.bar_spacing = 0
14
+ g.title = "100% spacing between bars"
15
+ g.write("test/output/side_bar_spacing_full.png")
16
+
17
+ g = setup_basic_graph(Gruff::SideBar, 800)
18
+ g.bar_spacing = 0.5
19
+ g.title = "50% spacing between bars"
20
+ g.write("test/output/side_bar_spacing_half.png")
21
+
22
+ g = setup_basic_graph(Gruff::SideBar, 800)
23
+ g.bar_spacing = 1
24
+ g.title = "0% spacing between bars"
25
+ g.write("test/output/side_bar_spacing_none.png")
26
+ end
27
+
28
+ def test_x_axis_range
29
+ g = Gruff::SideBar.new('400x300')
30
+ g.title = 'Should run from 8 to 32'
31
+ g.hide_line_numbers = false
32
+ g.theme_37signals
33
+ g.data("Grapes", [8])
34
+ g.data("Apples", [24])
35
+ g.data("Oranges", [32])
36
+ g.data("Watermelon", [8])
37
+ g.data("Peaches", [12])
38
+ g.labels = {0 => '2003', 2 => '2004', 4 => '2005'}
39
+ g.write("test/output/side_bar_data_range.png")
40
+ end
41
+
11
42
  end
12
43
 
metadata CHANGED
@@ -1,41 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gruff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 7
10
+ version: 0.3.7
5
11
  platform: ruby
6
12
  authors:
7
13
  - Geoffrey Grosenbach
14
+ - Uwe Kubosch
8
15
  autorequire:
9
16
  bindir: bin
10
17
  cert_chain: []
11
18
 
12
- date: 2009-08-21 00:00:00 -07:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: hoe
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.12.1
24
- version:
19
+ date: 2012-10-16 00:00:00 Z
20
+ dependencies: []
21
+
25
22
  description: Beautiful graphs for one or multiple datasets. Can be used on websites or in documents.
26
23
  email: boss@topfunky.com
27
24
  executables: []
28
25
 
29
26
  extensions: []
30
27
 
31
- extra_rdoc_files:
32
- - History.txt
33
- - Manifest.txt
34
- - README.txt
28
+ extra_rdoc_files: []
29
+
35
30
  files:
31
+ - .gitignore
32
+ - .rvmrc
33
+ - .travis.yml
34
+ - Gemfile
35
+ - Gemfile.lock
36
36
  - History.txt
37
+ - LICENSE.txt
37
38
  - MIT-LICENSE
38
39
  - Manifest.txt
40
+ - README.md
39
41
  - README.txt
40
42
  - Rakefile
41
43
  - assets/bubble.png
@@ -65,6 +67,7 @@ files:
65
67
  - assets/plastik/blue.png
66
68
  - assets/plastik/green.png
67
69
  - assets/plastik/red.png
70
+ - gruff.gemspec
68
71
  - init.rb
69
72
  - lib/gruff.rb
70
73
  - lib/gruff/accumulator_bar.rb
@@ -83,6 +86,7 @@ files:
83
86
  - lib/gruff/net.rb
84
87
  - lib/gruff/photo_bar.rb
85
88
  - lib/gruff/pie.rb
89
+ - lib/gruff/scatter.rb
86
90
  - lib/gruff/scene.rb
87
91
  - lib/gruff/side_bar.rb
88
92
  - lib/gruff/side_stacked_bar.rb
@@ -90,6 +94,7 @@ files:
90
94
  - lib/gruff/stacked_area.rb
91
95
  - lib/gruff/stacked_bar.rb
92
96
  - lib/gruff/stacked_mixin.rb
97
+ - lib/gruff/version.rb
93
98
  - rails_generators/gruff/gruff_generator.rb
94
99
  - rails_generators/gruff/templates/controller.rb
95
100
  - rails_generators/gruff/templates/functional_test.rb
@@ -108,40 +113,48 @@ files:
108
113
  - test/test_net.rb
109
114
  - test/test_photo.rb
110
115
  - test/test_pie.rb
116
+ - test/test_scatter.rb
111
117
  - test/test_scene.rb
112
118
  - test/test_side_bar.rb
113
119
  - test/test_sidestacked_bar.rb
114
120
  - test/test_spider.rb
115
121
  - test/test_stacked_area.rb
116
122
  - test/test_stacked_bar.rb
117
- has_rdoc: true
118
123
  homepage: http://nubyonrails.com/pages/gruff
124
+ licenses: []
125
+
119
126
  post_install_message:
120
- rdoc_options:
121
- - --main
122
- - README.txt
127
+ rdoc_options: []
128
+
123
129
  require_paths:
124
130
  - lib
125
131
  required_ruby_version: !ruby/object:Gem::Requirement
132
+ none: false
126
133
  requirements:
127
134
  - - ">="
128
135
  - !ruby/object:Gem::Version
136
+ hash: 3
137
+ segments:
138
+ - 0
129
139
  version: "0"
130
- version:
131
140
  required_rubygems_version: !ruby/object:Gem::Requirement
141
+ none: false
132
142
  requirements:
133
143
  - - ">="
134
144
  - !ruby/object:Gem::Version
145
+ hash: 3
146
+ segments:
147
+ - 0
135
148
  version: "0"
136
- version:
137
149
  requirements: []
138
150
 
139
- rubyforge_project: gruff
140
- rubygems_version: 1.3.1
151
+ rubyforge_project:
152
+ rubygems_version: 1.8.24
141
153
  signing_key:
142
- specification_version: 2
154
+ specification_version: 3
143
155
  summary: Beautiful graphs for one or multiple datasets.
144
156
  test_files:
157
+ - test/gruff_test_case.rb
145
158
  - test/test_accumulator_bar.rb
146
159
  - test/test_area.rb
147
160
  - test/test_bar.rb
@@ -156,6 +169,7 @@ test_files:
156
169
  - test/test_net.rb
157
170
  - test/test_photo.rb
158
171
  - test/test_pie.rb
172
+ - test/test_scatter.rb
159
173
  - test/test_scene.rb
160
174
  - test/test_side_bar.rb
161
175
  - test/test_sidestacked_bar.rb