Skip to content

Commit

Permalink
Updated RelativeForkEvalTest
Browse files Browse the repository at this point in the history
  • Loading branch information
programarivm committed Jan 30, 2025
1 parent 0e4fbe7 commit 7d82f18
Showing 1 changed file with 129 additions and 33 deletions.
162 changes: 129 additions & 33 deletions tests/unit/Eval/RelativeForkEvalTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,25 @@ class RelativeForkEvalTest extends AbstractUnitTestCase
*/
public function c62_ruy_lopez_steinitz_defense()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('r1bqkbnr/ppp2ppp/2np4/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R w KQkq -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
Expand Down Expand Up @@ -61,143 +69,207 @@ public function pawn_forks_bishop_and_knight()
*/
public function pawn_forks_king_and_knight()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/5k1n/6P1/7K/8/8/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function pawn_forks_king_and_rook()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/5k1r/6P1/7K/8/8/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function pawn_forks_king_and_queen()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/5k1q/6P1/7K/8/8/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function knight_forks_king_and_bishop()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/1k6/4b1P1/2N4K/8/8/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function knight_forks_king_and_knight()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/1k6/4n1P1/2N4K/8/8/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function bishop_forks_king_and_rook()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/2k5/5b2/6R1/8/2K5/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function bishop_forks_king_and_queen()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/2k5/5b2/6Q1/8/2K5/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function bishop_forks_king_and_knight()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('8/8/2k5/5b2/6N1/8/2K5/8 w - -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
Expand Down Expand Up @@ -263,17 +335,25 @@ public function knight_forks_queen_and_rook()
*/
public function a30_english_opening_symmetrical_hedgehog_flexible_formation()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('rn1qk2r/pb1pbppp/1p2pn2/8/2Pp4/2N2NP1/PP2PPBP/R1BQ1RK1 w kq -'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
Expand All @@ -286,29 +366,45 @@ public function b17_caro_kann_defense_karpov_variation_modern_main_line()
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('r1bqk2r/pp1n1pp1/2pbpn1p/6N1/3P4/3B1N2/PPP1QPPP/R1B1K2R w KQkq -'))
->create();

$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}

/**
* @test
*/
public function d44_semi_slav_defense_botvinnik_variation_szabo_variation()
{
$expected = [
$expectedResult = [
'w' => 0,
'b' => 0,
];

$expectedExplanation = [
];

$expectedElaboration = [
];

$board = (new StrToBoard('rnbqkb1r/p4p2/2p1pn1p/1p2P1p1/2pP3B/2N2N2/PP3PPP/R2QKB1R w KQkq g6'))
->create();

$result = (new RelativeForkEval($board))->result;
$relativeForkEval = new RelativeForkEval($board);

$this->assertSame($expected, $result);
$this->assertSame($expectedResult, $relativeForkEval->result);
$this->assertSame($expectedExplanation, $relativeForkEval->explain());
$this->assertSame($expectedElaboration, $relativeForkEval->elaborate());
}
}

0 comments on commit 7d82f18

Please sign in to comment.