Line data Source code
1 : #pragma once
2 :
3 : #include "definition.hpp"
4 :
5 : #if defined(WITH_TEST_SUITE) || defined(WITH_PGN_PARSER) || defined(WITH_EVAL_TUNING)
6 :
7 : #include "bitboardTools.hpp"
8 : #include "position.hpp"
9 :
10 : /*!
11 : * Those things are used for test suite to work when reading edp file
12 : */
13 0 : struct ExtendedPosition : RootPosition {
14 : ExtendedPosition(const std::string& extFEN, bool withMoveCount = true);
15 : [[nodiscard]] bool shallFindBest();
16 : [[nodiscard]] bool shallAvoidBad();
17 : [[nodiscard]] std::vector<std::string> bestMoves();
18 : [[nodiscard]] std::vector<std::string> badMoves();
19 : [[nodiscard]] std::vector<std::string> comment0();
20 : [[nodiscard]] std::string id();
21 :
22 : static void test(const std::vector<std::string>& positions,
23 : const std::vector<int>& timeControls,
24 : bool breakAtFirstSuccess,
25 : bool multipleBest,
26 : const std::vector<int>& scores,
27 : std::function<int(int)> eloF,
28 : bool withMoveCount = true);
29 :
30 : static void testStatic(const std::vector<std::string>& positions, bool withMoveCount = false);
31 :
32 : std::map<std::string, std::vector<std::string>> _extendedParams;
33 :
34 : [[nodiscard]] std::string epdString() const;
35 : };
36 :
37 : #endif
|