Belofte  version 2.1.5
A promising chess program using the UCI or Winboard interface
epd_testsuite.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------+
2  * File: epd_testsuite.h
3  * Project: part of belofte - A Promising Chess Program
4  * Author: yves
5  * SPDX-License-Identifier: GPL-2.0-only
6 +----------------------------------------------------------------------*/
7 
8 #if !defined(EPD_TESTSUITE_H)
9 #define EPD_TESTSUITE_H
10 
11 typedef std::vector<std::string> bEpdParamList;
12 typedef int bEpdResult; // TODO: change to enum
13 typedef std::map<std::string, std::string> bEpdOpCodes;
14 
18  EPD_PERF
19 };
20 
21 typedef enum tEpdTestType epdTest_t;
22 
23 //-----------------------------------------------------------------------
24 
25 class bEpd {
26 public:
27  bEpd();
28  virtual ~bEpd();
29 
30  // no copy or move ctor nor assignment defined
31  bEpd(bEpd const&) = delete;
32  bEpd(bEpd&&) = delete;
33  bEpd& operator=(bEpd const&) = delete;
34  bEpd& operator=(bEpd&&) = delete;
35 
36  virtual bEpdResult parse(epdTest_t const typeOfTest);
37  operator std::string() const;
38 
39 protected:
40  void setPos(std::string const& pos);
41 
42 private:
43  std::string m_Pos;
44  std::string m_Fen;
45  bEpdOpCodes m_Keys;
46 
47 public:
48  enum tReturn {
49  EPD_ERROR = -3,
52  EPD_OK = 0,
55  BM_OK = 10,
56  AM_OK = 11,
57  MATE_OK = 12,
58  PERFT_OK = 13
59  };
60 };
61 
62 class bEpdPos final : public bEpd {
63 public:
64  explicit bEpdPos(std::string const& fen);
65  explicit bEpdPos(bEpdParamList const& sParams);
66  virtual ~bEpdPos() override;
67 
68  // no copy or move ctor nor assignment defined
69  bEpdPos(bEpdPos const&) = delete;
70  bEpdPos(bEpdPos&&) = delete;
71  bEpdPos& operator=(bEpdPos const&) = delete;
72  bEpdPos& operator=(bEpdPos&&) = delete;
73 };
74 
75 class bEpdFile final : public bEpd {
76 public:
77  explicit bEpdFile(std::string const& sFileName);
78  explicit bEpdFile(bEpdParamList sParams);
79  virtual ~bEpdFile() override;
80 
81  // no copy or move ctor nor assignment defined
82  bEpdFile(bEpdFile const&) = delete;
83  bEpdFile(bEpdFile&&) = delete;
84  bEpdFile& operator=(bEpdFile const&) = delete;
85  bEpdFile& operator=(bEpdFile&&) = delete;
86 
87  virtual bEpdResult parse(epdTest_t const typeOfTest) override;
88 
89 private:
90  void attachFile(std::string const& sFileName);
91 
92  std::ifstream m_sEpdFile;
93 };
94 
95 #endif // defined EPD_TESTSUITE_H
96 
97 // eof
98 
virtual ~bEpdFile() override
bEpdFile(bEpdFile const &)=delete
bEpdFile(std::string const &sFileName)
bEpdFile(bEpdFile &&)=delete
bEpdFile & operator=(bEpdFile &&)=delete
virtual bEpdResult parse(epdTest_t const typeOfTest) override
Main epd parser for multiple line epd file Will calculate a total score and some statistics.
bEpdFile & operator=(bEpdFile const &)=delete
bEpd(bEpd &&)=delete
virtual ~bEpd()
void setPos(std::string const &pos)
set EPD position composed of (simplified) FEN and EPD opcodes
bEpd & operator=(bEpd &&)=delete
virtual bEpdResult parse(epdTest_t const typeOfTest)
@ MATE_OK
Definition: epd_testsuite.h:57
@ NO_MOVE_FOUND
Definition: epd_testsuite.h:50
@ EPD_OK
Definition: epd_testsuite.h:52
@ NOT_RESOLVED
Definition: epd_testsuite.h:51
@ EPD_ERROR
Definition: epd_testsuite.h:49
@ PERFT_OK
Definition: epd_testsuite.h:58
bEpd(bEpd const &)=delete
bEpd & operator=(bEpd const &)=delete
bEpdPos(bEpdPos &&)=delete
bEpdPos(bEpdPos const &)=delete
bEpdPos & operator=(bEpdPos const &)=delete
bEpdPos & operator=(bEpdPos &&)=delete
bEpdPos(std::string const &fen)
virtual ~bEpdPos() override
std::vector< std::string > bEpdParamList
Definition: epd_testsuite.h:11
enum tEpdTestType epdTest_t
Definition: epd_testsuite.h:21
tEpdTestType
Definition: epd_testsuite.h:15
@ EPD_STS
Definition: epd_testsuite.h:17
@ EPD_GENERIC
Definition: epd_testsuite.h:16
@ EPD_PERF
Definition: epd_testsuite.h:18
int bEpdResult
Definition: epd_testsuite.h:12
std::map< std::string, std::string > bEpdOpCodes
Definition: epd_testsuite.h:13