ruby_mapnik 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. data/.autotest +35 -0
  2. data/.gemtest +0 -0
  3. data/.yardopts +1 -0
  4. data/Gemfile +12 -0
  5. data/LICENSE +19 -0
  6. data/Manifest.txt +177 -0
  7. data/README.rdoc +84 -0
  8. data/Rakefile +43 -0
  9. data/demo/data/COPYRIGHT.txt +3 -0
  10. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
  11. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
  12. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
  13. data/demo/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
  14. data/demo/data/boundaries.dbf +0 -0
  15. data/demo/data/boundaries.prj +1 -0
  16. data/demo/data/boundaries.sbx +0 -0
  17. data/demo/data/boundaries.shp +0 -0
  18. data/demo/data/boundaries.shx +0 -0
  19. data/demo/data/boundaries_l.dbf +0 -0
  20. data/demo/data/boundaries_l.prj +1 -0
  21. data/demo/data/boundaries_l.sbx +0 -0
  22. data/demo/data/boundaries_l.shp +0 -0
  23. data/demo/data/boundaries_l.shx +0 -0
  24. data/demo/data/ontdrainage.dbf +0 -0
  25. data/demo/data/ontdrainage.prj +1 -0
  26. data/demo/data/ontdrainage.sbx +0 -0
  27. data/demo/data/ontdrainage.shp +0 -0
  28. data/demo/data/ontdrainage.shx +0 -0
  29. data/demo/data/popplaces.dbf +0 -0
  30. data/demo/data/popplaces.prj +1 -0
  31. data/demo/data/popplaces.sbx +0 -0
  32. data/demo/data/popplaces.shp +0 -0
  33. data/demo/data/popplaces.shx +0 -0
  34. data/demo/data/qcdrainage.dbf +0 -0
  35. data/demo/data/qcdrainage.prj +1 -0
  36. data/demo/data/qcdrainage.sbx +0 -0
  37. data/demo/data/qcdrainage.shp +0 -0
  38. data/demo/data/qcdrainage.shx +0 -0
  39. data/demo/data/roads.dbf +0 -0
  40. data/demo/data/roads.prj +1 -0
  41. data/demo/data/roads.sbx +0 -0
  42. data/demo/data/roads.shp +0 -0
  43. data/demo/data/roads.shx +0 -0
  44. data/demo/data/test/charplacement.dbf +0 -0
  45. data/demo/data/test/charplacement.shp +0 -0
  46. data/demo/data/test/charplacement.shx +0 -0
  47. data/demo/data/test/displacement.dbf +0 -0
  48. data/demo/data/test/displacement.shp +0 -0
  49. data/demo/data/test/displacement.shx +0 -0
  50. data/demo/data/test/overlap.dbf +0 -0
  51. data/demo/data/test/overlap.shp +0 -0
  52. data/demo/data/test/overlap.shx +0 -0
  53. data/demo/data/test/raw/charplacement.gfs +25 -0
  54. data/demo/data/test/raw/charplacement.gml +99 -0
  55. data/demo/data/test/raw/charplacement.xsd +36 -0
  56. data/demo/data/test/raw/displacement.gfs +25 -0
  57. data/demo/data/test/raw/displacement.gml +173 -0
  58. data/demo/data/test/raw/displacement.xsd +36 -0
  59. data/demo/data/test/raw/overlap.gfs +25 -0
  60. data/demo/data/test/raw/overlap.gml +127 -0
  61. data/demo/data/test/raw/overlap.xsd +36 -0
  62. data/demo/data/test/raw/textspacing.gfs +25 -0
  63. data/demo/data/test/raw/textspacing.gml +117 -0
  64. data/demo/data/test/raw/textspacing.xsd +36 -0
  65. data/demo/data/test/readme.txt +3 -0
  66. data/demo/data/test/regenerate.sh +20 -0
  67. data/demo/data/test/textspacing.dbf +0 -0
  68. data/demo/data/test/textspacing.shp +0 -0
  69. data/demo/data/test/textspacing.shx +0 -0
  70. data/demo/rundemo.rb +139 -0
  71. data/demo/sinatra/demo.rb +31 -0
  72. data/demo/sinatra/public/css/demo_map.css +7 -0
  73. data/demo/sinatra/public/index.html +13 -0
  74. data/demo/sinatra/public/javascripts/demo_map.js +42 -0
  75. data/ext/ruby_mapnik/_mapnik.cpp +54 -0
  76. data/ext/ruby_mapnik/_mapnik.h +69 -0
  77. data/ext/ruby_mapnik/_mapnik_color.rb.cpp +179 -0
  78. data/ext/ruby_mapnik/_mapnik_color.rb.h +32 -0
  79. data/ext/ruby_mapnik/_mapnik_coord.rb.cpp +145 -0
  80. data/ext/ruby_mapnik/_mapnik_coord.rb.h +32 -0
  81. data/ext/ruby_mapnik/_mapnik_datasource.rb.cpp +150 -0
  82. data/ext/ruby_mapnik/_mapnik_datasource.rb.h +32 -0
  83. data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.cpp +79 -0
  84. data/ext/ruby_mapnik/_mapnik_datasource_cache.rb.h +32 -0
  85. data/ext/ruby_mapnik/_mapnik_envelope.rb.cpp +220 -0
  86. data/ext/ruby_mapnik/_mapnik_envelope.rb.h +32 -0
  87. data/ext/ruby_mapnik/_mapnik_expression.rb.cpp +91 -0
  88. data/ext/ruby_mapnik/_mapnik_expression.rb.h +32 -0
  89. data/ext/ruby_mapnik/_mapnik_feature.rb.cpp +56 -0
  90. data/ext/ruby_mapnik/_mapnik_feature.rb.h +32 -0
  91. data/ext/ruby_mapnik/_mapnik_font_engine.rb.cpp +71 -0
  92. data/ext/ruby_mapnik/_mapnik_font_engine.rb.h +32 -0
  93. data/ext/ruby_mapnik/_mapnik_geometry.rb.cpp +73 -0
  94. data/ext/ruby_mapnik/_mapnik_geometry.rb.h +32 -0
  95. data/ext/ruby_mapnik/_mapnik_glyph_symbolizer.rb.cpp +250 -0
  96. data/ext/ruby_mapnik/_mapnik_glyph_symbolizer.rb.h +32 -0
  97. data/ext/ruby_mapnik/_mapnik_layer.rb.cpp +237 -0
  98. data/ext/ruby_mapnik/_mapnik_layer.rb.h +32 -0
  99. data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.cpp +70 -0
  100. data/ext/ruby_mapnik/_mapnik_line_pattern_symbolizer.rb.h +32 -0
  101. data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.cpp +43 -0
  102. data/ext/ruby_mapnik/_mapnik_line_symbolizer.rb.h +32 -0
  103. data/ext/ruby_mapnik/_mapnik_map.rb.cpp +435 -0
  104. data/ext/ruby_mapnik/_mapnik_map.rb.h +32 -0
  105. data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.cpp +139 -0
  106. data/ext/ruby_mapnik/_mapnik_markers_symbolizer.rb.h +32 -0
  107. data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.cpp +147 -0
  108. data/ext/ruby_mapnik/_mapnik_point_symbolizer.rb.h +32 -0
  109. data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.cpp +92 -0
  110. data/ext/ruby_mapnik/_mapnik_polygon_pattern_symbolizer.rb.h +32 -0
  111. data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.cpp +89 -0
  112. data/ext/ruby_mapnik/_mapnik_polygon_symbolizer.rb.h +32 -0
  113. data/ext/ruby_mapnik/_mapnik_projection.rb.cpp +98 -0
  114. data/ext/ruby_mapnik/_mapnik_projection.rb.h +32 -0
  115. data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.cpp +162 -0
  116. data/ext/ruby_mapnik/_mapnik_raster_colorizer.rb.h +32 -0
  117. data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.cpp +53 -0
  118. data/ext/ruby_mapnik/_mapnik_raster_symbolizer.rb.h +32 -0
  119. data/ext/ruby_mapnik/_mapnik_rule.rb.cpp +99 -0
  120. data/ext/ruby_mapnik/_mapnik_rule.rb.h +32 -0
  121. data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.cpp +86 -0
  122. data/ext/ruby_mapnik/_mapnik_shield_symbolizer.rb.h +32 -0
  123. data/ext/ruby_mapnik/_mapnik_stroke.rb.cpp +188 -0
  124. data/ext/ruby_mapnik/_mapnik_stroke.rb.h +32 -0
  125. data/ext/ruby_mapnik/_mapnik_style.rb.cpp +76 -0
  126. data/ext/ruby_mapnik/_mapnik_style.rb.h +32 -0
  127. data/ext/ruby_mapnik/_mapnik_symbolizer.rb.cpp +77 -0
  128. data/ext/ruby_mapnik/_mapnik_symbolizer.rb.h +32 -0
  129. data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.cpp +521 -0
  130. data/ext/ruby_mapnik/_mapnik_text_symbolizer.rb.h +32 -0
  131. data/ext/ruby_mapnik/extconf.rb +78 -0
  132. data/ext/ruby_mapnik/ruby_mapnik.cpp +31 -0
  133. data/lib/ruby_mapnik/mapnik/font_engine.rb +35 -0
  134. data/lib/ruby_mapnik/mapnik/layer.rb +69 -0
  135. data/lib/ruby_mapnik/mapnik/map.rb +144 -0
  136. data/lib/ruby_mapnik/mapnik/projection.rb +46 -0
  137. data/lib/ruby_mapnik/mapnik/raster_colorizer.rb +55 -0
  138. data/lib/ruby_mapnik/mapnik/rule.rb +107 -0
  139. data/lib/ruby_mapnik/mapnik/stroke.rb +58 -0
  140. data/lib/ruby_mapnik/mapnik/style.rb +66 -0
  141. data/lib/ruby_mapnik/mapnik/tile.rb +93 -0
  142. data/lib/ruby_mapnik.rb +48 -0
  143. data/script/console +2 -0
  144. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.dbf +0 -0
  145. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.prj +1 -0
  146. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shp +0 -0
  147. data/test/data/TM_WORLD_BORDERS_SIMPL_0.3_MOD.shx +0 -0
  148. data/test/data/test_map.xml +15 -0
  149. data/test/test_helper.rb +27 -0
  150. data/test/test_line_pattern_symbolizer.rb +26 -0
  151. data/test/test_mapnik_color.rb +66 -0
  152. data/test/test_mapnik_coord.rb +112 -0
  153. data/test/test_mapnik_datasource.rb +49 -0
  154. data/test/test_mapnik_envelope.rb +232 -0
  155. data/test/test_mapnik_expression.rb +19 -0
  156. data/test/test_mapnik_feature.rb +33 -0
  157. data/test/test_mapnik_font_engine.rb +13 -0
  158. data/test/test_mapnik_geometry.rb +72 -0
  159. data/test/test_mapnik_glyph_symbolizer.rb +96 -0
  160. data/test/test_mapnik_layer.rb +137 -0
  161. data/test/test_mapnik_line_symbolizer.rb +25 -0
  162. data/test/test_mapnik_map.rb +191 -0
  163. data/test/test_mapnik_markers_symbolizer.rb +46 -0
  164. data/test/test_mapnik_point_symbolizer.rb +53 -0
  165. data/test/test_mapnik_polygon_symbolizer.rb +44 -0
  166. data/test/test_mapnik_projection.rb +46 -0
  167. data/test/test_mapnik_raster_colorizer.rb +56 -0
  168. data/test/test_mapnik_raster_symbolizer.rb +40 -0
  169. data/test/test_mapnik_rule.rb +63 -0
  170. data/test/test_mapnik_shield_symbolizer.rb +193 -0
  171. data/test/test_mapnik_stroke.rb +94 -0
  172. data/test/test_mapnik_style.rb +28 -0
  173. data/test/test_mapnik_symbolizer.rb +9 -0
  174. data/test/test_mapnik_text_symbolizer.rb +232 -0
  175. data/test/test_polygon_pattern_symbolizer.rb +34 -0
  176. data/test/test_ruby_mapnik.rb +34 -0
  177. data/yard/lib/yard/parser/generic_parser.rb +72 -0
  178. data/yard/lib/yard_generic.rb +18 -0
  179. metadata +322 -0
