rpi-calculator 0.1.1 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe9f6cbe5a2d86bdb0df8cc879ba181ccae27ce7
4
- data.tar.gz: c497116aa966d9a8c0ded0514821e074b0439a24
3
+ metadata.gz: 1f53e5620fb6cc90d905cfbf6f55a29a27fb6f79
4
+ data.tar.gz: 42d390dc079ed74c5dcef40544c6a6ae047f8cd5
5
5
  SHA512:
6
- metadata.gz: 09beefe6335bd4524e31d2fd6ffb24da1e3c115d1c040da45a7316b3807bd65b777105871644877ba13cc2675048add676a1b535e130ad860d066cd87ec32f51
7
- data.tar.gz: 468510c00225638661f858abff7db3e0cd25bbe882060e4c39537887c454bc34081954533ff33d292ca6be368c4c1c65840e28055e800faf91df77cc313b4185
6
+ metadata.gz: 345b0c263347bd011edd83ab3da855c5ec79eff9729132b6b35764f3a4bb956d8cca756723a32939390cffaff18b1222f49b95b73e953119da37a73068eef0ba
7
+ data.tar.gz: 1fa7c9b66c0328ea12646bff5658341fa3136afe3285a30c4dd20bca9ae37193844b184fd678a0d6706ef66036ade9848b43ba067338ad6301931504aec08e70
@@ -9,9 +9,13 @@ module CrashingTheDance
9
9
  # also use fixtures to test them. simple, lightweight.
10
10
  def self.calculate(teams, games)
11
11
  by_team = games_by_team(teams, games)
12
- teams = calculate_rpi teams, by_team
12
+ teams = build_rpi teams, by_team
13
13
  calculate_owp teams, by_team
14
14
  calculate_oowp teams
15
+ calculate_conference_owp teams, by_team
16
+ calculate_conference_oowp teams
17
+ calculate_nonconference_owp teams, by_team
18
+ calculate_nonconference_oowp teams
15
19
  teams
16
20
  end
17
21
 
@@ -29,7 +33,31 @@ module CrashingTheDance
29
33
  end
30
34
  end
31
35
 
32
- def self.calculate_rpi(teams, games_by_team)
36
+ def self.calculate_conference_oowp(teams)
37
+ teams.each do |team|
38
+ team.calculate_conference_oowp teams
39
+ end
40
+ end
41
+
42
+ def self.calculate_conference_owp(teams, games_by_team)
43
+ teams.each do |team|
44
+ team.calculate_conference_owp(games_by_team)
45
+ end
46
+ end
47
+
48
+ def self.calculate_nonconference_oowp(teams)
49
+ teams.each do |team|
50
+ team.calculate_nonconference_oowp teams
51
+ end
52
+ end
53
+
54
+ def self.calculate_nonconference_owp(teams, games_by_team)
55
+ teams.each do |team|
56
+ team.calculate_nonconference_owp(games_by_team)
57
+ end
58
+ end
59
+
60
+ def self.build_rpi(teams, games_by_team)
33
61
  teams.map { |team| RPI.new team, games_by_team[team] }
34
62
  end
35
63
 
@@ -54,6 +54,10 @@ module CrashingTheDance
54
54
  @which_team == :visitor && !neutral?
55
55
  end
56
56
 
57
+ def conference?
58
+ game.conference?
59
+ end
60
+
57
61
  private
58
62
 
59
63
  def scores
@@ -1,14 +1,19 @@
1
1
  module CrashingTheDance
2
2
  module RpiCalculator
3
3
  class RPI
4
- attr_reader :team, :games, :wins, :losses, :rpi_wins, :rpi_losses
4
+ attr_reader :team,
5
+ :games, :games_conference, :games_nonconference,
6
+ :wins, :losses,
7
+ :rpi_wins, :rpi_losses,
8
+ :wins_conference, :losses_conference,
9
+ :rpi_wins_conference, :rpi_losses_conference,
10
+ :wins_nonconference, :losses_nonconference,
11
+ :rpi_wins_nonconference, :rpi_losses_nonconference
5
12
 
6
13
  def initialize(team, games)
7
14
  @team = team
8
- @games = games
9
- @owp = 0.0
10
- @oowp = 0.0
11
- @rpi = nil
15
+ initialize_games(games)
16
+ initialize_rpi
12
17
  calculate_record
13
18
  end
14
19
 
@@ -28,6 +33,22 @@ module CrashingTheDance
28
33
  end
29
34
  end
30
35
 
36
+ def rpi_win_percentage_conference
37
+ if games_conference.count > 0
38
+ rpi_wins_conference / (rpi_wins_conference + rpi_losses_conference)
39
+ else
40
+ 0.0
41
+ end
42
+ end
43
+
44
+ def rpi_win_percentage_nonconference
45
+ if games_nonconference.count > 0
46
+ rpi_wins_nonconference / (rpi_wins_nonconference + rpi_losses_nonconference)
47
+ else
48
+ 0.0
49
+ end
50
+ end
51
+
31
52
  def owp
32
53
  @owp
33
54
  end
@@ -36,10 +57,34 @@ module CrashingTheDance
36
57
  @oowp
37
58
  end
38
59
 
60
+ def owp_conference
61
+ @owp_conference
62
+ end
63
+
64
+ def oowp_conference
65
+ @oowp_conference
66
+ end
67
+
68
+ def owp_nonconference
69
+ @owp_nonconference
70
+ end
71
+
72
+ def oowp_nonconference
73
+ @oowp_nonconference
74
+ end
75
+
39
76
  def rpi
40
77
  @rpi ||= calculate_rpi
41
78
  end
42
79
 
80
+ def rpi_conference
81
+ @rpi_conference ||= calculate_rpi_conference
82
+ end
83
+
84
+ def rpi_nonconference
85
+ @rpi_nonconference ||= calculate_rpi_nonconference
86
+ end
87
+
43
88
  # To calculate opponent's winning percentage (OWP), you remove games against
44
89
  # the team in question.
45
90
  # However, for the purpose of calculating OWP and OOWP, use standard WP.
@@ -66,12 +111,84 @@ module CrashingTheDance
66
111
  end
67
112
  end
68
113
 
114
+ # hate this repitition but not yet sure how to consolidate
115
+ # the logic is roughly the same, but they
116
+ # set separate instance variables
117
+ def calculate_conference_owp(games_by_team)
118
+ if games_conference.count > 0
119
+ sum_owp = games_conference.inject(0.0) do |sum, game|
120
+ sked = opponent_schedule game.opponent, games_by_team
121
+ ow = sked.inject(0) { |wins, og| wins + og.wins }
122
+ sum + (sked.empty? ? 0.0 : (ow.to_f / sked.count.to_f))
123
+ end
124
+ @owp_conference = sum_owp / games_conference.count.to_f
125
+ end
126
+ end
127
+
128
+ def calculate_conference_oowp(all_teams)
129
+ if games_conference.count > 0
130
+ sum_oowp = games_conference.inject(0.0) do |sum, game|
131
+ opponent = all_teams.find { |t| game.opponent.eql? t.team }
132
+ sum + opponent.owp
133
+ end
134
+ @oowp_conference = sum_oowp / games_conference.count.to_f
135
+ end
136
+ end
137
+
138
+ def calculate_nonconference_owp(games_by_team)
139
+ if games_nonconference.count > 0
140
+ sum_owp = games_nonconference.inject(0.0) do |sum, game|
141
+ sked = opponent_schedule game.opponent, games_by_team
142
+ ow = sked.inject(0) { |wins, og| wins + og.wins }
143
+ sum + (sked.empty? ? 0.0 : (ow.to_f / sked.count.to_f))
144
+ end
145
+ @owp_nonconference = sum_owp / games_nonconference.count.to_f
146
+ end
147
+ end
148
+
149
+ def calculate_nonconference_oowp(all_teams)
150
+ if games_nonconference.count > 0
151
+ sum_oowp = games_nonconference.inject(0.0) do |sum, game|
152
+ opponent = all_teams.find { |t| game.opponent.eql? t.team }
153
+ sum + opponent.owp
154
+ end
155
+ @oowp_nonconference = sum_oowp / games_nonconference.count.to_f
156
+ end
157
+ end
158
+
69
159
  private
70
160
 
