ffi-geos 0.1.1 → 0.1.2

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.
@@ -30,139 +30,139 @@ class LineStringTests < MiniTest::Unit::TestCase
30
30
  assert_equal(1, geom.num_geometries)
31
31
  end
32
32
 
33
- if ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:[])
34
- def test_line_string_array
35
- writer.trim = true
36
- geom = read('LINESTRING(0 0, 1 1, 2 2, 3 3, 4 4)')
37
-
38
- assert_equal('POINT (0 0)', write(geom[0]))
39
- assert_equal('POINT (4 4)', write(geom[-1]))
40
-
41
- assert_equal([
42
- 'POINT (0 0)',
43
- 'POINT (1 1)'
44
- ], geom[0, 2].collect { |g| write(g) })
45
-
46
- assert_equal(nil, geom[0, -1])
47
- assert_equal([], geom[-1, 0])
48
- assert_equal([
49
- 'POINT (1 1)',
50
- 'POINT (2 2)'
51
- ], geom[1..2].collect { |g| write(g) })
52
- end
33
+ def test_line_string_array
34
+ skip unless ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:[])
35
+
36
+ writer.trim = true
37
+ geom = read('LINESTRING(0 0, 1 1, 2 2, 3 3, 4 4)')
38
+
39
+ assert_equal('POINT (0 0)', write(geom[0]))
40
+ assert_equal('POINT (4 4)', write(geom[-1]))
41
+
42
+ assert_equal([
43
+ 'POINT (0 0)',
44
+ 'POINT (1 1)'
45
+ ], geom[0, 2].collect { |g| write(g) })
46
+
47
+ assert_equal(nil, geom[0, -1])
48
+ assert_equal([], geom[-1, 0])
49
+ assert_equal([
50
+ 'POINT (1 1)',
51
+ 'POINT (2 2)'
52
+ ], geom[1..2].collect { |g| write(g) })
53
53
  end
54
54
 
55
- if ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:select)
56
- def test_line_string_enumerable
57
- writer.trim = true
58
- geom = read('LINESTRING(0 0, 1 1, 2 2, 3 3, 10 0, 2 2)')
55
+ def test_line_string_enumerable
56
+ skip unless ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:select)
59
57
 
60
- assert_equal(2, geom.select { |point| point == read('POINT(2 2)') }.length)
61
- end
58
+ writer.trim = true
59
+ geom = read('LINESTRING(0 0, 1 1, 2 2, 3 3, 10 0, 2 2)')
60
+
61
+ assert_equal(2, geom.select { |point| point == read('POINT(2 2)') }.length)
62
62
  end
63
63
 
64
- if ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:offset_curve)
65
- def test_offset_curve
66
- tester = lambda { |expected, g, width, style|
67
- geom = read(g)
68
- buffered = geom.offset_curve(width, style)
64
+ def test_offset_curve
65
+ skip unless ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:offset_curve)
69
66
 
70
- assert_equal(expected, write(buffered))
71
- }
67
+ tester = lambda { |expected, g, width, style|
68
+ geom = read(g)
69
+ buffered = geom.offset_curve(width, style)
72
70
 
73
- writer.rounding_precision = 0
74
-
75
- # straight left
76
- tester[
77
- 'LINESTRING (0 2, 10 2)',
78
- 'LINESTRING (0 0, 10 0)',
79
- 2, {
80
- :quad_segs => 0,
81
- :join => :round,
82
- :mitre_limit => 2
83
- }
84
- ]
85
-
86
- # straight right
87
- tester[
88
- 'LINESTRING (10 -2, 0 -2)',
89
- 'LINESTRING (0 0, 10 0)',
90
- -2, {
91
- :quad_segs => 0,
92
- :join => :round,
93
- :mitre_limit => 2
94
- }
95
- ]
96
-
97
- # outside curve
98
- tester[
99
- 'LINESTRING (12 10, 12 0, 10 -2, 0 -2)',
100
- 'LINESTRING (0 0, 10 0, 10 10)',
101
- -2, {
102
- :quad_segs => 1,
103
- :join => :round,
104
- :mitre_limit => 2
105
- }
106
- ]
107
-
108
- # inside curve
109
- tester[
110
- 'LINESTRING (0 2, 8 2, 8 10)',
111
- 'LINESTRING (0 0, 10 0, 10 10)',
112
- 2, {
113
- :quad_segs => 1,
114
- :join => :round,
115
- :mitre_limit => 2
116
- }
117
- ]
118
- end
71
+ assert_equal(expected, write(buffered))
72
+ }
73
+
74
+ writer.rounding_precision = 0
75
+
76
+ # straight left
77
+ tester[
78
+ 'LINESTRING (0 2, 10 2)',
79
+ 'LINESTRING (0 0, 10 0)',
80
+ 2, {
81
+ :quad_segs => 0,
82
+ :join => :round,
83
+ :mitre_limit => 2
84
+ }
85
+ ]
86
+
87
+ # straight right
88
+ tester[
89
+ 'LINESTRING (10 -2, 0 -2)',
90
+ 'LINESTRING (0 0, 10 0)',
91
+ -2, {
92
+ :quad_segs => 0,
93
+ :join => :round,
94
+ :mitre_limit => 2
95
+ }
96
+ ]
97
+
98
+ # outside curve
99
+ tester[
100
+ 'LINESTRING (12 10, 12 0, 10 -2, 0 -2)',
101
+ 'LINESTRING (0 0, 10 0, 10 10)',
102
+ -2, {
103
+ :quad_segs => 1,
104
+ :join => :round,
105
+ :mitre_limit => 2
106
+ }
107
+ ]
108
+
109
+ # inside curve
110
+ tester[
111
+ 'LINESTRING (0 2, 8 2, 8 10)',
112
+ 'LINESTRING (0 0, 10 0, 10 10)',
113
+ 2, {
114
+ :quad_segs => 1,
115
+ :join => :round,
116
+ :mitre_limit => 2
117
+ }
118
+ ]
119
119
  end
120
120
 
121
- if ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:closed?)
122
- def test_closed
123
- assert_geom_closed(read('LINESTRING(0 0, 1 1, 2 2, 0 0)'))
124
- refute_geom_closed(read('LINESTRING(0 0, 1 1, 2 2)'))
125
- assert_geom_closed(read('LINEARRING(0 0, 1 1, 2 2, 0 0)'))
126
- end
121
+ def test_closed
122
+ skip unless ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:closed?)
123
+
124
+ assert_geom_closed(read('LINESTRING(0 0, 1 1, 2 2, 0 0)'))
125
+ refute_geom_closed(read('LINESTRING(0 0, 1 1, 2 2)'))
126
+ assert_geom_closed(read('LINEARRING(0 0, 1 1, 2 2, 0 0)'))
127
127
  end
128
128
 
129
- if ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:num_points)
130
- def test_num_points
131
- assert_equal(4, read('LINESTRING (0 0, 1 0, 1 1, 0 1)').num_points)
129
+ def test_num_points
130
+ skip unless ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:num_points)
132
131
 
133
- assert_raises(NoMethodError) do
134
- read('POINT (0 0)').num_points
135
- end
132
+ assert_equal(4, read('LINESTRING (0 0, 1 0, 1 1, 0 1)').num_points)
133
+
134
+ assert_raises(NoMethodError) do
135
+ read('POINT (0 0)').num_points
136
136
  end
137
137
  end
138
138
 
139
- if ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:point_n)
140
- def test_point_n
141
- writer.rounding_precision = 0
139
+ def test_point_n
140
+ skip unless ENV['FORCE_TESTS'] || Geos::LineString.method_defined?(:point_n)
142
141
 
