georuby 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -8
  3. data/lib/geo_ruby/geojson.rb +8 -6
  4. data/lib/geo_ruby/simple_features/geometry.rb +11 -0
  5. data/lib/geo_ruby/simple_features/geometry_collection.rb +1 -9
  6. data/lib/geo_ruby/simple_features/line_string.rb +8 -13
  7. data/lib/geo_ruby/simple_features/multi_line_string.rb +2 -10
  8. data/lib/geo_ruby/simple_features/multi_point.rb +1 -9
  9. data/lib/geo_ruby/simple_features/multi_polygon.rb +0 -7
  10. data/lib/geo_ruby/simple_features/point.rb +11 -14
  11. data/lib/geo_ruby/simple_features/polygon.rb +1 -9
  12. data/lib/geo_ruby/version.rb +1 -1
  13. data/spec/geo_ruby/geojson_spec.rb +25 -25
  14. data/spec/geo_ruby/georss_spec.rb +63 -63
  15. data/spec/geo_ruby/gpx4r/gpx_spec.rb +34 -34
  16. data/spec/geo_ruby/kml_spec.rb +27 -27
  17. data/spec/geo_ruby/shp4r/shp_spec.rb +46 -46
  18. data/spec/geo_ruby/simple_features/circle_spec.rb +1 -1
  19. data/spec/geo_ruby/simple_features/envelope_spec.rb +15 -15
  20. data/spec/geo_ruby/simple_features/ewkb_parser_spec.rb +56 -56
  21. data/spec/geo_ruby/simple_features/ewkt_parser_spec.rb +68 -68
  22. data/spec/geo_ruby/simple_features/geometry_collection_spec.rb +18 -18
  23. data/spec/geo_ruby/simple_features/geometry_spec.rb +10 -10
  24. data/spec/geo_ruby/simple_features/line_string_spec.rb +80 -71
  25. data/spec/geo_ruby/simple_features/linear_ring_spec.rb +3 -3
  26. data/spec/geo_ruby/simple_features/multi_line_string_spec.rb +15 -15
  27. data/spec/geo_ruby/simple_features/multi_point_spec.rb +10 -10
  28. data/spec/geo_ruby/simple_features/multi_polygon_spec.rb +13 -13
  29. data/spec/geo_ruby/simple_features/point_spec.rb +139 -131
  30. data/spec/geo_ruby/simple_features/polygon_spec.rb +36 -36
  31. data/spec/geo_ruby_spec.rb +3 -3
  32. data/spec/spec_helper.rb +4 -4
  33. metadata +52 -52
@@ -6,24 +6,24 @@ describe GeoRuby::SimpleFeatures::GeometryCollection do
6
6
  geometry_collection = GeoRuby::SimpleFeatures::GeometryCollection::new(256)
7
7
  geometry_collection << GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256)
8
8
 
9
- geometry_collection.length.should eql(1)
10
- geometry_collection[0].should == GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256)
9
+ expect(geometry_collection.length).to eql(1)
10
+ expect(geometry_collection[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256))
11
11
 
12
12
  geometry_collection[0]=GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)
13
13
  geometry_collection << GeoRuby::SimpleFeatures::Polygon.from_coordinates([[[0,0],[4,0],[4,4],[0,4],[0,0]],[[1,1],[3,1],[3,3],[1,3],[1,1]]],256)
14
- geometry_collection.length.should eql(2)
15
- geometry_collection[0].should == GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)
14
+ expect(geometry_collection.length).to eql(2)
15
+ expect(geometry_collection[0]).to eq(GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256))
16
16
 
17
17
  geometry_collection = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)],256)
18
- geometry_collection.class.should eql(GeoRuby::SimpleFeatures::GeometryCollection)
19
- geometry_collection.srid.should eql(256)
20
- geometry_collection.length.should eql(2)
21
- geometry_collection[1].should == GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)
18
+ expect(geometry_collection.class).to eql(GeoRuby::SimpleFeatures::GeometryCollection)
19
+ expect(geometry_collection.srid).to eql(256)
20
+ expect(geometry_collection.length).to eql(2)
21
+ expect(geometry_collection[1]).to eq(GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256))
22
22
 
23
23
  bbox = geometry_collection.bounding_box
24
- bbox.length.should eql(2)
25
- bbox[0].should == GeoRuby::SimpleFeatures::Point.from_x_y(4.67,12.45)
26
- bbox[1].should == GeoRuby::SimpleFeatures::Point.from_x_y(67.55,54)
24
+ expect(bbox.length).to eql(2)
25
+ expect(bbox[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(4.67,12.45))
26
+ expect(bbox[1]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(67.55,54))
27
27
  end
28
28
 
29
29
  it "test_geometry_collection_equal" do
@@ -31,25 +31,25 @@ describe GeoRuby::SimpleFeatures::GeometryCollection do
31
31
  geometry_collection2 = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256),GeoRuby::SimpleFeatures::Polygon.from_coordinates([[[0,0,2],[4,0,2],[4,4,2],[0,4,2],[0,0,2]],[[1,1,2],[3,1,2],[3,3,2],[1,3,2],[1,1,2]]],256)],256,true)
