gruff 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 = [