| 1 | |
|---|
| 2 | Some explanation about the criteria |
|---|
| 3 | I adopted to make the porting of STS-RV. |
|---|
| 4 | |
|---|
| 5 | 1) The first step for conversion |
|---|
| 6 | is done with this awk script: |
|---|
| 7 | |
|---|
| 8 | <awk-script> |
|---|
| 9 | #!/bin/awk -f |
|---|
| 10 | # skip comment lines |
|---|
| 11 | /^#[^?]/ { next } |
|---|
| 12 | /^# *$/ { next } |
|---|
| 13 | { |
|---|
| 14 | # replace path and function |
|---|
| 15 | gsub(/Sgf_test_files/,"games/STS-RV") |
|---|
| 16 | gsub(/solve_semeaiS/,"analyze_semeai") |
|---|
| 17 | # translate exit code of solve_semeaiS |
|---|
| 18 | gsub(/\[0 /,"[0 0 ") |
|---|
| 19 | gsub(/\[1 /,"[1 1 ") |
|---|
| 20 | gsub(/\[2 /,"[1 0 ") |
|---|
| 21 | gsub(/\[3 /,"[3 @ ") |
|---|
| 22 | gsub(/\[4 /,"[4 @ ") |
|---|
| 23 | # remove espected failures mark |
|---|
| 24 | gsub(/\]\*/,"]") |
|---|
| 25 | print |
|---|
| 26 | } |
|---|
| 27 | </awk-script> |
|---|
| 28 | |
|---|
| 29 | 2) then I edited manually the special cases |
|---|
| 30 | marked with a '@' becouse the Ko (4) could |
|---|
| 31 | be good [2 x ...] or bad [3 x ...]. |
|---|
| 32 | The Unknow result (3) of solve_semeaiS never |
|---|
| 33 | occurred as espected reply in original tests. |
|---|
| 34 | |
|---|
| 35 | 3) When the analysis response was correct |
|---|
| 36 | but the move was not in the espected set, |
|---|
| 37 | I checked if the move was anyway a good reply. |
|---|
| 38 | This becouse often the set was too small and the |
|---|
| 39 | move could be not wrong but simply not the |
|---|
| 40 | best, or simply missed in the original test |
|---|
| 41 | although good and valid. |
|---|
| 42 | |
|---|
| 43 | This revision included the very frequent case |
|---|
| 44 | that test espected a PASS reply and GNU Go played |
|---|
| 45 | some move elsewere, not relevant for the semeai, |
|---|
| 46 | but not wrong. The workaround suggested by Gunnar |
|---|
| 47 | is a regexp test like [x y (.*)]. |
|---|
| 48 | |
|---|
| 49 | In other cases I simply appended the valid move(s) |
|---|
| 50 | to the espected set of good replies. |
|---|
| 51 | |
|---|
| 52 | NOTE: I assumed implicitly that if test is passed |
|---|
| 53 | then test is well defined. This is not true in |
|---|
| 54 | general becouse is possible that changing the |
|---|
| 55 | code of GNU Go, in the future it will play |
|---|
| 56 | a correct (different) move not included in the |
|---|
| 57 | set of good replies (like often detected and |
|---|
| 58 | revised as described above). |
|---|
| 59 | |
|---|
| 60 | But to avoid this, *each* test should be revised |
|---|
| 61 | to verify that *all* good moves are included. |
|---|
| 62 | And this require too much work, so it's better |
|---|
| 63 | to take benefit from the STS-RV test suite |
|---|
| 64 | anyway, despite this small accuracy lack. |
|---|
| 65 | |
|---|
| 66 | ----------- |
|---|
| 67 | |
|---|
| 68 | Here the complete list of change made to |
|---|
| 69 | the original test suite: |
|---|
| 70 | |
|---|
| 71 | |
|---|
| 72 | # File: STS-RV_1.tst |
|---|
| 73 | |
|---|
| 74 | 4 FAILED: Correct '1 1 (A10|A12|B11)', got '1 1 B8' ==> 1 1 (A10|A12|B11|A8|B8) |
|---|
| 75 | 6 FAILED: Correct '1 1 (J2|K1|H1)', got '1 1 M1' ==> 1 1 (J2|K1|H1|M2|M1) |
|---|
| 76 | 8 FAILED: Correct '1 1 (S8|T9|T7)', got '1 1 T11' ==> 1 1 (S8|T9|T7|R11|S11|T11)' |
|---|
| 77 | 17 FAILED: Correct '1 1 (D14|C14|C13|C12|C11|B10)', got '1 1 B19' ==> 1 1 (D14|C14|C13|C12|C11|B10|B19) # B19 irrelevant but not wrong |
|---|
| 78 | 61 FAILED: Correct '1 1 T3', got '1 1 O2' ==> 1 1 (T3|O1|O2|P1|P3|R1) |
|---|
| 79 | 113 FAILED: Correct '1 1 B2', got '1 1 C3' ==> 1 1 (B2|C3|D2) |
|---|
| 80 | 129 FAILED: Correct '1 1 (S18|T16)', got '1 1 T14' ==> 1 1 (S18|T16|T14) |
|---|
| 81 | 135 FAILED: Correct '1 1 C2', got '1 1 D2' ==> 1 1 (C2|D2) |
|---|
| 82 | 137 FAILED: Correct '1 1 R3', got '1 1 O1' ==> 1 1 (R3|O1) |
|---|
| 83 | 163 FAILED: Correct '1 1 C18', got '1 1 C12' ==> 1 1 (C18|D17) |
|---|
| 84 | 170 FAILED: Correct '1 0 K18', got '1 0 L17' ==> 1 0 (K18|L17) |
|---|
| 85 | 186 FAILED: Correct '1 1 J2', got '1 1 C4' ==> 1 1 (J2|B2|B3|D3) |
|---|
| 86 | |
|---|
| 87 | |
|---|
| 88 | # File: STS-RV_GSAT.tst |
|---|
| 89 | |
|---|
| 90 | 2 FAILED: Correct '1 1 (B1|A2)', got '1 1 C1' ==> 1 1 (B1|A2|C1) |
|---|
| 91 | 60 FAILED: Correct '1 1 (P2|P3|Q1|R1|S2|S3)', got '1 1 T2' ==> 1 1 (P2|P3|Q1|R1|S2|S3|T2) |
|---|
| 92 | 68 FAILED: Correct '1 1 (P1|P2|O3|S1|S2)', got '1 1 T3' ==> 1 1 (P1|P2|O3|S1|T2|T3) |
|---|
| 93 | |
|---|
| 94 | |
|---|
| 95 | # File: STS-RV_e.tst |
|---|
| 96 | |
|---|
| 97 | 127 FAILED: Correct '1 0 B4', got '1 0 C6' => 1 0 (B4|C6) |
|---|
| 98 | 128 FAILED: Correct '1 1 B4', got '1 1 E3' => 1 1 (B4|E3) |
|---|
| 99 | 168 FAILED: Correct '1 1 (T2|S1)', got '1 1 S2' ==> 1 1 (T2|S1|S2) |
|---|
| 100 | 181 FAILED: Correct '1 1 C1', got '1 1 A1' ==> 1 1 (C1|A1) |
|---|
| 101 | 201 FAILED: Correct '1 0 L2', got '1 0 M1' ==> 1 1 (M1|L2) |
|---|
| 102 | |
|---|
| 103 | |
|---|
| 104 | # File: STS-RV_Misc.tst |
|---|
| 105 | |
|---|
| 106 | 51 FAILED: Correct '1 1 (O14|N14|M14|K14|H12)', got '1 1 F11' => 1 1 (O14|N14|M14|K14|H12|F11) |
|---|
| 107 | |
|---|
| 108 | |
|---|
| 109 | # File STS-RV_RH.tst |
|---|
| 110 | |
|---|
| 111 | 7 FAILED: Correct '1 1 (F19|G19|H19)', got '1 1 E19' ==> 1 1 (F19|G19|H19|E19) |
|---|
| 112 | 8 FAILED: Correct '1 1 (C19|D19|E19)', got '1 1 F19' ==> 1 1 (C19|D19|E19|F19) |
|---|
| 113 | 16 FAILED: Correct '1 1 PASS', got '1 1 Q16' ==> 1 1 (PASS|Q16) |
|---|
| 114 | 39 FAILED: Correct '1 1 Q1', got '1 1 R1' ==> 3 3 (Q1|R1) |
|---|
| 115 | 40 FAILED: Correct '1 1 Q1', got '1 1 T2' ==> 3 3 (Q1|R1|T2) |
|---|
| 116 | 53 FAILED: Correct '1 0 G14', got '1 0 J19' ==> 1 0 (G14|J19|J18|J17|H16) |
|---|
| 117 | 60 FAILED: Correct '1 1 (G1|K1|D1)', got '1 1 J7' ==> 1 1 (G1|K1|D1|J7) |
|---|
| 118 | 69 FAILED: Correct '1 1 N17', got '1 1 O19' ==> 1 1 (N17|O19) |
|---|
| 119 | 78 FAILED: Correct '1 1 C12', got '1 1 C7' => 1 1 (C12|A7|B7|C7|D8|D9|D10|D11) |
|---|
| 120 | 88 FAILED: Correct '1 1 (E18|G19|D16|G18|E19)', got '1 1 H19' ==> 1 1 (E18|G19|D16|G18|E19|H19) |
|---|
| 121 | 90 FAILED: Correct '1 1 (H1|G1|E3|K5|L7)', got '1 1 J5' ==> 1 1 (H1|G1|E3|K5|L7|J5) |
|---|
| 122 | |
|---|
| 123 | |
|---|
| 124 | NOTE: The 39-40 is the unique testcase in wich I was forced |
|---|
| 125 | to change the original result value (from [1 1] to [3 3]) |
|---|
| 126 | I think a black stone in T2 is missed in diagram: |
|---|
| 127 | so if someone own the book of Richard Hunter, please |
|---|
| 128 | checks this diagram (pag147_P05P08.sgf) and report it. |
|---|
| 129 | |
|---|
| 130 | Also for test n. 78 I suspect a defect in diagram. |
|---|