1#!/usr/bin/perl
2
3use lib qw/t lib/;
4use strict;
5use warnings;
6use Test::More tests => 21;
7
8use Games::Tournament::RoundRobin;
9use Games::League::Member;
10
11my $t = Games::Tournament::RoundRobin->new( v => 4, league => [ 0,1,2,3 ]);
12is($t->member(0), 0, 'member 0');
13is($t->member(1), 1, 'member 1');
14is($t->member(2), 2, 'member 2');
15is($t->member(3), 3, 'member 3');
16
17$t = Games::Tournament::RoundRobin->new( v => 19, league => [ 0..18 ]);
18is($t->member(0), 0, 'member 0');
19is($t->member(1), 1, 'member 1');
20is($t->member(2), 2, 'member 2');
21is($t->member(10), 10, 'member 10');
22is($t->member(17), 17, 'member 17');
23is($t->member(18), 18, 'member 18');
24is($t->member(19), 19, 'member 19');
25
26is(Games::Tournament::RoundRobin->new( v => 3, league => [qw/Me You It/])->member(0), 'Me', 'member($index) with league array of strings');
27is(Games::Tournament::RoundRobin->new( v => 3, league => [qw/Me You It/])->member('You'), 'You', 'member($name), with league array of strings');
28
29is(Games::Tournament::RoundRobin->new( v => 5, league => { Me => 0, You => 1, It => 2 } )->member(1), 0, 'member($index): hash with numerical values');
30TODO: { local $TODO = 'Discarded key, no way to find member($name)';
31is(Games::Tournament::RoundRobin->new( v => 5, league => { Me => 0, You => 1, It => 2 } )->member('Me'), 0, 'member($name): hash with numerical values');
32}
33
34is(Games::Tournament::RoundRobin->new( v => 5, league => { Me => 'Me', You => 'You', It => 'It' } )->member(3), 'Bye', 'member($index): hash with string values');
35is (Games::Tournament::RoundRobin->new( v => 5, league => { Me => 'Me', You => 'You', It => 'It' } )->member('Me'), 'Me', 'member($name): hash with string values');
36
37use Games::League::Member;
38
39my $m = Games::League::Member->new( index => 0, name => 'Me' );
40my $y = Games::League::Member->new( index => 1, name => 'You' );
41my $i = Games::League::Member->new( index => 2, name => 'It' );
42
43$t = Games::Tournament::RoundRobin->new( league => [ $m, $y, $i ] );
44is( $t->member(2), $i, 'member($index): array of objects');
45my $bye = $t->member(3);
46is($t->member('Bye'), $bye, 'member($name): array of objects');
47
48my $u = Games::League::Member->new( index => 3, name => 'Us' );
49my $a = Games::League::Member->new( index => 4, name => 'All' );
50$t = Games::Tournament::RoundRobin->new( v => 5, league => { Me => $m, You => $y, It => $i, Us => $u, All => $a } );
51is( $t->member(4), $a, 'member($index): hash of objects');
52$bye = $t->member(5);
53is($t->member('Bye'), $bye, 'member($name): hash of objects');
54