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,94 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
+ require 'yaml'
5
+
6
+ class LayerStub < Gruff::Layer; attr_reader :base_dir, :filenames, :selected_filename; end
7
+
8
+ class TestGruffScene < GruffTestCase
9
+
10
+ def test_hazy
11
+ g = setup_scene
12
+ g.weather = "cloudy"
13
+ g.haze = true
14
+ g.time = Time.mktime(2006, 7, 4, 4, 35)
15
+ g.write "test/output/scene_hazy_night.png"
16
+ end
17
+
18
+ def test_stormy_night
19
+ g = setup_scene
20
+ g.weather = "stormy"
21
+ g.time = Time.mktime(2006, 7, 4, 0, 0)
22
+ g.write "test/output/scene_stormy_night.png"
23
+ end
24
+
25
+
26
+ def test_not_hazy
27
+ g = setup_scene
28
+ g.weather = "cloudy"
29
+ g.haze = false
30
+ g.time = Time.mktime(2006, 7, 4, 6, 00)
31
+ g.write "test/output/scene_not_hazy_day.png"
32
+ end
33
+
34
+ def test_partly_cloudy
35
+ g = setup_scene
36
+ g.weather = "partly cloudy"
37
+ g.haze = false
38
+ g.time = Time.mktime(2006, 7, 4, 13, 00)
39
+ g.write "test/output/scene_partly_cloudy_day.png"
40
+ end
41
+
42
+
43
+ def test_stormy_day
44
+ g = setup_scene
45
+ g.weather = "stormy"
46
+ g.haze = false
47
+ g.time = Time.mktime(2006, 7, 4, 8, 00)
48
+ g.write "test/output/scene_stormy_day.png"
49
+ end
50
+
51
+
52
+ def test_layer
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
55
+
56
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "grass")
57
+ assert_equal 'default.png', l.selected_filename
58
+
59
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
60
+ l.update Time.mktime(2006, 7, 4, 12, 35) # 12:35, July 4, 2006
61
+ assert_equal '1200.png', l.selected_filename
62
+
63
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
64
+ l.update Time.mktime(2006, 7, 4, 0, 0) # 00:00, July 4, 2006
65
+ assert_equal '0000.png', l.selected_filename
66
+
67
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
68
+ l.update Time.mktime(2006, 7, 4, 23, 35) # 23:35, July 4, 2006
69
+ assert_equal '2000.png', l.selected_filename
70
+
71
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
72
+ l.update Time.mktime(2006, 7, 4, 0, 1) # 00:01, July 4, 2006
73
+ assert_equal '0000.png', l.selected_filename
74
+
75
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
76
+ l.update Time.mktime(2006, 7, 4, 2, 0) # 02:00, July 4, 2006
77
+ assert_equal '0200.png', l.selected_filename
78
+
79
+ l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
80
+ l.update Time.mktime(2006, 7, 4, 4, 00) # 04:00, July 4, 2006
81
+ assert_equal '0400.png', l.selected_filename
82
+ end
83
+
84
+ private
85
+
86
+ def setup_scene
87
+ g = Gruff::Scene.new("500x100", File.expand_path("../assets/city_scene", File.dirname(__FILE__)) )
88
+ g.layers = %w(background haze sky clouds)
89
+ g.weather_group = %w(clouds)
90
+ g.time_group = %w(background sky)
91
+ g
92
+ end
93
+
94
+ 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 TestGruffSideSideStackedBar < Test::Unit::TestCase
5
+ class TestGruffSideStackedBar < GruffTestCase
10
6
 
11
7
  # TODO Delete old output files once when starting tests
12
8
 
@@ -0,0 +1,216 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.dirname(__FILE__) + "/gruff_test_case"
4
+
5
+ class TestGruffSpider < GruffTestCase
6
+
7
+ def setup
8
+ @datasets = [
9
+ [:Strength, [10]],
10
+ [:Dexterity, [16]],
11
+ [:Constitution, [12]],
12
+ [:Intelligence, [12]],
13
+ [:Wisdom, [10]],
14
+ ["Charisma", [16]],
15
+ ]
16
+
17
+ # @datasets = [
18
+ # [:Darren, [25]],
19
+ # [:Chris, [80]],
20
+ # [:Egbert, [22]],
21
+ # [:Adam, [95]],
22
+ # [:Bill, [90]],
23
+ # ["Frank", [5]],
24
+ # ["Zero", [0]],
25
+ # ]
26
+ end
27
+
28
+ def test_spider_graph
29
+ g = Gruff::Spider.new(20)
30
+ g.title = "Spider Graph Test"
31
+ @datasets.each do |data|
32
+ g.data(data[0], data[1])
33
+ end
34
+
35
+ # Default theme
36
+ g.write("test/output/spider_keynote.png")
37
+ end
38
+
39
+ def test_pie_graph_small
40
+ g = Gruff::Spider.new(20, 400)
41
+ g.title = "Visual Spider Graph Test Small"
42
+ @datasets.each do |data|
43
+ g.data(data[0], data[1])
44
+ end
45
+
46
+ # Default theme
47
+ g.write("test/output/spider_small.png")
48
+ end
49
+
50
+ def test_spider_graph_nearly_equal
51
+ g = Gruff::Spider.new(50)
52
+ g.title = "Spider Graph Nearly Equal"
53
+
54
+ g.data(:Blake, [41])
55
+ g.data(:Aaron, [42])
56
+ g.data(:Grouch, [40])
57
+ # g.data(:Snuffleupagus, [43])
58
+
59
+ g.write("test/output/spider_nearly_equal.png")
60
+ end
61
+
62
+ def test_pie_graph_equal
63
+ g = Gruff::Spider.new(50)
64
+ g.title = "Spider Graph Equal"
65
+
66
+ g.data(:Bert, [41])
67
+ g.data(:Adam, [41])
68
+ g.data(:Joe, [41])
69
+
70
+ g.write("test/output/spider_equal.png")
71
+ end
72
+
73
+ def test_pie_graph_zero
74
+ g = Gruff::Spider.new(2)
75
+ g.title = "Pie Graph Two One Zero"
76
+
77
+ g.data(:Bert, [0])
78
+ g.data(:Adam, [1])
79
+ g.data(:Sam, [2])
80
+
81
+ g.write("test/output/spider_zero.png")
82
+ end
83
+
84
+ def test_wide
85
+ g = setup_basic_graph('800x400')
86
+ g.title = "Wide spider"
87
+ g.write("test/output/spider_wide.png")
88
+ end
89
+
90
+ def test_label_size
91
+ g = setup_basic_graph()
92
+ g.title = "Spider With Small Legend"
93
+ g.legend_font_size = 10
94
+ g.write("test/output/spider_legend.png")
95
+
96
+ g = setup_basic_graph(400)
97
+ g.title = "Small spider With Small Legend"
98
+ g.legend_font_size = 10
99
+ g.write("test/output/spider_legend_small.png")
100
+ end
101
+
102
+ def test_theme_37signals
103
+ g = Gruff::Spider.new(20)
104
+ g.title = "Spider Graph Test"
105
+ @datasets.each do |data|
106
+ g.data(data[0], data[1])
107
+ end
108
+
109
+ g.theme_37signals
110
+
111
+ # Default theme
112
+ g.write("test/output/spider_37signals.png")
113
+ end
114
+
115
+ def test_no_axes
116
+ g = Gruff::Spider.new(20)
117
+ g.title = "Look ma, no axes"
118
+ g.hide_axes = true
119
+ @datasets.each do |data|
120
+ g.data(data[0], data[1])
121
+ end
122
+ g.write("test/output/spider_no_axes.png")
123
+
124
+ end
125
+
126
+ def test_no_print
127
+ g = Gruff::Spider.new(20)
128
+ g.title = "Should not print"
129
+ g.hide_text = true
130
+ @datasets.each do |data|
131
+ g.data(data[0], data[1])
132
+ end
133
+ g.write("test/output/spider_no_print.png")
134
+ end
135
+
136
+ def test_transparency
137
+ g = Gruff::Spider.new(20)
138
+ g.title = "Transparent background"
139
+ g.hide_text = true
140
+ g.transparent_background = true
141
+ g.hide_axes = true
142
+ @datasets.each do |data|
143
+ g.data(data[0], data[1])
144
+ end
145
+ g.write("test/output/spider_no_background.png")
146
+ end
147
+
148
+ def test_overlay
149
+ g = Gruff::Spider.new(20)
150
+ g.title = "George (blue) vs Sarah (white)"
151
+ @datasets.each do |data|
152
+ g.data(data[0], data[1])
153
+ end
154
+ g.write("test/output/spider_overlay_1.png")
155
+
156
+ g = Gruff::Spider.new(20)
157
+ g.title = "Transparent background"
158
+ g.hide_text = true
159
+ g.hide_axes = true
160
+ g.transparent_background = true
161
+ @datasets = [
162
+ [:Strength, [18]],
163
+ [:Dexterity, [10]],
164
+ [:Constitution, [18]],
165
+ [:Intelligence, [8]],
166
+ [:Wisdom, [14]],
167
+ ["Charisma", [4]],
168
+ ]
169
+ @datasets.each do |data|
170
+ g.data(data[0], data[1])
171
+ end
172
+ g.marker_color = "#4F6EFF"
173
+ g.write("test/output/spider_overlay_2.png")
174
+ end
175
+
176
+ def test_lots_of_data
177
+ g = Gruff::Spider.new(10)
178
+ @datasets = [[:a, [1]], [:b, [5]], [:c, [3]], [:d, [9]], [:e, [4]],
179
+ [:f, [7]], [:g, [0]], [:h, [4]], [:i, [6]], [:j, [0]],
180
+ [:k, [4]], [:l, [8]]]
181
+
182
+ @datasets.each do |data|
183
+ g.data(data[0], data[1])
184
+ end
185
+
186
+ g.title = "Sample Data"
187
+ g.write("test/output/spider_lots_of_data.png")
188
+ end
189
+
190
+ def test_lots_of_data_with_large_names
191
+ g = Gruff::Spider.new(10)
192
+ @datasets = [[:anteaters, [1]], [:bulls, [5]], [:cats, [3]], [:dogs, [9]], [:elephants, [4]],
193
+ [:frogs, [7]], [:giraffes, [0]], [:hamsters, [4]], [:iguanas, [6]],
194
+ [:jaguar, [0]], [:kangaroo, [4]], [:locust, [8]]]
195
+
196
+ @datasets.each do |data|
197
+ g.data(data[0], data[1])
198
+ end
199
+
200
+ g.title = "Zoo Inventory"
201
+ g.write("test/output/spider_lots_of_data_normal_names.png")
202
+ end
203
+
204
+
205
+ protected
206
+
207
+ def setup_basic_graph(size=800, max = 20)
208
+ g = Gruff::Spider.new(max, size)
209
+ g.title = "My Graph Title"
210
+ @datasets.each do |data|
211
+ g.data(data[0], data[1])
212
+ end
213
+ return g
214
+ end
215
+
216
+ 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 TestGruffStackedBar < Test::Unit::TestCase
5
+ class TestGruffStackedBar < GruffTestCase
10
6
 
