random_point_generator 0.0.1 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 921bc3b41e1b1cf8ef722375ac80bf6f8435c0c1
4
- data.tar.gz: 81101d0087d66b407aeb5db865bf40c20aad9267
3
+ metadata.gz: 2b9067450b27cb5fc90247a50bba38e6abf544cf
4
+ data.tar.gz: b359ed1859fc41c874fc0ba7745406ed0303bfcc
5
5
  SHA512:
6
- metadata.gz: 898b5efd7a4b5b4fc4edd777c1d262ce8a6046db9993d3399aeb64c78d01c8e0e6ab46ddc416093e2657a8676998b6c8ec3591abfb528ffbaae3ed12aef56422
7
- data.tar.gz: a5b3b1423168b1acfe99aaeb777712acaa0706dc53dc1bdde873e726307419a85771d4841e3f9d28bddefde31b035a5ae18dad5877dea056fd73ef4fd733d8b8
6
+ metadata.gz: 426974b18e96b759bdc3fc3f85528ce94eb208f83cbf1c719ca211ef0d85b131461d4710a9dcb5c2ca8ca9114b4bb5e005762832fc87445dd2210fdb35d58045
7
+ data.tar.gz: f5c8236a84c7e8bca633c5607df42238be3160281d6a810bb79a37a4f86de69d085894fcd5d7d1c9e0923ff0da09208db7ce5db1a5a6d107873d637381a91249
@@ -1,5 +1,8 @@
1
1
  class RandomPointGenerator
2
- def initialize(sw_point = [-90.0, -180.0], ne_point = [90.0, 180.0])
2
+ def initialize(sw_point = nil, ne_point = nil)
3
+ sw_point ||= [-90.0, -180.0]
4
+ ne_point ||= [90.0, 180.0]
5
+
3
6
  @sw_point = sw_point
4
7
  @ne_point = ne_point
5
8
  end
@@ -1,6 +1,24 @@
1
1
  require 'random_point_generator'
2
2
 
3
3
  describe RandomPointGenerator do
4
+ shared_examples "generates a valid, random point" do
5
+ it "generates a point" do
6
+ expect(subject).to be_an Array
7
+ end
8
+
9
+ it "gives a valid, random latitude" do
10
+ lat = random_point[0]
11
+ expect(lat).to be >= expected_lower_lat_bound
12
+ expect(lat).to be <= expected_upper_lat_bound
13
+ end
14
+
15
+ it "gives a valid, random longitude" do
16
+ lng = random_point[1]
17
+ expect(lng).to be >= expected_lower_lng_bound
18
+ expect(lng).to be <= expected_upper_lng_bound
19
+ end
20
+ end
21
+
4
22
  describe "with no bounding box" do
5
23
  let(:generator) { described_class.new }
6
24
  subject { generator }
@@ -9,59 +27,96 @@ describe RandomPointGenerator do
9
27
  let(:random_point) { generator.random_point }
10
28
  subject { random_point }
11
29
 
12
- it "generates a point" do
13
- expect(subject).to be_an Array
14
- end
30
+ let(:expected_lower_lat_bound) { -90.0 }
31
+ let(:expected_upper_lat_bound) { 90.0 }
15
32
 
16
- it "gives a valid, random latitude" do
17
- lat = random_point[0]
18
- expect(lat).to be >= -90.0
19
- expect(lat).to be <= 90.0
20
- end
33
+ let(:expected_lower_lng_bound) { -180.0 }
34
+ let(:expected_upper_lng_bound) { 180.0 }
21
35
 
22
- it "gives a valid, random longitude" do
23
- lng = random_point[1]
24
- expect(lng).to be >= -180.0
25
- expect(lng).to be <= 180.0
26
- end
36
+ include_examples "generates a valid, random point"
27
37
  end
28
38
  end
29
39
 
30
40
  describe "with a bounding box" do
31
- let(:sw_lat) { 5.0 }
32
- let(:sw_lng) { 50.0 }
41
+ describe "with both sw_point and ne_point" do
42
+ let(:sw_lat) { 5.0 }
43
+ let(:sw_lng) { 50.0 }
33
44
 
34
- let(:sw_point) { [sw_lat, sw_lng] }
45
+ let(:sw_point) { [sw_lat, sw_lng] }
35
46
 
36
- let(:ne_lat) { 53.4 }
37
- let(:ne_lng) { 54.87 }
47
+ let(:ne_lat) { 53.4 }
48
+ let(:ne_lng) { 54.87 }
38
49
 
39
- let(:ne_point) { [ne_lat, ne_lng] }
50
+ let(:ne_point) { [ne_lat, ne_lng] }
40
51
 
41
- let(:generator) { described_class.new(sw_point, ne_point) }
42
- subject { generator }
52
+ let(:generator) { described_class.new(sw_point, ne_point) }
53
+ subject { generator }
43
54
 
44
- describe "#random_point" do
45
- let(:random_point) { generator.random_point }
46
- subject { random_point }
55
+ describe "#random_point" do
56
+ let(:random_point) { generator.random_point }
57
+ subject { random_point }
47
58
 
48
- it "generates a point" do
49
- expect(subject).to be_an Array
50
- end
59
+ let(:expected_lower_lat_bound) { sw_lat }
60
+ let(:expected_upper_lat_bound) { ne_lat }
61
+
62
+ let(:expected_lower_lng_bound) { sw_lng }
63
+ let(:expected_upper_lng_bound) { ne_lng }
51
64
 
52
- it "gives a valid, random latitude within the bounding box" do
53
- lat = random_point[0]
54
- expect(lat).to be >= sw_lat
55
- expect(lat).to be <= ne_lat
65
+ include_examples "generates a valid, random point"
56
66
  end
67
+ end
68
+
69
+ describe "with valid sw_point and nil ne_point" do
70
+ let(:sw_lat) { 5.0 }
71
+ let(:sw_lng) { 50.0 }
57
72
 
58
- it "gives a valid, random logitude within the bounding box" do
59
- lng = random_point[1]
60
- expect(lng).to be >= sw_lng
61
- expect(lng).to be <= ne_lng
73
+ let(:sw_point) { [sw_lat, sw_lng] }
74
+
75
+
76
+ let(:ne_point) { nil }
77
+
78
+ let(:generator) { described_class.new(sw_point, ne_point) }
79
+ subject { generator }
80
+
81
+ describe "#random_point" do
82
+ let(:random_point) { generator.random_point }
83
+ subject { random_point }
84
+
85
+ let(:expected_lower_lat_bound) { sw_lat }
86
+ let(:expected_upper_lat_bound) { 90.0 }
87
+
88
+ let(:expected_lower_lng_bound) { sw_lng }
89
+ let(:expected_upper_lng_bound) { 180.0 }
90
+
91
+ include_examples "generates a valid, random point"
62
92
  end
63
93
  end
64
94
 
95
+ describe "with nil sw_point and nil ne_point" do
96
+
97
+ let(:sw_point) { nil }
98
+
99
+ let(:ne_lat) { 53.4 }
100
+ let(:ne_lng) { 54.87 }
101
+
102
+ let(:ne_point) { [ne_lat, ne_lng] }
103
+
104
+ let(:generator) { described_class.new(sw_point, ne_point) }
105
+ subject { generator }
106
+
107
+ describe "#random_point" do
108
+ let(:random_point) { generator.random_point }
109
+ subject { random_point }
110
+
111
+ let(:expected_lower_lat_bound) { -90.0 }
112
+ let(:expected_upper_lat_bound) { ne_lat }
113
+
114
+ let(:expected_lower_lng_bound) { -180.0 }
115
+ let(:expected_upper_lng_bound) { ne_lng }
116
+
117
+ include_examples "generates a valid, random point"
118
+ end
119
+ end
65
120
  end
66
121
  end
67
122
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: random_point_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Tolle
@@ -31,7 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 3.0.0
33
33
  description:
34
- email: kyle@nullsix.com
34
+ email:
35
+ - kyle@nullsix.com
35
36
  executables: []
36
37
  extensions: []
37
38
  extra_rdoc_files: []