means 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/means.gemspec +5 -3
- data/spec/means_spec.rb +5 -38
- data/spec/support/shared_examples_for_all_means.rb +15 -0
- data/spec/support/shared_examples_for_non_arithmetic_means.rb +11 -0
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.5
|
data/means.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "means"
|
8
|
-
s.version = "1.2.
|
8
|
+
s.version = "1.2.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Nigel Lowry"]
|
12
|
-
s.date = "2013-08-
|
12
|
+
s.date = "2013-08-16"
|
13
13
|
s.description = "Calculates the different means for a data set (arithmetic, geometric and harmonic)."
|
14
14
|
s.email = "nigel-lowry@ultra.eclipse.co.uk"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -29,7 +29,9 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/means.rb",
|
30
30
|
"means.gemspec",
|
31
31
|
"spec/means_spec.rb",
|
32
|
-
"spec/spec_helper.rb"
|
32
|
+
"spec/spec_helper.rb",
|
33
|
+
"spec/support/shared_examples_for_all_means.rb",
|
34
|
+
"spec/support/shared_examples_for_non_arithmetic_means.rb"
|
33
35
|
]
|
34
36
|
s.homepage = "http://github.com/nigel-lowry/means"
|
35
37
|
s.licenses = ["MIT"]
|
data/spec/means_spec.rb
CHANGED
@@ -1,41 +1,8 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
|
-
shared_examples_for "all means" do
|
4
|
-
[:arithmetic, :geometric, :harmonic].each do |mean|
|
5
|
-
it "is nil for an empty array" do
|
6
|
-
Mean.send(mean, []).should be_nil
|
7
|
-
end
|
8
|
-
|
9
|
-
it "is the singleton element of a singleton array" do
|
10
|
-
element = 5.5
|
11
|
-
Mean.send(mean, [element]).should == element
|
12
|
-
end
|
13
|
-
|
14
|
-
it "is the common value in an array when all values are equal" do
|
15
|
-
element = 5.5
|
16
|
-
Mean.send(mean, [element, element]).should == element
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
shared_examples_for "non-arithmetic means" do
|
22
|
-
[:geometric, :harmonic].each do |mean|
|
23
|
-
it "is nil when there are any zeroes" do
|
24
|
-
data = [1.1, 0.0]
|
25
|
-
Mean.send(mean, data).should be_nil
|
26
|
-
end
|
27
|
-
|
28
|
-
it "is nil when there are any negative numbers" do
|
29
|
-
data = [1, -1]
|
30
|
-
Mean.send(mean, data).should be_nil
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
3
|
describe "Mean" do
|
36
|
-
|
37
4
|
describe ".arithmetic" do
|
38
|
-
it_behaves_like "all means"
|
5
|
+
it_behaves_like "all means", :arithmetic
|
39
6
|
|
40
7
|
specify { Mean.arithmetic([1.0, 2.0]).should be_within(0.01).of(1.5) }
|
41
8
|
specify { Mean.arithmetic([1, 2]).should be_within(0.01).of(1.5) }
|
@@ -49,8 +16,8 @@ describe "Mean" do
|
|
49
16
|
end
|
50
17
|
|
51
18
|
describe ".geometric" do
|
52
|
-
it_behaves_like "all means"
|
53
|
-
it_behaves_like "non-arithmetic means"
|
19
|
+
it_behaves_like "all means", :geometric
|
20
|
+
it_behaves_like "non-arithmetic means", :geometric
|
54
21
|
|
55
22
|
it "is the square root of the product of two numbers" do
|
56
23
|
d1, d2 = 2, 8
|
@@ -66,8 +33,8 @@ describe "Mean" do
|
|
66
33
|
end
|
67
34
|
|
68
35
|
describe ".harmonic" do
|
69
|
-
it_behaves_like "all means"
|
70
|
-
it_behaves_like "non-arithmetic means"
|
36
|
+
it_behaves_like "all means", :harmonic
|
37
|
+
it_behaves_like "non-arithmetic means", :harmonic
|
71
38
|
|
72
39
|
it "is according to the formula with two elements" do
|
73
40
|
d1, d2 = 1.0, 2.0
|
@@ -0,0 +1,15 @@
|
|
1
|
+
shared_examples_for "all means" do |mean_method|
|
2
|
+
it "is nil for an empty array" do
|
3
|
+
Mean.send(mean_method, []).should be_nil
|
4
|
+
end
|
5
|
+
|
6
|
+
it "is the singleton element of a singleton array" do
|
7
|
+
element = 5.5
|
8
|
+
Mean.send(mean_method, [element]).should == element
|
9
|
+
end
|
10
|
+
|
11
|
+
it "is the common value in an array when all values are equal" do
|
12
|
+
element = 5.5
|
13
|
+
Mean.send(mean_method, [element, element]).should == element
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
shared_examples_for "non-arithmetic means" do |mean_method|
|
2
|
+
it "is nil when there are any zeroes" do
|
3
|
+
data = [1.1, 0.0]
|
4
|
+
Mean.send(mean_method, data).should be_nil
|
5
|
+
end
|
6
|
+
|
7
|
+
it "is nil when there are any negative numbers" do
|
8
|
+
data = [1, -1]
|
9
|
+
Mean.send(mean_method, data).should be_nil
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: means
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
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: 2013-08-
|
12
|
+
date: 2013-08-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -145,6 +145,8 @@ files:
|
|
145
145
|
- means.gemspec
|
146
146
|
- spec/means_spec.rb
|
147
147
|
- spec/spec_helper.rb
|
148
|
+
- spec/support/shared_examples_for_all_means.rb
|
149
|
+
- spec/support/shared_examples_for_non_arithmetic_means.rb
|
148
150
|
homepage: http://github.com/nigel-lowry/means
|
149
151
|
licenses:
|
150
152
|
- MIT
|
@@ -160,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
160
162
|
version: '0'
|
161
163
|
segments:
|
162
164
|
- 0
|
163
|
-
hash:
|
165
|
+
hash: 1493769061049119642
|
164
166
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
167
|
none: false
|
166
168
|
requirements:
|