gruff 0.1.1 → 0.1.2

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.
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
+
5
+ class TestGruffBase < GruffTestCase
6
+
7
+
8
+ end
@@ -0,0 +1,13 @@
1
+ $:.unshift(File.dirname(__FILE__) + "/../lib/")
2
+
3
+ require 'test/unit'
4
+ require 'gruff'
5
+
6
+ class GruffTestCase < Test::Unit::TestCase
7
+
8
+ def test_dummy
9
+ assert true
10
+ end
11
+
12
+
13
+ end
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
+
5
+ class TestGruffLegend < GruffTestCase
6
+
7
+ def setup
8
+ @datasets = [
9
+ [:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]],
10
+ [:Charles, [80, 54, 67, 54, 68, 70, 90, 95]],
11
+ [:Julie, [22, 29, 35, 38, 36, 40, 46, 57]],
12
+ [:Jane, [95, 95, 95, 90, 85, 80, 88, 100]],
13
+ [:Philip, [90, 34, 23, 12, 78, 89, 98, 88]],
14
+ ["Arthur", [5, 10, 13, 11, 6, 16, 22, 32]],
15
+ ["Vincent", [5, 10, 13, 11, 6, 16, 22, 32]],
16
+ ["Jake", [5, 10, 13, 11, 6, 16, 22, 32]],
17
+ ["Stephen", [5, 10, 13, 11, 6, 16, 22, 32]],
18
+ ]
19
+
20
+ @sample_labels = {
21
+ 0 => '5/6',
22
+ 1 => '5/15',
23
+ 2 => '5/24',
24
+ 3 => '5/30',
25
+ 4 => '6/4',
26
+ 5 => '6/12',
27
+ 6 => '6/21',
28
+ 7 => '6/28',
29
+ }
30
+ end
31
+
32
+ def test_bar_legend_wrap
33
+ [800, 400].each do |width|
34
+ [nil, 4, 16, 30].each do |font_size|
35
+ g = Gruff::Bar.new(width)
36
+ g.title = "Wrapped Legend Bar Test #{font_size}pts #{width}px"
37
+ g.labels = @sample_labels
38
+ 0xEFD250.step(0xFF0000, 60) do |num|
39
+ g.colors << "#%x" % num
40
+ end
41
+
42
+ @datasets.each do |data|
43
+ g.data(data[0], data[1])
44
+ end
45
+
46
+ g.legend_font_size = font_size unless font_size.nil?
47
+ g.write("test/output/bar_wrapped_legend_#{font_size}_#{width}.png")
48
+ end
49
+ end
50
+ end
51
+
52
+ def test_pie_legend_wrap
53
+ [800, 400].each do |width|
54
+ [nil, 4, 16, 30].each do |font_size|
55
+ g = Gruff::Pie.new(width)
56
+ g.title = "Wrapped Legend Pie Test #{font_size}pts #{width}px"
57
+ g.labels = @sample_labels
58
+ 0xEFD250.step(0xFF0000, 60) do |num|
59
+ g.colors << "#%x" % num
60
+ end
61
+
62
+ @datasets.each do |data|
63
+ g.data(data[0], data[1])
64
+ end
65
+
66
+ g.legend_font_size = font_size unless font_size.nil?
67
+ g.write("test/output/pie_wrapped_legend_#{font_size}_#{width}.png")
68
+ end
69
+ end
70
+ end
71
+ end
@@ -1,12 +1,8 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- $:.unshift(File.dirname(__FILE__) + "/../lib/")
4
- #$:.unshift File.dirname(__FILE__) + "/fixtures/helpers"
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
5
4
 
6
- require 'test/unit'
7
- require 'gruff'
8
-
9
- class TestGruffLine < Test::Unit::TestCase
5
+ class TestGruffLine < GruffTestCase
10
6
 
11
7
  # TODO Delete old output files once when starting tests
12
8
 
@@ -135,48 +131,13 @@ class TestGruffLine < Test::Unit::TestCase
135
131
  g = Gruff::Line.new
136
132
  g.title = "Similar High End Values Test"