161
+ def initialize_games(games)
162
+ @games = games
163
+ @games_conference = games.select { |game| game.conference? }
164
+ @games_nonconference = games.reject { |game| game.conference? }
165
+ end
166
+
167
+ def initialize_rpi
168
+ @owp = 0.0
169
+ @oowp = 0.0
170
+ @owp_conference = 0.0
171
+ @oowp_conference = 0.0
172
+ @owp_nonconference = 0.0
173
+ @oowp_nonconference = 0.0
174
+ @rpi = nil
175
+ @rpi_conference = nil
176
+ @rpi_nonconference = nil
177
+ end
178
+
71
179
  def calculate_rpi
72
180
  0.25 * rpi_win_percentage + 0.5 * owp + 0.25 * oowp
73
181
  end
74
182
 
183
+ # these are common, how can we consolidate?
184
+ def calculate_rpi_conference
185
+ 0.25 * rpi_win_percentage_conference + 0.5 * owp_conference + 0.25 * oowp_conference
186
+ end
187
+
188
+ def calculate_rpi_nonconference
189
+ 0.25 * rpi_win_percentage_nonconference + 0.5 * owp_nonconference + 0.25 * oowp_nonconference
190
+ end
191
+
75
192
  # filters out games against this team
76
193
  def opponent_schedule(opponent, games_by_team)
77
194
  all = games_by_team[opponent] || []
@@ -80,13 +197,53 @@ module CrashingTheDance
80
197
 
81
198
  # w/l is commonly used, so can we extract it to a module?
82
199
  def calculate_record
200
+ initialize_wl
201
+ initialize_wl_conference
202
+ initialize_wl_nonconference
203
+ games.each do |game|
204
+ calculate_wl game
205
+ calculate_wl_conference game
206
+ calculate_wl_nonconference game
207
+ end
208
+ end
209
+
210
+ def initialize_wl
83
211
  @wins = @rpi_wins = 0
84
212
  @losses = @rpi_losses = 0
85
- games.each do |game|
213
+ end
214
+
215
+ def initialize_wl_conference
216
+ @wins_conference = @rpi_wins_conference = 0
217
+ @losses_conference = @rpi_losses_conference = 0
218
+ end
219
+
220
+ def initialize_wl_nonconference
221
+ @wins_nonconference = @rpi_wins_nonconference = 0
222
+ @losses_nonconference = @rpi_losses_nonconference = 0
223
+ end
224
+
225
+ def calculate_wl(game)
86
226
  @wins += 1 if game.win?
87
227
  @losses += 1 if game.loss?
88
228
  @rpi_wins += game.rpi_wins
89
229
  @rpi_losses += game.rpi_losses
230
+ end
231
+
232
+ def calculate_wl_conference(game)
233
+ if game.conference?
234
+ @wins_conference += 1 if game.win?
235
+ @losses_conference += 1 if game.loss?
236
+ @rpi_wins_conference += game.rpi_wins
237
+ @rpi_losses_conference += game.rpi_losses
238
+ end
239
+ end
240
+
241
+ def calculate_wl_nonconference(game)
242
+ unless game.conference?
243
+ @wins_nonconference += 1 if game.win?
244
+ @losses_nonconference += 1 if game.loss?
245
+ @rpi_wins_nonconference += game.rpi_wins
246
+ @rpi_losses_nonconference += game.rpi_losses
90
247
  end
91
248
  end
92
249
  end
@@ -1,5 +1,5 @@
1
1
  module CrashingTheDance
2
2
  module RpiCalculator
3
- VERSION = "0.1.1"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -0,0 +1,23 @@
1
+ vis_team,vis_score,home_team,home_score,neutral,conference
2
+ Notre Dame,0,Valparaiso,1,,C
3
+ Valparaiso,1,Indiana,0,,C
4
+ Valparaiso,0,Purdue,1,,C
5
+ Michigan State,0,Notre Dame,1,
6
+ Notre Dame,0,Purdue,1
7
+ Notre Dame,0,IUPUI,1
8
+ Indiana,0,Kentucky,1
9
+ Indiana,0,Ball State,1
10
+ Duke,0,Purdue,1,N
11
+ UCLA,0,Purdue,1
12
+ IUPUI,0,Duke,1,N
13
+ Duke,1,IUPUI,0,
14
+ IUPUI,0,Duke,1,
15
+ IUPUI,0,Duke,1
16
+ IUPUI,0,UCLA,1
17
+ Ball State,0,UCLA,1
18
+ UCLA,1,Ball State,0
19
+ Kentucky,0,Ball State,1
20
+ Schmoo,0,Michigan State,1
21
+ Schmoo,0,Michigan State,1
22
+ Schmoo,0,Kentucky,1
23
+ Schmoo,0,Kentucky,1,N
@@ -0,0 +1,23 @@
1
+ vis_team,vis_score,home_team,home_score,neutral,conference
2
+ Notre Dame,0,Valparaiso,1,,
3
+ Valparaiso,1,Indiana,0,,
4
+ Valparaiso,0,Purdue,1,,
5
+ Michigan State,0,Notre Dame,1,
6
+ Notre Dame,0,Purdue,1
7
+ Notre Dame,0,IUPUI,1
8
+ Indiana,0,Kentucky,1
9
+ Indiana,0,Ball State,1
10
+ Duke,0,Purdue,1,N
11
+ UCLA,0,Purdue,1
12
+ IUPUI,0,Duke,1,N
13
+ Duke,1,IUPUI,0,
14
+ IUPUI,0,Duke,1,
15
+ IUPUI,0,Duke,1
16
+ IUPUI,0,UCLA,1
17
+ Ball State,0,UCLA,1
18
+ UCLA,1,Ball State,0
19
+ Kentucky,0,Ball State,1
20
+ Schmoo,0,Michigan State,1
21
+ Schmoo,0,Michigan State,1
22
+ Schmoo,0,Kentucky,1
23
+ Schmoo,0,Kentucky,1,N
@@ -0,0 +1,12 @@
1
+ name
2
+ Valparaiso
3
+ Notre Dame
4
+ Indiana
5
+ Purdue
6
+ Michigan State
7
+ IUPUI
8
+ Kentucky
9
+ Ball State
10
+ Duke
11
+ UCLA
12
+ Schmoo
@@ -0,0 +1,12 @@
1
+ name
2
+ Valparaiso
3
+ Notre Dame
4
+ Indiana
5
+ Purdue
6
+ Michigan State
7
+ IUPUI
8
+ Kentucky
9
+ Ball State
10
+ Duke
11
+ UCLA
12
+ Schmoo
@@ -70,6 +70,18 @@ describe "RPI calculator" do
70
70
  expect(valpo.win_percentage).to be_within(0.0001).of(0.0000)
71
71
  end
72
72
 
73
+ it "calculates the right conference win/loss record" do
74
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
75
+ expect(valpo.wins_conference).to eq(0)
76
+ expect(valpo.losses_conference).to eq(0)
77
+ end
78
+
79
+ it "calculates the right nonconference win/loss record" do
80
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
81
+ expect(valpo.wins_nonconference).to eq(0)
82
+ expect(valpo.losses_nonconference).to eq(0)
83
+ end
84
+
73
85
  it "calculates the RPI OWP" do
74
86
  valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
75
87
  expect(valpo.owp).to be_within(0.0001).of(0.0)
@@ -84,6 +96,16 @@ describe "RPI calculator" do
84
96
  valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
85
97
  expect(valpo.rpi).to be_within(0.0001).of(0.0)
86
98
  end
99
+
100
+ it "calculates the conference RPI" do
101
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
102
+ expect(valpo.rpi_conference).to be_within(0.0001).of(0.0)
103
+ end
104
+
105
+ it "calculates the nonconference RPI" do
106
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
107
+ expect(valpo.rpi_nonconference).to be_within(0.0001).of(0.0)
108
+ end
87
109
  end
88
110
 
89
111
  # This comes from Jerry Palm's example RPI scenario at
@@ -102,6 +124,18 @@ describe "RPI calculator" do
102
124
  expect(valpo.win_percentage).to be_within(0.0001).of(0.6667)
103
125
  end
104
126
 
