ffi-geos 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -313,6 +313,7 @@ class STRtreeTests < Minitest::Test
313
313
 
314
314
  def test_nearest_with_only_empty_geometries
315
315
  skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree) && Geos::STRtree.method_defined?(:nearest)
316
+ skip if Geos::GEOS_VERSION > '3.9.0'
316
317
 
317
318
  geom_1 = read('LINESTRING EMPTY')
318
319
  geom_2 = read('POINT (2 7)')
data/test/test_helper.rb CHANGED
@@ -40,6 +40,10 @@ module TestHelper
40
40
  'GEOMETRYCOLLECTION EMPTY'
41
41
  end
42
42
 
43
+ EMPTY_BLOCK = proc do
44
+ nil
45
+ end
46
+
43
47
  def self.included(base)
44
48
  base.class_eval do
45
49
  attr_reader :reader, :reader_hex, :writer
@@ -53,16 +57,16 @@ module TestHelper
53
57
  @writer = Geos::WktWriter.new
54
58
  end
55
59
 
56
- def read(*args)
57
- if args[0][0] != '0'
58
- reader.read(*args)
60
+ def read(*args, **options)
61
+ if args[0][0] == '0'
62
+ reader_hex.read_hex(*args, **options)
59
63
  else
60
- reader_hex.read_hex(*args)
64
+ reader.read(*args, **options)
61
65
  end
62
66
  end
63
67
 
64
- def write(*args)
65
- writer.write(*args)
68
+ def write(*args, **options)
69
+ writer.write(*args, **options)
66
70
  end
67
71
 
68
72
  def geom_from_geom_or_wkt(geom_or_wkt)
@@ -73,11 +77,11 @@ module TestHelper
73
77
  end
74
78
  end
75
79
 
76
- def srid_copy_tester(method, expected, expected_srid, srid_policy, wkt, *args)
80
+ def srid_copy_tester(method, expected, expected_srid, srid_policy, wkt, *args, **options)
77
81
  geom = read(wkt)
78
82
  geom.srid = 4326
79
83
  Geos.srid_copy_policy = srid_policy
80
- geom_b = geom.send(method, *args)
84
+ geom_b = geom.send(method, *args, **options)
81
85
  assert_equal(4326, geom.srid)
82
86
  assert_equal(expected_srid, geom_b.srid)
83
87
  assert_equal(expected, write(geom_b))
@@ -108,44 +112,48 @@ module TestHelper
108
112
  assert(geom.eql_exact?(result, tolerance), "Expected geom.eql_exact? to be within #{tolerance}")
109
113
  end
110
114
 
111
- def snapped_tester(method, expected, geom, *args)
115
+ def snapped_tester(method, expected, geom, *args, **options)
112
116
  geom = geom_from_geom_or_wkt(geom)
113
117
 
114
- result = geom.send(method, *args)
118
+ result = geom.send(method, *args, **options)
115
119
  assert_equal(expected, write(result.snap_to_grid(1)))
116
120
  end
117
121
 
118
- def simple_tester(method, expected, geom, *args)
122
+ def simple_tester(method, expected, geom, *args, **options)
119
123
  geom = geom_from_geom_or_wkt(geom)
120
- result = geom.send(method, *args)
124
+ result = geom.send(method, *args, **options)
121
125
  result = write(result) if result.is_a?(Geos::Geometry)
122
126
 
123
- assert_equal(expected, result)
127
+ if expected.nil?
128
+ assert_nil(result)
129
+ else
130
+ assert_equal(expected, result)
131
+ end
124
132
  end
125
133
 
126
- def simple_bang_tester(method, expected, wkt, *args)
134
+ def simple_bang_tester(method, expected, wkt, *args, **options)
127
135
  geom = read(wkt)
128
- result = geom.send(method, *args)
136
+ result = geom.send(method, *args, **options)
129
137
 
130
138
  assert_equal(wkt, write(geom))
131
139
  assert_equal(expected, write(result))
132
140
 
133
141
  geom = read(wkt)
134
- geom.send("#{method}!", *args)
142
+ geom.send("#{method}!", *args, **options)
135
143
 
136
144
  assert_equal(expected, write(geom))
137
145
  end
138
146
 
139
- def comparison_tester(method, expected, geom_a, geom_b, *args)
140
- geom_a = geom_from_geom_or_wkt(geom_a)
141
- geom_b = geom_from_geom_or_wkt(geom_b)
147
+ def comparison_tester(method, expected, geom_a, geom_b, *args, **options)
148
+ geom_a = geom_from_geom_or_wkt(geom_a).normalize
149
+ geom_b = geom_from_geom_or_wkt(geom_b).normalize
142
150
 
143
- simple_tester(method, expected, geom_a, geom_b, *args)
151
+ simple_tester(method, expected, geom_a, geom_b, *args, **options)
144
152
  end
145
153
 
146
- def array_tester(method, expected, geom, *args)
154
+ def array_tester(method, expected, geom, *args, **options)
147
155
  geom = geom_from_geom_or_wkt(geom)
148
- result = geom.send(method, *args)
156
+ result = geom.send(method, *args, **options)
149
157
 
150
158
  case result
151
159
  when Geos::Geometry
@@ -159,16 +167,16 @@ module TestHelper
159
167
  assert_equal(expected, result)
160
168
  end
161
169
 
162
- def affine_tester(method, expected, wkt, *args)
170
+ def affine_tester(method, expected, wkt, *args, **options)
163
171
  writer.trim = true
164
172
 
165
173
  geom = read(wkt)
166
- geom.send("#{method}!", *args).snap_to_grid!(0.1)
174
+ geom.send("#{method}!", *args, **options).snap_to_grid!(0.1)
167
175
 
168
176
  assert_equal(expected, write(geom))
169
177
 
170
178
  geom = read(wkt)
171
- geom_2 = geom.send(method, *args).snap_to_grid(0.1)
179
+ geom_2 = geom.send(method, *args, **options).snap_to_grid(0.1)
172
180
 
173
181
  assert_equal(wkt, write(geom))
174
182
  assert_equal(expected, write(geom_2, trim: true))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-geos
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - J Smith
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-09 00:00:00.000000000 Z
11
+ date: 2021-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -34,6 +34,7 @@ files:
34
34
  - ".gitignore"
35
35
  - ".rubocop.yml"
36
36
  - ".travis.yml"
37
+ - FUNDING.yml
37
38
  - Gemfile
38
39
  - Guardfile
39
40
  - MIT-LICENSE
@@ -87,7 +88,7 @@ homepage: http://github.com/dark-panda/ffi-geos
87
88
  licenses:
88
89
  - MIT
89
90
  metadata: {}
90
- post_install_message:
91
+ post_install_message:
91
92
  rdoc_options: []
92
93
  require_paths:
93
94
  - lib
@@ -102,8 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  - !ruby/object:Gem::Version
103
104
  version: '0'
104
105
  requirements: []
105
- rubygems_version: 3.0.3
106
- signing_key:
106
+ rubygems_version: 3.2.16
107
+ signing_key:
107
108
  specification_version: 4
108
109
  summary: An ffi wrapper for GEOS, a C++ port of the Java Topology Suite (JTS).
109
110
  test_files: