icu_tournament 1.9.3 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,17 +6,17 @@ module ICU
6
6
  describe Krause do
7
7
  def check_player(num, first, last, other={})
8
8
  p = @t.player(num)
9
- p.first_name.should == first
10
- p.last_name.should == last
9
+ expect(p.first_name).to eq(first)
10
+ expect(p.last_name).to eq(last)
11
11
  [:gender, :title, :rating, :fide_rating, :fed, :id, :fide_id, :dob, :rank].each do |key|
12
- p.send(key).should == other[key] if other.has_key?(key)
12
+ expect(p.send(key)).to eq(other[key]) if other.has_key?(key)
13
13
  end
14
14
  end
15
15
 
16
16
  def check_results(num, results, points)
17
17
  p = @t.player(num)
18
- p.results.size.should == results
19
- p.points.should == points
18
+ expect(p.results.size).to eq(results)
19
+ expect(p.points).to eq(points)
20
20
  end
21
21
 
22
22
  context "a typical tournament" do
@@ -47,30 +47,30 @@ KRAUSE
47
47
  end
48
48
 
49
49
  it "should have a name, city and federation" do
50
- @t.name.should == 'Las Vegas National Open'
51
- @t.city.should == 'Las Vegas'
52
- @t.fed.should == 'USA'
50
+ expect(@t.name).to eq('Las Vegas National Open')
51
+ expect(@t.city).to eq('Las Vegas')
52
+ expect(@t.fed).to eq('USA')
53
53
  end
54
54
 
55
55
  it "should have start and end dates" do
56
- @t.start.should == '2008-06-07'
57
- @t.finish.should == '2008-06-09'
56
+ expect(@t.start).to eq('2008-06-07')
57
+ expect(@t.finish).to eq('2008-06-09')
58
58
  end
59
59
 
60
60
  it "should have a number of rounds, a type and a time control" do
61
- @t.rounds.should == 3
62
- @t.last_round.should == 3
63
- @t.type.should == 'All-Play-All'
64
- @t.time_control.should == '60 in 2hr, 30 in 1hr, rest in 1hr'
61
+ expect(@t.rounds).to eq(3)
62
+ expect(@t.last_round).to eq(3)
63
+ expect(@t.type).to eq('All-Play-All')
64
+ expect(@t.time_control).to eq('60 in 2hr, 30 in 1hr, rest in 1hr')
65
65
  end
66
66
 
67
67
  it "should have an arbiter and deputies" do
68
- @t.arbiter.should == 'Hans Scmidt'
69
- @t.deputy.should == 'Gerry Graham, Herbert Scarry'
68
+ expect(@t.arbiter).to eq('Hans Scmidt')
69
+ expect(@t.deputy).to eq('Gerry Graham, Herbert Scarry')
70
70
  end
71
71
 
72
72
  it "should have players and their details" do
73
- @t.should have(3).players
73
+ expect(@t.players.size).to eq(3)
74
74
  check_player(1, 'Gearoidin', 'Ui Laighleis', :gender => 'F', :fide_rating => 1985, :fed => 'IRL', :fide_id => 2501171, :dob => '1964-06-10', :rank => 2)
75
75
  check_player(2, 'Mark', 'Orr', :gender => 'M', :fide_rating => 2258, :fed => 'IRL', :fide_id => 2500035, :dob => '1955-11-09', :rank => 1, :title => 'IM')
76
76
  check_player(3, 'Viktor', 'Bologan', :gender => 'M', :fide_rating => 2663, :fed => 'MDA', :fide_id => 13900048, :dob => '1971-01-01', :rank => 3, :title => 'GM')
@@ -83,7 +83,7 @@ KRAUSE
83
83
  end
84
84
 
85
85
  it "should have correct round dates" do
86
- @t.round_dates.join('|').should == '2008-06-07|2008-06-08|2008-06-09'
86
+ expect(@t.round_dates.join('|')).to eq('2008-06-07|2008-06-08|2008-06-09')
87
87
  end
88
88
 
89
89
  it "the parser should retain comment lines" do
@@ -94,7 +94,7 @@ KRAUSE
94
94
  0 1 2 3 4 5 6 7 8 9 0 1 2
95
95
  0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
96
96
  COMMENTS
97
- @p.comments.should == comments
97
+ expect(@p.comments).to eq(comments)
98
98
  end
99
99
  end
100
100
 
@@ -115,22 +115,22 @@ KRAUSE
115
115
  end
116
116
 
117
117
  it "should have a name and federation" do
118
- @t.name.should == 'Fantasy Tournament'
119
- @t.fed.should == 'IRL'
118
+ expect(@t.name).to eq('Fantasy Tournament')
119
+ expect(@t.fed).to eq('IRL')
120
120
  end
121
121
 
122
122
  it "should have a various dates" do
123
- @t.start.should == '2009-09-09'
124
- @t.finish.should == '2009-09-11'
125
- @t.round_dates.join('|').should == '2009-09-09|2009-09-10|2009-09-11'
123
+ expect(@t.start).to eq('2009-09-09')
124
+ expect(@t.finish).to eq('2009-09-11')
125
+ expect(@t.round_dates.join('|')).to eq('2009-09-09|2009-09-10|2009-09-11')
126
126
  end
127
127
 
128
128
  it "should have a number of rounds" do
129
- @t.rounds.should == 3
129
+ expect(@t.rounds).to eq(3)
130
130
  end
131
131
 
132
132
  it "should have players and their details" do
133
- @t.should have(3).players
133
+ expect(@t.players.size).to eq(3)
134
134
  check_player(1, 'Minerva', 'Mouse', :gender => 'F', :rating => 1900, :fed => 'USA', :fide_id => 1234567, :dob => '1928-05-15', :rank => 2)
135
135
  check_player(2, 'Daffy', 'Duck', :gender => 'M', :rating => 2200, :fed => 'IRL', :fide_id => 7654321, :dob => '1937-04-17', :rank => 1, :title => 'IM')
136
136
  check_player(3, 'Mickey', 'Mouse', :gender => 'M', :rating => 2600, :fed => 'USA', :fide_id => 1726354, :dob => '1928-05-15', :rank => 3, :title => 'GM')
@@ -143,7 +143,7 @@ KRAUSE
143
143
  end
144
144
 
145
145
  it "the parser should retain comment lines" do
146
- @p.comments.should == "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n"
146
+ expect(@p.comments).to eq("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n")
147
147
  end
148
148
  end
149
149
 
@@ -161,11 +161,11 @@ KRAUSE
161
161
  end
162
162
 
163
163
  it "should produce a valid tournament" do
164
- @t.invalid.should be_false
164
+ expect(@t.invalid).to be_falsey
165
165
  end
166
166
 
167
167
  it "should produce output that looks reasonable" do
168
- @k.should match(/Fischer,Robert J\./)
168
+ expect(@k).to match(/Fischer,Robert J\./)
169
169
  end
170
170
  end
171
171
 
@@ -194,23 +194,23 @@ KRAUSE
194
194
 
195
195
  it "should serialize back to the original if the input is fully canonicalised" do
196
196
  t = @p.parse!(@krause, :fide => true)
197
- ICU::Tournament::Krause.new.serialize(t, :fide => true).should == @krause
197
+ expect(ICU::Tournament::Krause.new.serialize(t, :fide => true)).to eq(@krause)
198
198
  end
199
199
 
200
200
  it "should serialize using the convenience method of the tournament object" do
201
201
  t = @p.parse!(@krause, :fide => true)
202
- t.serialize('Krause', :fide => true).should == @krause
202
+ expect(t.serialize('Krause', :fide => true)).to eq(@krause)
203
203
  end
204
204
 
205
205
  it "should serialize only if :fide option is used correctly" do
206
206
  t = @p.parse!(@krause, :fide => true)
207
- t.serialize('Krause', :fide => true).should == @krause
208
- t.serialize('Krause').should_not == @krause
207
+ expect(t.serialize('Krause', :fide => true)).to eq(@krause)
208
+ expect(t.serialize('Krause')).not_to eq(@krause)
209
209
  end
210
210
 
211
211
  it "should not serialize correctly if mixed rating types are used" do
212
212
  t = @p.parse!(@krause, :fide => true)
213
- t.serialize('Krause').should_not == @krause
213
+ expect(t.serialize('Krause')).not_to eq(@krause)
214
214
  end
215
215
  end
216
216
 
@@ -228,9 +228,9 @@ KRAUSE
228
228
  end
229
229
 
230
230
  it "should have rankings automatically set" do
231
- @t.player(1).rank.should == 2
232
- @t.player(2).rank.should == 1
233
- @t.player(3).rank.should == 3
231
+ expect(@t.player(1).rank).to eq(2)
232
+ expect(@t.player(2).rank).to eq(1)
233
+ expect(@t.player(3).rank).to eq(3)
234
234
  end
235
235
  end
236
236
 
@@ -293,12 +293,16 @@ REORDERED
293
293
 
294
294
  it "should serialise correctly after renumbering by rank" do
295
295
  @t.renumber
296
- @p.serialize(@t).should == @reordered
296
+ expect(@p.serialize(@t)).to eq(@reordered)
297
297
  end
298
298
  end
299
299
 
300
300
  context "serialisation of a manually built tournament" do
301
301
  before(:all) do
302
+ @dates = <<DATES
303
+ 132 08-06-07 08-06-08 08-06-09
304
+ DATES
305
+ @dates.strip!
302
306
  @krause = <<KRAUSE
303
307
  012 Las Vegas National Open
304
308
  042 2008-06-07
@@ -319,8 +323,17 @@ KRAUSE
319
323
  end
320
324
 
321
325
  it "should serialise" do
322
- @output.should == @krause
326
+ expect(@output).to eq(@krause)
327
+ end
328
+
329
+ it "should add round dates" do
330
+ @t.rounds = 3
331
+ @t.finish = ::Date.parse('2008-06-09')
332
+ output = @p.serialize(@t)
333
+ expect(output).not_to eq(@krause)
334
+ expect(output).to match(@dates)
323
335
  end
336
+
324
337
  end
325
338
 
326
339
  context "customised serialisation with ICU IDs" do
@@ -340,52 +353,52 @@ KRAUSE
340
353
 
341
354
  it "should include all data without any explict cusromisation" do
342
355
  text = @t.serialize('Krause')
343
- text.should match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 3364 1964-06-10 1.0 2/)
344
- text.should match(/001 2 m Orr,Mark 2258 IRL 1350 1955-11-09 2.0 1/)
345
- text.should match(/001 3 g Svidler,Peter 2663 RUS 16790 1971-01-01 0.0 3/)
356
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 3364 1964-06-10 1.0 2/)
357
+ expect(text).to match(/001 2 m Orr,Mark 2258 IRL 1350 1955-11-09 2.0 1/)
358
+ expect(text).to match(/001 3 g Svidler,Peter 2663 RUS 16790 1971-01-01 0.0 3/)
346
359
  end
347
360
 
348
361
  it "should omitt ratings and IDs if FIDE option is chosen" do
349
362
  text = @t.serialize('Krause', :fide => true)
350
- text.should match(/001 1 w Ui Laighleis,Gearoidin IRL 1964-06-10 1.0 2/)
351
- text.should match(/001 2 m Orr,Mark IRL 1955-11-09 2.0 1/)
352
- text.should match(/001 3 g Svidler,Peter RUS 1971-01-01 0.0 3/)
363
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin IRL 1964-06-10 1.0 2/)
364
+ expect(text).to match(/001 2 m Orr,Mark IRL 1955-11-09 2.0 1/)
365
+ expect(text).to match(/001 3 g Svidler,Peter RUS 1971-01-01 0.0 3/)
353
366
  end
354
367
 
355
368
  it "should omitt all optional data if the :only option is an empty hash" do
356
369
  text = @t.serialize('Krause', :only => [])
357
- text.should match(/001 1 Ui Laighleis,Gearoidin 1.0 /)
358
- text.should match(/001 2 Orr,Mark 2.0 /)
359
- text.should match(/001 3 Svidler,Peter 0.0 /)
370
+ expect(text).to match(/001 1 Ui Laighleis,Gearoidin 1.0 /)
371
+ expect(text).to match(/001 2 Orr,Mark 2.0 /)
372
+ expect(text).to match(/001 3 Svidler,Peter 0.0 /)
360
373
  end
361
374
 
362
375
  it "should should be able to include a subset of attributes, test 1" do
363
376
  text = @t.serialize('Krause', :only => [:gender, "dob", :id, "rubbish"])
364
- text.should match(/001 1 w Ui Laighleis,Gearoidin 3364 1964-06-10 1.0 /)
365
- text.should match(/001 2 Orr,Mark 1350 1955-11-09 2.0 /)
366
- text.should match(/001 3 Svidler,Peter 16790 1971-01-01 0.0 /)
377
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin 3364 1964-06-10 1.0 /)
378
+ expect(text).to match(/001 2 Orr,Mark 1350 1955-11-09 2.0 /)
379
+ expect(text).to match(/001 3 Svidler,Peter 16790 1971-01-01 0.0 /)
367
380
  end
368
381
 
369
382
  it "should should be able to include a subset of attributes, test 2" do
370
383
  text = @t.serialize('Krause', :only => [:rank, "title", :fed, "rating"])
371
- text.should match(/001 1 Ui Laighleis,Gearoidin 1985 IRL 1.0 2/)
372
- text.should match(/001 2 m Orr,Mark 2258 IRL 2.0 1/)
373
- text.should match(/001 3 g Svidler,Peter 2663 RUS 0.0 3/)
384
+ expect(text).to match(/001 1 Ui Laighleis,Gearoidin 1985 IRL 1.0 2/)
385
+ expect(text).to match(/001 2 m Orr,Mark 2258 IRL 2.0 1/)
386
+ expect(text).to match(/001 3 g Svidler,Peter 2663 RUS 0.0 3/)
374
387
  end
375
388
 
376
389
  it "should should be able to include all attributes" do
377
390
  text = @t.serialize('Krause', :only => [:gender, :title, :rating, :fed, :id, :dob, :rank])
378
- text.should match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 3364 1964-06-10 1.0 2/)
379
- text.should match(/001 2 m Orr,Mark 2258 IRL 1350 1955-11-09 2.0 1/)
380
- text.should match(/001 3 g Svidler,Peter 2663 RUS 16790 1971-01-01 0.0 3/)
391
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 3364 1964-06-10 1.0 2/)
392
+ expect(text).to match(/001 2 m Orr,Mark 2258 IRL 1350 1955-11-09 2.0 1/)
393
+ expect(text).to match(/001 3 g Svidler,Peter 2663 RUS 16790 1971-01-01 0.0 3/)
381
394
  end
382
395
 
383
396
  it "the :only and :except options are logical opposites" do
384
- @t.serialize('Krause', :only => [:gender, :title, :rating]).should == @t.serialize('Krause', :except => [:fed, :id, "dob", :rank])
385
- @t.serialize('Krause', :only => [:gender]).should == @t.serialize('Krause', :except => [:fed, :id, :dob, :rank, :title, :rating])
386
- @t.serialize('Krause', :only => [:gender, :title, "rating", :fed, :id, :dob]).should == @t.serialize('Krause', :except => [:rank])
387
- @t.serialize('Krause', :only => [:gender, :title, :rating, :fed, "id", :dob, :rank]).should == @t.serialize('Krause', :except => [])
388
- @t.serialize('Krause', :only => []).should == @t.serialize('Krause', :except => [:gender, :title, :rating, :fed, :id, :dob, :rank])
397
+ expect(@t.serialize('Krause', :only => [:gender, :title, :rating])).to eq(@t.serialize('Krause', :except => [:fed, :id, "dob", :rank]))
398
+ expect(@t.serialize('Krause', :only => [:gender])).to eq(@t.serialize('Krause', :except => [:fed, :id, :dob, :rank, :title, :rating]))
399
+ expect(@t.serialize('Krause', :only => [:gender, :title, "rating", :fed, :id, :dob])).to eq(@t.serialize('Krause', :except => [:rank]))
400
+ expect(@t.serialize('Krause', :only => [:gender, :title, :rating, :fed, "id", :dob, :rank])).to eq(@t.serialize('Krause', :except => []))
401
+ expect(@t.serialize('Krause', :only => [])).to eq(@t.serialize('Krause', :except => [:gender, :title, :rating, :fed, :id, :dob, :rank]))
389
402
  end
390
403
  end
391
404
 
@@ -406,44 +419,44 @@ KRAUSE
406
419
 
407
420
  it "should include all data without any explict cusromisation" do
408
421
  text = @t.serialize('Krause', :fide => true)
409
- text.should match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2/)
410
- text.should match(/001 2 m Orr,Mark 2258 IRL 2500035 1955-11-09 2.0 1/)
411
- text.should match(/001 3 g Svidler,Peter 2663 RUS 4102142 1971-01-01 0.0 3/)
422
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2/)
423
+ expect(text).to match(/001 2 m Orr,Mark 2258 IRL 2500035 1955-11-09 2.0 1/)
424
+ expect(text).to match(/001 3 g Svidler,Peter 2663 RUS 4102142 1971-01-01 0.0 3/)
412
425
  end
413
426
 
414
427
  it "should omitt ratings and IDs if FIDE option is not chosen" do
415
428
  text = @t.serialize('Krause')
416
- text.should match(/001 1 w Ui Laighleis,Gearoidin IRL 1964-06-10 1.0 2/)
417
- text.should match(/001 2 m Orr,Mark IRL 1955-11-09 2.0 1/)
418
- text.should match(/001 3 g Svidler,Peter RUS 1971-01-01 0.0 3/)
429
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin IRL 1964-06-10 1.0 2/)
430
+ expect(text).to match(/001 2 m Orr,Mark IRL 1955-11-09 2.0 1/)
431
+ expect(text).to match(/001 3 g Svidler,Peter RUS 1971-01-01 0.0 3/)
419
432
  end
420
433
 
421
434
  it "should omitt all optional data if the :only option is an empty hash" do
422
435
  text = @t.serialize('Krause', :only => [])
423
- text.should match(/001 1 Ui Laighleis,Gearoidin 1.0 /)
424
- text.should match(/001 2 Orr,Mark 2.0 /)
425
- text.should match(/001 3 Svidler,Peter 0.0 /)
436
+ expect(text).to match(/001 1 Ui Laighleis,Gearoidin 1.0 /)
437
+ expect(text).to match(/001 2 Orr,Mark 2.0 /)
438
+ expect(text).to match(/001 3 Svidler,Peter 0.0 /)
426
439
  end
427
440
 
428
441
  it "should should be able to include a subset of attributes, test 1" do
429
442
  text = @t.serialize('Krause', :only => [:gender, "dob", :id], :fide => true)
430
- text.should match(/001 1 w Ui Laighleis,Gearoidin 2501171 1964-06-10 1.0 /)
431
- text.should match(/001 2 Orr,Mark 2500035 1955-11-09 2.0 /)
432
- text.should match(/001 3 Svidler,Peter 4102142 1971-01-01 0.0 /)
443
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin 2501171 1964-06-10 1.0 /)
444
+ expect(text).to match(/001 2 Orr,Mark 2500035 1955-11-09 2.0 /)
445
+ expect(text).to match(/001 3 Svidler,Peter 4102142 1971-01-01 0.0 /)
433
446
  end
434
447
 
435
448
  it "should should be able to include a subset of attributes, test 2" do
436
449
  text = @t.serialize('Krause', :only => [:rank, "title", :fed, "rating", :rubbish], :fide => true)
437
- text.should match(/001 1 Ui Laighleis,Gearoidin 1985 IRL 1.0 2/)
438
- text.should match(/001 2 m Orr,Mark 2258 IRL 2.0 1/)
439
- text.should match(/001 3 g Svidler,Peter 2663 RUS 0.0 3/)
450
+ expect(text).to match(/001 1 Ui Laighleis,Gearoidin 1985 IRL 1.0 2/)
451
+ expect(text).to match(/001 2 m Orr,Mark 2258 IRL 2.0 1/)
452
+ expect(text).to match(/001 3 g Svidler,Peter 2663 RUS 0.0 3/)
440
453
  end
441
454
 
442
455
  it "should should be able to include all attributes" do
443
456
  text = @t.serialize('Krause', :only => [:gender, :title, :rating, :fed, :id, :dob, :rank], :fide => true)
444
- text.should match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2/)
445
- text.should match(/001 2 m Orr,Mark 2258 IRL 2500035 1955-11-09 2.0 1/)
446
- text.should match(/001 3 g Svidler,Peter 2663 RUS 4102142 1971-01-01 0.0 3/)
457
+ expect(text).to match(/001 1 w Ui Laighleis,Gearoidin 1985 IRL 2501171 1964-06-10 1.0 2/)
458
+ expect(text).to match(/001 2 m Orr,Mark 2258 IRL 2500035 1955-11-09 2.0 1/)
459
+ expect(text).to match(/001 3 g Svidler,Peter 2663 RUS 4102142 1971-01-01 0.0 3/)
447
460
  end
448
461
  end
449
462
 
@@ -477,85 +490,85 @@ KRAUSE
477
490
  end
478
491
 
479
492
  it "the unaltered example is valid Krause" do
480
- lambda { @p.parse!(@k) }.should_not raise_error
493
+ expect { @p.parse!(@k) }.not_to raise_error
481
494
  end
482
495
 
483
496
  it "removing the line on which the tournament name is specified should cause an error" do
484
- lambda { @p.parse!(@k.sub('012 Gonzaga Classic', '')) }.should raise_error(/name missing/)
497
+ expect { @p.parse!(@k.sub('012 Gonzaga Classic', '')) }.to raise_error(/name missing/)
485
498
  end
486
499
 
487
500
  it "blanking the tournament name should cause an error" do
488
501
  @k.sub!('Gonzaga Classic', '')
489
- lambda { @p.parse!(@k) }.should raise_error(/name missing/)
502
+ expect { @p.parse!(@k) }.to raise_error(/name missing/)
490
503
  end
491
504
 
492
505
  it "the start cannot be later than the end date" do
493
- lambda { @p.parse!(@k.sub('2008-02-21', '2008-03-21')) }.should raise_error(/start.*after.*end/)
506
+ expect { @p.parse!(@k.sub('2008-02-21', '2008-03-21')) }.to raise_error(/start.*after.*end/)
494
507
  end
495
508
 
496
509
  it "blanking the start date should cause an error" do
497
- lambda { @p.parse!(@k.sub('2008-02-21', '')) }.should raise_error(/start date missing/)
510
+ expect { @p.parse!(@k.sub('2008-02-21', '')) }.to raise_error(/start date missing/)
498
511
  end
499
512
 
500
513
  it "the first and last round dates should match the tournament start and end dates" do
501
- lambda { @p.parse!(@k.sub('08.02.21', '08.02.20')) }.should raise_error(/first round.*not match.*start/)
502
- lambda { @p.parse!(@k.sub('08.02.21', '08.02.22')) }.should raise_error(/first round.*not match.*start/)
503
- lambda { @p.parse!(@k.sub('08.02.25', '08.02.24')) }.should raise_error(/last round.*not match.*end/)
504
- lambda { @p.parse!(@k.sub('08.02.25', '08.02.26')) }.should raise_error(/last round.*not match.*end/)
514
+ expect { @p.parse!(@k.sub('08.02.21', '08.02.20')) }.to raise_error(/first round.*not match.*start/)
515
+ expect { @p.parse!(@k.sub('08.02.21', '08.02.22')) }.to raise_error(/first round.*not match.*start/)
516
+ expect { @p.parse!(@k.sub('08.02.25', '08.02.24')) }.to raise_error(/last round.*not match.*end/)
517
+ expect { @p.parse!(@k.sub('08.02.25', '08.02.26')) }.to raise_error(/last round.*not match.*end/)
505
518
  end
506
519
 
507
520
  it "the round dates should never decrease" do
508
- lambda { @p.parse!(@k.sub('08.02.24', '08.02.22')) }.should raise_error(/round 3.*after.*round 4/)
521
+ expect { @p.parse!(@k.sub('08.02.24', '08.02.22')) }.to raise_error(/round 3.*after.*round 4/)
509
522
  end
510
523
 
511
524
  it "bad round dates can be ignored" do
512
- lambda { @p.parse!(@k.sub('08.02.21', '08.02.20'), :round_dates => "ignore") }.should_not raise_error
513
- lambda { @p.parse!(@k.sub('08.02.24', '08.02.22'), :round_dates => "ignore") }.should_not raise_error
525
+ expect { @p.parse!(@k.sub('08.02.21', '08.02.20'), :round_dates => "ignore") }.not_to raise_error
526
+ expect { @p.parse!(@k.sub('08.02.24', '08.02.22'), :round_dates => "ignore") }.not_to raise_error
514
527
  end
515
528
 
516
529
  it "creating a duplicate player number should cause an error" do
517
- lambda { @p.parse!(@k.sub(' 2 ', ' 1 ')) }.should raise_error(/player number/)
530
+ expect { @p.parse!(@k.sub(' 2 ', ' 1 ')) }.to raise_error(/player number/)
518
531
  end
519
532
 
520
533
  it "creating a duplicate rank number should not cause an error becuse the tournament will be reranked" do
521
534
  t = @p.parse!(@k.sub('4.0 1', '4.0 2'))
522
- t.player(1).rank.should == 1
535
+ expect(t.player(1).rank).to eq(1)
523
536
  end
524
537
 
525
538
  it "referring to a non-existant player number should cause an error" do
526
- lambda { @p.parse!(@k.sub(' 3 b 1', '33 b 1')) }.should raise_error(/opponent number/)
539
+ expect { @p.parse!(@k.sub(' 3 b 1', '33 b 1')) }.to raise_error(/opponent number/)
527
540
  end
528
541
 
529
542
  it "inconsistent colours should cause an error" do
530
- lambda { @p.parse!(@k.sub('3 b 1', '3 w 1')) }.should raise_error(/result/)
543
+ expect { @p.parse!(@k.sub('3 b 1', '3 w 1')) }.to raise_error(/result/)
531
544
  end