32
32
  line_string=GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)
33
33
 
34
- geometry_collection1.should == GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)],256)
35
- geometry_collection2.should_not == geometry_collection1
36
- line_string.should_not == geometry_collection1
34
+ expect(geometry_collection1).to eq(GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)],256))
35
+ expect(geometry_collection2).not_to eq(geometry_collection1)
36
+ expect(line_string).not_to eq(geometry_collection1)
37
37
  end
38
38
 
39
39
  it "test_geometry_collection_binary" do
40
40
  geometry_collection = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)],256)
41
- geometry_collection.as_hex_ewkb.should eql("010700002000010000020000000101000000AE47E17A14AE12403333333333B34640010200000002000000CDCCCCCCCCCC16406666666666E628403333333333E350400000000000004B40")
41
+ expect(geometry_collection.as_hex_ewkb).to eql("010700002000010000020000000101000000AE47E17A14AE12403333333333B34640010200000002000000CDCCCCCCCCCC16406666666666E628403333333333E350400000000000004B40")
42
42
 
43
43
  geometry_collection = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y_z_m(4.67,45.4,45.67,2.3,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45,4.56,98.3],[67.55,54,12.2,3.4]],256,true, true)],256,true, true)
44
- geometry_collection.as_hex_ewkb.should eql("01070000E0000100000200000001010000C0AE47E17A14AE12403333333333B34640F6285C8FC2D54640666666666666024001020000C002000000CDCCCCCCCCCC16406666666666E628403D0AD7A3703D124033333333339358403333333333E350400000000000004B4066666666666628403333333333330B40")
44
+ expect(geometry_collection.as_hex_ewkb).to eql("01070000E0000100000200000001010000C0AE47E17A14AE12403333333333B34640F6285C8FC2D54640666666666666024001020000C002000000CDCCCCCCCCCC16406666666666E628403D0AD7A3703D124033333333339358403333333333E350400000000000004B4066666666666628403333333333330B40")
45
45
  end
46
46
 
47
47
  it "should test_geometry_collection_text" do
48
48
  geometry_collection = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y(4.67,45.4,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45],[67.55,54]],256)],256)
49
- geometry_collection.as_ewkt.should eql("SRID=256;GEOMETRYCOLLECTION(POINT(4.67 45.4),LINESTRING(5.7 12.45,67.55 54))")
49
+ expect(geometry_collection.as_ewkt).to eql("SRID=256;GEOMETRYCOLLECTION(POINT(4.67 45.4),LINESTRING(5.7 12.45,67.55 54))")
50
50
 
51
51
  geometry_collection = GeoRuby::SimpleFeatures::GeometryCollection.from_geometries([GeoRuby::SimpleFeatures::Point.from_x_y_m(4.67,45.4,45.6,256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[5.7,12.45,5.6],[67.55,54,6.7]],256,false,true)],256,false,true)
52
- geometry_collection.as_ewkt.should eql("SRID=256;GEOMETRYCOLLECTIONM(POINTM(4.67 45.4 45.6),LINESTRINGM(5.7 12.45 5.6,67.55 54 6.7))")
52
+ expect(geometry_collection.as_ewkt).to eql("SRID=256;GEOMETRYCOLLECTIONM(POINTM(4.67 45.4 45.6),LINESTRINGM(5.7 12.45 5.6,67.55 54 6.7))")
53
53
  end
54
54
 
55
55
  end
@@ -9,29 +9,29 @@ describe GeoRuby::SimpleFeatures::Geometry do
9
9
  end
10
10
 
11
11
  it "should have a default srid" do
12
- subject.srid.should eql(4326) #Geometry.default_srid)
12
+ expect(subject.srid).to eql(4326) #Geometry.default_srid)
13
13
  end
14
14
 
15
15
  it "should change srid" do
16
16
  geo = GeoRuby::SimpleFeatures::Geometry.new(225)
17
- geo.srid.should eql(225)
17
+ expect(geo.srid).to eql(225)
18
18
  end
19
19
 
20
20
  it "should instantiate from hex ewkb" do
21
21
  point = GeoRuby::SimpleFeatures::Geometry.from_hex_ewkb("01010000207B000000CDCCCCCCCCCC28406666666666A64640")
22
- point.class.should == GeoRuby::SimpleFeatures::Point
23
- point.x.should be_within(0.1).of(12.4)
22
+ expect(point.class).to eq(GeoRuby::SimpleFeatures::Point)
23
+ expect(point.x).to be_within(0.1).of(12.4)
24
24
  end
25
25
 
26
26
  it "should output as_ewkb" do
27
- subject.stub(:binary_geometry_type).and_return(1)
28
- subject.stub(:binary_representation).and_return(1)
29
- subject.as_ewkb.should eql("\001\001\000\000 \346\020\000\000\001")
27
+ allow(subject).to receive(:binary_geometry_type).and_return(1)
28
+ allow(subject).to receive(:binary_representation).and_return(1)
29
+ expect(subject.as_ewkb).to eql("\001\001\000\000 \346\020\000\000\001")
30
30
  end
31
31
 
32
32
  it "should output as_ewkb (utf8 issue)" do
33
- subject.stub(:binary_geometry_type).and_return(1)
34
- subject.stub(:binary_representation).and_return(1)
35
- subject.as_ewkb.should eql("\x01\x01\x00\x00 \xE6\x10\x00\x00\x01")
33
+ allow(subject).to receive(:binary_geometry_type).and_return(1)
34
+ allow(subject).to receive(:binary_representation).and_return(1)
35
+ expect(subject.as_ewkb).to eql("\x01\x01\x00\x00 \xE6\x10\x00\x00\x01")
36
36
  end
37
37
  end
@@ -6,8 +6,8 @@ module LineSpecHelper
6
6
  Array.new(num) { |i| mock_point(i,i) }
7
7
  end
8
8
 
9
- def mock_point(x=1,y=2)
10
- double(GeoRuby::SimpleFeatures::Point, :x => x, :y => y, :text_representation => "#{x} #{y}")
9
+ def mock_point(x=1, y=2)
10
+ double(GeoRuby::SimpleFeatures::Point, :x => x, :y => y, :text_representation => "#{x} #{y}", :to_coordinates => [x, y])
11
11
  end
12
12
  end
13
13
 
@@ -24,15 +24,15 @@ describe GeoRuby::SimpleFeatures::LineString do
24
24
  end
25
25
 
26
26
  it "should have binary_geometry_type 2" do
27
- line.binary_geometry_type.should eql(2)
27
+ expect(line.binary_geometry_type).to eql(2)
28
28
  end
29
29
 
30
30
  it "should have text_geometry_type" do
31
- line.text_geometry_type.should eql("LINESTRING")
31
+ expect(line.text_geometry_type).to eql("LINESTRING")
32
32
  end
33
33
 
34
34
  it "should have a points array" do
35
- line.points.should be_instance_of(Array)
35
+ expect(line.points).to be_instance_of(Array)
36
36
  end
37
37
 
38
38
  end
@@ -42,12 +42,12 @@ describe GeoRuby::SimpleFeatures::LineString do
42
42
  let(:line) { GeoRuby::SimpleFeatures::LineString.from_points([GeoRuby::SimpleFeatures::Point.xy(1,1), GeoRuby::SimpleFeatures::Point.xy(2,2), GeoRuby::SimpleFeatures::Point.xy(3,3)]) }
43
43
 
44
44
  it "should check orientation" do
45
- line.should_not be_clockwise
45
+ expect(line).not_to be_clockwise
46
46
  end
47
47
 
48
48
  it "should check orientation" do
49
49
  l = GeoRuby::SimpleFeatures::LineString.from_points([GeoRuby::SimpleFeatures::Point.from_x_y(20,20), GeoRuby::SimpleFeatures::Point.from_x_y(10,10), GeoRuby::SimpleFeatures::Point.from_x_y(-10,10)])
50
- l.should be_clockwise
50
+ expect(l).to be_clockwise
51
51
  end
52
52
 
53
53
  end
@@ -58,51 +58,51 @@ describe GeoRuby::SimpleFeatures::LineString do
58
58
  line_string = GeoRuby::SimpleFeatures::LineString::new
59
59
  line_string.concat([GeoRuby::SimpleFeatures::Point.from_x_y(12.4,45.3),GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6)])
60
60
 
61
- line_string.length.should eql(2)
62
- line_string[0].should == GeoRuby::SimpleFeatures::Point.from_x_y(12.4,45.3)
61
+ expect(line_string.length).to eql(2)
62
+ expect(line_string[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(12.4,45.3))
63
63
 
64
64
  point=GeoRuby::SimpleFeatures::Point.from_x_y(123,45.8777)
65
65
  line_string[0]=point
66
- line_string[0].should == point
66
+ expect(line_string[0]).to eq(point)
67
67
 
68
68
  points=[GeoRuby::SimpleFeatures::Point.from_x_y(123,45.8777),GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6)]
69
- line_string.each_index {|i| line_string[i].should == points[i] }
69
+ line_string.each_index {|i| expect(line_string[i]).to eq(points[i]) }
70
70
 
71
71
  point=GeoRuby::SimpleFeatures::Point.from_x_y(22.4,13.56)
72
72
  line_string << point
73
- line_string.length.should eql(3)
74
- line_string[2].should eql(point)
73
+ expect(line_string.length).to eql(3)
74
+ expect(line_string[2]).to eql(point)
75
75
  end
76
76
 
77
77
  it "should create" do
78
78
  line_string = GeoRuby::SimpleFeatures::LineString.from_points([GeoRuby::SimpleFeatures::Point.from_x_y(12.4,-45.3),GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6)],123)
79
- line_string.class.should eql(GeoRuby::SimpleFeatures::LineString)
80
- line_string.length.should eql(2)
81
- line_string[0].should == GeoRuby::SimpleFeatures::Point.from_x_y(12.4,-45.3)
82
- line_string[1].should == GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6)
79
+ expect(line_string.class).to eql(GeoRuby::SimpleFeatures::LineString)
80
+ expect(line_string.length).to eql(2)
81
+ expect(line_string[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(12.4,-45.3))
82
+ expect(line_string[1]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6))
83
83
 
84
84
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3],[45.4,41.6],[4.456,1.0698]],123)
85
- line_string.class.should eql(GeoRuby::SimpleFeatures::LineString)
86
- line_string.length.should eql(3)
87
- line_string[0].should == GeoRuby::SimpleFeatures::Point.from_x_y(12.4,-45.3)
88
- line_string[1].should == GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6)
85
+ expect(line_string.class).to eql(GeoRuby::SimpleFeatures::LineString)
86
+ expect(line_string.length).to eql(3)
87
+ expect(line_string[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(12.4,-45.3))
88
+ expect(line_string[1]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6))
89
89
 
90
90
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,123],[45.4,41.6,333],[4.456,1.0698,987]],123,true)
91
- line_string.class.should eql(GeoRuby::SimpleFeatures::LineString)
92
- line_string.length.should eql(3)
93
- line_string[0].should == GeoRuby::SimpleFeatures::Point.from_x_y_z(12.4,-45.3,123,123)
91
+ expect(line_string.class).to eql(GeoRuby::SimpleFeatures::LineString)
92
+ expect(line_string.length).to eql(3)
93
+ expect(line_string[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y_z(12.4,-45.3,123,123))
94
94
 
95
95
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,123],[45.4,41.6,333],[4.456,1.0698,987]],123,true)
96
- line_string.class.should eql(GeoRuby::SimpleFeatures::LineString)
97
- line_string.length.should eql(3)
98
- line_string[0].should == GeoRuby::SimpleFeatures::Point.from_x_y_z(12.4,-45.3,123,123)
96
+ expect(line_string.class).to eql(GeoRuby::SimpleFeatures::LineString)
97
+ expect(line_string.length).to eql(3)
98
+ expect(line_string[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y_z(12.4,-45.3,123,123))
99
99
  end
100
100
 
101
101
  it "should bbox it" do
102
102
  bbox = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,123],[45.4,41.6,333],[4.456,1.0698,987]],123,true).bounding_box
103
- bbox.length.should eql(2)
104
- bbox[0].should == GeoRuby::SimpleFeatures::Point.from_x_y_z(4.456,-45.3,123)
105
- bbox[1].should == GeoRuby::SimpleFeatures::Point.from_x_y_z(45.4,41.6,987)
103
+ expect(bbox.length).to eql(2)
104
+ expect(bbox[0]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y_z(4.456,-45.3,123))
105
+ expect(bbox[1]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y_z(45.4,41.6,987))
106
106
  end
107
107
 
108
108
  it "should test_line_string_equal" do
@@ -110,56 +110,56 @@ describe GeoRuby::SimpleFeatures::LineString do
110
110
  line_string2 = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3],[45.4,41.6]],123)
111
111
  point = GeoRuby::SimpleFeatures::Point.from_x_y(12.4,-45.3,123)
112
112
 
113
- line_string1.should == GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3],[45.4,41.6],[4.456,1.0698]],123)
114
- line_string1.should_not == line_string2
115
- line_string1.should_not == point
113
+ expect(line_string1).to eq(GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3],[45.4,41.6],[4.456,1.0698]],123))
114
+ expect(line_string1).not_to eq(line_string2)
115
+ expect(line_string1).not_to eq(point)
116
116
  end
117
117
 
118
118
  it "should test_line_string_binary" do
119
119
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3],[45.4,41.6]],256)
120
- line_string.as_hex_ewkb.should eql("01020000200001000002000000CDCCCCCCCCCC28406666666666A646C03333333333B34640CDCCCCCCCCCC4440")
120
+ expect(line_string.as_hex_ewkb).to eql("01020000200001000002000000CDCCCCCCCCCC28406666666666A646C03333333333B34640CDCCCCCCCCCC4440")
121
121
 
122
122
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,35.3],[45.4,41.6,12.3]],256,true)
123
- line_string.as_hex_ewkb.should eql("01020000A00001000002000000CDCCCCCCCCCC28406666666666A646C06666666666A641403333333333B34640CDCCCCCCCCCC44409A99999999992840")
123
+ expect(line_string.as_hex_ewkb).to eql("01020000A00001000002000000CDCCCCCCCCCC28406666666666A646C06666666666A641403333333333B34640CDCCCCCCCCCC44409A99999999992840")
124
124
 
125
125
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,35.3,45.1],[45.4,41.6,12.3,40.23]],256,true,true)
126
- line_string.as_hex_ewkb.should eql("01020000E00001000002000000CDCCCCCCCCCC28406666666666A646C06666666666A64140CDCCCCCCCC8C46403333333333B34640CDCCCCCCCCCC44409A999999999928403D0AD7A3701D4440")
126
+ expect(line_string.as_hex_ewkb).to eql("01020000E00001000002000000CDCCCCCCCCCC28406666666666A646C06666666666A64140CDCCCCCCCC8C46403333333333B34640CDCCCCCCCCCC44409A999999999928403D0AD7A3701D4440")
127
127
  end
128
128
 
129
129
  it "test_line_string_text" do
130
130
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3],[45.4,41.6]],256)
131
- line_string.as_ewkt.should eql("SRID=256;LINESTRING(12.4 -45.3,45.4 41.6)")
131
+ expect(line_string.as_ewkt).to eql("SRID=256;LINESTRING(12.4 -45.3,45.4 41.6)")
132
132
 
133
133
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,35.3],[45.4,41.6,12.3]],256,true)
134
- line_string.as_ewkt.should eql("SRID=256;LINESTRING(12.4 -45.3 35.3,45.4 41.6 12.3)")
134
+ expect(line_string.as_ewkt).to eql("SRID=256;LINESTRING(12.4 -45.3 35.3,45.4 41.6 12.3)")
135
135
 
136
136
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,35.3],[45.4,41.6,12.3]],256,false,true)
137
- line_string.as_ewkt.should eql("SRID=256;LINESTRINGM(12.4 -45.3 35.3,45.4 41.6 12.3)")
137
+ expect(line_string.as_ewkt).to eql("SRID=256;LINESTRINGM(12.4 -45.3 35.3,45.4 41.6 12.3)")
138
138
 
139
139
  line_string = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12.4,-45.3,35.3,25.2],[45.4,41.6,12.3,13.75]],256,true,true)
140
- line_string.as_ewkt.should eql("SRID=256;LINESTRING(12.4 -45.3 35.3 25.2,45.4 41.6 12.3 13.75)")
140
+ expect(line_string.as_ewkt).to eql("SRID=256;LINESTRING(12.4 -45.3 35.3 25.2,45.4 41.6 12.3 13.75)")
141
141
  end
142
142
 
143
143
  it "should test_linear_ring_creation" do
144
144
  #testing just the constructor helpers since the rest is the same as for line_string
145
145
  linear_ring = GeoRuby::SimpleFeatures::LinearRing.from_coordinates([[12.4,-45.3],[45.4,41.6],[4.456,1.0698],[12.4,-45.3]],345)
146
- linear_ring.class.should eql(GeoRuby::SimpleFeatures::LinearRing)
147
- linear_ring.length.should eql(4)
148
- linear_ring.should be_closed
149
- linear_ring[1].should == GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6,345)
146
+ expect(linear_ring.class).to eql(GeoRuby::SimpleFeatures::LinearRing)
147
+ expect(linear_ring.length).to eql(4)
148
+ expect(linear_ring).to be_closed
149
+ expect(linear_ring[1]).to eq(GeoRuby::SimpleFeatures::Point.from_x_y(45.4,41.6,345))
150
150
  end
151
151
  end
152
152
 
153
153
  describe "> Coordinates" do
154
154
 
155
155
  before(:each) do
156
- GeoRuby::SimpleFeatures::Point.should_receive(:from_coordinates).
156
+ expect(GeoRuby::SimpleFeatures::Point).to receive(:from_coordinates).
157
157
  exactly(4).with(anything, 4326, false, false).and_return(mock_point)
158
158
  @line = GeoRuby::SimpleFeatures::LineString.from_coordinates([1.2,2.5,2.2,4.5])
159
159
  end
160
160
 
161
161
  it "should instantiate from coordinates" do
162
- @line.points.length.should eql(4)
162
+ expect(@line.points.length).to eql(4)
163
163
  end
164
164
 
165
165
  end
@@ -170,35 +170,44 @@ describe GeoRuby::SimpleFeatures::LineString do
170
170
 
171
171
  it "should be closed if the last point equals the first" do
172
172
  line.push(line.first)
173
- line.should be_closed
174
- line.length.should eql(8)
173
+ expect(line).to be_closed
174
+ expect(line.length).to eql(8)
175
175
  end
176
176
 
177
177
  it "should print the text representation" do
178
- line.text_representation.should eql("0 0,1 1,2 2,3 3,4 4,5 5,6 6")
178
+ expect(line.text_representation).to eql("0 0,1 1,2 2,3 3,4 4,5 5,6 6")
179
179
  end
180
180
 
181
181
  it "should print the georss_simple_representation" do
182
- line.georss_simple_representation({:geom_attr => nil}).
183
- should eql("<georss:line>0 0 1 1 2 2 3 3 4 4 5 5 6 6</georss:line>\n")
182
+ expect(line.georss_simple_representation({:geom_attr => nil})).
183
+ to eql("<georss:line>0 0 1 1 2 2 3 3 4 4 5 5 6 6</georss:line>\n")
184
184
  end
185
185
 
186
186
  it "should map the georss_poslist" do
187
- line.georss_poslist.should eql("0 0 1 1 2 2 3 3 4 4 5 5 6 6")
187
+ expect(line.georss_poslist).to eql("0 0 1 1 2 2 3 3 4 4 5 5 6 6")
188
188
  end
189
189
 
190
190
  it "should print the kml_representation" do
191
- line.kml_representation.should
192
- eql("<LineString>\n<coordinates>0,0 1,1 2,2 3,3 4,4 5,5 6,6</coordinates>\n</LineString>\n")
191
+ expect(line.kml_representation).
192
+ to eql("<LineString>\n<coordinates>0,0 1,1 2,2 3,3 4,4 5,5 6,6</coordinates>\n</LineString>\n")
193
193
  end
194
194
 
195
195
  it "should print the kml_poslist without reverse or z" do
196
- line.kml_poslist({}).should eql("0,0 1,1 2,2 3,3 4,4 5,5 6,6")
196
+ expect(line.kml_poslist({})).to eql("0,0 1,1 2,2 3,3 4,4 5,5 6,6")
197
197
  end
198
198
 
199
199
  it "should print the kml_poslist reverse" do
200
- line.kml_poslist({:reverse => true}).should eql("6,6 5,5 4,4 3,3 2,2 1,1 0,0")
200
+ expect(line.kml_poslist({:reverse => true})).to eql("6,6 5,5 4,4 3,3 2,2 1,1 0,0")
201
201
  end
202
+
203
+ it "should print out nicely as json/geojson" do
204
+ expect(line.as_json).to eql({:type=>"LineString", :coordinates=>[[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6]]})
205
+ end
206
+
207
+ it "should print out nicely to json/geojson" do
208
+ expect(line.to_json).to eql("{\"type\":\"LineString\",\"coordinates\":[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6]]}")
209
+ end
210
+
202
211
  end
203
212
 
204
213
  describe "> Distances..." do
@@ -210,15 +219,15 @@ describe GeoRuby::SimpleFeatures::LineString do
210
219
  end
211
220
 
212
221
  it "should print the length with haversine" do
213
- @p1.should_receive(:spherical_distance).with(@p2).and_return(10)
214
- @p2.should_receive(:spherical_distance).with(@p3).and_return(10)
215
- @line.spherical_distance.should eql(20)
222
+ expect(@p1).to receive(:spherical_distance).with(@p2).and_return(10)
223
+ expect(@p2).to receive(:spherical_distance).with(@p3).and_return(10)
224
+ expect(@line.spherical_distance).to eql(20)
216
225
  end
217
226
 
218
227
  it "should print lenght as euclidian" do
219
- @p1.should_receive(:euclidian_distance).with(@p2).and_return(10)
220
- @p2.should_receive(:euclidian_distance).with(@p3).and_return(10)
221
- @line.euclidian_distance.should eql(20)
228
+ expect(@p1).to receive(:euclidian_distance).with(@p2).and_return(10)
229
+ expect(@p2).to receive(:euclidian_distance).with(@p3).and_return(10)
230
+ expect(@line.euclidian_distance).to eql(20)
222
231
  end
223
232
  end
224
233
 
@@ -228,31 +237,31 @@ describe GeoRuby::SimpleFeatures::LineString do
228
237
 
229
238
  it "should simplify a simple linestring" do
230
239
  line = GeoRuby::SimpleFeatures::LineString.from_coordinates([[12,15],[14,17],[17, 20]], 4326)
231
- line.simplify.should have(2).points
240
+ expect(line.simplify.points.size).to eq(2)
232
241
  end
233
242
 
234
243
  it "should simplify a harder linestring" do
235
- line.simplify(6).should have(6).points
236
- line.simplify(9).should have(4).points
237
- line.simplify(10).should have(3).points
244
+ expect(line.simplify(6).points.size).to eq(6)
245
+ expect(line.simplify(9).size).to eq(4)
246
+ expect(line.simplify(10).size).to eq(3)
238
247
  end
239
248
 
240
249
  it "should barely touch it" do
241
- line.simplify(1).should have(7).points
250
+ expect(line.simplify(1).points.size).to eq(7)
242
251
  end
243
252
 
244
253
  it "should simplify to five points" do
245
- line.simplify(7).should have(5).points
254
+ expect(line.simplify(7).points.size).to eq(5)
246
255
  end
247
256
 
248
257
  it "should flatten it" do
249
- line.simplify(11).should have(2).points
258
+ expect(line.simplify(11).points.size).to eq(2)
250
259
  end
251
260
 
252
261
  it "should be the first and last in a flatten" do
253
262
  l = line.simplify(11)
254
- l[0].should be_a_point(6, 0)
255
- l[1].should be_a_point(6, 15)
263
+ expect(l[0]).to be_a_point(6, 0)
264
+ expect(l[1]).to be_a_point(6, 15)
256
265
  end
257
266
 
258
267
  end
@@ -4,7 +4,7 @@ describe GeoRuby::SimpleFeatures::LinearRing do
4
4
 
5
5
  it "should instantiate" do
6
6
  lr = GeoRuby::SimpleFeatures::LinearRing.new(4326)
7
- lr.should be_instance_of(GeoRuby::SimpleFeatures::LinearRing)
7
+ expect(lr).to be_instance_of(GeoRuby::SimpleFeatures::LinearRing)
8
8
  end
9
9
 
10
10
  describe "Instance" do
@@ -12,11 +12,11 @@ describe GeoRuby::SimpleFeatures::LinearRing do
12
12
  let(:lr) { GeoRuby::SimpleFeatures::LinearRing.from_coordinates([[10,10],[20,45],[45,10],[10, 10]],256) }
13
13
 
14
14
  it "should test if contains a point" do
15
- lr.contains_point?(GeoRuby::SimpleFeatures::Point.from_x_y(21,21)).should be_true
15
+ expect(lr.contains_point?(GeoRuby::SimpleFeatures::Point.from_x_y(21,21))).to be_truthy
16
16
  end
17
17
 
18
18
  it "should test if not contains a point" do
19
- lr.contains_point?(GeoRuby::SimpleFeatures::Point.from_x_y(21,51)).should be_false
19
+ expect(lr.contains_point?(GeoRuby::SimpleFeatures::Point.from_x_y(21,51))).to be_falsey
20
20
  end
21
21
 
22
22
  end
@@ -4,32 +4,32 @@ describe GeoRuby::SimpleFeatures::MultiLineString do
4
4
 
5
5
  it "test_multi_line_string_creation" do
6
6
  multi_line_string1 = GeoRuby::SimpleFeatures::MultiLineString.from_line_strings([GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012],[45.123,123.3]],256)],256)
7
- multi_line_string1.should be_instance_of(GeoRuby::SimpleFeatures::MultiLineString)
8
- multi_line_string1.length.should eql(2)
9
- multi_line_string1[0].should == GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256)
7
+ expect(multi_line_string1).to be_instance_of(GeoRuby::SimpleFeatures::MultiLineString)
8
+ expect(multi_line_string1.length).to eql(2)
9
+ expect(multi_line_string1[0]).to eq(GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256))
10
10
 
11
11
  multi_line_string2= GeoRuby::SimpleFeatures::MultiLineString.from_coordinates([[[1.5,45.2],[-54.12312,-0.012]],[[1.5,45.2],[-54.12312,-0.012],[45.123,123.3]]],256);
12
- multi_line_string1.should be_instance_of(GeoRuby::SimpleFeatures::MultiLineString)
13
- multi_line_string1.length.should eql(2)
14
- multi_line_string2[0].should == GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256)
12
+ expect(multi_line_string1).to be_instance_of(GeoRuby::SimpleFeatures::MultiLineString)
13
+ expect(multi_line_string1.length).to eql(2)
14
+ expect(multi_line_string2[0]).to eq(GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256))
15
15
 
16
- multi_line_string2.should == multi_line_string2
16
+ expect(multi_line_string2).to eq(multi_line_string2)
17
17
  end
18
18
 
19
19
  it "test_multi_line_string_binary" do
20
20
  multi_line_string = GeoRuby::SimpleFeatures::MultiLineString.from_line_strings([GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012],[45.123,123.3]],256)],256)
21
- multi_line_string.as_hex_ewkb.should eql("01050000200001000002000000010200000002000000000000000000F83F9A99999999994640E4BD6A65C20F4BC0FA7E6ABC749388BF010200000003000000000000000000F83F9A99999999994640E4BD6A65C20F4BC0FA7E6ABC749388BF39B4C876BE8F46403333333333D35E40")
21
+ expect(multi_line_string.as_hex_ewkb).to eql("01050000200001000002000000010200000002000000000000000000F83F9A99999999994640E4BD6A65C20F4BC0FA7E6ABC749388BF010200000003000000000000000000F83F9A99999999994640E4BD6A65C20F4BC0FA7E6ABC749388BF39B4C876BE8F46403333333333D35E40")
22
22
 
23
23
  multi_line_string = GeoRuby::SimpleFeatures::MultiLineString.from_line_strings([GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2,1.3,1.2],[-54.12312,-0.012,1.2,4.5]],256,true,true),GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2,5.1,-4.5],[-54.12312,-0.012,-6.8,3.4],[45.123,123.3,4.5,-5.3]],256,true,true)],256,true,true)
24
- multi_line_string.as_hex_ewkb.should eql("0105000020000100000200000001020000C002000000000000000000F83F9A99999999994640CDCCCCCCCCCCF43F333333333333F33FE4BD6A65C20F4BC0FA7E6ABC749388BF333333333333F33F000000000000124001020000C003000000000000000000F83F9A99999999994640666666666666144000000000000012C0E4BD6A65C20F4BC0FA7E6ABC749388BF3333333333331BC03333333333330B4039B4C876BE8F46403333333333D35E40000000000000124033333333333315C0")
24
+ expect(multi_line_string.as_hex_ewkb).to eql("0105000020000100000200000001020000C002000000000000000000F83F9A99999999994640CDCCCCCCCCCCF43F333333333333F33FE4BD6A65C20F4BC0FA7E6ABC749388BF333333333333F33F000000000000124001020000C003000000000000000000F83F9A99999999994640666666666666144000000000000012C0E4BD6A65C20F4BC0FA7E6ABC749388BF3333333333331BC03333333333330B4039B4C876BE8F46403333333333D35E40000000000000124033333333333315C0")
25
25
  end
26
26
 
27
27
  it "test_multi_line_string_text" do
28
28
  multi_line_string = GeoRuby::SimpleFeatures::MultiLineString.from_line_strings([GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012]],256),GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2],[-54.12312,-0.012],[45.123,123.3]],256)],256)
29
- multi_line_string.as_ewkt.should eql("SRID=256;MULTILINESTRING((1.5 45.2,-54.12312 -0.012),(1.5 45.2,-54.12312 -0.012,45.123 123.3))")
29
+ expect(multi_line_string.as_ewkt).to eql("SRID=256;MULTILINESTRING((1.5 45.2,-54.12312 -0.012),(1.5 45.2,-54.12312 -0.012,45.123 123.3))")
30
30
 
31
31
  multi_line_string = GeoRuby::SimpleFeatures::MultiLineString.from_line_strings([GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2,1.3,1.2],[-54.12312,-0.012,1.2,4.5]],256,true,true),GeoRuby::SimpleFeatures::LineString.from_coordinates([[1.5,45.2,5.1,-4.5],[-54.12312,-0.012,-6.8,3.4],[45.123,123.3,4.5,-5.3]],256,true,true)],256,true,true)
32
- multi_line_string.as_ewkt.should eql("SRID=256;MULTILINESTRING((1.5 45.2 1.3 1.2,-54.12312 -0.012 1.2 4.5),(1.5 45.2 5.1 -4.5,-54.12312 -0.012 -6.8 3.4,45.123 123.3 4.5 -5.3))")
32
+ expect(multi_line_string.as_ewkt).to eql("SRID=256;MULTILINESTRING((1.5 45.2 1.3 1.2,-54.12312 -0.012 1.2 4.5),(1.5 45.2 5.1 -4.5,-54.12312 -0.012 -6.8 3.4,45.123 123.3 4.5 -5.3))")
33
33
  end
34
34
 
35
35
  describe "Some More" do
@@ -38,17 +38,17 @@ describe GeoRuby::SimpleFeatures::MultiLineString do
38
38
  end
39
39
 
40
40
  it "should have a accessor to all points" do
41
- @mls.points.should be_instance_of(Array)
41
+ expect(@mls.points).to be_instance_of(Array)
42
42
  end
43
43
 
44
44
  it "should flatten the array" do
45
- @mls.should have(5).points
45
+ expect(@mls.points.size).to eq(5)
46
46
  end
47
47
 
48
48
  it "should simplify to linestring" do
49
49
  ls = @mls.to_line_string
50
- ls.should be_instance_of(GeoRuby::SimpleFeatures::LineString)
51
- ls.should have(5).points
50
+ expect(ls).to be_instance_of(GeoRuby::SimpleFeatures::LineString)
51
+ expect(ls.points.size).to eq(5)
52
52
  end
53
53
  end
54
54
  end