From d8c2a693d7ed15d80a3a65951e966f09367c52b2 Mon Sep 17 00:00:00 2001 From: lemonsqueeze Date: Thu, 9 Jun 2016 22:41:04 +0200 Subject: [PATCH] t-unit: can_countercap --- t-unit/can_countercap.t | 97 +++++++++++++++++++++++++++++++++++++++++++++++++ t-unit/test.c | 32 ++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 t-unit/can_countercap.t diff --git a/t-unit/can_countercap.t b/t-unit/can_countercap.t new file mode 100644 index 0000000..ae06531 --- /dev/null +++ b/t-unit/can_countercap.t @@ -0,0 +1,97 @@ +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X . . +. . X X O O X O . +. . . . X X O O . +. . . X . X X O . +. . X . O . O . . + +can_countercap f2 0 + +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X . . +. . X X O O X O . +. . . O X X O O . +. . . X . X X O . +. . X . O . O . . + +can_countercap f2 1 + +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X . . +. . X X O O X O . +. . . O X X O O . +. . . X O X X O . +. . X . O . O . . + +can_countercap f2 1 + + +% Snapback +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X . . +. . X X O O X O . +. . . O X X O O . +. . . O O X X O . +. . X . O . O X . + +can_countercap f2 0 + +% Snapback +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X . . +. . X X O O X O . +. . . O O X O O . +. . . O O X X O . +. . X . O . O X . + +can_countercap f2 0 + +% Snapback +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X X X +. . X X O O X O X +. . . O O O O O X +. . . O X X X O X +. . X O X . O X X + +can_countercap f2 0 +can_countercap g5 0 + + +% Simple snapback +boardsize 9 +. O X . . O X . . +. . . . . O X . . +. O O . . O X . . +X X O O . O X . . +. X X O O X X . . +. . X X O X X O . +. . . O X X O O . +. . . O X O X O . +. . X O O . X O . + +can_countercap g1 0 diff --git a/t-unit/test.c b/t-unit/test.c index 6363786..3b2c3c1 100644 --- a/t-unit/test.c +++ b/t-unit/test.c @@ -10,6 +10,7 @@ #include "tactics/selfatari.h" #include "tactics/dragon.h" #include "tactics/ladder.h" +#include "tactics/1lib.h" #include "random.h" #include "playout.h" #include "timeinfo.h" @@ -160,6 +161,35 @@ test_ladder(struct board *b, char *arg) return (rres == eres); } +static bool +test_can_countercapture(struct board *b, char *arg) +{ + coord_t c = str2scoord(arg, board_size(b)); + arg += strcspn(arg, " ") + 1; + int eres = atoi(arg); + + board_print_test(2, b); + if (DEBUGL(1)) + printf("can_countercap %s %d...\t", coord2sstr(c, b), eres); + + enum stone color = board_at(b, c); + group_t g = group_at(b, c); + assert(color == S_BLACK || color == S_WHITE); + int rres = can_countercapture(b, color, g, color, NULL, 0); + + if (rres == eres) { + if (DEBUGL(1)) + printf("OK\n"); + } else { + if (debug_level <= 2) { + board_print_test(0, b); + printf("can_countercap %s %d...\t", coord2sstr(c, b), eres); + } + printf("FAILED (%d)\n", rres); + } + return rres == eres; +} + static bool test_two_eyes(struct board *b, char *arg) @@ -387,6 +417,8 @@ unittest(char *filename) passed += test_sar(b, line + 4); else if (!strncmp(line, "ladder ", 7)) passed += test_ladder(b, line + 7); + else if (!strncmp(line, "can_countercap ", 15)) + passed += test_can_countercapture(b, line + 15); else if (!strncmp(line, "two_eyes ", 9)) passed += test_two_eyes(b, line + 9); else if (!strncmp(line, "moggy moves ", 12)) -- 2.11.4.GIT