127
+ it "calculates the right conference win/loss record" do
128
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
129
+ expect(valpo.wins_conference).to eq(0)
130
+ expect(valpo.losses_conference).to eq(0)
131
+ end
132
+
133
+ it "calculates the right non-conference win/loss record" do
134
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
135
+ expect(valpo.wins_nonconference).to eq(2)
136
+ expect(valpo.losses_nonconference).to eq(1)
137
+ end
138
+
105
139
  it "calculates the RPI win/loss record" do
106
140
  valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
107
141
  expect(valpo.rpi_wins).to be_within(0.0001).of(2.0)
@@ -125,6 +159,134 @@ describe "RPI calculator" do
125
159
  end
126
160
  end
127
161
 
162
+ # the same as the Palm scenario with all Valpo games as conference games
163
+ # using all games will make it easier to verify ground truth
164
+ context "the Palm scenario as conference" do
165
+ before(:each) do
166
+ @teams = teams_fixture 'palm-conference'
167
+ games = games_fixture 'palm-conference'
168
+ @rpi = CrashingTheDance::RpiCalculator.calculate @teams, games
169
+ end
170
+
171
+ it "calculates the right conference win/loss record" do
172
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
173
+ expect(valpo.wins_conference).to eq(2)
174
+ expect(valpo.losses_conference).to eq(1)
175
+ end
176
+
177
+ it "calculates the conference RPI win/loss record" do
178
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
179
+ expect(valpo.rpi_wins_conference).to be_within(0.0001).of(2.0)
180
+ expect(valpo.rpi_losses_conference).to be_within(0.0001).of(0.6)
181
+ end
182
+
183
+ it "calculates the conference RPI" do
184
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
185
+ expect(valpo.rpi_conference).to be_within(0.0001).of(0.5777)
186
+ end
187
+
188
+ it "calculates the nonconference RPI" do
189
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
190
+ expect(valpo.rpi_nonconference).to be_within(0.0001).of(0.0000)
191
+ end
192
+
193
+ it "calculates the right non-conference win/loss record" do
194
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
195
+ expect(valpo.wins_nonconference).to eq(0)
196
+ expect(valpo.losses_nonconference).to eq(0)
197
+ end
198
+
199
+ it "calculates the non-conference RPI win/loss record" do
200
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
201
+ expect(valpo.rpi_wins_nonconference).to be_within(0.0001).of(0.0)
202
+ expect(valpo.rpi_losses_nonconference).to be_within(0.0001).of(0.0)
203
+ end
204
+
205
+ it "calculates the conference RPI OWP" do
206
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
207
+ expect(valpo.owp_conference).to be_within(0.0001).of(0.4444)
208
+ end
209
+
210
+ it "calculates the conference RPI OOWP" do
211
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
212
+ expect(valpo.oowp_conference).to be_within(0.0001).of(0.6528)
213
+ end
214
+
215
+ it "calculates the non-conference RPI OWP" do
216
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
217
+ expect(valpo.owp_nonconference).to be_within(0.0001).of(0.0000)
218
+ end
219
+
220
+ it "calculates the nonconference RPI OOWP" do
221
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
222
+ expect(valpo.oowp_nonconference).to be_within(0.0001).of(0.0000)
223
+ end
224
+ end
225
+
226
+ # the same as the Palm scenario with all Valpo games as conference games
227
+ # using all games will make it easier to verify ground truth
228
+ context "the Palm scenario as nonconference" do
229
+ before(:each) do
230
+ @teams = teams_fixture 'palm-nonconference'
231
+ games = games_fixture 'palm-nonconference'
232
+ @rpi = CrashingTheDance::RpiCalculator.calculate @teams, games
233
+ end
234
+
235
+ it "calculates the right nonconference win/loss record" do
236
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
237
+ expect(valpo.wins_nonconference).to eq(2)
238
+ expect(valpo.losses_nonconference).to eq(1)
239
+ end
240
+
241
+ it "calculates the nonconference RPI win/loss record" do
242
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
243
+ expect(valpo.rpi_wins_nonconference).to be_within(0.0001).of(2.0)
244
+ expect(valpo.rpi_losses_nonconference).to be_within(0.0001).of(0.6)
245
+ end
246
+
247
+ it "calculates the nonconference RPI" do
248
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
249
+ expect(valpo.rpi_nonconference).to be_within(0.0001).of(0.5777)
250
+ end
251
+
252
+ it "calculates the conference RPI" do
253
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
254
+ expect(valpo.rpi_conference).to be_within(0.0001).of(0.0000)
255
+ end
256
+
257
+ it "calculates the right conference win/loss record" do
258
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
259
+ expect(valpo.wins_conference).to eq(0)
260
+ expect(valpo.losses_conference).to eq(0)
261
+ end
262
+
263
+ it "calculates the conference RPI win/loss record" do
264
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
265
+ expect(valpo.rpi_wins_conference).to be_within(0.0001).of(0.0)
266
+ expect(valpo.rpi_losses_conference).to be_within(0.0001).of(0.0)
267
+ end
268
+
269
+ it "calculates the nonconference RPI OWP" do
270
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
271
+ expect(valpo.owp_nonconference).to be_within(0.0001).of(0.4444)
272
+ end
273
+
274
+ it "calculates the nonconference RPI OOWP" do
275
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
276
+ expect(valpo.oowp_nonconference).to be_within(0.0001).of(0.6528)
277
+ end
278
+
279
+ it "calculates the conference RPI OWP" do
280
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
281
+ expect(valpo.owp_conference).to be_within(0.0001).of(0.0000)
282
+ end
283
+
284
+ it "calculates the conference RPI OOWP" do
285
+ valpo = @rpi.find { |team| team.team.name.eql? "Valparaiso" }
286
+ expect(valpo.oowp_conference).to be_within(0.0001).of(0.0000)
287
+ end
288
+ end
289
+
128
290
  context "full season" do
129
291
  end
130
292
  end
@@ -11,10 +11,14 @@ Team = Struct.new(:name, :id) do
11
11
  end
12
12
  end
13
13
 
14
- Game = Struct.new(:vis_team, :home_team, :vis_score, :home_score, :neutral) do
14
+ Game = Struct.new(:vis_team, :home_team, :vis_score, :home_score, :neutral, :conference) do
15
15
  def neutral?
16
16
  !neutral.nil? && neutral == "N"
17
17
  end
18
+
19
+ def conference?
20
+ !conference.nil? && conference == "C"
21
+ end
18
22
  end
19
23
 
20
24
  def games_fixture(which)
@@ -29,7 +33,7 @@ def games_fixture(which)
29
33
  teams.find { |team| team.name.eql?(row["home_team"]) },
30
34
  row["vis_score"].to_i,
31
35
  row["home_score"].to_i,
32
- row["neutral"])
36
+ row["neutral"], row["conference"])
33
37
  end
34
38
  games
35
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpi-calculator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Cox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-23 00:00:00.000000000 Z
11
+ date: 2014-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,8 +98,12 @@ files:
98
98
  - lib/crashing_the_dance/rpi_calculator/version.rb
99
99
  - rpi-calculator.gemspec
100
100
  - spec/fixtures/games-onegame.csv
101
+ - spec/fixtures/games-palm-conference.csv
102
+ - spec/fixtures/games-palm-nonconference.csv
101
103
  - spec/fixtures/games-palm.csv
102
104
  - spec/fixtures/teams-onegame.csv
105
+ - spec/fixtures/teams-palm-conference.csv
106
+ - spec/fixtures/teams-palm-nonconference.csv
103
107
  - spec/fixtures/teams-palm.csv
104
108
  - spec/fixtures/teams-single.csv
105
109
  - spec/lib/opponent_game_spec.rb
@@ -131,8 +135,12 @@ specification_version: 4
131
135
  summary: On your computer, calculatin' your RPI.
132
136
  test_files:
133
137
  - spec/fixtures/games-onegame.csv
138
+ - spec/fixtures/games-palm-conference.csv
139
+ - spec/fixtures/games-palm-nonconference.csv
134
140
  - spec/fixtures/games-palm.csv
135
141
  - spec/fixtures/teams-onegame.csv
142
+ - spec/fixtures/teams-palm-conference.csv
143
+ - spec/fixtures/teams-palm-nonconference.csv
136
144
  - spec/fixtures/teams-palm.csv
137
145
  - spec/fixtures/teams-single.csv
138
146
  - spec/lib/opponent_game_spec.rb