rrschedule 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/rrschedule.rb +13 -0
  3. data/test/test_rrschedule.rb +28 -28
  4. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.7
1
+ 0.2.8
data/lib/rrschedule.rb CHANGED
@@ -242,6 +242,19 @@ module RRSchedule
242
242
 
243
243
  @cur_date ||= next_game_date(self.start_date,@cur_rule.wday)
244
244
  @schedule ||= []
245
+
246
+ #if one of the team has already plays at this gamedate, we change rule
247
+ if @schedule.size>0
248
+ games_this_date = @schedule.select{|v| v[:gamedate] == @cur_date}
249
+ if games_this_date.select{|g| [game.team_a,game.team_b].include?(g[:team_a]) || [game.team_a,game.team_b].include?(g[:team_b])}.size >0
250
+ @cur_rule_index = (@cur_rule_index < @rules.size-1) ? @cur_rule_index+1 : 0
251
+ @cur_rule = @rules[@cur_rule_index]
252
+ reset_resource_availability
253
+ @cur_gt = get_best_gt(game)
254
+ @cur_ps = get_best_ps(game,@cur_gt)
255
+ @cur_date = next_game_date(@cur_date+=1,@cur_rule.wday)
256
+ end
257
+ end
245
258
 
246
259
  @schedule << {:team_a => game.team_a, :team_b => game.team_b, :gamedate => @cur_date, :ps => @cur_ps, :gt => @cur_gt}
247
260
 
@@ -47,34 +47,34 @@ class TestRrschedule < Test::Unit::TestCase
47
47
  end
48
48
 
49
49
 
50
- # context "extra available resources" do
51
- # setup do
52
- # @s = Schedule.new(
53
- # :teams => %w(a1 a2 a3 a4 a5),
54
- # :rules => [
55
- # Rule.new(
56
- # :wday => 3,
57
- # :gt => ["7:00PM", "9:00PM"],
58
- # :ps => %w(one two three four)
59
- # )
60
- # ]
61
- # ).generate
62
- # end
63
-
64
- # should "have a maximum of (teams/2) games per day" do
65
- # @s.gamedays.each do |gd|
66
- # assert gd.games.size <= @s.teams.size/2
67
- # end
68
- # end
69
-
70
- # should "not have a team that play more than once on a single day" do
71
- # @s.gamedays.each do |gd|
72
- # day_teams = gd.games.collect{|g| [g.team_a,g.team_b]}.flatten
73
- # unique_day_teams = day_teams.uniq
74
- # assert_equal day_teams.size, unique_day_teams.size
75
- # end
76
- # end
77
- # end
50
+ context "extra available resources" do
51
+ setup do
52
+ @s = Schedule.new(
53
+ :teams => %w(a1 a2 a3 a4 a5),
54
+ :rules => [
55
+ Rule.new(
56
+ :wday => 3,
57
+ :gt => ["7:00PM", "9:00PM"],
58
+ :ps => %w(one two three four)
59
+ )
60
+ ]
61
+ ).generate
62
+ end
63
+
64
+ should "have a maximum of (teams/2) games per day" do
65
+ @s.gamedays.each do |gd|
66
+ assert gd.games.size <= @s.teams.size/2
67
+ end
68
+ end
69
+
70
+ should "not have a team that play more than once on a single day" do
71
+ @s.gamedays.each do |gd|
72
+ day_teams = gd.games.collect{|g| [g.team_a,g.team_b]}.flatten
73
+ unique_day_teams = day_teams.uniq
74
+ assert_equal day_teams.size, unique_day_teams.size
75
+ end
76
+ end
77
+ end
78
78
 
79
79
 
80
80
  context "multi flights" do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rrschedule
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.7
5
+ version: 0.2.8
6
6
  platform: ruby
7
7
  authors:
8
8
  - flamontagne
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-23 00:00:00 -04:00
13
+ date: 2011-09-25 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency