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.
@@ -3,7 +3,8 @@ require "average/mean"
3
3
  require "average/median"
4
4
  require "average/mode"
5
5
  require "average/average_helper"
6
+ require "average/array_overrides"
6
7
 
7
8
  module Average
8
9
 
9
- end
10
+ end
@@ -0,0 +1,15 @@
1
+ require 'average/mean'
2
+ require 'average/median'
3
+ class Array
4
+ def get_mean
5
+ mean(self)
6
+ end
7
+
8
+ def get_mode
9
+ mode(self)
10
+ end
11
+
12
+ def get_median
13
+ median(self)
14
+ end
15
+ end
@@ -1,5 +1,5 @@
1
1
  def mean(array)
2
- return if !valid_array?(array)
2
+ return if not valid_array?(array)
3
3
  array = clean_array(array)
4
4
  array.inject(0) { |sum, x| sum += x } / array.size.to_f
5
5
  end
@@ -1,13 +1,13 @@
1
1
  def median(array)
2
- return if !valid_array?(array)
2
+ return if not valid_array?(array)
3
3
  array = clean_array(array)
4
- get_median(array)
4
+ calculate_median(array)
5
5
  end
6
6
 
7
- def get_median(array)
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
@@ -1,5 +1,5 @@
1
1
  def mode(array)
2
- return if !valid_array?(array)
2
+ return if not valid_array?(array)
3
3
  array = clean_array(array)
4
4
  result = repetition_hash(array)
5
5
  result[:hash_result].select { |key, value| value == result[:max_repetition] }.keys.collect { |float| float.to_i }
@@ -1,3 +1,3 @@
1
1
  module Average
2
- VERSION = "1.0"
2
+ VERSION = "2.0"
3
3
  end
@@ -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
@@ -14,7 +14,7 @@ describe Average do
14
14
  end
15
15
 
16
16
  context 'with a mixed array of invalid elements' do
17
- it 'should return true' do
17
+ it 'should return false' do
18
18
  expect(valid_array?(invalid_array)).to be(false)
19
19
  end
20
20
  end
@@ -34,16 +34,16 @@ describe Average do
34
34
 
35
35
  end
36
36
 
37
- describe '#get_median' do
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(get_median(array)).to eq(2.0)
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(get_median(mode_array_not_pair)).to eq(2)
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: '1.0'
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-02-26 00:00:00.000000000 Z
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