You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2012/03/28 18:45:45 UTC
svn commit: r1306461 - in
/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo: ./
EloTestCase.java SimplePlayersRank.java
Author: simonetripodi
Date: Wed Mar 28 16:45:45 2012
New Revision: 1306461
URL: http://svn.apache.org/viewvc?rev=1306461&view=rev
Log:
added first ELO test implementation
Added:
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java (with props)
commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java (with props)
Added: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java?rev=1306461&view=auto
==============================================================================
--- commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java (added)
+++ commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java Wed Mar 28 16:45:45 2012
@@ -0,0 +1,91 @@
+package org.apache.commons.graph.elo;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.apache.commons.graph.elo.GameResult.WIN;
+
+import static org.apache.commons.graph.CommonsGraph.eloRate;
+import static org.apache.commons.graph.CommonsGraph.newDirectedMutableGraph;
+
+import org.apache.commons.graph.DirectedGraph;
+import org.apache.commons.graph.builder.AbstractGraphConnection;
+import org.junit.Test;
+
+/**
+ * Sample taken from <a href="http://www.teamliquid.net/forum/viewmessage.php?topic_id=253017">teamliquid</a>
+ */
+public final class EloTestCase
+{
+
+ @Test
+ public void performElo()
+ {
+ DirectedGraph<String, GameResult> tournament =
+ newDirectedMutableGraph( new AbstractGraphConnection<String, GameResult>()
+ {
+
+ @Override
+ public void connect()
+ {
+ String zenio = addVertex( "Zenio" );
+ String marineking = addVertex( "Marineking" );
+ String hongun = addVertex( "Hongun" );
+ String nestea = addVertex( "Nestea" );
+ String tester = addVertex( "Tester" );
+ String nada = addVertex( "Nada" );
+ String rainbow = addVertex( "Rainbow" );
+ String thewind = addVertex( "Thewind" );
+ String inka = addVertex( "Inka" );
+ String maka = addVertex( "Maka" );
+ String ensnare = addVertex( "Ensnare" );
+ String kyrix = addVertex( "Kyrix" );
+ String killer = addVertex( "Killer" );
+ String slayersboxer = addVertex( "Slayersboxer" );
+ String fruitdealer = addVertex( "Fruitdealer" );
+ String genius = addVertex( "Genius" );
+
+ // no draws
+ addEdge( WIN ).from( zenio ).to( marineking );
+ addEdge( WIN ).from( fruitdealer ).to( hongun );
+ addEdge( WIN ).from( genius ).to( nestea );
+ addEdge( WIN ).from( tester ).to( nada );
+ addEdge( WIN ).from( thewind ).to( rainbow );
+ addEdge( WIN ).from( maka ).to( inka );
+ addEdge( WIN ).from( kyrix ).to( ensnare );
+ addEdge( WIN ).from( slayersboxer ).to( killer );
+ addEdge( WIN ).from( marineking ).to( fruitdealer );
+ addEdge( WIN ).from( tester ).to( genius );
+ addEdge( WIN ).from( thewind ).to( maka );
+ addEdge( WIN ).from( kyrix ).to( slayersboxer );
+ addEdge( WIN ).from( marineking ).to( tester );
+ addEdge( WIN ).from( kyrix ).to( thewind );
+ addEdge( WIN ).from( kyrix ).to( marineking );
+ }
+
+ } );
+
+ PlayersRank<String> playersRank = new SimplePlayersRank();
+
+ eloRate( tournament ).werePlayersArRankedIn( playersRank ).withKFactor( 80 );
+
+ System.out.println( playersRank );
+ }
+
+}
Propchange: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/EloTestCase.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java?rev=1306461&view=auto
==============================================================================
--- commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java (added)
+++ commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java Wed Mar 28 16:45:45 2012
@@ -0,0 +1,51 @@
+package org.apache.commons.graph.elo;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Map;
+import java.util.TreeMap;
+
+final class SimplePlayersRank
+ implements PlayersRank<String>
+{
+
+ private final Map<String, Double> ranks = new TreeMap<String, Double>();
+
+ public Double getRanking( String player )
+ {
+ if ( !ranks.containsKey( player ) )
+ {
+ return 0D;
+ }
+ return ranks.get( player );
+ }
+
+ public void updateRanking( String player, Double ranking )
+ {
+ ranks.put( player, ranking );
+ }
+
+ @Override
+ public String toString()
+ {
+ return ranks.toString();
+ }
+
+}
Propchange: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/elo/SimplePlayersRank.java
------------------------------------------------------------------------------
svn:mime-type = text/plain