bridge 0.1.3 → 0.1.4
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/bridge/points/duplicate.rb +4 -4
- data/lib/bridge/version.rb +1 -1
- data/test/test_duplicate.rb +21 -21
- metadata +3 -3
@@ -14,7 +14,7 @@ module Bridge::Points
|
|
14
14
|
|
15
15
|
def average_score(number_to_skip = 1)
|
16
16
|
scores = skipped_scores(number_to_skip)
|
17
|
-
(scores.inject(0.0) { |result, score| result += score} / scores.size).
|
17
|
+
((scores.inject(0.0) { |result, score| result += score} / scores.size) + 5).div(10) * 10
|
18
18
|
end
|
19
19
|
|
20
20
|
def maximum
|
@@ -25,10 +25,10 @@ module Bridge::Points
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
def maximum_in_percents
|
28
|
+
def maximum_in_percents
|
29
29
|
maximum.tap do |result|
|
30
30
|
result.each do |score, points|
|
31
|
-
result[score] = (points * 100.0 / theoretical_maximum)
|
31
|
+
result[score] = (points * 100.0 / theoretical_maximum)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -44,7 +44,7 @@ module Bridge::Points
|
|
44
44
|
def cavendish
|
45
45
|
{}.tap do |result|
|
46
46
|
@scores.each do |score|
|
47
|
-
result[score] ||=
|
47
|
+
result[score] ||= @scores.inject(0.0) { |points, s| points += Bridge::Points.imps(score - s) } / (@scores.size - 1)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
data/lib/bridge/version.rb
CHANGED
data/test/test_duplicate.rb
CHANGED
@@ -27,21 +27,21 @@ class TestDuplicate < Test::Unit::TestCase
|
|
27
27
|
end
|
28
28
|
|
29
29
|
test "maximum percents with non-unique values" do
|
30
|
-
maximum_in_percents = Bridge::Points::Duplicate.new(-630, 100, 100, -600, 200, -600, 100, 100, 100, -600, 100, 100, 100, 100).maximum_in_percents
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
maximum_in_percents = Bridge::Points::Duplicate.new(-630, 100, 100, -600, 200, -600, 100, 100, 100, -600, 100, 100, 100, 100).maximum_in_percents
|
31
|
+
assert_in_delta 100.0, maximum_in_percents[200], 0.05
|
32
|
+
assert_in_delta 61.5, maximum_in_percents[100], 0.05
|
33
|
+
assert_in_delta 15.4, maximum_in_percents[-600], 0.05
|
34
|
+
assert_in_delta 0.0, maximum_in_percents[-630], 0.05
|
35
35
|
end
|
36
36
|
|
37
37
|
test "maximum percents with unique-values" do
|
38
|
-
maximum_in_percents = Bridge::Points::Duplicate.new(200, 170, 500, 430, 550, 420).maximum_in_percents
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
maximum_in_percents = Bridge::Points::Duplicate.new(200, 170, 500, 430, 550, 420).maximum_in_percents
|
39
|
+
assert_in_delta 100.0, maximum_in_percents[550], 0.005
|
40
|
+
assert_in_delta 80.0, maximum_in_percents[500], 0.005
|
41
|
+
assert_in_delta 60.0, maximum_in_percents[430], 0.005
|
42
|
+
assert_in_delta 40.0, maximum_in_percents[420], 0.005
|
43
|
+
assert_in_delta 20.0, maximum_in_percents[200], 0.005
|
44
|
+
assert_in_delta 0.0, maximum_in_percents[170], 0.005
|
45
45
|
end
|
46
46
|
|
47
47
|
test "butler with skipping the highest and the lowest score" do
|
@@ -56,18 +56,18 @@ class TestDuplicate < Test::Unit::TestCase
|
|
56
56
|
|
57
57
|
test "cavendish with unique values" do
|
58
58
|
cavendish = Bridge::Points::Duplicate.new(690, 660, 630, 620, -100, -200).cavendish
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
59
|
+
assert_in_delta 6.2, cavendish[690], 0.05
|
60
|
+
assert_in_delta 5.4, cavendish[660], 0.05
|
61
|
+
assert_in_delta 4.4, cavendish[630], 0.05
|
62
|
+
assert_in_delta 4.4, cavendish[620], 0.05
|
63
|
+
assert_in_delta -9.4, cavendish[-100], 0.05
|
64
|
+
assert_in_delta -11.0, cavendish[-200], 0.05
|
65
65
|
end
|
66
66
|
|
67
67
|
test "cavendish with non-unique values" do
|
68
68
|
cavendish = Bridge::Points::Duplicate.new(100, 100, 110, 140).cavendish
|
69
|
-
|
70
|
-
|
71
|
-
|
69
|
+
assert_in_delta 1.0, cavendish[140], 0.05
|
70
|
+
assert_in_delta -0.3, cavendish[110], 0.05
|
71
|
+
assert_in_delta -0.3, cavendish[100], 0.05
|
72
72
|
end
|
73
73
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 4
|
9
|
+
version: 0.1.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- "Jakub Ku\xC5\xBAma"
|
@@ -83,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
83
|
requirements:
|
84
84
|
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
hash: -
|
86
|
+
hash: -2291621128807536229
|
87
87
|
segments:
|
88
88
|
- 0
|
89
89
|
version: "0"
|