@@ -0,0 +1,40 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikRasterSymbolizer < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @sym = Mapnik::RasterSymbolizer.new
7
+ end
8
+
9
+ def test_presence
10
+ assert Mapnik::RasterSymbolizer
11
+ end
12
+
13
+ def test_should_get_and_set_mode
14
+ possible_values = ["normal", "grain_merge", "grain_merge2", "multiply",
15
+ "multiply2", "divide", "divide2", "screen", "hard_light"]
16
+ possible_values.each do |value|
17
+ @sym.mode = value
18
+ assert_equal value, @sym.mode
19
+ end
20
+ end
21
+
22
+ def test_should_get_and_set_scaling
23
+ possible_values = [ "fast","bilinear","bilinear8"]
24
+ possible_values.each do |value|
25
+ @sym.scaling = value
26
+ assert_equal value, @sym.scaling
27
+ end
28
+ end
29
+
30
+ def test_should_get_and_set_opacity
31
+ @sym.opacity = 0.5
32
+ assert_equal 0.5, @sym.opacity
33
+ end
34
+
35
+ def test_should_get_and_set_filter_factor
36
+ @sym.filter_factor = 0.5
37
+ assert_equal 0.5, @sym.filter_factor
38
+ end
39
+
40
+ end
@@ -0,0 +1,63 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikRule < Test::Unit::TestCase
4
+
5
+ def test_presence
6
+ assert Mapnik::Rule
7
+ end
8
+
9
+ def test_should_instantiate
10
+ assert Mapnik::Rule.new
11
+ end
12
+
13
+ def test_should_get_and_set_name
14
+ rule = Mapnik::Rule.new
15
+ assert_equal("", rule.name)
16
+
17
+ new_name = "New name"
18
+ rule.name = new_name
19
+ assert_equal new_name, rule.name
20
+ end
21
+
22
+ def test_should_get_and_set_title
23
+ rule = Mapnik::Rule.new
24
+ assert_equal("", rule.title)
25
+
26
+ new_title = "New title"
27
+ rule.title = new_title
28
+ assert_equal new_title, rule.title
29
+ end
30
+
31
+ def test_should_get_and_set_abstract
32
+ rule = Mapnik::Rule.new
33
+ assert_equal("", rule.abstract)
34
+
35
+ new_abstract = "New abstract"
36
+ rule.abstract = new_abstract
37
+ assert_equal new_abstract, rule.abstract
38
+ end
39
+
40
+ def test_should_get_and_set_filter
41
+ rule = Mapnik::Rule.new
42
+ expression_string = "([place]='town')"
43
+ expression = Mapnik::Expression.parse(expression_string)
44
+ rule.filter = expression
45
+ assert_equal expression_string, rule.filter.to_s
46
+ end
47
+
48
+ def test_should_append_and_remove_symbols
49
+ rule = Mapnik::Rule.new
50
+ assert_equal 0, rule.symbols.count
51
+ rule.symbols << Mapnik::PolygonSymbolizer.new
52
+ assert_equal 1, rule.symbols.count
53
+ rule.symbols << Mapnik::LineSymbolizer.new
54
+ assert_equal 2, rule.symbols.count
55
+
56
+ obj = rule.symbols.delete_at(0)
57
+ assert obj
58
+ assert_equal 1, rule.symbols.count
59
+ assert rule.symbols.pop
60
+ assert_equal 0, rule.symbols.count
61
+ end
62
+
63
+ end
@@ -0,0 +1,193 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikShieldSymbolizer < Test::Unit::TestCase
4
+
5
+ def setup
6
+ expression = Mapnik::Expression.parse("[place]")
7
+ face_name = "DejaVu Sans Book"
8
+ fill = Mapnik::Color.new("#fff")
9
+ file = Mapnik::PathExpression.parse("myfile.png")
10
+ @sym = Mapnik::ShieldSymbolizer.new(expression, face_name, 12, fill, file)
11
+ end
12
+
13
+ def test_should_instantiate
14
+ assert @sym
15
+ end
16
+
17
+ def test_should_get_and_set_anchor
18
+ assert @sym.anchor
19
+ new_vals = [1,2]
20
+ @sym.anchor = new_vals
21
+ assert_equal new_vals, @sym.anchor
22
+ end
23
+
24
+ def test_should_get_and_set_allow_overlap
25
+ @sym.allow_overlap = true
26
+ assert @sym.allow_overlap?
27
+ @sym.allow_overlap = false
28
+ assert !@sym.allow_overlap?
29
+ end
30
+
31
+ def test_should_get_and_set_displacement
32
+ assert @sym.displacement
33
+ new_vals = [1,2]
34
+ @sym.displacement = new_vals
35
+ assert_equal new_vals, @sym.displacement
36
+ end
37
+
38
+ def test_should_get_and_set_shield_displacement
39
+ assert @sym.shield_displacement
40
+ new_vals = [1,2]
41
+ @sym.shield_displacement = new_vals
42
+ assert_equal new_vals, @sym.shield_displacement
43
+ end
44
+
45
+ def test_should_get_and_set_avoid_edges
46
+ @sym.avoid_edges = true
47
+ assert @sym.avoid_edges?
48
+ @sym.avoid_edges = false
49
+ assert !@sym.avoid_edges?
50
+ end
51
+
52
+ def test_should_get_and_set_character_spacing
53
+ assert_equal 0, @sym.character_spacing
54
+ @sym.character_spacing = 1
55
+ assert_equal 1, @sym.character_spacing
56
+ end
57
+
58
+ def test_should_get_and_set_face_name
59
+ assert_equal "DejaVu Sans Book", @sym.face_name
60
+ @sym.face_name = "DejaVu Sans"
61
+ assert_equal "DejaVu Sans", @sym.face_name
62
+ end
63
+
64
+ def test_should_get_and_set_fill
65
+ assert @sym.fill.instance_of?(Mapnik::Color)
66
+ white = Mapnik::Color.new("#fff")
67
+ @sym.fill = white
68
+ assert_equal white, @sym.fill
69
+ end
70
+
71
+ # TODO: Need fontset
72
+ # def test_should_get_and_set_fontset
73
+ # raise @sym.fontset.inspect
74
+ # end
75
+
76
+ def test_should_get_and_set_force_odd_labels
77
+ @sym.force_odd_labels = true
78
+ assert @sym.force_odd_labels?
79
+ @sym.force_odd_labels = false
80
+ assert !@sym.force_odd_labels?
81
+ end
82
+
83
+ def test_should_get_and_set_halo_fill
84
+ assert @sym.halo_fill.instance_of?(Mapnik::Color)
85
+ white = Mapnik::Color.new("#fff")
86
+ @sym.halo_fill = white
87
+ assert_equal white, @sym.halo_fill
88
+ end
89
+
90
+ def test_should_get_and_set_halo_radius
91
+ assert_equal 0, @sym.halo_radius
92
+ @sym.halo_radius = 1
93
+ assert_equal 1, @sym.halo_radius
94
+ end
95
+
96
+ def test_should_get_and_set_horizontal_alignment
97
+ @sym.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::LEFT
98
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::LEFT, @sym.horizontal_alignment
99
+
100
+ @sym.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE
101
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE, @sym.horizontal_alignment
102
+
103
+ @sym.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::RIGHT
104
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::RIGHT, @sym.horizontal_alignment
105
+ end
106
+
107
+ def test_should_get_and_set_label_position_tolerance
108
+ assert_equal 0, @sym.label_position_tolerance
109
+ @sym.label_position_tolerance = 1
110
+ assert_equal 1, @sym.label_position_tolerance
111
+ end
112
+
113
+ def test_should_get_and_set_label_spacing
114
+ assert_equal 0, @sym.label_spacing
115
+ @sym.label_spacing = 1
116
+ assert_equal 1, @sym.label_spacing
117
+ end
118
+
119
+ def test_should_get_and_set_line_spacing
120
+ assert_equal 0, @sym.line_spacing
121
+ @sym.line_spacing = 1
122
+ assert_equal 1, @sym.line_spacing
123
+ end
124
+
125
+ # TODO: failure here!
126
+ def test_should_get_and_set_max_char_angle_delta
127
+ @sym.max_char_angle_delta = 0.5
128
+ assert_equal 0.5, @sym.max_char_angle_delta
129
+ @sym.max_char_angle_delta = 0.7
130
+ assert_equal 0.7, @sym.max_char_angle_delta
131
+ end
132
+
133
+ def test_should_get_and_set_minimum_distance
134
+ assert_equal 0, @sym.minimum_distance
135
+ @sym.minimum_distance = 1
136
+ assert_equal 1, @sym.minimum_distance
137
+ end
138
+
139
+ def test_should_get_and_set_minimum_padding
140
+ assert_equal 0, @sym.minimum_padding
141
+ @sym.minimum_padding = 1
142
+ assert_equal 1, @sym.minimum_padding
143
+ end
144
+
145
+ def test_should_get_and_set_name
146
+ assert @sym.name.instance_of?(Mapnik::Expression)
147
+ new_expression_string = "([place]='towns')"
148
+ assert_not_equal new_expression_string, @sym.name.to_s
149
+ new_expression = Mapnik::Expression.parse(new_expression_string)
150
+ @sym.name = new_expression
151
+ assert_equal new_expression_string, @sym.name.to_s
152
+ end
153
+
154
+ def test_should_get_and_set_opactiy
155
+ assert_equal 1, @sym.opacity
156
+ @sym.opacity = 0
157
+ assert_equal 0, @sym.opacity
158
+ end
159
+
160
+ def test_should_get_and_set_text_ratio
161
+ assert_equal 0, @sym.ratio
162
+ @sym.ratio = 3
163
+ assert_equal 3, @sym.ratio
164
+ end
165
+
166
+ def test_should_get_and_set_text_size
167
+ assert_equal 12, @sym.size
168
+ @sym.size = 0
169
+ assert_equal 0, @sym.size
170
+ end
171
+
172
+ def test_should_get_and_set_wrap_width
173
+ assert_equal 0, @sym.wrap_width
174
+ @sym.wrap_width = 30
175
+ assert_equal 30, @sym.wrap_width
176
+ end
177
+
178
+ def test_should_get_and_set_wrap_character
179
+ @sym.wrap_character = '|'
180
+ assert_equal '|', @sym.wrap_character
181
+ @sym.wrap_character = '%'
182
+ assert_equal '%', @sym.wrap_character
183
+ end
184
+
185
+
186
+
187
+ def test_should_get_and_set_wrap_before
188
+ assert !@sym.wrap_before
189
+ @sym.wrap_before = true
190
+ assert @sym.wrap_before
191
+ end
192
+
193
+ end
@@ -0,0 +1,94 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikStroke < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @color = Mapnik::Color.new("#ccc")
7
+ @stroke = Mapnik::Stroke.new(@color, 1.0)
8
+ end
9
+
10
+ def test_should_instantiate
11
+ assert @stroke
12
+ end
13
+
14
+ def test_should_get_and_set_color
15
+ assert @stroke.color == @color
16
+ new_color = Mapnik::Color.new("#fff")
17
+ @stroke.color = new_color
18
+ assert @stroke.color == new_color
19
+ end
20
+
21
+ def test_should_get_and_set_opacity
22
+ opacity_before = @stroke.opacity
23
+ assert_equal 1, opacity_before
24
+
25
+ new_opacity = 0.5
26
+ @stroke.opacity = new_opacity
27
+ assert_equal new_opacity, @stroke.opacity
28
+ end
29
+
30
+ def test_should_get_and_set_gamma
31
+
32
+ gamma_before = @stroke.gamma
33
+ assert_equal 1, gamma_before
34
+
35
+ new_gamma = 0.5
36
+ @stroke.gamma = new_gamma
37
+ assert_equal new_gamma, @stroke.gamma
38
+ end
39
+
40
+ def test_should_get_and_set_width
41
+ width_before = @stroke.width
42
+ assert_equal 1, width_before
43
+
44
+ new_width = 0.5
45
+ @stroke.width = new_width
46
+ assert_equal new_width, @stroke.width
47
+ end
48
+
49
+ def test_should_have_line_caps
50
+ assert Mapnik::LineCap
51
+ assert Mapnik::LineCap::BUTT_CAP
52
+ assert Mapnik::LineCap::SQUARE_CAP
53
+ assert Mapnik::LineCap::ROUND_CAP
54
+ end
55
+
56
+ def test_should_have_line_joins
57
+ assert Mapnik::LineJoin
58
+ assert Mapnik::LineJoin::MITER_JOIN
59
+ assert Mapnik::LineJoin::MITER_REVERT_JOIN
60
+ assert Mapnik::LineJoin::ROUND_JOIN
61
+ assert Mapnik::LineJoin::BEVEL_JOIN
62
+ end
63
+
64
+ def test_should_get_and_set_line_cap
65
+ Mapnik::LineCap.constants.each do |const_name|
66
+ const = Mapnik::LineCap.const_get(const_name)
67
+ @stroke.line_cap = const
68
+ assert_equal const, @stroke.line_cap
69
+ end
70
+ end
71
+
72
+ def test_should_get_and_set_line_join
73
+ Mapnik::LineJoin.constants.each do |const_name|
74
+ const = Mapnik::LineJoin.const_get(const_name)
75
+ @stroke.line_join = const
76
+ assert_equal const, @stroke.line_join
77
+ end
78
+ end
79
+
80
+ def test_should_have_dashes
81
+ assert_equal 0, @stroke.dashes.length
82
+ dash_hash = {:gap => 1, :length => 1.2}
83
+ @stroke.dashes << dash_hash
84
+ assert_equal dash_hash, @stroke.dashes.first
85
+ assert_equal 1, @stroke.dashes.length
86
+ end
87
+
88
+ def test_should_have_dash_offset
89
+ assert_equal 0, @stroke.dash_offset
90
+ @stroke.dash_offset = 1.4
91
+ assert_equal 1.4, @stroke.dash_offset
92
+ end
93
+
94
+ end
@@ -0,0 +1,28 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikStyle < Test::Unit::TestCase
4
+
5
+ def test_presence
6
+ assert Mapnik::Style
7
+ end
8
+
9
+ def test_should_have_rules
10
+ style = Mapnik::Style.new
11
+ assert style.rules.empty?
12
+ rule = Mapnik::Rule.new
13
+ style.rules << rule
14
+ assert !style.rules.empty?
15
+ end
16
+
17
+ def test_should_have_filter_types
18
+ assert Mapnik::FilterMode::ALL
19
+ assert Mapnik::FilterMode::FIRST
20
+ end
21
+
22
+ def test_should_get_and_set_filter
23
+ style = Mapnik::Style.new
24
+ style.filter_mode = Mapnik::FilterMode::ALL
25
+ assert_equal Mapnik::FilterMode::ALL, style.filter_mode
26
+ end
27
+
28
+ end
@@ -0,0 +1,9 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikSymbolizer < Test::Unit::TestCase
4
+
5
+ def test_presence
6
+ assert Mapnik::Symbolizer
7
+ end
8
+
9
+ end
@@ -0,0 +1,232 @@
1
+ require "test_helper"
2
+
3
+ class TestMapnikTextSymbolizer < Test::Unit::TestCase
4
+
5
+ def setup
6
+ expression = Mapnik::Expression.parse("([place]='town')")
7
+ @symbolizer = Mapnik::TextSymbolizer.new(expression, "DejaVu Sans Book", 10, Mapnik::Color.new("#fff"))
8
+ end
9
+
10
+ def test_should_instantiate
11
+ assert @symbolizer
12
+ end
13
+
14
+ def test_enums_should_exist
15
+ assert Mapnik::LABEL_PLACEMENT::LINE_PLACEMENT
16
+ assert Mapnik::LABEL_PLACEMENT::POINT_PLACEMENT
17
+ assert Mapnik::LABEL_PLACEMENT::VERTEX_PLACEMENT
18
+ assert Mapnik::LABEL_PLACEMENT::INTERIOR_PLACEMENT
19
+
20
+ assert Mapnik::VERTICAL_ALIGNMENT::TOP
21
+ assert Mapnik::VERTICAL_ALIGNMENT::MIDDLE
22
+ assert Mapnik::VERTICAL_ALIGNMENT::BOTTOM
23
+ assert Mapnik::VERTICAL_ALIGNMENT::AUTO
24
+
25
+ assert Mapnik::HORIZONTAL_ALIGNMENT::LEFT
26
+ assert Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE
27
+ assert Mapnik::HORIZONTAL_ALIGNMENT::RIGHT
28
+
29
+ assert Mapnik::JUSTIFY_ALIGNMENT::LEFT
30
+ assert Mapnik::JUSTIFY_ALIGNMENT::MIDDLE
31
+ assert Mapnik::JUSTIFY_ALIGNMENT::RIGHT
32
+
33
+ assert Mapnik::TEXT_TRANSFORM::NONE
34
+ assert Mapnik::TEXT_TRANSFORM::UPPERCASE
35
+ assert Mapnik::TEXT_TRANSFORM::LOWERCASE
36
+ assert Mapnik::TEXT_TRANSFORM::CAPITALIZE
37
+ end
38
+
39
+ def test_should_get_and_set_anchor
40
+ assert @symbolizer.anchor
41
+ new_vals = [1,2]
42
+ @symbolizer.anchor = new_vals
43
+ assert_equal new_vals, @symbolizer.anchor
44
+ end
45
+
46
+ def test_should_get_and_set_allow_overlap
47
+ @symbolizer.allow_overlap = true
48
+ assert @symbolizer.allow_overlap?
49
+ @symbolizer.allow_overlap = false
50
+ assert !@symbolizer.allow_overlap?
51
+ end
52
+
53
+ def test_should_get_and_set_displacement
54
+ assert @symbolizer.displacement
55
+ new_vals = [1,2]
56
+ @symbolizer.displacement = new_vals
57
+ assert_equal new_vals, @symbolizer.displacement
58
+ end
59
+
60
+ def test_should_get_and_set_avoid_edges
61
+ @symbolizer.avoid_edges = true
62
+ assert @symbolizer.avoid_edges?
63
+ @symbolizer.avoid_edges = false
64
+ assert !@symbolizer.avoid_edges?
65
+ end
66
+
67
+ def test_should_get_and_set_character_spacing
68
+ assert_equal 0, @symbolizer.character_spacing
69
+ @symbolizer.character_spacing = 1
70
+ assert_equal 1, @symbolizer.character_spacing
71
+ end
72
+
73
+ def test_should_get_and_set_face_name
74
+ assert_equal "DejaVu Sans Book", @symbolizer.face_name
75
+ @symbolizer.face_name = "DejaVu Sans"
76
+ assert_equal "DejaVu Sans", @symbolizer.face_name
77
+ end
78
+
79
+ def test_should_get_and_set_fill
80
+ assert @symbolizer.fill.instance_of?(Mapnik::Color)
81
+ white = Mapnik::Color.new("#fff")
82
+ @symbolizer.fill = white
83
+ assert_equal white, @symbolizer.fill
84
+ end
85
+
86
+ # TODO: Need fontset
87
+ # def test_should_get_and_set_fontset
88
+ # raise @symbolizer.fontset.inspect
89
+ # end
90
+
91
+ def test_should_get_and_set_force_odd_labels
92
+ @symbolizer.force_odd_labels = true
93
+ assert @symbolizer.force_odd_labels?
94
+ @symbolizer.force_odd_labels = false
95
+ assert !@symbolizer.force_odd_labels?
96
+ end
97
+
98
+ def test_should_get_and_set_halo_fill
99
+ assert @symbolizer.halo_fill.instance_of?(Mapnik::Color)
100
+ white = Mapnik::Color.new("#fff")
101
+ @symbolizer.halo_fill = white
102
+ assert_equal white, @symbolizer.halo_fill
103
+ end
104
+
105
+ def test_should_get_and_set_halo_radius
106
+ assert_equal 0, @symbolizer.halo_radius
107
+ @symbolizer.halo_radius = 1
108
+ assert_equal 1, @symbolizer.halo_radius
109
+ end
110
+
111
+ def test_should_get_and_set_horizontal_alignment
112
+ @symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::LEFT
113
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::LEFT, @symbolizer.horizontal_alignment
114
+
115
+ @symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE
116
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::MIDDLE, @symbolizer.horizontal_alignment
117
+
118
+ @symbolizer.horizontal_alignment = Mapnik::HORIZONTAL_ALIGNMENT::RIGHT
119
+ assert_equal Mapnik::HORIZONTAL_ALIGNMENT::RIGHT, @symbolizer.horizontal_alignment
120
+ end
121
+
122
+ def test_should_get_and_set_justify_alignment
123
+ check_constant_setting(Mapnik::JUSTIFY_ALIGNMENT, :justify_alignment)
124
+ end
125
+
126
+ def test_should_get_and_set_label_placement
127
+ check_constant_setting(Mapnik::LABEL_PLACEMENT, :label_placement)
128
+ end
129
+
130
+ def test_should_get_and_set_label_position_tolerance
131
+ assert_equal 0, @symbolizer.label_position_tolerance
132
+ @symbolizer.label_position_tolerance = 1
133
+ assert_equal 1, @symbolizer.label_position_tolerance
134
+ end
135
+
136
+ def test_should_get_and_set_label_spacing
137
+ assert_equal 0, @symbolizer.label_spacing
138
+ @symbolizer.label_spacing = 1
139
+ assert_equal 1, @symbolizer.label_spacing
140
+ end
141
+
142
+ def test_should_get_and_set_line_spacing
143
+ assert_equal 0, @symbolizer.line_spacing
144
+ @symbolizer.line_spacing = 1
145
+ assert_equal 1, @symbolizer.line_spacing
146
+ end
147
+
148
+ # TODO: failure here!
149
+ def test_should_get_and_set_max_char_angle_delta
150
+ @symbolizer.max_char_angle_delta = 0.5
151
+ assert_equal 0.5, @symbolizer.max_char_angle_delta
152
+ @symbolizer.max_char_angle_delta = 0.7
153
+ assert_equal 0.7, @symbolizer.max_char_angle_delta
154
+ end
155
+
156
+ def test_should_get_and_set_minimum_distance
157
+ assert_equal 0, @symbolizer.minimum_distance
158
+ @symbolizer.minimum_distance = 1
159
+ assert_equal 1, @symbolizer.minimum_distance
160
+ end
161
+
162
+ def test_should_get_and_set_minimum_padding
163
+ assert_equal 0, @symbolizer.minimum_padding
164
+ @symbolizer.minimum_padding = 1
165
+ assert_equal 1, @symbolizer.minimum_padding
166
+ end
167
+
168
+ def test_should_get_and_set_name
169
+ assert @symbolizer.name.instance_of?(Mapnik::Expression)
170
+ new_expression_string = "([place]='towns')"
171
+ assert_not_equal new_expression_string, @symbolizer.name.to_s
172
+ new_expression = Mapnik::Expression.parse(new_expression_string)
173
+ @symbolizer.name = new_expression
174
+ assert_equal new_expression_string, @symbolizer.name.to_s
175
+ end
176
+
177
+ def test_should_get_and_set_opactiy
178
+ assert_equal 1, @symbolizer.opacity
179
+ @symbolizer.opacity = 0
180
+ assert_equal 0, @symbolizer.opacity
181
+ end
182
+
183
+ def test_should_get_and_set_text_transform
184
+ check_constant_setting(Mapnik::TEXT_TRANSFORM, :text_transform)
185
+ end
186
+
187
+ def test_should_get_and_set_text_ratio
188
+ assert_equal 0, @symbolizer.ratio
189
+ @symbolizer.ratio = 3
190
+ assert_equal 3, @symbolizer.ratio
191
+ end
192
+
193
+ def test_should_get_and_set_text_size
194
+ assert_equal 10, @symbolizer.size
195
+ @symbolizer.size = 0
196
+ assert_equal 0, @symbolizer.size
197
+ end
198
+
199
+ def test_should_get_and_set_vertical_alignment
200
+ check_constant_setting(Mapnik::VERTICAL_ALIGNMENT, :vertical_alignment)
201
+ end
202
+
203
+ def test_should_get_and_set_wrap_width
204
+ assert_equal 0, @symbolizer.wrap_width
205
+ @symbolizer.wrap_width = 30
206
+ assert_equal 30, @symbolizer.wrap_width
207
+ end
208
+
209
+ def test_should_get_and_set_wrap_character
210
+ @symbolizer.wrap_character = '|'
211
+ assert_equal '|', @symbolizer.wrap_character
212
+ @symbolizer.wrap_character = '%'
213
+ assert_equal '%', @symbolizer.wrap_character
214
+ end
215
+
216
+ def test_should_get_and_set_wrap_before
217
+ assert !@symbolizer.wrap_before
218
+ @symbolizer.wrap_before = true
219
+ assert @symbolizer.wrap_before
220
+ end
221
+
222
+ private
223
+
224
+ def check_constant_setting(enum, property)
225
+ enum.constants.each do |const_name|
226
+ const = enum.const_get(const_name)
227
+ @symbolizer.send(property.to_s + '=', const)
228
+ assert_equal const, @symbolizer.send(property)
229
+ end
230
+ end
231
+
232
+ end
@@ -0,0 +1,34 @@
1
+ require "test_helper"
2
+
3
+ class TestPolygonPatternSymbolizer < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @filename = "/my/file.png"
7
+ path_expression = Mapnik::PathExpression.parse("/my/file.png")
8
+ @sym = Mapnik::PolygonPatternSymbolizer.new(path_expression)
9
+ end
10
+
11
+ def test_presence
12
+ assert Mapnik::PolygonPatternSymbolizer
13
+ assert Mapnik::PatternAlignment::LOCAL
14
+ assert Mapnik::PatternAlignment::GLOBAL
15
+ end
16
+
17
+ def test_should_instantiate
18
+ assert @sym
19
+ end
20
+
21
+ def test_should_get_and_set_filename
22
+ assert_equal @filename, @sym.filename
23
+ new_filename = "/something/else.png"
24
+ @sym.filename = new_filename
25
+ assert_equal new_filename, @sym.filename
26
+ end
27
+
28
+ def test_should_get_and_set_pattern_alignment
29
+ assert_equal Mapnik::PatternAlignment::LOCAL, @sym.alignment
30
+ @sym.alignment = Mapnik::PatternAlignment::GLOBAL
31
+ assert_equal Mapnik::PatternAlignment::GLOBAL, @sym.alignment
32
+ end
33
+
34
+ end