Jörg Dippel - 2013-02-28

On revision 82 there is a misunderstanding.
A runner is introduced with revision 84 by replacing the JUnit test CraftyTest.java.

The class Crafty provides a static factory method for the connection
to a program named crafty. The connection is used to analyze the protocol
in an easy way.
Therefore it's not a real test and as a consequence it is moved to the source.
The program crafty has to be installed on the system as a precondition.

What is the misunderstanding:
For a JUnit test the annotation @Ignore disables the test.
Additionally the singleton is checked for NullPointerException and
the white spaces are corrected due to another Eclipse configuration.
Disabling the JUNit tests have been necessary because at the end a timeout consumes a lot of time. The other changes have no consequences - there is no test with annotation @Ignore.

What does the test or better, what protocol is tested - here an extract of the output by the crafty program that is connected via stdin/stdout:
...
receiving: < move played % score sortv P% P>.
receiving: < e5 1830 89 0.54 1000.0 0 Y>.
receiving: < book 0.0s 89% e5 c5>.
receiving: < hite(1): e5>.
receiving: < time used: 0.00>.
receiving: <Black(1): c5="" <span="">[pondering]>.
eval: < e5 0.54>.
eval: < exd5? 0.49>.
eval: < Ne2? 0.86>.
eval: < a3? 0.62>.
eval: < Bd3? 0.81>.
eval: < Bd2? 0.81>.
eval: < Qd3? 0.60>.
eval: < e5 0.54>.
Zug: Ne2? Sg1-e2 0.86
Zug: a3? a2-a3 0.62
Zug: Qd3? Dd1-d3 0.60
Zug: Bd2? Lc1-d2 0.81
Zug: Bd3? Lf1-d3 0.81
Zug: exd5? e4xd5 0.49
Zug: e5 e4-e5 0.54
Sending < setboard rnbq1rk1/pp2n1pp/4pP2/2pp4/3P2Q1/P1PB4/2P2PPP/R1B1K1NR b KQ - 0 17>
...