From 608f7b693a26fb18a6c7a41fd9790f58a4f5e9d2 Mon Sep 17 00:00:00 2001 From: swaits Date: Wed, 11 May 2005 01:15:56 +0000 Subject: [PATCH] work on xmlrate.rb --- rb/glicko2_test.rb | 1 + rb/xmlrate.rb | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/rb/glicko2_test.rb b/rb/glicko2_test.rb index 70d6d84..46d1012 100644 --- a/rb/glicko2_test.rb +++ b/rb/glicko2_test.rb @@ -23,5 +23,6 @@ class TestGlicko2 < Test::Unit::TestCase assert_in_delta(1464.05,a.rating,0.01) assert_in_delta(151.516,a.deviation,0.01) end + end diff --git a/rb/xmlrate.rb b/rb/xmlrate.rb index 6909c22..87b709c 100644 --- a/rb/xmlrate.rb +++ b/rb/xmlrate.rb @@ -1,5 +1,6 @@ require "rexml/document" +require "glicko2" file = File.new( "../py/data/hockey-2005.xml" ) @@ -8,6 +9,8 @@ doc = REXML::Document.new(file) # each rating doc doc.elements.each("ratingdoc") do |root| + players = Hash.new + # each player root.elements.each("player") do |player| @@ -27,6 +30,7 @@ doc.elements.each("ratingdoc") do |root| variance = player.elements["variance"].text end + players[name] = Glicko2.new(rating.to_f,deviation.to_f,variance.to_f) puts name,rating,deviation,variance puts @@ -37,10 +41,13 @@ doc.elements.each("ratingdoc") do |root| # each regular game period.elements.each("game") do |game| - puts "home",game.elements["home"].text - puts "away",game.elements["away"].text - puts "result",game.elements["result"].text - puts + + home = game.elements["home"].text + away = game.elements["away"].text + result = game.elements["result"].text + + players[home].add_result( players[away], result.to_f ) + players[away].add_result( players[home], 1.0 - result.to_f ) end # each race @@ -51,6 +58,10 @@ doc.elements.each("ratingdoc") do |root| puts end + # update all players + players.each_value { |p| p.update } + players.each { |p,r| puts p,r.rating } + end end