From 84b3851cb5dc5aa700c1779175349bff5a385f90 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Tue, 5 Aug 2008 00:14:17 +0100 Subject: [PATCH] git10 - added field to table design that i had neglected to document. apologies. renamed it as well to be more useful, its now PF3B4BChance. more table design cleaning. finished PrintPlayerFlags and renamed to the more appropriate PrintPlayerHudData fixed: imp/tv bug: PFR is blatantly crazy moved the scripts that do regression testing into the testdata directory and renamed that into regression-test --- docs/known-bugs-and-planned-features.txt | 14 ++++-- docs/tabledesign.html | 43 ++++++----------- prepare-git.sh | 4 +- pyfpdb/fpdb_db.py | 2 +- pyfpdb/fpdb_simple.py | 16 +++---- .../PrintPlayerHudData.py | 47 +++++++++++++++++-- {utils => regression-test}/fpdb_util_lib.py | 0 .../ftp-omaha-hi-pl-ring-001-005.txt | 0 .../ftp-stud-hilo-ring-001.txt | 0 .../ftp.6367428246.expected.txt | 0 .../ftp.6929537410.expected.txt | 0 .../ftp.6929553738.expected.txt | 0 {testdata => regression-test}/mysql-dump.sql | 0 {utils => regression-test}/print_hand.py | 0 .../ps-holdem-ring-001to003.txt | 0 .../ps.14519394979.expected.txt | 0 .../ps.14519420999.expected.txt | 0 .../ps.14519433154.expected.txt | 0 regression-test/regression-test.sh | 43 +++++++++++++++++ utils/regression-test.sh | 43 ----------------- 20 files changed, 120 insertions(+), 92 deletions(-) rename utils/PrintPlayerFlags.py => regression-test/PrintPlayerHudData.py (61%) rename {utils => regression-test}/fpdb_util_lib.py (100%) rename {testdata => regression-test}/ftp-omaha-hi-pl-ring-001-005.txt (100%) rename {testdata => regression-test}/ftp-stud-hilo-ring-001.txt (100%) rename {testdata => regression-test}/ftp.6367428246.expected.txt (100%) rename {testdata => regression-test}/ftp.6929537410.expected.txt (100%) rename {testdata => regression-test}/ftp.6929553738.expected.txt (100%) rename {testdata => regression-test}/mysql-dump.sql (100%) rename {utils => regression-test}/print_hand.py (100%) rename {testdata => regression-test}/ps-holdem-ring-001to003.txt (100%) rename {testdata => regression-test}/ps.14519394979.expected.txt (100%) rename {testdata => regression-test}/ps.14519420999.expected.txt (100%) rename {testdata => regression-test}/ps.14519433154.expected.txt (100%) create mode 100755 regression-test/regression-test.sh delete mode 100755 utils/regression-test.sh diff --git a/docs/known-bugs-and-planned-features.txt b/docs/known-bugs-and-planned-features.txt index 93cae5ba..6df5603f 100644 --- a/docs/known-bugs-and-planned-features.txt +++ b/docs/known-bugs-and-planned-features.txt @@ -2,11 +2,13 @@ todolist (db=database, imp=importer, tv=tableviewer) before alpha ============ -PrintPlayerFlag -imp/tv bug: PFR is blatantly crazy -imp(?) bug: handcount is only about 1/2 of what it should be +PrintPlayerFlag - the actual flags verify at least one PrintPlayerFlags -and stud functionality to hud and import-HudData +in tv, select from hud table using named fields rather than the current * + +tv: add in brackets number of hands on which 3B4B is based +imp/tv bug: handcount is only about 1/2 of what it should be +add stud functionality back to imp/tv db+imp+tv WtSD (went to showdown) db+imp+tv W$SD (won $ when seeing showdown - partial win counts partially here) db+imp+tv WwSF (Won when seen flop - partial taken into account) @@ -24,7 +26,7 @@ update install instructions split python requirements, get deep links for windows DL for everything implement error file in importer remove mysql/myisam support. - +ideally HUD before beta =========== @@ -46,6 +48,7 @@ verify at least 2 or 3 sng hands no rush but before 1.0RC ======================== +HTMLify docs and validate them cut down action_types array size to appropriate length make tv work with ftp e.g. by making importer return site as well (easy) make the gui display errors @@ -72,6 +75,7 @@ HTMLify docs can wait till 1.x ================= finish cleaning tabledesign html code +rearrange huddata fields It treats fold due to disconnect as voluntary fold which is not ideal auto-import check for unnecessary db.commit() diff --git a/docs/tabledesign.html b/docs/tabledesign.html index 018ae40b..497d7fa4 100644 --- a/docs/tabledesign.html +++ b/docs/tabledesign.html @@ -38,27 +38,14 @@ players


