icu_tournament 1.9.3 → 1.9.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.
- checksums.yaml +7 -0
- data/lib/icu_tournament/version.rb +1 -1
- data/spec/player_spec.rb +118 -118
- data/spec/result_spec.rb +66 -66
- data/spec/team_spec.rb +16 -16
- data/spec/tie_break_spec.rb +51 -51
- data/spec/tournament_fcsv_spec.rb +94 -94
- data/spec/tournament_krause_spec.rb +151 -151
- data/spec/tournament_sp_spec.rb +89 -89
- data/spec/tournament_spec.rb +276 -276
- data/spec/tournament_spx_spec.rb +95 -95
- data/spec/util_spec.rb +127 -127
- metadata +42 -66
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 0097e631fad6d7e9e793bc42e57eb6576922f11d
|
|
4
|
+
data.tar.gz: bc46c8a7dd4adac48111f0ad54a01b18b7ed1ebe
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: df140048ef0c3e4cacea9cd7f9c46cc09c46dcff49ca9ed656e6ac6b1318f057d4cfe4501263f3070cf2b3b875580f7295e08c767d95b80a06b51e8895605448
|
|
7
|
+
data.tar.gz: 35bc471b3046552530e58cb0fe62feb936b8fc35be03a50fb54523ca196a0e696bad1deceebd42c650e51efb5f1b2ee725503faf1b90a3ac5fd7eedfa82b56ed
|
data/spec/player_spec.rb
CHANGED
|
@@ -4,213 +4,213 @@ module ICU
|
|
|
4
4
|
describe Player do
|
|
5
5
|
context "a typical player" do
|
|
6
6
|
it "should have a name, number and some results" do
|
|
7
|
-
|
|
7
|
+
expect do
|
|
8
8
|
player = Player.new('Mark', 'Orr', 1)
|
|
9
9
|
player.add_result(Result.new(1, 1, 'W', :opponent => 37, :score => 'W', :colour => 'W'))
|
|
10
10
|
player.add_result(Result.new(2, 1, 'W', :opponent => 13, :score => 'W', :colour => 'B'))
|
|
11
11
|
player.add_result(Result.new(3, 1, 'W', :opponent => 7, :score => 'D', :colour => 'W'))
|
|
12
|
-
end.
|
|
12
|
+
end.not_to raise_error
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
context "names" do
|
|
17
17
|
it "should be specified in constructor" do
|
|
18
18
|
p = Player.new('Mark', 'Orr', 1)
|
|
19
|
-
p.first_name.
|
|
20
|
-
p.last_name.
|
|
21
|
-
p.original_name.
|
|
19
|
+
expect(p.first_name).to eq('Mark')
|
|
20
|
+
expect(p.last_name).to eq('Orr')
|
|
21
|
+
expect(p.original_name).to eq('Orr, Mark')
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
it "should be resettable via accessors" do
|
|
25
25
|
p = Player.new('Mark', 'Orr', 1)
|
|
26
26
|
p.first_name= 'Gary'
|
|
27
27
|
p.last_name= 'Kasparov'
|
|
28
|
-
p.first_name.
|
|
29
|
-
p.last_name.
|
|
30
|
-
p.original_name.
|
|
28
|
+
expect(p.first_name).to eq('Gary')
|
|
29
|
+
expect(p.last_name).to eq('Kasparov')
|
|
30
|
+
expect(p.original_name).to eq('Orr, Mark')
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
it "should not contain invalid characters" do
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
expect { Player.new('12', 'Orr', 1) }.to raise_error(/invalid first name/)
|
|
35
|
+
expect { Player.new('Mark', '*!', 1) }.to raise_error(/invalid last name/)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
it "should not have empty last name or first name" do
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
expect { Player.new('Mark', '', 1) }.to raise_error(/invalid last name/)
|
|
40
|
+
expect { Player.new('', 'Orr', 1) }.to raise_error(/invalid first name/)
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
it "both names can be returned together" do
|
|
44
44
|
p = Player.new('Mark', 'Orr', 1)
|
|
45
|
-
p.name.
|
|
45
|
+
expect(p.name).to eq('Orr, Mark')
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
it "names should be automatically canonicalised" do
|
|
49
49
|
p = Player.new(' maRk J l ', ' ORR', 1)
|
|
50
|
-
p.name.
|
|
50
|
+
expect(p.name).to eq('Orr, Mark J. L.')
|
|
51
51
|
p.first_name = 'z'
|
|
52
|
-
p.name.
|
|
52
|
+
expect(p.name).to eq('Orr, Z.')
|
|
53
53
|
p.last_name = " o meFiSto "
|
|
54
|
-
p.name.
|
|
55
|
-
p.original_name.
|
|
54
|
+
expect(p.name).to eq("O'Mefisto, Z.")
|
|
55
|
+
expect(p.original_name).to eq('ORR, maRk J l')
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
it "the original name is resetable" do
|
|
59
59
|
p = Player.new('Mark', 'Orr', 1)
|
|
60
|
-
p.name.
|
|
61
|
-
p.original_name.
|
|
60
|
+
expect(p.name).to eq('Orr, Mark')
|
|
61
|
+
expect(p.original_name).to eq('Orr, Mark')
|
|
62
62
|
p.original_name = 'Cronin, April'
|
|
63
|
-
p.name.
|
|
64
|
-
p.original_name.
|
|
63
|
+
expect(p.name).to eq('Orr, Mark')
|
|
64
|
+
expect(p.original_name).to eq('Cronin, April')
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
context "number" do
|
|
69
69
|
it "should just be an integer" do
|
|
70
|
-
Player.new('Mark', 'Orr', 3).num.
|
|
71
|
-
Player.new('Mark', 'Orr', -7).num.
|
|
72
|
-
Player.new('Mark', 'Orr', ' -4 ').num.
|
|
73
|
-
Player.new('Mark', 'Orr', '0').num.
|
|
74
|
-
|
|
70
|
+
expect(Player.new('Mark', 'Orr', 3).num).to eq(3)
|
|
71
|
+
expect(Player.new('Mark', 'Orr', -7).num).to eq(-7)
|
|
72
|
+
expect(Player.new('Mark', 'Orr', ' -4 ').num).to eq(-4)
|
|
73
|
+
expect(Player.new('Mark', 'Orr', '0').num).to eq(0)
|
|
74
|
+
expect { Player.new('Mark', 'Orr', ' ') }.to raise_error(/invalid integer/)
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
context "local ID" do
|
|
79
79
|
it "defaults to nil" do
|
|
80
|
-
Player.new('Mark', 'Orr', 3).id.
|
|
80
|
+
expect(Player.new('Mark', 'Orr', 3).id).to be_nil
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
it "should be a positive integer" do
|
|
84
|
-
Player.new('Mark', 'Orr', 3, :id => 1350).id.
|
|
85
|
-
Player.new('Stephen', 'Brady', 4, :id => ' 90 ').id.
|
|
86
|
-
|
|
84
|
+
expect(Player.new('Mark', 'Orr', 3, :id => 1350).id).to eq(1350)
|
|
85
|
+
expect(Player.new('Stephen', 'Brady', 4, :id => ' 90 ').id).to eq(90)
|
|
86
|
+
expect { Player.new('Mark', 'Orr', 3, :id => ' 0 ') }.to raise_error(/invalid positive integer/)
|
|
87
87
|
end
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
context "FIDE ID" do
|
|
91
91
|
it "defaults to nil" do
|
|
92
|
-
Player.new('Stephen', 'Brady', 1).fide_id.
|
|
92
|
+
expect(Player.new('Stephen', 'Brady', 1).fide_id).to be_nil
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
it "should be a positive integer" do
|
|
96
|
-
Player.new('Stephen', 'Brady', 1, :fide_id => 2500124).fide_id.
|
|
97
|
-
Player.new('Gary', 'Kasparov', 2, :fide_id => '4100018').fide_id.
|
|
98
|
-
|
|
96
|
+
expect(Player.new('Stephen', 'Brady', 1, :fide_id => 2500124).fide_id).to eq(2500124)
|
|
97
|
+
expect(Player.new('Gary', 'Kasparov', 2, :fide_id => '4100018').fide_id).to eq(4100018)
|
|
98
|
+
expect { Player.new('Mark', 'Orr', 3, :fide_id => ' 0 ') }.to raise_error(/invalid positive integer/)
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
context "federation" do
|
|
103
103
|
it "defaults to nil" do
|
|
104
|
-
Player.new('Mark', 'Orr', 3).fed.
|
|
105
|
-
Player.new('Mark', 'Orr', 3, :fed => ' ').fed.
|
|
104
|
+
expect(Player.new('Mark', 'Orr', 3).fed).to be_nil
|
|
105
|
+
expect(Player.new('Mark', 'Orr', 3, :fed => ' ').fed).to be_nil
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
it "should consist of at least three letters" do
|
|
109
|
-
Player.new('Gary', 'Kasparov', 1, :fed => 'RUS').fed.
|
|
110
|
-
Player.new('Mark', 'Orr', 3, :fed => ' Ireland ').fed.
|
|
111
|
-
|
|
109
|
+
expect(Player.new('Gary', 'Kasparov', 1, :fed => 'RUS').fed).to eq('RUS')
|
|
110
|
+
expect(Player.new('Mark', 'Orr', 3, :fed => ' Ireland ').fed).to eq('IRL')
|
|
111
|
+
expect { Player.new('Danny', 'Kopec', 3, :fed => 'US') }.to raise_error(/invalid federation/)
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
it "should correct common code errors" do
|
|
115
|
-
Player.new('Ricardo', 'Calvo', 1, :fed => 'SPA').fed.
|
|
116
|
-
Player.new('Mark', 'Orr', 2, :fed => 'Icu').fed.
|
|
117
|
-
Player.new('Florin', 'Gheorghiu', 3, :fed => 'ROM').fed.
|
|
115
|
+
expect(Player.new('Ricardo', 'Calvo', 1, :fed => 'SPA').fed).to eq('ESP')
|
|
116
|
+
expect(Player.new('Mark', 'Orr', 2, :fed => 'Icu').fed).to eq('IRL')
|
|
117
|
+
expect(Player.new('Florin', 'Gheorghiu', 3, :fed => 'ROM').fed).to eq('ROU')
|
|
118
118
|
end
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
context "title" do
|
|
122
122
|
it "defaults to nil" do
|
|
123
|
-
Player.new('Mark', 'Orr', 3).title.
|
|
124
|
-
Player.new('Mark', 'Orr', 3, :title => ' ').title.
|
|
123
|
+
expect(Player.new('Mark', 'Orr', 3).title).to be_nil
|
|
124
|
+
expect(Player.new('Mark', 'Orr', 3, :title => ' ').title).to be_nil
|
|
125
125
|
end
|
|
126
126
|
|
|
127
127
|
it "should be one of national, candidate, FIDE, international or grand master" do
|
|
128
|
-
Player.new('Gary', 'Kasparov', 1, :title => 'GM').title.
|
|
129
|
-
Player.new('Mark', 'Orr', 2, :title => ' im ').title.
|
|
130
|
-
Player.new('Mark', 'Quinn', 2, :title => 'm').title.
|
|
131
|
-
Player.new('Pia', 'Cramling', 3, :title => ' wg ').title.
|
|
132
|
-
Player.new('Philip', 'Short', 4, :title => 'F ').title.
|
|
133
|
-
Player.new('Gearoidin', 'Ui Laighleis', 5, :title => 'wc').title.
|
|
134
|
-
Player.new('Gearoidin', 'Ui Laighleis', 7, :title => 'wm').title.
|
|
135
|
-
Player.new('Eamon', 'Keogh', 6, :title => 'nm').title.
|
|
136
|
-
|
|
128
|
+
expect(Player.new('Gary', 'Kasparov', 1, :title => 'GM').title).to eq('GM')
|
|
129
|
+
expect(Player.new('Mark', 'Orr', 2, :title => ' im ').title).to eq('IM')
|
|
130
|
+
expect(Player.new('Mark', 'Quinn', 2, :title => 'm').title).to eq('IM')
|
|
131
|
+
expect(Player.new('Pia', 'Cramling', 3, :title => ' wg ').title).to eq('WGM')
|
|
132
|
+
expect(Player.new('Philip', 'Short', 4, :title => 'F ').title).to eq('FM')
|
|
133
|
+
expect(Player.new('Gearoidin', 'Ui Laighleis', 5, :title => 'wc').title).to eq('WCM')
|
|
134
|
+
expect(Player.new('Gearoidin', 'Ui Laighleis', 7, :title => 'wm').title).to eq('WIM')
|
|
135
|
+
expect(Player.new('Eamon', 'Keogh', 6, :title => 'nm').title).to eq('NM')
|
|
136
|
+
expect { Player.new('Mark', 'Orr', 3, :title => 'Dr') }.to raise_error(/invalid chess title/)
|
|
137
137
|
end
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
context "rating" do
|
|
141
141
|
it "defaults to nil" do
|
|
142
|
-
Player.new('Mark', 'Orr', 3).rating.
|
|
143
|
-
Player.new('Mark', 'Orr', 3, :rating => ' ').rating.
|
|
142
|
+
expect(Player.new('Mark', 'Orr', 3).rating).to be_nil
|
|
143
|
+
expect(Player.new('Mark', 'Orr', 3, :rating => ' ').rating).to be_nil
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
it "should be a positive integer" do
|
|
147
|
-
Player.new('Gary', 'Kasparov', 1, :rating => 2800).rating.
|
|
148
|
-
Player.new('Mark', 'Orr', 2, :rating => ' 2100 ').rating.
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
expect(Player.new('Gary', 'Kasparov', 1, :rating => 2800).rating).to eq(2800)
|
|
148
|
+
expect(Player.new('Mark', 'Orr', 2, :rating => ' 2100 ').rating).to eq(2100)
|
|
149
|
+
expect { Player.new('Mark', 'Orr', 3, :rating => -2100) }.to raise_error(/invalid positive integer/)
|
|
150
|
+
expect { Player.new('Mark', 'Orr', 3, :rating => 'IM') }.to raise_error(/invalid positive integer/)
|
|
151
151
|
end
|
|
152
152
|
end
|
|
153
153
|
|
|
154
154
|
context "FIDE rating" do
|
|
155
155
|
it "defaults to nil" do
|
|
156
|
-
Player.new('Mark', 'Orr', 3).fide_rating.
|
|
157
|
-
Player.new('Mark', 'Orr', 3, :fide_rating => ' ').fide_rating.
|
|
156
|
+
expect(Player.new('Mark', 'Orr', 3).fide_rating).to be_nil
|
|
157
|
+
expect(Player.new('Mark', 'Orr', 3, :fide_rating => ' ').fide_rating).to be_nil
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
it "should be a positive integer" do
|
|
161
|
-
Player.new('Gary', 'Kasparov', 1, :fide_rating => 2800).fide_rating.
|
|
162
|
-
Player.new('Mark', 'Orr', 2, :fide_rating => ' 2200 ').fide_rating.
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
expect(Player.new('Gary', 'Kasparov', 1, :fide_rating => 2800).fide_rating).to eq(2800)
|
|
162
|
+
expect(Player.new('Mark', 'Orr', 2, :fide_rating => ' 2200 ').fide_rating).to eq(2200)
|
|
163
|
+
expect { Player.new('Mark', 'Orr', 3, :fide_rating => -2100) }.to raise_error(/invalid positive integer/)
|
|
164
|
+
expect { Player.new('Mark', 'Orr', 3, :fide_rating => 'IM') }.to raise_error(/invalid positive integer/)
|
|
165
165
|
end
|
|
166
166
|
end
|
|
167
167
|
|
|
168
168
|
context "rank" do
|
|
169
169
|
it "defaults to nil" do
|
|
170
|
-
Player.new('Mark', 'Orr', 3).rank.
|
|
170
|
+
expect(Player.new('Mark', 'Orr', 3).rank).to be_nil
|
|
171
171
|
end
|
|
172
172
|
|
|
173
173
|
it "should be a positive integer" do
|
|
174
|
-
Player.new('Mark', 'Orr', 3, :rank => 1).rank.
|
|
175
|
-
Player.new('Gary', 'Kasparov', 4, :rank => ' 29 ').rank.
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
expect(Player.new('Mark', 'Orr', 3, :rank => 1).rank).to eq(1)
|
|
175
|
+
expect(Player.new('Gary', 'Kasparov', 4, :rank => ' 29 ').rank).to eq(29)
|
|
176
|
+
expect { Player.new('Mark', 'Orr', 3, :rank => 0) }.to raise_error(/invalid positive integer/)
|
|
177
|
+
expect { Player.new('Mark', 'Orr', 3, :rank => ' -1 ') }.to raise_error(/invalid positive integer/)
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
180
|
|
|
181
181
|
context "date of birth" do
|
|
182
182
|
it "defaults to nil" do
|
|
183
|
-
Player.new('Mark', 'Orr', 3).dob.
|
|
184
|
-
Player.new('Mark', 'Orr', 3, :dob => ' ').dob.
|
|
183
|
+
expect(Player.new('Mark', 'Orr', 3).dob).to be_nil
|
|
184
|
+
expect(Player.new('Mark', 'Orr', 3, :dob => ' ').dob).to be_nil
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
it "should be a yyyy-mm-dd date" do
|
|
188
|
-
Player.new('Mark', 'Orr', 3, :dob => '1955-11-09').dob.
|
|
189
|
-
|
|
188
|
+
expect(Player.new('Mark', 'Orr', 3, :dob => '1955-11-09').dob).to eq('1955-11-09')
|
|
189
|
+
expect { Player.new('Mark', 'Orr', 3, :dob => 'X') }.to raise_error(/invalid.*dob/)
|
|
190
190
|
end
|
|
191
191
|
end
|
|
192
192
|
|
|
193
193
|
context "gender" do
|
|
194
194
|
it "defaults to nil" do
|
|
195
|
-
Player.new('Mark', 'Orr', 3).gender.
|
|
196
|
-
Player.new('Mark', 'Orr', 3, :gender => ' ').gender.
|
|
195
|
+
expect(Player.new('Mark', 'Orr', 3).gender).to be_nil
|
|
196
|
+
expect(Player.new('Mark', 'Orr', 3, :gender => ' ').gender).to be_nil
|
|
197
197
|
end
|
|
198
198
|
|
|
199
199
|
it "should be either M or F" do
|
|
200
|
-
Player.new('Mark', 'Orr', 3, :gender => 'male').gender.
|
|
201
|
-
Player.new('April', 'Cronin', 3, :gender => 'woman').gender.
|
|
200
|
+
expect(Player.new('Mark', 'Orr', 3, :gender => 'male').gender).to eq('M')
|
|
201
|
+
expect(Player.new('April', 'Cronin', 3, :gender => 'woman').gender).to eq('F')
|
|
202
202
|
end
|
|
203
203
|
|
|
204
204
|
it "should raise an exception if the gender is not specified properly" do
|
|
205
|
-
|
|
205
|
+
expect { Player.new('Mark', 'Orr', 3, :gender => 'X') }.to raise_error(/invalid gender/)
|
|
206
206
|
end
|
|
207
207
|
end
|
|
208
208
|
|
|
209
209
|
context "results and points" do
|
|
210
210
|
it "should initialise to an empty array" do
|
|
211
211
|
results = Player.new('Mark', 'Orr', 3).results
|
|
212
|
-
results.
|
|
213
|
-
results.size.
|
|
212
|
+
expect(results).to be_instance_of Array
|
|
213
|
+
expect(results.size).to eq(0)
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
it "can be added to" do
|
|
@@ -219,21 +219,21 @@ module ICU
|
|
|
219
219
|
player.add_result(Result.new(2, 3, 'D', :opponent => 2))
|
|
220
220
|
player.add_result(Result.new(3, 3, 'L', :opponent => 4))
|
|
221
221
|
results = player.results
|
|
222
|
-
results.
|
|
223
|
-
results.size.
|
|
224
|
-
player.points.
|
|
222
|
+
expect(results).to be_instance_of Array
|
|
223
|
+
expect(results.size).to eq(3)
|
|
224
|
+
expect(player.points).to eq(1.5)
|
|
225
225
|
end
|
|
226
226
|
|
|
227
227
|
it "should not allow mismatched player numbers" do
|
|
228
228
|
player = Player.new('Mark', 'Orr', 3)
|
|
229
|
-
|
|
229
|
+
expect { player.add_result(Result.new(1, 4, 'W', :opponent => 1)) }.to raise_error(/player number .* matched/)
|
|
230
230
|
end
|
|
231
231
|
|
|
232
232
|
it "should enforce unique round numbers" do
|
|
233
233
|
player = Player.new('Mark', 'Orr', 3)
|
|
234
234
|
player.add_result(Result.new(1, 3, 'W', :opponent => 1))
|
|
235
235
|
player.add_result(Result.new(2, 3, 'D', :opponent => 2))
|
|
236
|
-
|
|
236
|
+
expect { player.add_result(Result.new(2, 3, 'L', :opponent => 4)) }.to raise_error(/does not match/)
|
|
237
237
|
end
|
|
238
238
|
end
|
|
239
239
|
|
|
@@ -246,10 +246,10 @@ module ICU
|
|
|
246
246
|
end
|
|
247
247
|
|
|
248
248
|
it "should find results by round number" do
|
|
249
|
-
@p.find_result(1).opponent.
|
|
250
|
-
@p.find_result(2).opponent.
|
|
251
|
-
@p.find_result(3).opponent.
|
|
252
|
-
@p.find_result(4).
|
|
249
|
+
expect(@p.find_result(1).opponent).to eq(37)
|
|
250
|
+
expect(@p.find_result(2).opponent).to eq(13)
|
|
251
|
+
expect(@p.find_result(3).opponent).to eq(7)
|
|
252
|
+
expect(@p.find_result(4)).to be_nil
|
|
253
253
|
end
|
|
254
254
|
end
|
|
255
255
|
|
|
@@ -263,9 +263,9 @@ module ICU
|
|
|
263
263
|
|
|
264
264
|
it "should find and remove a result by round number" do
|
|
265
265
|
result = @p.remove_result(1)
|
|
266
|
-
result.inspect.
|
|
267
|
-
@p.results.size.
|
|
268
|
-
@p.results.map(&:round).join("|").
|
|
266
|
+
expect(result.inspect).to eq("R1P1O37WWR")
|
|
267
|
+
expect(@p.results.size).to eq(2)
|
|
268
|
+
expect(@p.results.map(&:round).join("|")).to eq("2|3")
|
|
269
269
|
end
|
|
270
270
|
end
|
|
271
271
|
|
|
@@ -278,12 +278,12 @@ module ICU
|
|
|
278
278
|
|
|
279
279
|
it "takes on the ID, rating, title and fed of the other player but not the player number" do
|
|
280
280
|
@p1.merge(@p2)
|
|
281
|
-
@p1.num.
|
|
282
|
-
@p1.id.
|
|
283
|
-
@p1.rating.
|
|
284
|
-
@p1.title.
|
|
285
|
-
@p1.fed.
|
|
286
|
-
@p1.fide_id.
|
|
281
|
+
expect(@p1.num).to eq(1)
|
|
282
|
+
expect(@p1.id).to eq(1350)
|
|
283
|
+
expect(@p1.rating).to eq(2100)
|
|
284
|
+
expect(@p1.title).to eq('IM')
|
|
285
|
+
expect(@p1.fed).to eq('IRL')
|
|
286
|
+
expect(@p1.fide_id).to eq(2500035)
|
|
287
287
|
end
|
|
288
288
|
|
|
289
289
|
it "should have a kind of symmetry" do
|
|
@@ -293,7 +293,7 @@ module ICU
|
|
|
293
293
|
end
|
|
294
294
|
|
|
295
295
|
it "cannot be done with unequal objects" do
|
|
296
|
-
|
|
296
|
+
expect { @p1.merge(@p3) }.to raise_error(/cannot merge.*not equal/)
|
|
297
297
|
end
|
|
298
298
|
end
|
|
299
299
|
|
|
@@ -306,13 +306,13 @@ module ICU
|
|
|
306
306
|
|
|
307
307
|
it "should renumber successfully if the map has the relevant player numbers" do
|
|
308
308
|
map = { 10 => 1, 20 => 2, 30 => 3 }
|
|
309
|
-
@p.renumber(map).num.
|
|
310
|
-
@p.results.map{ |r| r.opponent }.sort.join('').
|
|
309
|
+
expect(@p.renumber(map).num).to eq(1)
|
|
310
|
+
expect(@p.results.map{ |r| r.opponent }.sort.join('')).to eq('23')
|
|
311
311
|
end
|
|
312
312
|
|
|
313
313
|
it "should raise exception if a player number is not in the map" do
|
|
314
|
-
|
|
315
|
-
|
|
314
|
+
expect { @p.renumber({ 100 => 1, 20 => 2, 30 => 3 }) }.to raise_error(/player.*10.*not found/)
|
|
315
|
+
expect { @p.renumber({ 10 => 1, 200 => 2, 30 => 3 }) }.to raise_error(/opponent.*20.*not found/)
|
|
316
316
|
end
|
|
317
317
|
end
|
|
318
318
|
|
|
@@ -326,21 +326,21 @@ module ICU
|
|
|
326
326
|
end
|
|
327
327
|
|
|
328
328
|
it "any player is equal to itself" do
|
|
329
|
-
(@mark1 == @mark1).
|
|
329
|
+
expect(@mark1 == @mark1).to be_truthy
|
|
330
330
|
end
|
|
331
331
|
|
|
332
332
|
it "two players are equal if their names are the same and their federations do not conflict" do
|
|
333
|
-
(@mark1 == @mark2).
|
|
333
|
+
expect(@mark1 == @mark2).to be_truthy
|
|
334
334
|
end
|
|
335
335
|
|
|
336
336
|
it "two players cannot be equal if they have different names" do
|
|
337
|
-
(@mark1 == @mark4).
|
|
338
|
-
(@mark1 == @john1).
|
|
337
|
+
expect(@mark1 == @mark4).to be_falsey
|
|
338
|
+
expect(@mark1 == @john1).to be_falsey
|
|
339
339
|
end
|
|
340
340
|
|
|
341
341
|
it "two players cannot be equal if they have different federations" do
|
|
342
|
-
(@mark2 == @mark3).
|
|
343
|
-
(@mark1 == @mark3).
|
|
342
|
+
expect(@mark2 == @mark3).to be_falsey
|
|
343
|
+
expect(@mark1 == @mark3).to be_truthy
|
|
344
344
|
end
|
|
345
345
|
end
|
|
346
346
|
|
|
@@ -354,20 +354,20 @@ module ICU
|
|
|
354
354
|
end
|
|
355
355
|
|
|
356
356
|
it "any player is equal to itself" do
|
|
357
|
-
@mark1.eql?(@mark1).
|
|
358
|
-
@mark1.eql?(@mark1).
|
|
357
|
+
expect(@mark1.eql?(@mark1)).to be_truthy
|
|
358
|
+
expect(@mark1.eql?(@mark1)).to be_truthy
|
|
359
359
|
end
|
|
360
360
|
|
|
361
361
|
it "two players are equal as long as their ID, rating and title do not conflict" do
|
|
362
|
-
@mark1.eql?(@mark2).
|
|
363
|
-
@mark3.eql?(@mark4).
|
|
364
|
-
@mark4.eql?(@mark5).
|
|
362
|
+
expect(@mark1.eql?(@mark2)).to be_truthy
|
|
363
|
+
expect(@mark3.eql?(@mark4)).to be_truthy
|
|
364
|
+
expect(@mark4.eql?(@mark5)).to be_truthy
|
|
365
365
|
end
|
|
366
366
|
|
|
367
367
|
it "two players are not equal if their ID, rating or title conflict" do
|
|
368
|
-
@mark2.eql?(@mark3).
|
|
369
|
-
@mark2.eql?(@mark4).
|
|
370
|
-
@mark2.eql?(@mark5).
|
|
368
|
+
expect(@mark2.eql?(@mark3)).to be_falsey
|
|
369
|
+
expect(@mark2.eql?(@mark4)).to be_falsey
|
|
370
|
+
expect(@mark2.eql?(@mark5)).to be_falsey
|
|
371
371
|
end
|
|
372
372
|
end
|
|
373
373
|
end
|