532
545
 
533
546
  it "inconsistent scores should cause an error" do
534
- lambda { @p.parse!(@k.sub('3 b 1', '3 b =')) }.should raise_error(/result/)
547
+ expect { @p.parse!(@k.sub('3 b 1', '3 b =')) }.to raise_error(/result/)
535
548
  end
536
549
 
537
550
  it "inconsistent totals should cause an error" do
538
- lambda { @p.parse!(@k.sub('3.5', '4.0')) }.should raise_error(/total/)
551
+ expect { @p.parse!(@k.sub('3.5', '4.0')) }.to raise_error(/total/)
539
552
  end
540
553
 
541
554
  it "invalid federations should cause an error unless an option is used" do
542
555
  @k.sub!('SCO', 'XYZ')
543
- lambda { @p.parse!(@k) }.should raise_error(/federation/)
544
- lambda { @t = @p.parse!(@k, :fed => "skip") }.should_not raise_error
545
- @t.player(5).fed.should be_nil
546
- @t.player(1).fed.should == "IRL"
547
- lambda { @t = @p.parse!(@k, :fed => "ignore") }.should_not raise_error
548
- @t.player(5).fed.should be_nil
549
- @t.player(1).fed.should be_nil
556
+ expect { @p.parse!(@k) }.to raise_error(/federation/)
557
+ expect { @t = @p.parse!(@k, :fed => "skip") }.not_to raise_error
558
+ expect(@t.player(5).fed).to be_nil
559
+ expect(@t.player(1).fed).to eq("IRL")
560
+ expect { @t = @p.parse!(@k, :fed => "ignore") }.not_to raise_error
561
+ expect(@t.player(5).fed).to be_nil
562
+ expect(@t.player(1).fed).to be_nil
550
563
  end
551
564
 
552
565
  it "an invalid DOB is silently ignored" do
553
- lambda { @t = @p.parse!(@k.sub(/1993-12-20/, '1993 ')) }.should_not raise_error
554
- @t.player(1).dob.should be_nil
566
+ expect { @t = @p.parse!(@k.sub(/1993-12-20/, '1993 ')) }.not_to raise_error
567
+ expect(@t.player(1).dob).to be_nil
555
568
  end
556
569
 
557
570
  it "removing any player that somebody else has played should cause an error" do
558
- lambda { @p.parse!(@k.sub(/^001 12.*$/, '')) }.should raise_error(/opponent/)
571
+ expect { @p.parse!(@k.sub(/^001 12.*$/, '')) }.to raise_error(/opponent/)
559
572
  end
560
573
  end
561
574
 
@@ -576,7 +589,7 @@ KRAUSE
576
589
  check_player(1, 'Gearoìdin', 'Uì Laighlèis')
577
590
  check_player(2, 'Mârk', 'Örr')
578
591
  check_player(3, 'Viktor', 'Bologan')
579
- @t.name.should == "Läs Végas National Opeñ"
592
+ expect(@t.name).to eq("Läs Végas National Opeñ")
580
593
  end
581
594
 
582
595
  it "should handle Latin-1" do
@@ -585,7 +598,7 @@ KRAUSE
585
598
  check_player(1, 'Gearoìdin', 'Uì Laighlèis')
586
599
  check_player(2, 'Mârk', 'Örr')
587
600
  check_player(3, 'Viktor', 'Bologan')
588
- @t.name.should == "Läs Végas National Opeñ"
601
+ expect(@t.name).to eq("Läs Végas National Opeñ")
589
602
  end
590
603
  end
591
604
 
@@ -606,9 +619,9 @@ KRAUSE
606
619
  check_player(1, 'Gearoidin', 'Ui Laighleis')
607
620
  check_player(2, 'Mark', 'Orr')
608
621
  check_player(3, 'Viktor', 'Bologan')
609
- @t.player(1).original_name.should == "ui laighleis, GEAROIDIN"
610
- @t.player(2).original_name.should == "ORR, mark"
611
- @t.player(3).original_name.should == "BOLOGAN, VIKTOR"
622
+ expect(@t.player(1).original_name).to eq("ui laighleis, GEAROIDIN")
623
+ expect(@t.player(2).original_name).to eq("ORR, mark")
624
+ expect(@t.player(3).original_name).to eq("BOLOGAN, VIKTOR")
612
625
  end
613
626
  end
614
627
 
@@ -620,49 +633,49 @@ KRAUSE
620
633
 
621
634
  it "should error on a non-existant valid file" do
622
635
  file = "#{@s}/not_there.tab"
623
- lambda { @p.parse_file!(file) }.should raise_error
636
+ expect { @p.parse_file!(file) }.to raise_error
624
637
  t = @p.parse_file(file)
625
- t.should be_nil
626
- @p.error.should match(/no such file/i)
638
+ expect(t).to be_nil
639
+ expect(@p.error).to match(/no such file/i)
627
640
  end
628
641
 
629
642
  it "should error on an invalid file" do
630
643
  file = "#{@s}/invalid.tab"
631
- lambda { @p.parse_file!(file) }.should raise_error
644
+ expect { @p.parse_file!(file) }.to raise_error
632
645
  t = @p.parse_file(file)
633
- t.should be_nil
634
- @p.error.should match(/tournament name missing/i)
646
+ expect(t).to be_nil
647
+ expect(@p.error).to match(/tournament name missing/i)
635
648
  end
636
649
 
637
650
  it "should parse a valid file" do
638
651
  file = "#{@s}/valid.tab"
639
- lambda { @p.parse_file!(file) }.should_not raise_error
652
+ expect { @p.parse_file!(file) }.not_to raise_error
640
653
  t = @p.parse_file(file)
641
- t.should be_an_instance_of(ICU::Tournament)
642
- t.players.size.should == 12
654
+ expect(t).to be_an_instance_of(ICU::Tournament)
655
+ expect(t.players.size).to eq(12)
643
656
  end
644
657
 
645
658
  it "should parse a file with UTF-8 encoding" do
646
659
  file = "#{@s}/utf-8.tab"
647
- lambda { @t = @p.parse_file!(file) }.should_not raise_error
660
+ expect { @t = @p.parse_file!(file) }.not_to raise_error
648
661
  check_player(1, 'Gearoìdin', 'Uì Laighlèis')
649
662
  check_player(2, 'Mârk', 'Örr')
650
663
  check_player(3, 'Viktor', 'Bologan')
651
- @t.name.should == "Läs Végas National Opeñ"
664
+ expect(@t.name).to eq("Läs Végas National Opeñ")
652
665
  end
653
666
 
654
667
  it "should parse a file with Latin-1 encoding" do
655
668
  file = "#{@s}/latin-1.tab"
656
- lambda { @t = @p.parse_file!(file) }.should_not raise_error
669
+ expect { @t = @p.parse_file!(file) }.not_to raise_error
657
670
  check_player(1, 'Gearoìdin', 'Uì Laighlèis')
658
671
  check_player(2, 'Mârk', 'Örr')
659
672
  check_player(3, 'Viktor', 'Bologan')
660
- @t.name.should == "Läs Végas National Opeñ"
673
+ expect(@t.name).to eq("Läs Végas National Opeñ")
661
674
  end
662
675
 
663
676
  it "should parse a large file with total scores as much as 10.0" do
664
677
  file = "#{@s}/armstrong_2011.tab"
665
- lambda { @t = @p.parse_file!(file) }.should_not raise_error
678
+ expect { @t = @p.parse_file!(file) }.not_to raise_error
666
679
  end
667
680
  end
668
681
 
@@ -678,7 +691,7 @@ KRAUSE
678
691
  001 1 Ui Laighleis,Gearoidin 0.5 2 b 0 2 w 0
679
692
  001 2 Or,Mark 2.0 1 w 1 1 b 1
680
693
  KRAUSE
681
- lambda { @p.parse!(@k) }.should raise_error(/total/)
694
+ expect { @p.parse!(@k) }.to raise_error(/total/)
682
695
  end
683
696
 
684
697
  it "cannot repair mismatched totals if totals are underestimated" do
@@ -688,7 +701,7 @@ KRAUSE
688
701
  001 1 Ui Laighleis,Gearoidin 0.0 2 b 0 0000 - -
689
702
  001 2 Orr,Mark 1.5 1 w 1 0000 - +
690
703
  KRAUSE
691
- lambda { @p.parse!(@k) }.should raise_error(/total/)
704
+ expect { @p.parse!(@k) }.to raise_error(/total/)
692
705
  end
693
706
 
694
707
  it "cannot repair overestimated totals if there are not enough byes" do
@@ -698,7 +711,7 @@ KRAUSE
698
711
  001 1 Ui Laighleis,Gearoidin 1.5 2 b 0 0000 - -
699
712
  001 2 Orr,Mark 2.0 1 w 1 0000 - +
700
713
  KRAUSE
701
- lambda { @p.parse!(@k) }.should raise_error(/total/)
714
+ expect { @p.parse!(@k) }.to raise_error(/total/)
702
715
  end
703
716
 
704
717
  it "can repair overestimated totals if there are enough byes" do
@@ -709,9 +722,9 @@ KRAUSE
709
722
  001 2 ORR,Mark 2.0 1 w 1 0000 - +
710
723
  KRAUSE
711
724
  @t = @p.parse!(@k)
712
- @t.should_not be_nil
725
+ expect(@t).not_to be_nil
713
726
  check_results(1, 2, 1.0)
714
- @t.player(1).find_result(2).score.should == 'W'
727
+ expect(@t.player(1).find_result(2).score).to eq('W')
715
728
  end
716
729
 
717
730
  it "extreme example" do
@@ -724,11 +737,11 @@ KRAUSE
724
737
  001 4 Knox,Angela 2.5 0000 - - 3 w 1 0000 - -
725
738
  KRAUSE
726
739
  @t = @p.parse!(@k)
727
- @t.should_not be_nil
728
- @t.player(1).results.map(&:score).join('').should == 'LWW'
729
- @t.player(2).results.map(&:score).join('').should == 'WWD'
730
- @t.player(3).results.map(&:score).join('').should == 'DLD'
731
- @t.player(4).results.map(&:score).join('').should == 'WWD'
740
+ expect(@t).not_to be_nil
741
+ expect(@t.player(1).results.map(&:score).join('')).to eq('LWW')
742
+ expect(@t.player(2).results.map(&:score).join('')).to eq('WWD')
743
+ expect(@t.player(3).results.map(&:score).join('')).to eq('DLD')
744
+ expect(@t.player(4).results.map(&:score).join('')).to eq('WWD')
732
745
  end
