rgeo 0.5.3 → 0.6.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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/ext/geos_c_impl/extconf.rb +1 -0
  3. data/ext/geos_c_impl/factory.c +10 -1
  4. data/ext/geos_c_impl/geometry.c +25 -3
  5. data/ext/geos_c_impl/line_string.c +1 -12
  6. data/ext/geos_c_impl/polygon.c +0 -3
  7. data/ext/geos_c_impl/preface.h +3 -0
  8. data/lib/rgeo.rb +0 -1
  9. data/lib/rgeo/feature/geometry.rb +17 -0
  10. data/lib/rgeo/feature/types.rb +4 -4
  11. data/lib/rgeo/geographic/projected_feature_methods.rb +1 -22
  12. data/lib/rgeo/geos/ffi_feature_methods.rb +5 -0
  13. data/lib/rgeo/geos/utils.rb +2 -0
  14. data/lib/rgeo/impl_helper/basic_line_string_methods.rb +1 -0
  15. data/lib/rgeo/version.rb +1 -1
  16. metadata +11 -171
  17. data/lib/rgeo/yaml.rb +0 -23
  18. data/test/cartesian_analysis_test.rb +0 -65
  19. data/test/cartesian_bbox_test.rb +0 -123
  20. data/test/common/factory_tests.rb +0 -78
  21. data/test/common/geometry_collection_tests.rb +0 -237
  22. data/test/common/line_string_tests.rb +0 -330
  23. data/test/common/multi_line_string_tests.rb +0 -182
  24. data/test/common/multi_point_tests.rb +0 -200
  25. data/test/common/multi_polygon_tests.rb +0 -191
  26. data/test/common/point_tests.rb +0 -370
  27. data/test/common/polygon_tests.rb +0 -228
  28. data/test/coord_sys/ogc_cs_test.rb +0 -342
  29. data/test/coord_sys/proj4_srs_data_test.rb +0 -41
  30. data/test/coord_sys/proj4_test.rb +0 -150
  31. data/test/coord_sys/sr_org_test.rb +0 -32
  32. data/test/coord_sys/url_reader_test.rb +0 -42
  33. data/test/geos_capi/factory_test.rb +0 -31
  34. data/test/geos_capi/geometry_collection_test.rb +0 -24
  35. data/test/geos_capi/line_string_test.rb +0 -24
  36. data/test/geos_capi/misc_test.rb +0 -116
  37. data/test/geos_capi/multi_line_string_test.rb +0 -24
  38. data/test/geos_capi/multi_point_test.rb +0 -24
  39. data/test/geos_capi/multi_polygon_test.rb +0 -39
  40. data/test/geos_capi/parsing_unparsing_test.rb +0 -40
  41. data/test/geos_capi/point_test.rb +0 -72
  42. data/test/geos_capi/polygon_test.rb +0 -154
  43. data/test/geos_capi/zmfactory_test.rb +0 -57
  44. data/test/geos_ffi/factory_test.rb +0 -31
  45. data/test/geos_ffi/geometry_collection_test.rb +0 -24
  46. data/test/geos_ffi/line_string_test.rb +0 -24
  47. data/test/geos_ffi/misc_test.rb +0 -63
  48. data/test/geos_ffi/multi_line_string_test.rb +0 -24
  49. data/test/geos_ffi/multi_point_test.rb +0 -24
  50. data/test/geos_ffi/multi_polygon_test.rb +0 -33
  51. data/test/geos_ffi/parsing_unparsing_test.rb +0 -41
  52. data/test/geos_ffi/point_test.rb +0 -77
  53. data/test/geos_ffi/polygon_test.rb +0 -46
  54. data/test/geos_ffi/zmfactory_test.rb +0 -58
  55. data/test/mixins_test.rb +0 -141
  56. data/test/oneoff_test.rb +0 -26
  57. data/test/projected_geographic/factory_test.rb +0 -25
  58. data/test/projected_geographic/geometry_collection_test.rb +0 -24
  59. data/test/projected_geographic/line_string_test.rb +0 -24
  60. data/test/projected_geographic/multi_line_string_test.rb +0 -26
  61. data/test/projected_geographic/multi_point_test.rb +0 -30
  62. data/test/projected_geographic/multi_polygon_test.rb +0 -25
  63. data/test/projected_geographic/point_test.rb +0 -51
  64. data/test/projected_geographic/polygon_test.rb +0 -24
  65. data/test/simple_cartesian/calculations_test.rb +0 -99
  66. data/test/simple_cartesian/factory_test.rb +0 -27
  67. data/test/simple_cartesian/geometry_collection_test.rb +0 -30
  68. data/test/simple_cartesian/line_string_test.rb +0 -31
  69. data/test/simple_cartesian/multi_line_string_test.rb +0 -28
  70. data/test/simple_cartesian/multi_point_test.rb +0 -31
  71. data/test/simple_cartesian/multi_polygon_test.rb +0 -31
  72. data/test/simple_cartesian/point_test.rb +0 -50
  73. data/test/simple_cartesian/polygon_test.rb +0 -28
  74. data/test/simple_mercator/factory_test.rb +0 -25
  75. data/test/simple_mercator/geometry_collection_test.rb +0 -24
  76. data/test/simple_mercator/line_string_test.rb +0 -24
  77. data/test/simple_mercator/multi_line_string_test.rb +0 -26
  78. data/test/simple_mercator/multi_point_test.rb +0 -29
  79. data/test/simple_mercator/multi_polygon_test.rb +0 -25
  80. data/test/simple_mercator/point_test.rb +0 -55
  81. data/test/simple_mercator/polygon_test.rb +0 -24
  82. data/test/simple_mercator/window_test.rb +0 -173
  83. data/test/spherical_geographic/calculations_test.rb +0 -167
  84. data/test/spherical_geographic/factory_test.rb +0 -27
  85. data/test/spherical_geographic/geometry_collection_test.rb +0 -31
  86. data/test/spherical_geographic/line_string_test.rb +0 -31
  87. data/test/spherical_geographic/multi_line_string_test.rb +0 -29
  88. data/test/spherical_geographic/multi_point_test.rb +0 -31
  89. data/test/spherical_geographic/multi_polygon_test.rb +0 -31
  90. data/test/spherical_geographic/point_test.rb +0 -78
  91. data/test/spherical_geographic/polygon_test.rb +0 -28
  92. data/test/types_test.rb +0 -42
  93. data/test/wkrep/wkb_generator_test.rb +0 -185
  94. data/test/wkrep/wkb_parser_test.rb +0 -293
  95. data/test/wkrep/wkt_generator_test.rb +0 -294
  96. data/test/wkrep/wkt_parser_test.rb +0 -412
@@ -1,28 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple cartesian multi line string implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/multi_line_string_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleCartesian # :nodoc:
15
- class TestMultiLineString < ::Test::Unit::TestCase # :nodoc:
16
- def create_factory
17
- @factory = ::RGeo::Cartesian.simple_factory
18
- end
19
-
20
- include ::RGeo::Tests::Common::MultiLineStringTests
21
-
22
- undef_method :test_fully_equal
23
- undef_method :test_geometrically_equal
24
- undef_method :test_not_equal
25
- end
26
- end
27
- end
28
- end
@@ -1,31 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple cartesian multi point implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/multi_point_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleCartesian # :nodoc:
15
- class TestMultiPoint < ::Test::Unit::TestCase # :nodoc:
16
- def create_factory(opts_ = {})
17
- @factory = ::RGeo::Cartesian.simple_factory(opts_)
18
- end
19
-
20
- include ::RGeo::Tests::Common::MultiPointTests
21
-
22
- undef_method :test_fully_equal
23
- undef_method :test_geometrically_equal
24
- undef_method :test_not_equal
25
- undef_method :test_union
26
- undef_method :test_difference
27
- undef_method :test_intersection
28
- end
29
- end
30
- end
31
- end
@@ -1,31 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple cartesian multi polygon implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/multi_polygon_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleCartesian # :nodoc:
15
- class TestMultiPolygon < ::Test::Unit::TestCase # :nodoc:
16
- def create_factories
17
- @factory = ::RGeo::Cartesian.simple_factory
18
- @lenient_factory = ::RGeo::Cartesian.simple_factory(lenient_multi_polygon_assertions: true)
19
- end
20
-
21
- include ::RGeo::Tests::Common::MultiPolygonTests
22
-
23
- undef_method :test_creation_wrong_type
24
- undef_method :test_creation_overlapping
25
- undef_method :test_creation_connected
26
- undef_method :test_equal
27
- undef_method :test_not_equal
28
- end
29
- end
30
- end
31
- end
@@ -1,50 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple cartesian point implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/point_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleCartesian # :nodoc:
15
- class TestPoint < ::Test::Unit::TestCase # :nodoc:
16
- def setup
17
- @factory = ::RGeo::Cartesian.simple_factory(srid: 1, buffer_resolution: 8)
18
- @zfactory = ::RGeo::Cartesian.simple_factory(srid: 1, has_z_coordinate: true)
19
- @mfactory = ::RGeo::Cartesian.simple_factory(srid: 1, has_m_coordinate: true)
20
- @zmfactory = ::RGeo::Cartesian.simple_factory(srid: 1, has_z_coordinate: true, has_m_coordinate: true)
21
- end
22
-
23
- include ::RGeo::Tests::Common::PointTests
24
-
25
- def test_srid
26
- point_ = @factory.point(11, 12)
27
- assert_equal(1, point_.srid)
28
- end
29
-
30
- def test_distance
31
- point1_ = @factory.point(2, 2)
32
- point2_ = @factory.point(7, 14)
33
- assert_in_delta(13, point1_.distance(point2_), 0.0001)
34
- end
35
-
36
- undef_method :test_disjoint
37
- undef_method :test_intersects
38
- undef_method :test_touches
39
- undef_method :test_crosses
40
- undef_method :test_within
41
- undef_method :test_contains
42
- undef_method :test_overlaps
43
- undef_method :test_intersection
44
- undef_method :test_union
45
- undef_method :test_difference
46
- undef_method :test_sym_difference
47
- end
48
- end
49
- end
50
- end
@@ -1,28 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple cartesian polygon implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/polygon_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleCartesian # :nodoc:
15
- class TestPolygon < ::Test::Unit::TestCase # :nodoc:
16
- def setup
17
- @factory = ::RGeo::Cartesian.simple_factory
18
- end
19
-
20
- include ::RGeo::Tests::Common::PolygonTests
21
-
22
- undef_method :test_fully_equal
23
- undef_method :test_geometrically_equal_but_ordered_different
24
- undef_method :test_geometrically_equal_but_different_directions
25
- end
26
- end
27
- end
28
- end
@@ -1,25 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the GEOS factory
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/factory_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestFactory < ::Test::Unit::TestCase # :nodoc:
16
- def setup
17
- @factory = ::RGeo::Geographic.simple_mercator_factory
18
- @srid = 4326
19
- end
20
-
21
- include ::RGeo::Tests::Common::FactoryTests
22
- end
23
- end
24
- end
25
- end
@@ -1,24 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator geometry collection implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/geometry_collection_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestGeometryCollection < ::Test::Unit::TestCase # :nodoc:
16
- def create_factory
17
- ::RGeo::Geographic.simple_mercator_factory
18
- end
19
-
20
- include ::RGeo::Tests::Common::GeometryCollectionTests
21
- end
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator line string implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/line_string_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestLineString < ::Test::Unit::TestCase # :nodoc:
16
- def setup
17
- @factory = ::RGeo::Geographic.simple_mercator_factory
18
- end
19
-
20
- include ::RGeo::Tests::Common::LineStringTests
21
- end
22
- end
23
- end
24
- end
@@ -1,26 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator multi line string implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/multi_line_string_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestMultiLineString < ::Test::Unit::TestCase # :nodoc:
16
- def create_factory
17
- ::RGeo::Geographic.simple_mercator_factory
18
- end
19
-
20
- include ::RGeo::Tests::Common::MultiLineStringTests
21
-
22
- undef_method :test_length
23
- end
24
- end
25
- end
26
- end
@@ -1,29 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator multi point implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/multi_point_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestMultiPoint < ::Test::Unit::TestCase # :nodoc:
16
- def create_factory(opts_ = {})
17
- ::RGeo::Geographic.simple_mercator_factory(opts_)
18
- end
19
-
20
- include ::RGeo::Tests::Common::MultiPointTests
21
-
22
- # These tests suffer from floating point issues
23
- undef_method :test_union
24
- undef_method :test_difference
25
- undef_method :test_intersection
26
- end
27
- end
28
- end
29
- end
@@ -1,25 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator multi polygon implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/multi_polygon_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestMultiPolygon < ::Test::Unit::TestCase # :nodoc:
16
- def create_factories
17
- @factory = ::RGeo::Geographic.simple_mercator_factory
18
- @lenient_factory = ::RGeo::Geographic.simple_mercator_factory(lenient_multi_polygon_assertions: true)
19
- end
20
-
21
- include ::RGeo::Tests::Common::MultiPolygonTests
22
- end
23
- end
24
- end
25
- end
@@ -1,55 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator point implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/point_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestPoint < ::Test::Unit::TestCase # :nodoc:
16
- def setup
17
- @factory = ::RGeo::Geographic.simple_mercator_factory(buffer_resolution: 8)
18
- @zfactory = ::RGeo::Geographic.simple_mercator_factory(has_z_coordinate: true)
19
- @mfactory = ::RGeo::Geographic.simple_mercator_factory(has_m_coordinate: true)
20
- @zmfactory = ::RGeo::Geographic.simple_mercator_factory(has_z_coordinate: true, has_m_coordinate: true)
21
- end
22
-
23
- include ::RGeo::Tests::Common::PointTests
24
-
25
- # TEMP until ffi-geos 0.0.5 is released
26
- undef_method :test_buffer
27
- # END_TEMP
28
-
29
- def test_has_projection
30
- point_ = @factory.point(21, -22)
31
- assert(point_.respond_to?(:projection))
32
- end
33
-
34
- def test_latlon
35
- point_ = @factory.point(21, -22)
36
- assert_equal(21, point_.longitude)
37
- assert_equal(-22, point_.latitude)
38
- end
39
-
40
- def test_srid
41
- point_ = @factory.point(11, 12)
42
- assert_equal(4326, point_.srid)
43
- end
44
-
45
- def test_distance
46
- point1_ = @factory.point(11, 12)
47
- point2_ = @factory.point(11, 12)
48
- point3_ = @factory.point(13, 12)
49
- assert_in_delta(0, point1_.distance(point2_), 0.0001)
50
- assert_in_delta(222_638, point1_.distance(point3_), 1)
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,24 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator polygon implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- require ::File.expand_path("../common/polygon_tests.rb", ::File.dirname(__FILE__))
11
-
12
- module RGeo
13
- module Tests # :nodoc:
14
- module SimpleMercator # :nodoc:
15
- class TestPolygon < ::Test::Unit::TestCase # :nodoc:
16
- def setup
17
- @factory = ::RGeo::Geographic.simple_mercator_factory
18
- end
19
-
20
- include ::RGeo::Tests::Common::PolygonTests
21
- end
22
- end
23
- end
24
- end
@@ -1,173 +0,0 @@
1
- # -----------------------------------------------------------------------------
2
- #
3
- # Tests for the simple mercator window implementation
4
- #
5
- # -----------------------------------------------------------------------------
6
-
7
- require "test/unit"
8
- require "rgeo"
9
-
10
- module RGeo
11
- module Tests # :nodoc:
12
- module SimpleMercator # :nodoc:
13
- class TestWindow < ::Test::Unit::TestCase # :nodoc:
14
- def setup
15
- @factory = ::RGeo::Geographic.simple_mercator_factory
16
- end
17
-
18
- def assert_close_enough(p1_, p2_)
19
- assert((p1_.x - p2_.x).abs < 0.00001 && (p1_.y - p2_.y).abs < 0.00001)
20
- end
21
-
22
- def assert_contains_approx(p_, mp_)
23
- assert(mp_.any? { |q_| (p_.x - q_.x).abs < 0.00001 && (p_.y - q_.y).abs < 0.00001 })
24
- end
25
-
26
- def test_limits
27
- limits_ = @factory.projection_limits_window
28
- assert_in_delta(-20_037_508, limits_.x_min, 1)
29
- assert_in_delta(-20_037_508, limits_.y_min, 1)
30
- assert_in_delta(20_037_508, limits_.x_max, 1)
31
- assert_in_delta(20_037_508, limits_.y_max, 1)
32
- end
33
-
34
- def test_limits_unprojected
35
- limits_ = @factory.projection_limits_window
36
- assert_close_enough(@factory.point(-180, -85.051129), limits_.sw_point)
37
- assert_close_enough(@factory.point(180, -85.051129), limits_.se_point)
38
- assert_close_enough(@factory.point(-180, 85.051129), limits_.nw_point)
39
- assert_close_enough(@factory.point(180, 85.051129), limits_.ne_point)
40
- assert_close_enough(@factory.point(0, 0), limits_.center_point)
41
- end
42
-
43
- def test_center_point
44
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(-160, -30), @factory.point(170, 30))
45
- assert_close_enough(@factory.point(5, 0), window1_.center_point)
46
- window2_ = Geographic::ProjectedWindow.for_corners(@factory.point(160, -30), @factory.point(-170, 30))
47
- assert_close_enough(@factory.point(175, 0), window2_.center_point)
48
- end
49
-
50
- def test_random_point
51
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(-170, 30), @factory.point(-160, 40))
52
- 20.times { assert(window1_.contains_point?(window1_.random_point)) }
53
- window2_ = Geographic::ProjectedWindow.for_corners(@factory.point(170, 30), @factory.point(-170, 40))
54
- 20.times { assert(window2_.contains_point?(window2_.random_point)) }
55
- end
56
-
57
- def test_crosses_seam
58
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(-170, 30), @factory.point(170, 40))
59
- assert(!window1_.crosses_seam?)
60
- window2_ = Geographic::ProjectedWindow.for_corners(@factory.point(170, 30), @factory.point(-170, 40))
61
- assert(window2_.crosses_seam?)
62
- end
63
-
64
- def test_degenerate
65
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(-20, 30), @factory.point(-10, 40))
66
- assert(!window1_.degenerate?)
67
- window2_ = Geographic::ProjectedWindow.for_corners(@factory.point(-20, 30), @factory.point(-20, 40))
68
- assert(window2_.degenerate?)
69
- window3_ = Geographic::ProjectedWindow.for_corners(@factory.point(-20, 30), @factory.point(-10, 30))
70
- assert(window3_.degenerate?)
71
- end
72
-
73
- def test_contains_point
74
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(-170, 30), @factory.point(-160, 40))
75
- window2_ = Geographic::ProjectedWindow.for_corners(@factory.point(170, 30), @factory.point(-170, 40))
76
- point1_ = @factory.point(-169, 32)
77
- point2_ = @factory.point(-171, 32)
78
- point3_ = @factory.point(-169, 29)
79
- point4_ = @factory.point(171, 32)
80
- point5_ = @factory.point(169, 32)
81
- assert(window1_.contains_point?(point1_))
82
- assert(!window1_.contains_point?(point2_))
83
- assert(!window1_.contains_point?(point3_))
84
- assert(!window2_.contains_point?(point1_))
85
- assert(window2_.contains_point?(point2_))
86
- assert(window2_.contains_point?(point4_))
87
- assert(!window2_.contains_point?(point5_))
88
- end
89
-
90
- def test_noseam_contains_window
91
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(10, 10), @factory.point(30, 30))
92
- assert(window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 15), @factory.point(25, 25))))
93
-
94
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(5, 15), @factory.point(25, 25))))
95
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 15), @factory.point(35, 25))))
96
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(0, 15), @factory.point(5, 25))))
97
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(35, 15), @factory.point(40, 25))))
98
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(5, 15), @factory.point(35, 25))))
99
-
100
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 5), @factory.point(25, 25))))
101
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 15), @factory.point(25, 35))))
102
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 0), @factory.point(25, 5))))
103
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 35), @factory.point(25, 40))))
104
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(15, 5), @factory.point(25, 35))))
105
-
106
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(170, 35), @factory.point(-170, 40))))
107
- end
108
-
109
- def test_seam_contains_window
110
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(160, 10), @factory.point(-160, 30))
111
- assert(window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(175, 15), @factory.point(-175, 25))))
112
- assert(window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(170, 15), @factory.point(175, 25))))
113
- assert(window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(-175, 15), @factory.point(-170, 25))))
114
-
115
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(150, 15), @factory.point(170, 25))))
116
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(150, 15), @factory.point(-170, 25))))
117
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(-170, 15), @factory.point(-150, 25))))
118
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(170, 15), @factory.point(-150, 25))))
119
-
120
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(-150, 15), @factory.point(150, 25))))
121
- assert(!window1_.contains_window?(Geographic::ProjectedWindow.for_corners(@factory.point(150, 15), @factory.point(-150, 25))))
122
- end
123
-
124
- def test_scaled_by
125
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(20, -20), @factory.point(50, 40))
126
- window1s_ = window1_.scaled_by(2, 1.5)
127
- assert(window1s_.contains_point?(@factory.point(10, -25)))
128
- assert(window1s_.contains_point?(@factory.point(60, 45)))
129
- assert(!window1s_.contains_point?(@factory.point(0, -25)))
130
- assert(!window1s_.contains_point?(@factory.point(10, -35)))
131
- end
132
-
133
- def test_scaled_by_across_seam
134
- window1_ = Geographic::ProjectedWindow.for_corners(@factory.point(170, -20), @factory.point(-160, 40))
135
- window1s_ = window1_.scaled_by(2, 1.5)
136
- assert(window1s_.contains_point?(@factory.point(160, -25)))
137
- assert(window1s_.contains_point?(@factory.point(-150, 45)))
138
- assert(!window1s_.contains_point?(@factory.point(150, -25)))
139
- assert(!window1s_.contains_point?(@factory.point(-140, 45)))
140
- end
141
-
142
- def test_surrounding_point
143
- window1_ = Geographic::ProjectedWindow.surrounding_point(@factory.point(20, -20), 1)
144
- assert(window1_.contains_point?(@factory.point(20, -20)))
145
- assert(!window1_.contains_point?(@factory.point(20, -21)))
146
- assert(!window1_.contains_point?(@factory.point(19, -20)))
147
- end
148
-
149
- def test_bounding_1_point
150
- window1_ = Geographic::ProjectedWindow.bounding_points([@factory.point(20, -20)]).with_margin(1)
151
- assert(window1_.contains_point?(@factory.point(20, -20)))
152
- assert(!window1_.contains_point?(@factory.point(20, -21)))
153
- assert(!window1_.contains_point?(@factory.point(19, -20)))
154
- end
155
-
156
- def test_bounding_2_points
157
- window1_ = Geographic::ProjectedWindow.bounding_points([@factory.point(10, 10), @factory.point(30, 30)])
158
- assert(window1_.contains_point?(@factory.point(20, 20)))
159
- assert(!window1_.contains_point?(@factory.point(5, 20)))
160
- assert(!window1_.contains_point?(@factory.point(20, 35)))
161
- end
162
-
163
- def test_bounding_2_points_across_seam
164
- window1_ = Geographic::ProjectedWindow.bounding_points([@factory.point(-170, 10), @factory.point(170, 30)])
165
- assert(window1_.contains_point?(@factory.point(-174, 20)))
166
- assert(!window1_.contains_point?(@factory.point(-160, 20)))
167
- assert(!window1_.contains_point?(@factory.point(160, 20)))
168
- assert(!window1_.contains_point?(@factory.point(-174, 35)))
169
- end
170
- end
171
- end
172
- end
173
- end