[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kajongg/sid] src: kajonggtest: use names for field numbers
From:       Wolfgang Rohdewald <wolfgang () rohdewald ! de>
Date:       2013-10-31 21:21:01
Message-ID: E1Vbzfp-0002lj-P6 () scm ! kde ! org
[Download RAW message or body]

Git commit 69de7b6df1d1fcacda28430f90b79ad1f043e75c by Wolfgang Rohdewald.
Committed on 28/10/2013 at 21:53.
Pushed by wrohdewald into branch 'sid'.

kajonggtest: use names for field numbers

M  +16   -9    src/kajonggtest.py

http://commits.kde.org/kajongg/69de7b6df1d1fcacda28430f90b79ad1f043e75c

diff --git a/src/kajonggtest.py b/src/kajonggtest.py
index 94bde28..bb622d3 100755
--- a/src/kajonggtest.py
+++ b/src/kajonggtest.py
@@ -26,6 +26,13 @@ from optparse import OptionParser
 from common import Debug
 from util import removeIfExists
 
+# fields in row:
+RULESET = 0
+AI = 1
+GAME = 2
+TAGS = 3
+PLAYERS = 4
+
 def neutralize(rows):
     """remove things we do not want to compare"""
     for row in rows:
@@ -51,8 +58,8 @@ def readGames(csvFile):
     allRows = set(tuple(x) for x in allRows)
     games = dict()
     # build set of rows for every ai
-    for variant in set(tuple(x[:2]) for x in allRows):
-        games[variant] = frozenset(x for x in allRows if tuple(x[:2]) == variant)
+    for variant in set(tuple(x[:GAME]) for x in allRows):
+        games[variant] = frozenset(x for x in allRows if tuple(x[:GAME]) == variant)
     return games
 
 def printDifferingResults(rowLists):
@@ -61,13 +68,13 @@ def printDifferingResults(rowLists):
     allGameIds = {}
     for rows in rowLists:
         for row in rows:
-            rowId = row[2]
+            rowId = row[GAME]
             if rowId not in allGameIds:
                 allGameIds[rowId] = []
             allGameIds[rowId].append(row)
     differing = []
     for key, value in allGameIds.items():
-        if len(set(tuple(list(x)[1:]) for x in value)) != 1:
+        if len(set(tuple(list(x)[GAME:]) for x in value)) != 1:
             differing.append(key)
     if not differing:
         print 'no games differ'
@@ -81,11 +88,11 @@ def evaluate(games):
         return
     commonGames = None
     for variant, rows in games.items():
-        gameIds = set(x[2] for x in rows)
+        gameIds = set(x[GAME] for x in rows)
         if len(gameIds) != len(rows):
             print 'ruleset "%s" AI "%s" has different rows for games' % (variant[0], \
variant[1]),  for game in gameIds:
-                if len([x for x in rows if x[2] == game]) > 1:
+                if len([x for x in rows if x[GAME] == game]) > 1:
                     print game,
             print
             return
@@ -105,7 +112,7 @@ def evaluate(games):
         print '{ruleset:<25} {ai:<20} {games:>5}  '.format(ruleset = ruleset[:25], \
ai=aiVariant[:20],  games=len(commonGames)),
         for playerIdx in range(4):
-            print '{p:>8}'.format(p=sum(int(x[4+playerIdx*4]) for x in rows if x[1] \
in commonGames)), +            print '{p:>8}'.format(p=sum(int(x[PLAYER+playerIdx*4]) \
for x in rows if x[GAME] in commonGames)),  print
     print
     print 'all games:'
@@ -115,7 +122,7 @@ def evaluate(games):
             print '{ruleset:<25} {ai:<20} {rows:>5}  '.format(ruleset=ruleset[:25], \
ai=aiVariant[:20],  rows=len(rows)),
             for playerIdx in range(4):
-                print '{p:>8}'.format(p=sum(int(x[5+playerIdx*4]) for x in rows)),
+                print '{p:>8}'.format(p=sum(int(x[PLAYER+1+playerIdx*4]) for x in \
rows)),  print
 
 def proposeGames(games, optionAIVariants, rulesets):
@@ -124,7 +131,7 @@ def proposeGames(games, optionAIVariants, rulesets):
     if not games:
         return []
     for key, value in games.items():
-        games[key] = frozenset(int(x[2]) for x in value)  # we only want the game
+        games[key] = frozenset(int(x[GAME]) for x in value)  # we only want the game
     for ruleset in rulesets.split(','):
         for aiVariant in optionAIVariants.split(','):
             variant = tuple([ruleset, aiVariant])


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic