ffi-geos 2.1.0 → 2.2.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.
@@ -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: