checkpoint

This commit is contained in:
2022-06-12 12:37:32 -05:00
parent 2dcc6ca417
commit 4ca0b63564
43 changed files with 563 additions and 2128 deletions

View File

@@ -0,0 +1,27 @@
using FluentAssertions;
using System.Numerics;
using Xunit;
namespace Shogi.Domain.UnitTests
{
public class NotationShould
{
[Fact]
public void ConvertFromNotationToVector()
{
Notation.FromBoardNotation("A1").Should().Be(new Vector2(0, 0));
Notation.FromBoardNotation("E5").Should().Be(new Vector2(4, 4));
Notation.FromBoardNotation("I9").Should().Be(new Vector2(8, 8));
Notation.FromBoardNotation("C3").Should().Be(new Vector2(2, 2));
}
[Fact]
public void ConvertFromVectorToNotation()
{
Notation.ToBoardNotation(new Vector2(0, 0)).Should().Be("A1");
Notation.ToBoardNotation(new Vector2(4, 4)).Should().Be("E5");
Notation.ToBoardNotation(new Vector2(8, 8)).Should().Be("I9");
Notation.ToBoardNotation(new Vector2(2, 2)).Should().Be("C3");
}
}
}

View File

@@ -9,7 +9,7 @@ namespace Shogi.Domain.UnitTests
public void InitializeBoardState()
{
// Act
var board = new ShogiBoardState();
var board = new BoardState();
// Assert
board["A1"]?.WhichPiece.Should().Be(WhichPiece.Lance);

View File

@@ -18,8 +18,8 @@ namespace Shogi.Domain.UnitTests
public void MoveAPieceToAnEmptyPosition()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
board["A4"].Should().BeNull();
var expectedPiece = board["A3"];
expectedPiece.Should().NotBeNull();
@@ -36,8 +36,8 @@ namespace Shogi.Domain.UnitTests
public void AllowValidMoves_AfterCheck()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
// P1 Pawn
shogi.Move("C3", "C4", false);
// P2 Pawn
@@ -61,8 +61,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_MoveFromEmptyPosition()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
board["D5"].Should().BeNull();
// Act
@@ -80,8 +80,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_MoveToCurrentPosition()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
var expectedPiece = board["A3"];
// Act - P1 "moves" pawn to the position it already exists at.
@@ -101,8 +101,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_MoveSet()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
var expectedPiece = board["A1"];
expectedPiece!.WhichPiece.Should().Be(WhichPiece.Lance);
@@ -124,8 +124,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_Ownership()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
var expectedPiece = board["A7"];
expectedPiece!.Owner.Should().Be(WhichPlayer.Player2);
board.WhoseTurn.Should().Be(WhichPlayer.Player1);
@@ -146,8 +146,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_MoveThroughAllies()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
var lance = board["A1"];
var pawn = board["A3"];
lance!.Owner.Should().Be(pawn!.Owner);
@@ -169,8 +169,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_CaptureAlly()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
var knight = board["B1"];
var pawn = board["C3"];
knight!.Owner.Should().Be(pawn!.Owner);
@@ -193,8 +193,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidMoves_Check()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
// P1 Pawn
shogi.Move("C3", "C4", false);
// P2 Pawn
@@ -222,8 +222,8 @@ namespace Shogi.Domain.UnitTests
public void PreventInvalidDrops_MoveSet()
{
// Arrange
var board = new ShogiBoardState();
var shogi = new Shogi(board);
var board = new BoardState();
var shogi = new Session(board);
// P1 Pawn
shogi.Move("C3", "C4", false);
// P2 Pawn
@@ -361,8 +361,8 @@ namespace Shogi.Domain.UnitTests
public void Check()
{
// Arrange
var boardState = new ShogiBoardState();
var shogi = new Shogi(boardState);
var boardState = new BoardState();
var shogi = new Session(boardState);
// P1 Pawn
shogi.Move("C3", "C4", false);
// P2 Pawn
@@ -379,8 +379,8 @@ namespace Shogi.Domain.UnitTests
public void Promote()
{
// Arrange
var boardState = new ShogiBoardState();
var shogi = new Shogi(boardState);
var boardState = new BoardState();
var shogi = new Session(boardState);
// P1 Pawn
shogi.Move("C3", "C4", false);
// P2 Pawn
@@ -404,8 +404,8 @@ namespace Shogi.Domain.UnitTests
public void Capture()
{
// Arrange
var boardState = new ShogiBoardState();
var shogi = new Shogi(boardState);
var boardState = new BoardState();
var shogi = new Session(boardState);
var p1Bishop = boardState["B2"];
p1Bishop!.WhichPiece.Should().Be(WhichPiece.Bishop);
shogi.Move("C3", "C4", false);
@@ -428,8 +428,8 @@ namespace Shogi.Domain.UnitTests
public void CheckMate()
{
// Arrange
var boardState = new ShogiBoardState();
var shogi = new Shogi(boardState);
var boardState = new BoardState();
var shogi = new Session(boardState);
// P1 Rook
shogi.Move("H2", "E2", false);
// P2 Gold