- -

name

- - -

varchar(32)

- - -


-

- +

name

+

varchar(32)

+


- -

site_id

- - -

smallint

- - -

references sites.id

- +

site_id

+

smallint

+

references sites.id

@@ -73,16 +60,9 @@ players

- -

comment_ts

- - -

datetime (in UTC)

- - -


-

- +

comment_ts

+

datetime (in UTC)

+



@@ -798,6 +778,11 @@ far less relevant.

int

number of hands where player raised before flop

+ +

PF3B4BChance

+

int

+

number of hands where player had chance to 3B or 4B

+

PF3B4B

int

diff --git a/prepare-git.sh b/prepare-git.sh index 7865c4f9..08dd0a5f 100755 --- a/prepare-git.sh +++ b/prepare-git.sh @@ -15,7 +15,7 @@ #In the "official" distribution you can find the license in #agpl-3.0.txt in the docs folder of the package. -rm testdata/*.found.txt -rm utils/*.pyc +rm regression-test/*.found.txt +rm regression-test/*.pyc rm pyfpdb/*.pyc git-add--interactive diff --git a/pyfpdb/fpdb_db.py b/pyfpdb/fpdb_db.py index 62506f0d..cf74dd35 100755 --- a/pyfpdb/fpdb_db.py +++ b/pyfpdb/fpdb_db.py @@ -247,7 +247,7 @@ class fpdb_db: HDs INT, VPIP INT, PFR INT, - PFOtherRaisedBefore INT, + PF3B4BChance INT, PF3B4B INT, sawFlop INT, sawTurn INT, diff --git a/pyfpdb/fpdb_simple.py b/pyfpdb/fpdb_simple.py index 0510ebc6..e2204ec4 100644 --- a/pyfpdb/fpdb_simple.py +++ b/pyfpdb/fpdb_simple.py @@ -1211,7 +1211,7 @@ def calculateHudImport(player_ids, category, action_types): #setup subarrays of the result dictionary. VPIP=[] PFR=[] - PFOtherRaisedBefore=[] + PF3B4BChance=[] PF3B4B=[] sawFlop=[] sawTurn=[] @@ -1230,7 +1230,7 @@ def calculateHudImport(player_ids, category, action_types): #set default values myVPIP=False myPFR=False - myPFOtherRaisedBefore=False #todo + myPF3B4BChance=False #todo myPF3B4B=False mySawFlop=False #todo mySawTurn=False #todo @@ -1251,7 +1251,7 @@ def calculateHudImport(player_ids, category, action_types): heroPfRaiseCount=0 for count in range (len(action_types[street][player])):#finally individual actions currentAction=action_types[street][player][count] - if currentAction!="bet": + if currentAction=="bet": heroPfRaiseCount+=1 if (currentAction=="bet" or currentAction=="call"): myVPIP=True @@ -1303,7 +1303,7 @@ def calculateHudImport(player_ids, category, action_types): #add each value to the appropriate array VPIP.append(myVPIP) PFR.append(myPFR) - PFOtherRaisedBefore.append(myPFOtherRaisedBefore) + PF3B4BChance.append(PF3B4BChance) PF3B4B.append(myPF3B4B) sawFlop.append(mySawFlop) sawTurn.append(mySawTurn) @@ -1322,7 +1322,7 @@ def calculateHudImport(player_ids, category, action_types): #add each array to the to-be-returned dictionary result={'VPIP':VPIP} result['PFR']=PFR - result['PFOtherRaisedBefore']=PFOtherRaisedBefore + result['PF3B4BChance']=PF3B4BChance result['PF3B4B']=PF3B4B result['sawFlop']=sawFlop result['sawTurn']=sawTurn @@ -1372,7 +1372,7 @@ def storeHudData(cursor, category, gametypeId, playerIds, hudImportData): row[4]+=1 #HDs if hudImportData['VPIP'][player]: row[5]+=1 if hudImportData['PFR'][player]: row[6]+=1 - if hudImportData['PFOtherRaisedBefore'][player]: row[7]+=1 + if hudImportData['PF3B4BChance'][player]: row[7]+=1 if hudImportData['PF3B4B'][player]: row[8]+=1 if hudImportData['sawFlop'][player]: row[9]+=1 if hudImportData['sawTurn'][player]: row[10]+=1 @@ -1391,12 +1391,12 @@ def storeHudData(cursor, category, gametypeId, playerIds, hudImportData): if doInsert: #print "playerid before insert:",row[2] cursor.execute("""INSERT INTO HudDataHoldemOmaha - (gametypeId, playerId, activeSeats, HDs, VPIP, PFR, PFOtherRaisedBefore, PF3B4B, sawFlop, sawTurn, sawRiver, sawShowdown, raisedFlop, raisedTurn, raisedRiver, otherRaisedFlop, otherRaisedFlopFold, otherRaisedTurn, otherRaisedTurnFold, otherRaisedRiver, otherRaisedRiverFold) + (gametypeId, playerId, activeSeats, HDs, VPIP, PFR, PF3B4BChance, PF3B4B, sawFlop, sawTurn, sawRiver, sawShowdown, raisedFlop, raisedTurn, raisedRiver, otherRaisedFlop, otherRaisedFlopFold, otherRaisedTurn, otherRaisedTurnFold, otherRaisedRiver, otherRaisedRiverFold) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", (row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21])) else: #print "storing updated hud data line" cursor.execute("""UPDATE HudDataHoldemOmaha - SET HDs=%s, VPIP=%s, PFR=%s, PFOtherRaisedBefore=%s, PF3B4B=%s, sawFlop=%s, sawTurn=%s, sawRiver=%s, sawShowdown=%s, raisedFlop=%s, raisedTurn=%s, raisedRiver=%s, otherRaisedFlop=%s, otherRaisedFlopFold=%s, otherRaisedTurn=%s, otherRaisedTurnFold=%s, otherRaisedRiver=%s, otherRaisedRiverFold=%s + SET HDs=%s, VPIP=%s, PFR=%s, PF3B4BChance=%s, PF3B4B=%s, sawFlop=%s, sawTurn=%s, sawRiver=%s, sawShowdown=%s, raisedFlop=%s, raisedTurn=%s, raisedRiver=%s, otherRaisedFlop=%s, otherRaisedFlopFold=%s, otherRaisedTurn=%s, otherRaisedTurnFold=%s, otherRaisedRiver=%s, otherRaisedRiverFold=%s WHERE gametypeId=%s AND playerId=%s AND activeSeats=%s""", (row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20], row[21], row[1], row[2], row[3])) else: raise FpdbError("todo") diff --git a/utils/PrintPlayerFlags.py b/regression-test/PrintPlayerHudData.py similarity index 61% rename from utils/PrintPlayerFlags.py rename to regression-test/PrintPlayerHudData.py index c77a6296..1c3f4de9 100755 --- a/utils/PrintPlayerFlags.py +++ b/regression-test/PrintPlayerHudData.py @@ -25,6 +25,7 @@ import fpdb_util_lib as ful parser = OptionParser() parser.add_option("-b", "--bigblind", default="2", type="int", help="big blinds in cent") parser.add_option("-c", "--cat", "--category", default="holdem", help="Category, e.g. holdem or studhilo") +parser.add_option("-e", "--seats", default="7", type="int", help="number of active seats") parser.add_option("-g", "--gameType", default="ring", help="Whether its a ringgame (ring) or a tournament (tour)") parser.add_option("-l", "--limit", "--limitType", default="fl", help="Limit Type, one of: nl, pl, fl, cn, cp") parser.add_option("-n", "--name", "--playername", default="Player_1", help="Name of the player to print") @@ -37,7 +38,7 @@ db = MySQLdb.connect("localhost", "fpdb", options.password, "fpdb") cursor = db.cursor() print "Connected to MySQL on localhost. Print Player Flags Utility" - +print "" print "Basic Data" print "==========" print "bigblind:",options.bigblind, "category:",options.cat, "limitType:", options.limit, "name:", options.name, "gameType:", options.gameType, "site:", options.site @@ -51,11 +52,49 @@ gametypeId=cursor.fetchone()[0] cursor.execute("SELECT id FROM players WHERE name=%s", (options.name,)) playerId=cursor.fetchone()[0] -print "siteId:", siteId, "gametypeId:", gametypeId, "playerId:", playerId +cursor.execute("SELECT id FROM HudDataHoldemOmaha WHERE gametypeId=%s AND playerId=%s AND activeSeats=%s",(gametypeId, playerId, options.seats)) +hudDataId=cursor.fetchone()[0] + +print "siteId:", siteId, "gametypeId:", gametypeId, "playerId:", playerId, "hudDataId:", hudDataId + +print "" +print "HUD Raw Hand Counts" +print "===================" + +cursor.execute ("SELECT HDs, VPIP, PFR, PF3B4BChance, PF3B4B FROM HudDataHoldemOmaha WHERE id=%s", (hudDataId,)) +fields=cursor.fetchone() +print "HDs:",fields[0] +print "VPIP:",fields[1] +print "PFR:",fields[2] +print "PF3B4BChance:",fields[3] +print "PF3B4B:",fields[4] +print "" + +cursor.execute ("SELECT sawFlop, sawTurn, sawRiver, sawShowdown FROM HudDataHoldemOmaha WHERE id=%s", (hudDataId,)) +fields=cursor.fetchone() +print "sawFlop:",fields[0] +print "sawTurn:",fields[1] +print "sawRiver:",fields[2] +print "sawShowdown:",fields[3] +print "" + +cursor.execute ("SELECT raisedFlop, raisedTurn, raisedRiver FROM HudDataHoldemOmaha WHERE id=%s", (hudDataId,)) +fields=cursor.fetchone() +print "raisedFlop:",fields[0] +print "raisedTurn:",fields[1] +print "raisedRiver:",fields[2] +print "" + +cursor.execute ("SELECT otherRaisedFlop, otherRaisedFlopFold, otherRaisedTurn, otherRaisedTurnFold, otherRaisedRiver, otherRaisedRiverFold FROM HudDataHoldemOmaha WHERE id=%s", (hudDataId,)) +fields=cursor.fetchone() +print "otherRaisedFlop:",fields[0] +print "otherRaisedFlopFold:",fields[1] +print "otherRaisedTurn:",fields[2] +print "otherRaisedTurnFold:",fields[3] +print "otherRaisedRiver:",fields[4] +print "otherRaisedRiverFold:",fields[5] - - cursor.close() db.close() sys.exit(0) diff --git a/utils/fpdb_util_lib.py b/regression-test/fpdb_util_lib.py similarity index 100% rename from utils/fpdb_util_lib.py rename to regression-test/fpdb_util_lib.py diff --git a/testdata/ftp-omaha-hi-pl-ring-001-005.txt b/regression-test/ftp-omaha-hi-pl-ring-001-005.txt similarity index 100% rename from testdata/ftp-omaha-hi-pl-ring-001-005.txt rename to regression-test/ftp-omaha-hi-pl-ring-001-005.txt diff --git a/testdata/ftp-stud-hilo-ring-001.txt b/regression-test/ftp-stud-hilo-ring-001.txt similarity index 100% rename from testdata/ftp-stud-hilo-ring-001.txt rename to regression-test/ftp-stud-hilo-ring-001.txt diff --git a/testdata/ftp.6367428246.expected.txt b/regression-test/ftp.6367428246.expected.txt similarity index 100% rename from testdata/ftp.6367428246.expected.txt rename to regression-test/ftp.6367428246.expected.txt diff --git a/testdata/ftp.6929537410.expected.txt b/regression-test/ftp.6929537410.expected.txt similarity index 100% rename from testdata/ftp.6929537410.expected.txt rename to regression-test/ftp.6929537410.expected.txt diff --git a/testdata/ftp.6929553738.expected.txt b/regression-test/ftp.6929553738.expected.txt similarity index 100% rename from testdata/ftp.6929553738.expected.txt rename to regression-test/ftp.6929553738.expected.txt diff --git a/testdata/mysql-dump.sql b/regression-test/mysql-dump.sql similarity index 100% rename from testdata/mysql-dump.sql rename to regression-test/mysql-dump.sql diff --git a/utils/print_hand.py b/regression-test/print_hand.py similarity index 100% rename from utils/print_hand.py rename to regression-test/print_hand.py diff --git a/testdata/ps-holdem-ring-001to003.txt b/regression-test/ps-holdem-ring-001to003.txt similarity index 100% rename from testdata/ps-holdem-ring-001to003.txt rename to regression-test/ps-holdem-ring-001to003.txt diff --git a/testdata/ps.14519394979.expected.txt b/regression-test/ps.14519394979.expected.txt similarity index 100% rename from testdata/ps.14519394979.expected.txt rename to regression-test/ps.14519394979.expected.txt diff --git a/testdata/ps.14519420999.expected.txt b/regression-test/ps.14519420999.expected.txt similarity index 100% rename from testdata/ps.14519420999.expected.txt rename to regression-test/ps.14519420999.expected.txt diff --git a/testdata/ps.14519433154.expected.txt b/regression-test/ps.14519433154.expected.txt similarity index 100% rename from testdata/ps.14519433154.expected.txt rename to regression-test/ps.14519433154.expected.txt diff --git a/regression-test/regression-test.sh b/regression-test/regression-test.sh new file mode 100755 index 00000000..cd8fa5df --- /dev/null +++ b/regression-test/regression-test.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +#Copyright 2008 Steffen Jobbagy-Felso +#This program is free software: you can redistribute it and/or modify +#it under the terms of the GNU Affero General Public License as published by +#the Free Software Foundation, version 3 of the License. +# +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +# +#You should have received a copy of the GNU Affero General Public License +#along with this program. If not, see . +#In the "official" distribution you can find the license in +#agpl-3.0.txt in the docs folder of the package. + +echo "Please note for this to really work you need to work on an empty database" + +rm *.found.txt +../pyfpdb/fpdb_import.py -p$1 --file=ps-holdem-ring-001to003.txt -x +../pyfpdb/fpdb_import.py -p$1 --file=ps-holdem-ring-001to003.txt -x +#../pyfpdb/fpdb_import.py -p$1 --file=ftp-stud-hilo-ring-001.txt -x +#../pyfpdb/fpdb_import.py -p$1 --file=ftp-omaha-hi-pl-ring-001-005.txt -x + +echo "it should've reported first that it stored 3, then that it had 3 duplicates" +#echo " then 1 stored, then 5 stored" + +./print_hand.py -p$1 --hand=14519394979 > ps.14519394979.found.txt && colordiff ps.14519394979.found.txt ps.14519394979.expected.txt +./print_hand.py -p$1 --hand=14519420999 > ps.14519420999.found.txt && colordiff ps.14519420999.found.txt ps.14519420999.expected.txt +./print_hand.py -p$1 --hand=14519433154 > ps.14519433154.found.txt && colordiff ps.14519433154.found.txt ps.14519433154.expected.txt + +./PrintPlayerFlags.py -p$1 > ps-flags-3hands.found.txt && colordiff ps-flags-3hands.found.txt ps-flags-3hands.expected.txt + +#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6367428246 > ftp.6367428246.found.txt && colordiff ftp.6367428246.found.txt ftp.6367428246.expected.txt + +#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929537410 > ftp.6929537410.found.txt && colordiff ftp.6929537410.found.txt ftp.6929537410.expected.txt +#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929553738 > ftp.6929553738.found.txt && colordiff ftp.6929553738.found.txt ftp.6929553738.expected.txt +#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929572212 > ftp.6929572212.found.txt && colordiff ftp.6929572212.found.txt ftp.6929572212.expected.txt +#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929576743 > ftp.6929576743.found.txt && colordiff ftp.6929576743.found.txt ftp.6929576743.expected.txt +#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929587483 > ftp.6929587483.found.txt && colordiff ftp.6929587483.found.txt ftp.6929587483.expected.txt + +echo "if everything was printed as expected this worked" diff --git a/utils/regression-test.sh b/utils/regression-test.sh deleted file mode 100755 index c4011f1f..00000000 --- a/utils/regression-test.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -#Copyright 2008 Steffen Jobbagy-Felso -#This program is free software: you can redistribute it and/or modify -#it under the terms of the GNU Affero General Public License as published by -#the Free Software Foundation, version 3 of the License. -# -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -#GNU General Public License for more details. -# -#You should have received a copy of the GNU Affero General Public License -#along with this program. If not, see . -#In the "official" distribution you can find the license in -#agpl-3.0.txt in the docs folder of the package. - -echo "Please note for this to really work you need to work on an empty database" - -rm ../testdata/*.found.txt -../pyfpdb/fpdb_import.py -p$1 --file=../testdata/ps-holdem-ring-001to003.txt -x -../pyfpdb/fpdb_import.py -p$1 --file=../testdata/ps-holdem-ring-001to003.txt -x -#../pyfpdb/fpdb_import.py -p$1 --file=../testdata/ftp-stud-hilo-ring-001.txt -x -#../pyfpdb/fpdb_import.py -p$1 --file=../testdata/ftp-omaha-hi-pl-ring-001-005.txt -x - -echo "it should've reported first that it stored 3, then that it had 3 duplicates" -#echo " then 1 stored, then 5 stored" - -./print_hand.py -p$1 --hand=14519394979 > ../testdata/ps.14519394979.found.txt && colordiff ../testdata/ps.14519394979.found.txt ../testdata/ps.14519394979.expected.txt -./print_hand.py -p$1 --hand=14519420999 > ../testdata/ps.14519420999.found.txt && colordiff ../testdata/ps.14519420999.found.txt ../testdata/ps.14519420999.expected.txt -./print_hand.py -p$1 --hand=14519433154 > ../testdata/ps.14519433154.found.txt && colordiff ../testdata/ps.14519433154.found.txt ../testdata/ps.14519433154.expected.txt - -./PrintPlayerFlags.py -p$1 > ../testdata/ps-flags-3hands.found.txt && colordiff ../testdata/ps-flags-3hands.found.txt ../testdata/ps-flags-3hands.expected.txt - -#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6367428246 > ../testdata/ftp.6367428246.found.txt && colordiff ../testdata/ftp.6367428246.found.txt ../testdata/ftp.6367428246.expected.txt - -#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929537410 > ../testdata/ftp.6929537410.found.txt && colordiff ../testdata/ftp.6929537410.found.txt ../testdata/ftp.6929537410.expected.txt -#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929553738 > ../testdata/ftp.6929553738.found.txt && colordiff ../testdata/ftp.6929553738.found.txt ../testdata/ftp.6929553738.expected.txt -#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929572212 > ../testdata/ftp.6929572212.found.txt && colordiff ../testdata/ftp.6929572212.found.txt ../testdata/ftp.6929572212.expected.txt -#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929576743 > ../testdata/ftp.6929576743.found.txt && colordiff ../testdata/ftp.6929576743.found.txt ../testdata/ftp.6929576743.expected.txt -#./print_hand.py -p$1 --site="Full Tilt Poker" --hand=6929587483 > ../testdata/ftp.6929587483.found.txt && colordiff ../testdata/ftp.6929587483.found.txt ../testdata/ftp.6929587483.expected.txt - -echo "if everything was printed as expected this worked"