gruff 0.3.6 → 0.3.7

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.
@@ -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