ruby_mapnik 0.1

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