733
746
 
734
747
  it "should work on the documentation example" do
@@ -745,7 +758,7 @@ KRAUSE
745
758
  001 1 Mouse,Minerva 1.0 2 2 b 0 0000 - +
746
759
  001 2 Mouse,Mickey 1.5 1 1 w 1 0000 - =
747
760
  KRAUSE
748
- @t.serialize('Krause').should == output
761
+ expect(@t.serialize('Krause')).to eq(output)
749
762
  end
750
763
  end
751
764
 
@@ -758,17 +771,17 @@ KRAUSE
758
771
  it "should handle Bunratty Masters 2011" do
759
772
  file = "#{@s}/bunratty_masters_2011.tab"
760
773
  @t = @p.parse_file(file, :fed => :skip, :fide => true)
761
- @t.should_not be_nil
762
- @t.start.should == "2011-02-25"
763
- @t.finish.should == "2011-02-27"
774
+ expect(@t).not_to be_nil
775
+ expect(@t.start).to eq("2011-02-25")
776
+ expect(@t.finish).to eq("2011-02-27")
764
777
  check_player(1, 'Nigel', 'Short', :gender => 'M', :fide_rating => 2658, :fed => 'ENG', :rating => nil, :rank => 5, :title => 'GM')
765
778
  check_results(1, 6, 4.0)
766
779
  check_player(16, 'Jonathan', "O'Connor", :gender => 'M', :fide_rating => 2111, :fed => nil, :rating => nil, :rank => 25, :title => nil)
767
780
  check_results(16, 6, 2.5)
768
- @t.player(16).results.map(&:score).join('').should == 'DWLDDL'
781
+ expect(@t.player(16).results.map(&:score).join('')).to eq('DWLDDL')
769
782
  check_player(24, 'David', 'Murray', :gender => 'M', :fide_rating => 2023, :fed => nil, :rating => nil, :rank => 34, :title => nil)
770
783
  check_results(24, 2, 0.5)
771
- @t.player(24).results.map(&:score).join('').should == 'LD'
784
+ expect(@t.player(24).results.map(&:score).join('')).to eq('LD')
772
785
  check_player(26, 'Alexandra', 'Wilson', :gender => 'F', :fide_rating => 2020, :fed => 'ENG', :rating => nil, :rank => 29, :title => 'WFM')
773
786
  check_results(26, 6, 2.0)
774
787
  end
@@ -776,9 +789,9 @@ KRAUSE
776
789
  it "should handle Bunratty Major 2011" do
777
790
  file = "#{@s}/bunratty_major_2011.tab"
778
791
  @t = @p.parse_file(file, :fed => :ignore)
779
- @t.should_not be_nil
780
- @t.start.should == "2011-02-25"
781
- @t.finish.should == "2011-02-27"
792
+ expect(@t).not_to be_nil
793
+ expect(@t.start).to eq("2011-02-25")
794
+ expect(@t.finish).to eq("2011-02-27")
782
795
  check_player(1, 'Dan', 'Clancy', :gender => 'M', :fide_rating => nil, :fed => nil, :id => 204, :rating => nil, :rank => 12)
783
796
  check_results(1, 6, 4)
784
797
  check_player(10, 'Phillip', 'Foenander', :gender => 'M', :fide_rating => nil, :fed => nil, :id => 7168, :rating => nil, :rank => 18)
@@ -789,27 +802,33 @@ KRAUSE
789
802
 
790
803
  it "should handle bunratty_minor_2011.tab" do
791
804
  file = "#{@s}/bunratty_minor_2011.tab"
792
- lambda { @p.parse_file!(file, :fed => :ignore) }.should_not raise_error
805
+ expect { @p.parse_file!(file, :fed => :ignore) }.not_to raise_error
793
806
  end
794
807
 
795
808
  it "should handle Bunratty Challengers 2011" do
796
809
  file = "#{@s}/bunratty_challengers_2011.tab"
797
- lambda { @p.parse_file!(file, :fed => :ignore) }.should_not raise_error
810
+ expect { @p.parse_file!(file, :fed => :ignore) }.not_to raise_error
798
811
  end
799
812
 
800
813
  it "should handle Irish Intermediate Championships 2011" do
801
814
  file = "#{@s}/irish_intermediate_champs_2011.tab"
802
- lambda { @p.parse_file!(file) }.should_not raise_error
815
+ expect { @p.parse_file!(file) }.not_to raise_error
803
816
  end
804
817
 
805
818
  it "should handle Irish Junior Championships 2011" do
806
819
  file = "#{@s}/irish_junior_champs_2011.tab"
807
- lambda { @p.parse_file!(file) }.should_not raise_error
820
+ expect { @p.parse_file!(file) }.not_to raise_error
821
+ end
822
+
823
+ it "should handle Cork Major 2018 (Swiss Master format)" do
824
+ file = "#{@s}/cork_major_2018_swissmaster.tab"
825
+ @t = @p.parse_file(file, :fed => :ignore)
826
+ check_results(1, 6, 3.5)
808
827
  end
809
828
 
810
829
  it "should handle a file with a BOM" do
811
830
  file = "#{@s}/armstrong_2012_with_bom.tab"
812
- lambda { @p.parse_file!(file) }.should_not raise_error
831
+ expect { @p.parse_file!(file) }.not_to raise_error
813
832
  end
814
833
  end
815
834
  end