143
- tester = lambda { |expected, geom, n|
144
- assert_equal(expected, write(geom.point_n(n)))
145
- }
142
+ writer.rounding_precision = 0
143
+
144
+ tester = lambda { |expected, geom, n|
145
+ assert_equal(expected, write(geom.point_n(n)))
146
+ }
147
+
148
+ geom = read('LINESTRING (10 10, 10 14, 14 14, 14 10)')
149
+ tester['POINT (10 10)', geom, 0]
150
+ tester['POINT (10 14)', geom, 1]
151
+ tester['POINT (14 14)', geom, 2]
152
+ tester['POINT (14 10)', geom, 3]
153
+
154
+ assert_raises(RuntimeError) do
155
+ tester['POINT (0 0)', geom, 4]
156
+ end
157
+
158
+ geom = read('LINEARRING (11 11, 11 12, 12 11, 11 11)')
159
+ tester['POINT (11 11)', geom, 0]
160
+ tester['POINT (11 12)', geom, 1]
161
+ tester['POINT (12 11)', geom, 2]
162
+ tester['POINT (11 11)', geom, 3]
146
163
 
147
- geom = read('LINESTRING (10 10, 10 14, 14 14, 14 10)')
148
- tester['POINT (10 10)', geom, 0]
149
- tester['POINT (10 14)', geom, 1]
150
- tester['POINT (14 14)', geom, 2]
151
- tester['POINT (14 10)', geom, 3]
152
-
153
- assert_raises(RuntimeError) do
154
- tester['POINT (0 0)', geom, 4]
155
- end
156
-
157
- geom = read('LINEARRING (11 11, 11 12, 12 11, 11 11)')
158
- tester['POINT (11 11)', geom, 0]
159
- tester['POINT (11 12)', geom, 1]
160
- tester['POINT (12 11)', geom, 2]
161
- tester['POINT (11 11)', geom, 3]
162
-
163
- assert_raises(NoMethodError) do
164
- tester[nil, read('POINT (0 0)'), 0]
165
- end
164
+ assert_raises(NoMethodError) do
165
+ tester[nil, read('POINT (0 0)'), 0]
166
166
  end
167
167
  end
168
168
  end
@@ -3,91 +3,114 @@
3
3
  $: << File.dirname(__FILE__)
4
4
  require 'test_helper'
5
5
 
6
- if defined?(Geos::PreparedGeometry)
7
- class PreparedGeometryTests < MiniTest::Unit::TestCase
8
- include TestHelper
9
-
10
- POINT_A = 'POINT(0 0)'
11
- POINT_B = 'POINT(5 0)'
12
- POINT_C = 'POINT(15 15)'
13
- LINESTRING_A = 'LINESTRING(0 0, 10 0)'
14
- LINESTRING_B = 'LINESTRING(5 -5, 5 5)'
15
- LINESTRING_C = 'LINESTRING(5 0, 15 0)'
16
- LINESTRING_D = 'LINESTRING(0 0, 5 0, 10 0)'
17
- POLYGON_A = 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'
18
- POLYGON_B = 'POLYGON((5 -5, 5 5, 15 5, 15 -5, 5 -5))'
19
-
20
- def relationship_tester(method, *expected)
21
- [
22
- [ POINT_A, POINT_A ],
23
- [ POINT_A, LINESTRING_A ],
24
- [ POINT_B, LINESTRING_A ],
25
- [ LINESTRING_B, LINESTRING_A ],
26
- [ LINESTRING_C, LINESTRING_A ],
27
- [ LINESTRING_D, LINESTRING_A ],
28
- [ POLYGON_A, POLYGON_B ],
29
- [ POLYGON_A, POINT_C ],
30
- ].each_with_index do |(geom_a, geom_b), i|
31
- geom_a = read(geom_a).to_prepared
32
- geom_b = read(geom_b)
33
-
34
- value = geom_a.send(method, geom_b)
35
- assert_equal(expected[i], value)
36
- end
6
+ class PreparedGeometryTests < MiniTest::Unit::TestCase
7
+ include TestHelper
8
+
9
+ POINT_A = 'POINT(0 0)'
10
+ POINT_B = 'POINT(5 0)'
11
+ POINT_C = 'POINT(15 15)'
12
+ LINESTRING_A = 'LINESTRING(0 0, 10 0)'
13
+ LINESTRING_B = 'LINESTRING(5 -5, 5 5)'
14
+ LINESTRING_C = 'LINESTRING(5 0, 15 0)'
15
+ LINESTRING_D = 'LINESTRING(0 0, 5 0, 10 0)'
16
+ POLYGON_A = 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'
17
+ POLYGON_B = 'POLYGON((5 -5, 5 5, 15 5, 15 -5, 5 -5))'
18
+
19
+ def relationship_tester(method, *expected)
20
+ [
21
+ [ POINT_A, POINT_A ],
22
+ [ POINT_A, LINESTRING_A ],
23
+ [ POINT_B, LINESTRING_A ],
24
+ [ LINESTRING_B, LINESTRING_A ],
25
+ [ LINESTRING_C, LINESTRING_A ],
26
+ [ LINESTRING_D, LINESTRING_A ],
27
+ [ POLYGON_A, POLYGON_B ],
28
+ [ POLYGON_A, POINT_C ],
29
+ ].each_with_index do |(geom_a, geom_b), i|
30
+ geom_a = read(geom_a).to_prepared
31
+ geom_b = read(geom_b)
32
+
33
+ value = geom_a.send(method, geom_b)
34
+ assert_equal(expected[i], value)
37
35
  end
36
+ end
38
37
 
39
- def test_disjoint
40
- relationship_tester(:disjoint?, false, false, false, false, false, false, false, true)
41
- end
38
+ def test_disjoint
39
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
42
40
 
43
- def test_touches
44
- relationship_tester(:touches?, false, true, false, false, false, false, false, false)
45
- end
41
+ relationship_tester(:disjoint?, false, false, false, false, false, false, false, true)
42
+ end
46
43
 
47
- def test_intersects
48
- relationship_tester(:intersects?, true, true, true, true, true, true, true, false)
49
- end
44
+ def test_touches
45
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
50
46
 
51
- def test_crosses
52
- relationship_tester(:crosses?, false, false, false, true, false, false, false, false)
53
- end
47
+ relationship_tester(:touches?, false, true, false, false, false, false, false, false)
48
+ end
54
49
 
55
- def test_within
56
- relationship_tester(:within?, true, false, true, false, false, true, false, false)
57
- end
50
+ def test_intersects
51
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
58
52
 
59
- def test_contains
60
- relationship_tester(:contains?, true, false, false, false, false, true, false, false)
61
- end
53
+ relationship_tester(:intersects?, true, true, true, true, true, true, true, false)
54
+ end
62
55
 
63
- def test_overlaps
64
- relationship_tester(:overlaps?, false, false, false, false, true, false, true, false)
65
- end
56
+ def test_crosses
57
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
66
58
 
67
- def test_covers
68
- relationship_tester(:covers?, true, false, false, false, false, true, false, false)
69
- end
59
+ relationship_tester(:crosses?, false, false, false, true, false, false, false, false)
60
+ end
70
61
 
71
- def test_covered_by
72
- relationship_tester(:covered_by?, true, true, true, false, false, true, false, false)
73
- end
62
+ def test_within
63
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
64
+
65
+ relationship_tester(:within?, true, false, true, false, false, true, false, false)
66
+ end
67
+
68
+ def test_contains
69
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
74
70
 
75
- def test_cant_clone
76
- assert_raises(NoMethodError) do
77
- read(POINT_A).to_prepared.clone
78
- end
71
+ relationship_tester(:contains?, true, false, false, false, false, true, false, false)
72
+ end
73
+
74
+ def test_overlaps
75
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
76
+
77
+ relationship_tester(:overlaps?, false, false, false, false, true, false, true, false)
78
+ end
79
+
80
+ def test_covers
81
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
82
+
83
+ relationship_tester(:covers?, true, false, false, false, false, true, false, false)
84
+ end
85
+
86
+ def test_covered_by
87
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
88
+
89
+ relationship_tester(:covered_by?, true, true, true, false, false, true, false, false)
90
+ end
91
+
92
+ def test_cant_clone
93
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
94
+
95
+ assert_raises(NoMethodError) do
96
+ read(POINT_A).to_prepared.clone
79
97
  end
