user15424: As I mentioned in previous questions I'm currently following this tutorial for building my chess engine.
The code was written in C#, but mine is in C++ and I'm in  the phase of finalizing the board / piece / moves / valid moves representations without testing the logic just making sure the syntax is ok.
So I'm confused as to what should I do now, just continue writing without testing or there is a good way to test an incomplete chess engine?
Here you can take look at what I have done so far and your comments / recommendations are appreciated  

user12523: Is there a good way to test an incomplete chess engine? Yes, but nothing of what I'm going to say is chess-specific but really just good software development practice. Write unit tests. This means test each "unit" of your program in isolation. The most common unit is a function. For example, let's say your program has a function to check whether a position is a checkmate. Set up a bunch of positions which you already know whether they are checkmate or not, call your function with each position, and verify that it returns the expected result. Keep those tests around and run them automatically as part of your development cycle. That way you'll notice immediately if you broke something by accident.
You can even write the test before actually writing the function that you want to test. That is called test-driven development.

user825: I glanced at your code:

You should test your code with perft. Google it if you're not sure what it is.
Please make sure your code works before coding the engine search. If you unable to generate moves properly, nothing in your search will work.
Consider to use an array rather than a switch statement for piece values.
Consider to code your squares as an integer, not as a C++ class
Consider to collapse your WHITE and BLACK implementation together. C++ template would do that for you. Please take a look at Stockfish codebase if you're unsure.
I don't see you're making en passant in the code. Are you sure you have that covered?


15424: <p>As I mentioned in previous questions I'm currently following <a href="http://www.chessbin.com/" rel="nofollow noreferrer">this tutorial</a> for building my chess engine.</p>

<p>The code was written in C#, but mine is in C++ and I'm in  the phase of finalizing the board / piece / moves / valid moves representations without testing the logic just making sure the syntax is ok.</p>

<p>So I'm confused as to what should I do now, just continue writing without testing or there is a good way to test an incomplete chess engine?</p>

<p><a href="https://github.com/hamedomarkhaled/thePrestigeChessEngine" rel="nofollow noreferrer">Here</a> you can take look at what I have done so far and your comments / recommendations are appreciated  </p>
 12523: <p>Is there a good way to test an incomplete chess engine? Yes, but nothing of what I'm going to say is chess-specific but really just good software development practice. Write <a href="https://en.wikipedia.org/wiki/Unit_testing" rel="nofollow noreferrer">unit tests</a>. This means test each "unit" of your program in isolation. The most common unit is a function. For example, let's say your program has a function to check whether a position is a checkmate. Set up a bunch of positions which you already know whether they are checkmate or not, call your function with each position, and verify that it returns the expected result. Keep those tests around and run them automatically as part of your development cycle. That way you'll notice immediately if you broke something by accident.</p>

<p>You can even write the test before actually writing the function that you want to test. That is called <a href="https://en.wikipedia.org/wiki/Test-driven_development" rel="nofollow noreferrer">test-driven development</a>.</p>
 825: <p>I glanced at your code:</p>

<ul>
<li>You should test your code with <strong>perft</strong>. Google it if you're not sure what it is.</li>
<li>Please make sure your code works before coding the engine search. If you unable to generate moves properly, nothing in your search will work.</li>
<li>Consider to use an array rather than a switch statement for piece values.</li>
<li>Consider to code your squares as an integer, not as a C++ class</li>
<li>Consider to collapse your WHITE and BLACK implementation together. C++ template would do that for you. Please take a look at Stockfish codebase if you're unsure.</li>
<li>I don't see you're making <strong>en passant</strong> in the code. Are you sure you have that covered?</li>
</ul>
