average 1.0 → 2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/average.rb +2 -1
- data/lib/average/array_overrides.rb +15 -0
- data/lib/average/mean.rb +1 -1
- data/lib/average/median.rb +5 -5
- data/lib/average/mode.rb +1 -1
- data/lib/average/version.rb +1 -1
- data/spec/array_overrides_spec.rb +31 -0
- data/spec/average_helper_spec.rb +1 -1
- data/spec/median_spec.rb +3 -3
- metadata +5 -2
data/lib/average.rb
CHANGED
data/lib/average/mean.rb
CHANGED
data/lib/average/median.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
def median(array)
|
2
|
-
return if
|
2
|
+
return if not valid_array?(array)
|
3
3
|
array = clean_array(array)
|
4
|
-
|
4
|
+
calculate_median(array)
|
5
5
|
end
|
6
6
|
|
7
|
-
def
|
7
|
+
def calculate_median(array)
|
8
8
|
array.sort!
|
9
9
|
if array.length.even?
|
10
|
-
mean(middle_items_to_average(array))
|
10
|
+
mean( middle_items_to_average(array) )
|
11
11
|
else
|
12
12
|
array[ array.length / 2.to_f ]
|
13
13
|
end
|
@@ -18,5 +18,5 @@ def middle_item(array)
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def middle_items_to_average(array)
|
21
|
-
array[middle_item(array) -1 .. middle_item(array)]
|
21
|
+
array[ middle_item(array) -1 .. middle_item(array) ]
|
22
22
|
end
|
data/lib/average/mode.rb
CHANGED
data/lib/average/version.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Average do
|
4
|
+
|
5
|
+
let(:int_array) { [3,4,5] }
|
6
|
+
|
7
|
+
describe '.get_mean' do
|
8
|
+
context 'should give back the same result as' do
|
9
|
+
it 'mean([X,X,X,X])' do
|
10
|
+
expect(int_array.get_mean).to eq(mean(int_array))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.get_mode' do
|
16
|
+
context 'should give back the same result as ' do
|
17
|
+
it 'mode([X,X,X,X])' do
|
18
|
+
expect(int_array.get_mode).to eq(mode(int_array))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '.get_median' do
|
24
|
+
context 'should give back the same result as ' do
|
25
|
+
it 'median([X,X,X,X])' do
|
26
|
+
expect(int_array.get_median).to eq(median(int_array))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/spec/average_helper_spec.rb
CHANGED
data/spec/median_spec.rb
CHANGED
@@ -34,16 +34,16 @@ describe Average do
|
|
34
34
|
|
35
35
|
end
|
36
36
|
|
37
|
-
describe '#
|
37
|
+
describe '#calculate_median' do
|
38
38
|
context 'with an even array' do
|
39
39
|
it 'should give back the middle value' do
|
40
|
-
expect(
|
40
|
+
expect(calculate_median(array)).to eq(2.0)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
context 'with a _not_ even array' do
|
45
45
|
it 'should give back the the element on the middle' do
|
46
|
-
expect(
|
46
|
+
expect(calculate_median(mode_array_not_pair)).to eq(2)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: average
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '
|
4
|
+
version: '2.0'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -73,11 +73,13 @@ files:
|
|
73
73
|
- Rakefile
|
74
74
|
- average.gemspec
|
75
75
|
- lib/average.rb
|
76
|
+
- lib/average/array_overrides.rb
|
76
77
|
- lib/average/average_helper.rb
|
77
78
|
- lib/average/mean.rb
|
78
79
|
- lib/average/median.rb
|
79
80
|
- lib/average/mode.rb
|
80
81
|
- lib/average/version.rb
|
82
|
+
- spec/array_overrides_spec.rb
|
81
83
|
- spec/average_helper_spec.rb
|
82
84
|
- spec/average_spec.rb
|
83
85
|
- spec/mean_spec.rb
|
@@ -110,6 +112,7 @@ signing_key:
|
|
110
112
|
specification_version: 3
|
111
113
|
summary: Find the arithmethic mean/mode/median of an array of numbers .
|
112
114
|
test_files:
|
115
|
+
- spec/array_overrides_spec.rb
|
113
116
|
- spec/average_helper_spec.rb
|
114
117
|
- spec/average_spec.rb
|
115
118
|
- spec/mean_spec.rb
|