98
+ end
80
99
 
81
- def test_cant_dup
82
- assert_raises(NoMethodError) do
83
- read(POINT_A).to_prepared.dup
84
- end
100
+ def test_cant_dup
101
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
102
+
103
+ assert_raises(NoMethodError) do
104
+ read(POINT_A).to_prepared.dup
85
105
  end
106
+ end
86
107
 
87
- def test_initializer_type_exception
88
- assert_raises(TypeError) do
89
- Geos::PreparedGeometry.new('hello world')
90
- end
108
+ def test_initializer_type_exception
109
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::PreparedGeometry)
110
+
111
+ assert_raises(TypeError) do
112
+ Geos::PreparedGeometry.new('hello world')
91
113
  end
92
114
  end
93
115
  end
116
+
@@ -3,200 +3,219 @@
3
3
  $: << File.dirname(__FILE__)
4
4
  require 'test_helper'
5
5
 
6
- if defined?(Geos::STRtree)
7
- class STRtreeTests < MiniTest::Unit::TestCase
8
- include TestHelper
9
-
10
- def setup_tree
11
- @tree = Geos::STRtree.new(3)
12
- @item_1 = { :item_1 => :test }
13
- @item_2 = [ :test ]
14
- @item_3 = Object.new
15
-
16
- @geom_1 = read('LINESTRING(0 0, 10 10)')
17
- @geom_2 = read('LINESTRING(20 20, 30 30)')
18
- @geom_3 = read('LINESTRING(20 20, 30 30)')
19
-
20
- @tree.insert(@geom_1, @item_1)
21
- @tree.insert(@geom_2, @item_2)
22
- @tree.insert(@geom_3, @item_3)
23
- end
6
+ class STRtreeTests < MiniTest::Unit::TestCase
7
+ include TestHelper
8
+
9
+ def setup_tree
10
+ @tree = Geos::STRtree.new(3)
11
+ @item_1 = { :item_1 => :test }
12
+ @item_2 = [ :test ]
13
+ @item_3 = Object.new
14
+
15
+ @geom_1 = read('LINESTRING(0 0, 10 10)')
16
+ @geom_2 = read('LINESTRING(20 20, 30 30)')
17
+ @geom_3 = read('LINESTRING(20 20, 30 30)')
18
+
19
+ @tree.insert(@geom_1, @item_1)
20
+ @tree.insert(@geom_2, @item_2)
21
+ @tree.insert(@geom_3, @item_3)
22
+ end
24
23
 
25
- def test_disallowed_inserts
26
- setup_tree
24
+ def test_disallowed_inserts
25
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
27
26
 
28
- @tree.query(read('POINT(5 5)'))
27
+ setup_tree
29
28
 
30
- assert_raises(RuntimeError) do
31
- @tree.insert(read('POINT(0 0)'), 'test')
32
- end
29
+ @tree.query(read('POINT(5 5)'))
30
+
31
+ assert_raises(RuntimeError) do
32
+ @tree.insert(read('POINT(0 0)'), 'test')
33
33
  end
34
+ end
34
35
 
35
- def test_query
36
- setup_tree
36
+ def test_query
37
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
37
38
 
38
- assert_equal([@item_1],
39
- @tree.query(read('LINESTRING(5 5, 6 6)')))
39
+ setup_tree
40
40
 
41
- assert_equal([],
42
- @tree.query(read('LINESTRING(20 0, 30 10)')))
41
+ assert_equal([@item_1],
42
+ @tree.query(read('LINESTRING(5 5, 6 6)')))
43
43
 
44
- assert_equal([@item_2, @item_3],
45
- @tree.query(read('LINESTRING(25 25, 26 26)')))
44
+ assert_equal([],
45
+ @tree.query(read('LINESTRING(20 0, 30 10)')))
46
46
 
47
- assert_equal([@item_1, @item_2, @item_3],
48
- @tree.query(read('LINESTRING(0 0, 100 100)')))
49
- end
47
+ assert_equal([@item_2, @item_3],
48
+ @tree.query(read('LINESTRING(25 25, 26 26)')))
50
49
 
51
- def test_query_with_ret_keys
52
- setup_tree
50
+ assert_equal([@item_1, @item_2, @item_3],
51
+ @tree.query(read('LINESTRING(0 0, 100 100)')))
52
+ end
53
53
 
54
- assert_equal([@item_1],
55
- @tree.query(read('LINESTRING(5 5, 6 6)'), :item))
54
+ def test_query_with_ret_keys
55
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
56
56
 
57
- assert_equal([],
58
- @tree.query(read('LINESTRING(20 0, 30 10)'), :item))
57
+ setup_tree
59
58
 
60
- assert_equal([@item_2, @item_3],
61
- @tree.query(read('LINESTRING(25 25, 26 26)'), :item))
59
+ assert_equal([@item_1],
60
+ @tree.query(read('LINESTRING(5 5, 6 6)'), :item))
62
61
 
63
- assert_equal([@item_1, @item_2, @item_3],
64
- @tree.query(read('LINESTRING(0 0, 100 100)'), :item))
62
+ assert_equal([],
63
+ @tree.query(read('LINESTRING(20 0, 30 10)'), :item))
65
64
 
65
+ assert_equal([@item_2, @item_3],
66
+ @tree.query(read('LINESTRING(25 25, 26 26)'), :item))
66
67
 
67
- assert_equal([@geom_1],
68
- @tree.query(read('LINESTRING(5 5, 6 6)'), :geometry))
68
+ assert_equal([@item_1, @item_2, @item_3],
69
+ @tree.query(read('LINESTRING(0 0, 100 100)'), :item))
69
70
 
70
- assert_equal([],
71
- @tree.query(read('LINESTRING(20 0, 30 10)'), :geometry))
71
+ assert_equal([@geom_1],
72
+ @tree.query(read('LINESTRING(5 5, 6 6)'), :geometry))
72
73
 
73
- assert_equal([@geom_2, @geom_3],
74
- @tree.query(read('LINESTRING(25 25, 26 26)'), :geometry))
74
+ assert_equal([],
75
+ @tree.query(read('LINESTRING(20 0, 30 10)'), :geometry))
75
76
 
76
- assert_equal([@geom_1, @geom_2, @geom_3],
77
- @tree.query(read('LINESTRING(0 0, 100 100)'), :geometry))
77
+ assert_equal([@geom_2, @geom_3],
78
+ @tree.query(read('LINESTRING(25 25, 26 26)'), :geometry))
78
79
 
80
+ assert_equal([@geom_1, @geom_2, @geom_3],
81
+ @tree.query(read('LINESTRING(0 0, 100 100)'), :geometry))
79
82
 
80
- assert_equal(
81
- [
82
- { :item => @item_1, :geometry => @geom_1 }
83
- ],
84
- @tree.query(read('LINESTRING(5 5, 6 6)'), :all)
85
- )
83
+ assert_equal(
84
+ [
85
+ { :item => @item_1, :geometry => @geom_1 }
86
+ ],
87
+ @tree.query(read('LINESTRING(5 5, 6 6)'), :all)
88
+ )
86
89
 
87
- assert_equal([],
88
- @tree.query(read('LINESTRING(20 0, 30 10)'), :all))
90
+ assert_equal([],
91
+ @tree.query(read('LINESTRING(20 0, 30 10)'), :all))
89
92
 
90
- assert_equal(
91
- [
92
- { :item => @item_2, :geometry => @geom_2 },
93
- { :item => @item_3, :geometry => @geom_3 }
94
- ],
95
- @tree.query(read('LINESTRING(25 25, 26 26)'), :all)
96
- )
93
+ assert_equal(
94
+ [
95
+ { :item => @item_2, :geometry => @geom_2 },
96
+ { :item => @item_3, :geometry => @geom_3 }
97
+ ],
98
+ @tree.query(read('LINESTRING(25 25, 26 26)'), :all)
99
+ )
97
100
 
98
- assert_equal(
99
- [
100
- { :item => @item_1, :geometry => @geom_1 },
101
- { :item => @item_2, :geometry => @geom_2 },
102
- { :item => @item_3, :geometry => @geom_3 }
103
- ],
104
- @tree.query(read('LINESTRING(0 0, 100 100)'), :all)
105
- )
106
- end
101
+ assert_equal(
102
+ [
103
+ { :item => @item_1, :geometry => @geom_1 },
104
+ { :item => @item_2, :geometry => @geom_2 },
105
+ { :item => @item_3, :geometry => @geom_3 }
106
+ ],
107
+ @tree.query(read('LINESTRING(0 0, 100 100)'), :all)
108
+ )
109
+ end
107
110
 
108
- def test_query_all
109
- setup_tree
111
+ def test_query_all
112
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
110
113
 
111
- assert_equal([@item_1],
112
- @tree.query_all(read('LINESTRING(5 5, 6 6)')).collect { |v| v[:item] })
114
+ setup_tree
113
115
 
114
- assert_equal([],
115
- @tree.query_all(read('LINESTRING(20 0, 30 10)')))
116
+ assert_equal([@item_1],
117
+ @tree.query_all(read('LINESTRING(5 5, 6 6)')).collect { |v| v[:item] })
116
118
 
117
- assert_equal([@item_2, @item_3],
118
- @tree.query_all(read('LINESTRING(25 25, 26 26)')).collect { |v| v[:item] })
119
+ assert_equal([],
120
+ @tree.query_all(read('LINESTRING(20 0, 30 10)')))
119
121
 
120
- assert_equal([@item_1, @item_2, @item_3],
121
- @tree.query_all(read('LINESTRING(0 0, 100 100)')).collect { |v| v[:item] })
122
- end
122
+ assert_equal([@item_2, @item_3],
123
+ @tree.query_all(read('LINESTRING(25 25, 26 26)')).collect { |v| v[:item] })
123
124
 
124
- def test_query_geometries
125
- setup_tree
125
+ assert_equal([@item_1, @item_2, @item_3],
126
+ @tree.query_all(read('LINESTRING(0 0, 100 100)')).collect { |v| v[:item] })
127
+ end
126
128
 
127
- assert_equal([@geom_1],
128
- @tree.query_geometries(read('LINESTRING(5 5, 6 6)')))
129
+ def test_query_geometries
130
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
129
131
 
130
- assert_equal([],
131
- @tree.query_geometries(read('LINESTRING(20 0, 30 10)')))
132
+ setup_tree
132
133
 
133
- assert_equal([@geom_2, @geom_3],
134
- @tree.query_geometries(read('LINESTRING(25 25, 26 26)')))
134
+ assert_equal([@geom_1],
135
+ @tree.query_geometries(read('LINESTRING(5 5, 6 6)')))
135
136
 
136
- assert_equal([@geom_1, @geom_2, @geom_3],
137
- @tree.query_geometries(read('LINESTRING(0 0, 100 100)')))
138
- end
137
+ assert_equal([],
138
+ @tree.query_geometries(read('LINESTRING(20 0, 30 10)')))
139
139
 
140
- def test_remove
141
- setup_tree
140
+ assert_equal([@geom_2, @geom_3],
141
+ @tree.query_geometries(read('LINESTRING(25 25, 26 26)')))
142
142
 
143
- @tree.remove(read('POINT(5 5)'), @item_1)
143
+ assert_equal([@geom_1, @geom_2, @geom_3],
144
+ @tree.query_geometries(read('LINESTRING(0 0, 100 100)')))
145
+ end
144
146
 
145
- assert_equal([],
146
- @tree.query(read('LINESTRING(5 5, 6 6)')))
147
+ def test_remove
148
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
147
149
 
148
- assert_equal([],
149
- @tree.query(read('LINESTRING(20 0, 30 10)')))
150
+ setup_tree
150
151
 
151
- assert_equal([@item_2, @item_3],
152
- @tree.query(read('LINESTRING(25 25, 26 26)')))
152
+ @tree.remove(read('POINT(5 5)'), @item_1)
153
153
 
154
- assert_equal([@item_2, @item_3],
155
- @tree.query(read('LINESTRING(0 0, 100 100)')))
156
- end
154
+ assert_equal([],
155
+ @tree.query(read('LINESTRING(5 5, 6 6)')))
156
+
157
+ assert_equal([],
158
+ @tree.query(read('LINESTRING(20 0, 30 10)')))
157
159
 
158
- def test_cant_clone
159
- assert_raises(NoMethodError) do
160
- Geos::STRtree.new(3).clone
161
- end
160
+ assert_equal([@item_2, @item_3],
161
+ @tree.query(read('LINESTRING(25 25, 26 26)')))
162
+
163
+ assert_equal([@item_2, @item_3],
164
+ @tree.query(read('LINESTRING(0 0, 100 100)')))
165
+ end
166
+
167
+ def test_cant_clone
168
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
169
+
170
+ assert_raises(NoMethodError) do
171
+ Geos::STRtree.new(3).clone
162
172
  end
173
+ end
174
+
175
+ def test_cant_dup
176
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
163
177
 
164
- def test_cant_dup
165
- assert_raises(NoMethodError) do
166
- Geos::STRtree.new(3).dup
167
- end
178
+ assert_raises(NoMethodError) do
179
+ Geos::STRtree.new(3).dup
168
180
  end
181
+ end
169
182
 
170
- def test_setup_with_array
171
- tree = Geos::STRtree.new(
172
- [ read('LINESTRING(0 0, 10 10)'), item_1 = { :item_1 => :test } ],
173
- [ read('LINESTRING(20 20, 30 30)'), item_2 = [ :test ] ],
174
- [ read('LINESTRING(20 20, 30 30)'), item_3 = Object.new ]
175
- )
183
+ def test_setup_with_array
184
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
176
185
 
177
- assert_equal([item_1],
178
- tree.query(read('LINESTRING(5 5, 6 6)')))
186
+ tree = Geos::STRtree.new(
187
+ [ read('LINESTRING(0 0, 10 10)'), item_1 = { :item_1 => :test } ],
188
+ [ read('LINESTRING(20 20, 30 30)'), item_2 = [ :test ] ],
189
+ [ read('LINESTRING(20 20, 30 30)'), item_3 = Object.new ]
190
+ )
179
191
 
180
- assert_equal([],
181
- tree.query(read('LINESTRING(20 0, 30 10)')))
192
+ assert_equal([item_1],
193
+ tree.query(read('LINESTRING(5 5, 6 6)')))
182
194
 
183
- assert_equal([item_2, item_3],
184
- tree.query(read('LINESTRING(25 25, 26 26)')))
195
+ assert_equal([],
196
+ tree.query(read('LINESTRING(20 0, 30 10)')))
185
197
 
186
- assert_equal([item_1, item_2, item_3],
187
- tree.query(read('LINESTRING(0 0, 100 100)')))
188
- end
198
+ assert_equal([item_2, item_3],
199
+ tree.query(read('LINESTRING(25 25, 26 26)')))
200
+
201
+ assert_equal([item_1, item_2, item_3],
202
+ tree.query(read('LINESTRING(0 0, 100 100)')))
203
+ end
204
+
205
+ def test_capacity
206
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
189
207
 
190
- def test_capacity
191
- assert_raises(ArgumentError) do
192
- Geos::STRtree.new(0)
193
- end
208
+ assert_raises(ArgumentError) do
209
+ Geos::STRtree.new(0)
194
210
  end
211
+ end
212
+
213
+ def test_geometries
214
+ skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree)
195
215
 
196
- def test_geometries
197
- assert_raises(TypeError) do
198
- Geos::STRtree.new([])
199
- end
216
+ assert_raises(TypeError) do
217
+ Geos::STRtree.new([])
200
218
  end
201
219
  end
202
220
  end
221
+