From 0bccbed03973af4fc6ae18db6ee6f377b7a4a9a9 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Thu, 28 Oct 2021 19:10:34 +0200 Subject: [PATCH] Remove check indicator from WXF notation --- setup.py | 2 +- src/apiutil.h | 2 +- src/pyffish.cpp | 2 +- test.py | 11 +++++++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 87df6d5..a6937d1 100644 --- a/setup.py +++ b/setup.py @@ -39,7 +39,7 @@ pyffish_module = Extension( sources=sources, extra_compile_args=args) -setup(name="pyffish", version="0.0.64", +setup(name="pyffish", version="0.0.65", description="Fairy-Stockfish Python wrapper", long_description=long_description, long_description_content_type="text/markdown", diff --git a/src/apiutil.h b/src/apiutil.h index 97e3fe0..1934276 100644 --- a/src/apiutil.h +++ b/src/apiutil.h @@ -291,7 +291,7 @@ inline const std::string move_to_san(Position& pos, Move m, Notation n) { } // Check and checkmate - if (pos.gives_check(m) && !is_shogi(n)) + if (pos.gives_check(m) && !is_shogi(n) && n != NOTATION_XIANGQI_WXF) { StateInfo st; pos.do_move(m, st); diff --git a/src/pyffish.cpp b/src/pyffish.cpp index 785a778..ff1ced6 100644 --- a/src/pyffish.cpp +++ b/src/pyffish.cpp @@ -54,7 +54,7 @@ void buildPosition(Position& pos, StateListPtr& states, const char *variant, con } extern "C" PyObject* pyffish_version(PyObject* self) { - return Py_BuildValue("(iii)", 0, 0, 64); + return Py_BuildValue("(iii)", 0, 0, 65); } extern "C" PyObject* pyffish_info(PyObject* self) { diff --git a/test.py b/test.py index f11fc79..a260dfe 100644 --- a/test.py +++ b/test.py @@ -526,6 +526,17 @@ class TestPyffish(unittest.TestCase): result = sf.get_san("xiangqi", XIANGQI, "h3h5") self.assertEqual(result, "Ch5") + # WXF notation does not denote check or checkmate + fen = "4k4/4a3R/9/9/9/9/9/9/4K4/9 w - - 0 1" + result = sf.get_san("xiangqi", fen, "i9e9", False) + self.assertEqual(result, "Rxe9+") + result = sf.get_san("xiangqi", fen, "i9e9", False, sf.NOTATION_XIANGQI_WXF) + self.assertEqual(result, "R1=5") + result = sf.get_san("xiangqi", fen, "i9i10", False) + self.assertEqual(result, "Ri10#") + result = sf.get_san("xiangqi", fen, "i9i10", False, sf.NOTATION_XIANGQI_WXF) + self.assertEqual(result, "R1+1") + # skip disambiguation for elephants and advisors, but not for pieces that require it fen = "rnbakabnr/9/1c5c1/p1p1p1p1p/9/1NB6/P1P1P1P1P/1C1A3C1/9/RNBAK21R w - - 0 1" result = sf.get_san("xiangqi", fen, "c5e3", False, sf.NOTATION_XIANGQI_WXF) -- 1.7.0.4