137
133
  g.data('similar points', %w(29.43 29.459 29.498 29.53 29.548 29.589 29.619 29.66 29.689 29.849 29.878 29.74 29.769 29.79 29.808 29.828).collect {|i| i.to_f} )
138
-
139
- # Default theme
140
- g.write("test/output/line_similar_high_end_values.png")
141
- end
142
-
143
- def test_dots_graph
144
- g = Gruff::Line.new(false)
145
- g.title = "Dots Test 800px"
146
- g.labels = {
147
- 0 => '5/6',
148
- 10 => '5/15',
149
- 20 => '5/24',
150
- 30 => '5/30',
151
- 40 => '6/4',
152
- 50 => '6/16'
153
- }
154
- %w{jimmy jane philip arthur julie bert}.each do |student_name|
155
- g.data(student_name, (0..50).collect { |i| rand 100 })
156
- end
157
-
158
- # Default theme
159
- g.write("test/output/line_dots.png")
160
- end
161
-
162
-
163
- def test_dots_graph_small
164
- g = Gruff::Line.new(400, false)
165
- g.title = "Dots Test 400px"
166
- g.labels = {
167
- 0 => '5/6',
168
- 10 => '5/15',
169
- 20 => '5/24',
170
- 30 => '5/30',
171
- 40 => '6/4',
172
- 50 => '6/16'
173
- }
174
- %w{jimmy jane philip arthur julie bert}.each do |student_name|
175
- g.data(student_name, (0..50).collect { |i| rand 100 })
176
- end
177
-
178
- # Default theme
179
- g.write("test/output/line_dots_small.png")
134
+ g.write("test/output/line_similar_high_end_values.png")
135
+
136
+ g = Gruff::Line.new
137
+ g.title = "Similar High End Values With Floor"
138
+ g.data('similar points', %w(29.43 29.459 29.498 29.53 29.548 29.589 29.619 29.66 29.689 29.849 29.878 29.74 29.769 29.79 29.808 29.828).collect {|i| i.to_f} )
139
+ g.minimum_value = 0
140
+ g.write("test/output/line_similar_high_end_values_with_floor.png")
180
141
  end
181
142
 
182
143
  def test_many_lines_graph_small
@@ -198,9 +159,9 @@ class TestGruffLine < Test::Unit::TestCase
198
159
  g.write("test/output/line_many_lines_small.png")
199
160
  end
200
161
 
201
- def test_dots_graph_tiny
202
- g = Gruff::Line.new(300, false)
203
- g.title = "Dots Test 300px"
162
+ def test_graph_tiny
163
+ g = Gruff::Line.new(300)
164
+ g.title = "Tiny Test 300px"
204
165
  g.labels = {
205
166
  0 => '5/6',
206
167
  10 => '5/15',
@@ -214,7 +175,7 @@ class TestGruffLine < Test::Unit::TestCase
214
175
  end
215
176
 
216
177
  # Default theme
217
- g.write("test/output/line_dots_tiny.png")
178
+ g.write("test/output/line_tiny.png")
218
179
  end
219
180
 
220
181
  def test_no_data
@@ -343,7 +304,6 @@ class TestGruffLine < Test::Unit::TestCase
343
304
  g.write("test/output/line_all_neg_400.png")
344
305
  end
345
306
 
346
-
347
307
  def test_many_numbers
348
308
  g = Gruff::Line.new('400x170')
349
309
  g.title = "Line Test, Many Numbers"
@@ -419,7 +379,6 @@ class TestGruffLine < Test::Unit::TestCase
419
379
  end
420
380
 
421
381
 
422
-
423
382
  protected
424
383
 
425
384
  # TODO Reset data after each theme
@@ -0,0 +1,230 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
+
5
+ class TestGruffNet < GruffTestCase
6
+
7
+ def setup
8
+ @datasets = [
9
+ [:Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]],
10
+ [:Charles, [80, 54, 67, 54, 68, 70, 90, 95]],
11
+ [:Julie, [22, 29, 35, 38, 36, 40, 46, 57]],
12
+ [:Jane, [95, 95, 95, 90, 85, 80, 88, 100]],
13
+ [:Philip, [90, 34, 23, 12, 78, 89, 98, 88]],
14
+ ["Arthur", [5, 10, 13, 11, 6, 16, 22, 32]],
15
+ ]
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_net_small_values
30
+ @datasets = [
31
+ [:small, [0.1, 0.14356, 0.0, 0.5674839, 0.456]],
32
+ [:small2, [0.2, 0.3, 0.1, 0.05, 0.9]]
33
+ ]
34
+
35
+ g = Gruff::Net.new
36
+ g.title = "Small Values Net Graph Test"
37
+ @datasets.each do |data|
38
+ g.data(data[0], data[1])
39
+ end
40
+ g.write("test/output/net_small.png")
41
+
42
+ g = Gruff::Net.new(400)
43
+ g.title = "Small Values Net Graph Test 400px"
44
+ @datasets.each do |data|
45
+ g.data(data[0], data[1])
46
+ end
47
+ g.write("test/output/net_small_small.png")
48
+ end
49
+
50
+ def test_net_starts_with_zero
51
+ @datasets = [
52
+ [:first0, [0, 5, 10, 8, 18]],
53
+ [:normal, [1, 2, 3, 4, 5]]
54
+ ]
55
+
56
+ g = Gruff::Net.new
57
+ g.title = "Small Values Net Graph Test"
58
+ @datasets.each do |data|
59
+ g.data(data[0], data[1])
60
+ end
61
+ g.write("test/output/net_small_zero.png")
62
+
63
+ g = Gruff::Net.new(400)
64
+ g.title = "Small Values Net Graph Test 400px"
65
+ @datasets.each do |data|
66
+ g.data(data[0], data[1])
67
+ end
68
+ g.write("test/output/net_small_small_zero.png")
69
+ end
70
+
71
+
72
+ def test_net_large_values
73
+ @datasets = [
74
+ [:large, [100_005, 35_000, 28_000, 27_000]],
75
+ [:large2, [35_000, 28_000, 27_000, 100_005]],
76
+ [:large3, [28_000, 27_000, 100_005, 35_000]],
77
+ [:large4, [1_238, 39_092, 27_938, 48_876]]
78
+ ]
79
+
80
+ g = Gruff::Net.new
81
+ g.title = "Very Large Values Net Graph Test"
82
+ @datasets.each do |data|
83
+ g.data(data[0], data[1])
84
+ end
85
+
86
+ g.write("test/output/net_large.png")
87
+ end
88
+
89
+ def test_many_datapoints
90
+ g = Gruff::Net.new
91
+ g.title = "Many Multi-Net Graph Test"
92
+ g.labels = {
93
+ 0 => 'June',
94
+ 10 => 'July',
95
+ 30 => 'August',
96
+ 50 => 'September',
97
+ }
98
+ g.data('many points', (0..50).collect {|i| rand(100) })
99
+
100
+ # Default theme
101
+ g.write("test/output/net_many.png")
102
+ end
103
+
104
+
105
+ def test_similar_high_end_values
106
+ g = Gruff::Net.new
107
+ g.title = "Similar High End Values Test"
108
+ g.data('similar points', %w(29.43 29.459 29.498 29.53 29.548 29.589 29.619 29.66 29.689 29.849 29.878 29.74 29.769 29.79 29.808 29.828).collect {|i| i.to_f} )
109
+
110
+ # Default theme
111
+ g.write("test/output/net_similar_high_end_values.png")
112
+ end
113
+
114
+ def test_many_nets_graph_small
115
+ g = Gruff::Net.new(400)
116
+ g.title = "Many Values Net Test 400px"
117
+ g.labels = {
118
+ 0 => '5/6',
119
+ 10 => '5/15',
120
+ 20 => '5/24',
121
+ 30 => '5/30',
122
+ 40 => '6/4',
123
+ 50 => '6/16'
124
+ }
125
+ %w{jimmy jane philip arthur julie bert}.each do |student_name|
126
+ g.data(student_name, (0..50).collect { |i| rand 100 })
127
+ end
128
+
129
+ # Default theme
130
+ g.write("test/output/net_many_nets_small.png")
131
+ end
132
+
133
+ def test_dots_graph_tiny
134
+ g = Gruff::Net.new(300)
135
+ g.title = "Dots Test 300px"
136
+ g.labels = {
137
+ 0 => '5/6',
138
+ 10 => '5/15',
139
+ 20 => '5/24',
140
+ 30 => '5/30',
141
+ 40 => '6/4',
142
+ 50 => '6/16'
143
+ }
144
+ %w{jimmy jane philip arthur julie bert}.each do |student_name|
145
+ g.data(student_name, (0..50).collect { |i| rand 100 })
146
+ end
147
+
148
+ # Default theme
149
+ g.write("test/output/net_dots_tiny.png")
150
+ end
151
+
152
+ def test_no_data
153
+ g = Gruff::Net.new(400)
154
+ g.title = "No Data"
155
+ # Default theme
156
+ g.write("test/output/net_no_data.png")
157
+
158
+ g = Gruff::Net.new(400)
159
+ g.title = "No Data Title"
160
+ g.no_data_message = 'There is no data'
161
+ g.write("test/output/net_no_data_msg.png")
162
+ end
163
+
164
+
165
+ def test_all_zeros
166
+ g = Gruff::Net.new(400)
167
+ g.title = "All Zeros"
168
+
169
+ g.data(:gus, [0,0,0,0])
170
+
171
+ # Default theme
172
+ g.write("test/output/net_no_data_other.png")
173
+ end
174
+
175
+ def test_no_title
176
+ g = Gruff::Net.new(400)
177
+ g.labels = @sample_labels
178
+ @datasets.each do |data|
179
+ g.data(data[0], data[1])
180
+ end
181
+
182
+ g.write("test/output/net_no_title.png")
183
+ end
184
+
185
+ def test_no_net_markers
186
+ g = setup_basic_graph(400)
187
+ g.title = "No Net Markers"
188
+ g.hide_line_markers = true
189
+ g.write("test/output/net_no_net_markers.png")
190
+ end
191
+
192
+ def test_no_legend
193
+ g = setup_basic_graph(400)
194
+ g.title = "No Legend"
195
+ g.hide_legend = true
196
+ g.write("test/output/net_no_legend.png")
197
+ end
198
+
199
+ def test_nothing_but_the_graph
200
+ g = setup_basic_graph(400)
201
+ g.title = "THIS TITLE SHOULD NOT DISPLAY!!!"
202
+ g.hide_line_markers = true
203
+ g.hide_legend = true
204
+ g.hide_title = true
205
+ g.write("test/output/net_nothing_but_the_graph.png")
206
+ end
207
+
208
+ def test_wide_graph
209
+ g = setup_basic_graph('800x400')
210
+ g.title = "Wide Graph"
211
+ g.write("test/output/net_wide_graph.png")
212
+
213
+ g = setup_basic_graph('400x200')
214
+ g.title = "Wide Graph Small"
215
+ g.write("test/output/net_wide_graph_small.png")
216
+ end
217
+
218
+ protected
219
+
220
+ def setup_basic_graph(size=800)
221
+ g = Gruff::Net.new(size)
222
+ g.title = "My Graph Title"
223
+ g.labels = @sample_labels
224
+ @datasets.each do |data|
225
+ g.data(data[0], data[1])
226
+ end
227
+ return g
228
+ end
229
+
230
+ end
@@ -1,11 +1,8 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- $:.unshift(File.dirname(__FILE__) + "/../lib/")
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
4
 
5
- require 'test/unit'
6
- require 'gruff'
7
-
8
- class TestGruffPhotoBar < Test::Unit::TestCase
5
+ class TestGruffPhotoBar < GruffTestCase
9
6
 
10
7
  def setup
11
8
  @datasets = [
@@ -1,12 +1,8 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- $:.unshift(File.dirname(__FILE__) + "/../lib/")
4
- #$:.unshift File.dirname(__FILE__) + "/fixtures/helpers"
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
5
4
 
6
- require 'test/unit'
7
- require 'gruff'
8
-
9
- class TestGruffPie < Test::Unit::TestCase
5
+ class TestGruffPie < GruffTestCase
10
6
 
11
7
  def setup
12
8
  @datasets = [