geos-extensions 1.0.0 → 2.0.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +17 -0
- data/MIT-LICENSE +1 -1
- data/Rakefile +2 -0
- data/lib/geos-extensions.rb +6 -0
- data/lib/geos/coordinate_sequence.rb +290 -12
- data/lib/geos/extensions/exceptions.rb +2 -0
- data/lib/geos/extensions/version.rb +3 -1
- data/lib/geos/geometry.rb +3 -1
- data/lib/geos/geometry_collection.rb +52 -0
- data/lib/geos/geos_helper.rb +2 -0
- data/lib/geos/google_maps.rb +2 -0
- data/lib/geos/google_maps/api_2.rb +2 -0
- data/lib/geos/google_maps/api_3.rb +2 -0
- data/lib/geos/google_maps/api_common.rb +2 -0
- data/lib/geos/google_maps/polyline_encoder.rb +2 -0
- data/lib/geos/line_string.rb +123 -0
- data/lib/geos/multi_line_string.rb +2 -0
- data/lib/geos/multi_point.rb +2 -0
- data/lib/geos/multi_polygon.rb +2 -0
- data/lib/geos/point.rb +59 -0
- data/lib/geos/polygon.rb +97 -0
- data/lib/geos/yaml.rb +1 -0
- data/lib/geos/yaml/psych.rb +1 -0
- data/lib/geos/yaml/syck.rb +1 -0
- data/lib/geos_extensions.rb +2 -0
- data/test/coordinate_sequence_tests.rb +256 -0
- data/test/geometry_collection_tests.rb +429 -0
- data/test/geometry_tests.rb +57 -0
- data/test/google_maps_api_2_tests.rb +2 -0
- data/test/google_maps_api_3_tests.rb +2 -0
- data/test/google_maps_api_common_tests.rb +2 -0
- data/test/google_maps_polyline_encoder_tests.rb +2 -0
- data/test/helper_tests.rb +2 -0
- data/test/line_string_tests.rb +211 -0
- data/test/misc_tests.rb +2 -0
- data/test/point_tests.rb +173 -0
- data/test/polygon_tests.rb +329 -0
- data/test/reader_tests.rb +2 -0
- data/test/test_helper.rb +73 -3
- data/test/writer_tests.rb +2 -0
- data/test/yaml_tests.rb +1 -0
- metadata +16 -3
data/test/reader_tests.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -3,14 +3,16 @@ if RUBY_VERSION >= '1.9'
|
|
3
3
|
require 'simplecov'
|
4
4
|
|
5
5
|
SimpleCov.command_name('Unit Tests')
|
6
|
+
SimpleCov.merge_timeout(3600)
|
6
7
|
SimpleCov.start do
|
7
8
|
add_filter '/test/'
|
9
|
+
add_filter '/.bundle/'
|
8
10
|
end
|
9
11
|
end
|
10
12
|
|
11
13
|
require 'rubygems'
|
12
|
-
require 'forwardable'
|
13
14
|
require 'minitest/autorun'
|
15
|
+
require 'minitest/reporters' if RUBY_VERSION >= '1.9'
|
14
16
|
|
15
17
|
if RUBY_VERSION >= '1.9'
|
16
18
|
require 'minitest/reporters'
|
@@ -98,6 +100,24 @@ module TestHelper
|
|
98
100
|
BOUNDS_G_LAT_LNG = "((0.1, 0.1), (5.2, 5.2))"
|
99
101
|
BOUNDS_G_LAT_LNG_URL_VALUE = '0.1,0.1,5.2,5.2'
|
100
102
|
|
103
|
+
def self.included(base)
|
104
|
+
base.class_eval do
|
105
|
+
attr_reader :writer
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def setup
|
110
|
+
@writer = Geos::WktWriter.new
|
111
|
+
end
|
112
|
+
|
113
|
+
def read(*args)
|
114
|
+
Geos.read(*args)
|
115
|
+
end
|
116
|
+
|
117
|
+
def write(*args)
|
118
|
+
writer.write(*args)
|
119
|
+
end
|
120
|
+
|
101
121
|
if String.method_defined?(:force_encoding)
|
102
122
|
POINT_WKB_BIN.force_encoding('BINARY')
|
103
123
|
POINT_EWKB_BIN.force_encoding('BINARY')
|
@@ -123,9 +143,59 @@ module TestHelper
|
|
123
143
|
[ 0.0, 0.0 ]
|
124
144
|
], cs.to_a)
|
125
145
|
end
|
146
|
+
|
147
|
+
def simple_tester(method, expected, geom, *args)
|
148
|
+
geom = read(geom)
|
149
|
+
result = geom.send(method, *args)
|
150
|
+
|
151
|
+
if result.is_a?(Geos::Geometry)
|
152
|
+
result = write(result)
|
153
|
+
end
|
154
|
+
|
155
|
+
assert_equal(expected, result)
|
156
|
+
end
|
157
|
+
|
158
|
+
def srid_copy_tester(method, expected, expected_srid, srid_policy, wkt, *args)
|
159
|
+
geom = read(wkt)
|
160
|
+
geom.srid = 4326
|
161
|
+
Geos.srid_copy_policy = srid_policy
|
162
|
+
geom_b = geom.send(method, *args)
|
163
|
+
assert_equal(4326, geom.srid)
|
164
|
+
assert_equal(expected_srid, geom_b.srid)
|
165
|
+
assert_equal(expected, write(geom_b))
|
166
|
+
ensure
|
167
|
+
Geos.srid_copy_policy = :default
|
168
|
+
end
|
169
|
+
|
170
|
+
def simple_bang_tester(method, expected, wkt, *args)
|
171
|
+
geom = read(wkt)
|
172
|
+
result = geom.send(method, *args)
|
173
|
+
|
174
|
+
assert_equal(wkt, write(geom))
|
175
|
+
assert_equal(expected, write(result))
|
176
|
+
|
177
|
+
geom = read(wkt)
|
178
|
+
geom.send("#{method}!", *args)
|
179
|
+
|
180
|
+
assert_equal(expected, write(geom))
|
181
|
+
end
|
182
|
+
|
183
|
+
def affine_tester(method, expected, wkt, *args)
|
184
|
+
writer.trim = true
|
185
|
+
|
186
|
+
geom = read(wkt)
|
187
|
+
geom.send("#{method}!", *args).snap_to_grid!(0.1)
|
188
|
+
|
189
|
+
assert_equal(expected, write(geom))
|
190
|
+
|
191
|
+
geom = read(wkt)
|
192
|
+
geom2 = geom.send(method, *args).snap_to_grid(0.1)
|
193
|
+
|
194
|
+
assert_equal(wkt, write(geom))
|
195
|
+
assert_equal(expected, write(geom2, :trim => true))
|
196
|
+
end
|
126
197
|
end
|
127
198
|
|
128
199
|
if RUBY_VERSION >= '1.9'
|
129
|
-
|
200
|
+
Minitest::Reporters.use!(Minitest::Reporters::SpecReporter.new)
|
130
201
|
end
|
131
|
-
|
data/test/writer_tests.rb
CHANGED
data/test/yaml_tests.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geos-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi-geos
|
@@ -32,6 +32,7 @@ extra_rdoc_files:
|
|
32
32
|
- README.rdoc
|
33
33
|
files:
|
34
34
|
- ".gitignore"
|
35
|
+
- ".travis.yml"
|
35
36
|
- Gemfile
|
36
37
|
- Guardfile
|
37
38
|
- MIT-LICENSE
|
@@ -60,12 +61,18 @@ files:
|
|
60
61
|
- lib/geos/yaml/psych.rb
|
61
62
|
- lib/geos/yaml/syck.rb
|
62
63
|
- lib/geos_extensions.rb
|
64
|
+
- test/coordinate_sequence_tests.rb
|
65
|
+
- test/geometry_collection_tests.rb
|
66
|
+
- test/geometry_tests.rb
|
63
67
|
- test/google_maps_api_2_tests.rb
|
64
68
|
- test/google_maps_api_3_tests.rb
|
65
69
|
- test/google_maps_api_common_tests.rb
|
66
70
|
- test/google_maps_polyline_encoder_tests.rb
|
67
71
|
- test/helper_tests.rb
|
72
|
+
- test/line_string_tests.rb
|
68
73
|
- test/misc_tests.rb
|
74
|
+
- test/point_tests.rb
|
75
|
+
- test/polygon_tests.rb
|
69
76
|
- test/reader_tests.rb
|
70
77
|
- test/test_helper.rb
|
71
78
|
- test/writer_tests.rb
|
@@ -90,17 +97,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
97
|
version: '0'
|
91
98
|
requirements: []
|
92
99
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.6.10
|
94
101
|
signing_key:
|
95
102
|
specification_version: 4
|
96
103
|
summary: Extensions for the GEOS library.
|
97
104
|
test_files:
|
105
|
+
- test/coordinate_sequence_tests.rb
|
106
|
+
- test/geometry_collection_tests.rb
|
107
|
+
- test/geometry_tests.rb
|
98
108
|
- test/google_maps_api_2_tests.rb
|
99
109
|
- test/google_maps_api_3_tests.rb
|
100
110
|
- test/google_maps_api_common_tests.rb
|
101
111
|
- test/google_maps_polyline_encoder_tests.rb
|
102
112
|
- test/helper_tests.rb
|
113
|
+
- test/line_string_tests.rb
|
103
114
|
- test/misc_tests.rb
|
115
|
+
- test/point_tests.rb
|
116
|
+
- test/polygon_tests.rb
|
104
117
|
- test/reader_tests.rb
|
105
118
|
- test/test_helper.rb
|
106
119
|
- test/writer_tests.rb
|