average 1.0 → 2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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