11
7
  def setup
12
8
  @datasets = [
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.10
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: gruff
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.1
7
- date: 2006-02-14
6
+ version: 0.1.2
7
+ date: 2006-04-20 00:00:00 -07:00
8
8
  summary: Beautiful graphs for one or multiple datasets.
9
9
  require_paths:
10
- - lib
10
+ - lib
11
11
  email: boss@topfunky.com
12
12
  homepage: http://www.topfunky.com
13
13
  rubyforge_project: gruff
@@ -18,46 +18,63 @@ bindir: bin
18
18
  has_rdoc: true
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
25
24
  version:
26
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
27
28
  authors:
28
- - Geoffrey Grosenbach
29
+ - Geoffrey Grosenbach
29
30
  files:
30
- - Rakefile
31
- - README
32
- - CHANGELOG
33
- - MIT-LICENSE
34
- - lib/gruff
35
- - lib/gruff.rb
36
- - lib/gruff/area.rb
37
- - lib/gruff/bar.rb
38
- - lib/gruff/bar_conversion.rb
39
- - lib/gruff/base.rb
40
- - lib/gruff/line.rb
41
- - lib/gruff/photo_bar.rb
42
- - lib/gruff/pie.rb
43
- - lib/gruff/side_stacked_bar.rb
44
- - lib/gruff/stacked_bar.rb
45
- - assets/bubble.png
46
- - assets/pc306715.jpg
47
- - assets/plastik
48
- - test/area_test.rb
49
- - test/bar_test.rb
50
- - test/line_test.rb
51
- - test/output
52
- - test/photo_test.rb
53
- - test/pie_test.rb
54
- - test/sidestacked_bar_test.rb
55
- - test/stacked_bar_test.rb
31
+ - Rakefile
32
+ - README
33
+ - CHANGELOG
34
+ - MIT-LICENSE
35
+ - lib/gruff
36
+ - lib/gruff.rb
37
+ - lib/gruff/area.rb
38
+ - lib/gruff/bar.rb
39
+ - lib/gruff/bar_conversion.rb
40
+ - lib/gruff/base.rb
41
+ - lib/gruff/line.rb
42
+ - lib/gruff/net.rb
43
+ - lib/gruff/photo_bar.rb
44
+ - lib/gruff/pie.rb
45
+ - lib/gruff/scene.rb
46
+ - lib/gruff/side_stacked_bar.rb
47
+ - lib/gruff/spider.rb
48
+ - lib/gruff/stacked_bar.rb
49
+ - assets/bubble.png
50
+ - assets/city_scene
51
+ - assets/pc306715.jpg
52
+ - assets/plastik
53
+ - test/area_test.rb
54
+ - test/bar_test.rb
55
+ - test/base_test.rb
56
+ - test/gruff_test_case.rb
57
+ - test/legend_test.rb
58
+ - test/line_test.rb
59
+ - test/net_test.rb
60
+ - test/output
61
+ - test/photo_test.rb
62
+ - test/pie_test.rb
63
+ - test/scene_test.rb
64
+ - test/sidestacked_bar_test.rb
65
+ - test/spider_test.rb
66
+ - test/stacked_bar_test.rb
56
67
  test_files: []
68
+
57
69
  rdoc_options: []
70
+
58
71
  extra_rdoc_files: []
72
+
59
73
  executables: []
74
+
60
75
  extensions: []
76
+
61
77
  requirements:
62
- - none
63
- dependencies: []
78
+ - none
79
+ dependencies: []
80
+