using Shogi.BackEnd.Domains.ValueObjects; namespace UnitTests; public class ShogiBoardStateShould { [Fact] public void InitializeBoardState() { // Act var board = BoardState.StandardStarting; // Assert Assert.Equal(WhichPiece.Lance, board["A1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["A1"]!.Owner); Assert.False(board["A1"]!.IsPromoted); Assert.Equal(WhichPiece.Knight, board["B1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["B1"]!.Owner); Assert.False(board["B1"]!.IsPromoted); Assert.Equal(WhichPiece.SilverGeneral, board["C1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["C1"]!.Owner); Assert.False(board["C1"]!.IsPromoted); Assert.Equal(WhichPiece.GoldGeneral, board["D1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["D1"]!.Owner); Assert.False(board["D1"]!.IsPromoted); Assert.Equal(WhichPiece.King, board["E1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["E1"]!.Owner); Assert.False(board["E1"]!.IsPromoted); Assert.Equal(WhichPiece.GoldGeneral, board["F1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["F1"]!.Owner); Assert.False(board["F1"]!.IsPromoted); Assert.Equal(WhichPiece.SilverGeneral, board["G1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["G1"]!.Owner); Assert.False(board["G1"]!.IsPromoted); Assert.Equal(WhichPiece.Knight, board["H1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["H1"]!.Owner); Assert.False(board["H1"]!.IsPromoted); Assert.Equal(WhichPiece.Lance, board["I1"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["I1"]!.Owner); Assert.False(board["I1"]!.IsPromoted); Assert.Null(board["A2"]); Assert.Equal(WhichPiece.Bishop, board["B2"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["B2"]!.Owner); Assert.False(board["B2"]!.IsPromoted); Assert.Null(board["C2"]); Assert.Null(board["D2"]); Assert.Null(board["E2"]); Assert.Null(board["F2"]); Assert.Null(board["G2"]); Assert.Equal(WhichPiece.Rook, board["H2"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["H2"]!.Owner); Assert.False(board["H2"]!.IsPromoted); Assert.Null(board["I2"]); Assert.Equal(WhichPiece.Pawn, board["A3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["A3"]!.Owner); Assert.False(board["A3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["B3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["B3"]!.Owner); Assert.False(board["B3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["C3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["C3"]!.Owner); Assert.False(board["C3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["D3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["D3"]!.Owner); Assert.False(board["D3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["E3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["E3"]!.Owner); Assert.False(board["E3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["F3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["F3"]!.Owner); Assert.False(board["F3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["G3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["G3"]!.Owner); Assert.False(board["G3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["H3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["H3"]!.Owner); Assert.False(board["H3"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["I3"]!.WhichPiece); Assert.Equal(WhichPlayer.Player1, board["I3"]!.Owner); Assert.False(board["I3"]!.IsPromoted); Assert.Null(board["A4"]); Assert.Null(board["B4"]); Assert.Null(board["C4"]); Assert.Null(board["D4"]); Assert.Null(board["E4"]); Assert.Null(board["F4"]); Assert.Null(board["G4"]); Assert.Null(board["H4"]); Assert.Null(board["I4"]); Assert.Null(board["A5"]); Assert.Null(board["B5"]); Assert.Null(board["C5"]); Assert.Null(board["D5"]); Assert.Null(board["E5"]); Assert.Null(board["F5"]); Assert.Null(board["G5"]); Assert.Null(board["H5"]); Assert.Null(board["I5"]); Assert.Null(board["A6"]); Assert.Null(board["B6"]); Assert.Null(board["C6"]); Assert.Null(board["D6"]); Assert.Null(board["E6"]); Assert.Null(board["F6"]); Assert.Null(board["G6"]); Assert.Null(board["H6"]); Assert.Null(board["I6"]); Assert.Equal(WhichPiece.Pawn, board["A7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["A7"]!.Owner); Assert.False(board["A7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["B7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["B7"]!.Owner); Assert.False(board["B7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["C7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["C7"]!.Owner); Assert.False(board["C7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["D7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["D7"]!.Owner); Assert.False(board["D7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["E7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["E7"]!.Owner); Assert.False(board["E7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["F7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["F7"]!.Owner); Assert.False(board["F7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["G7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["G7"]!.Owner); Assert.False(board["G7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["H7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["H7"]!.Owner); Assert.False(board["H7"]!.IsPromoted); Assert.Equal(WhichPiece.Pawn, board["I7"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["I7"]!.Owner); Assert.False(board["I7"]!.IsPromoted); Assert.Null(board["A8"]); Assert.Equal(WhichPiece.Rook, board["B8"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["B8"]!.Owner); Assert.False(board["B8"]!.IsPromoted); Assert.Null(board["C8"]); Assert.Null(board["D8"]); Assert.Null(board["E8"]); Assert.Null(board["F8"]); Assert.Null(board["G8"]); Assert.Equal(WhichPiece.Bishop, board["H8"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["H8"]!.Owner); Assert.False(board["H8"]!.IsPromoted); Assert.Null(board["I8"]); Assert.Equal(WhichPiece.Lance, board["A9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["A9"]!.Owner); Assert.False(board["A9"]!.IsPromoted); Assert.Equal(WhichPiece.Knight, board["B9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["B9"]!.Owner); Assert.False(board["B9"]!.IsPromoted); Assert.Equal(WhichPiece.SilverGeneral, board["C9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["C9"]!.Owner); Assert.False(board["C9"]!.IsPromoted); Assert.Equal(WhichPiece.GoldGeneral, board["D9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["D9"]!.Owner); Assert.False(board["D9"]!.IsPromoted); Assert.Equal(WhichPiece.King, board["E9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["E9"]!.Owner); Assert.False(board["E9"]!.IsPromoted); Assert.Equal(WhichPiece.GoldGeneral, board["F9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["F9"]!.Owner); Assert.False(board["F9"]!.IsPromoted); Assert.Equal(WhichPiece.SilverGeneral, board["G9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["G9"]!.Owner); Assert.False(board["G9"]!.IsPromoted); Assert.Equal(WhichPiece.Knight, board["H9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["H9"]!.Owner); Assert.False(board["H9"]!.IsPromoted); Assert.Equal(WhichPiece.Lance, board["I9"]!.WhichPiece); Assert.Equal(WhichPlayer.Player2, board["I9"]!.Owner); Assert.False(board["I9"]!.IsPromoted); } }