public void NG_ShouldNotPromoteTwice(EPieceSort sort) { BPiece piece = MakePiece(sort, true); piece.Promote(); Assert.IsFalse(piece.CanPromote(), $"{sort} must not promote twice"); }
public void NG_AnyNonPromotedPieceShouldNotHaveControlToItself( EPieceSort sort, bool isWhite) { BPiece piece = MakePiece(sort, isWhite); Assert.IsFalse(piece.HasControlTo(Coord.Zero), $"{piece} should not have control to itself"); }
public void OK_EveryPieceShouldBeNonPromotedAtFirst( [Values] EPieceSort sort, [Values] bool isWhtie ) { BPiece piece = MakePiece(sort, isWhtie); Assert.IsFalse(piece.Promoted, "Every piece should not be non-promoted at first"); }
public static BPiece MakePiece(EPieceSort sort, bool isWhite) { BPiece ret = null; switch (sort) { case EPieceSort.kKing: ret = new King(isWhite); break; case EPieceSort.kRook: ret = new Rook(isWhite); break; case EPieceSort.kBishop: ret = new Bishop(isWhite); break; case EPieceSort.kGold: ret = new Gold(isWhite); break; case EPieceSort.kSilver: ret = new Silver(isWhite); break; case EPieceSort.kKnight: ret = new Knight(isWhite); break; case EPieceSort.kLance: ret = new Lance(isWhite); break; case EPieceSort.kPorn: ret = new P**n(isWhite); break; default: Trace.TraceError("the piece sort is unknown"); Environment.Exit(1); break; } if (ret == null) { Trace.TraceError("PieceFactory#NewPiece(): couldn't make a Piece"); } return(ret); }
public Move( EPieceSort _pieceSort, Coord _from, Coord _to, bool _white, bool _doPromote, bool _doDrop) { sort = _pieceSort; from = _from; to = _to; white = _white; doPromote = _doPromote; doDrop = _doDrop; }
public void NG_SomePiecesShouldNotHaveFarControl_Right( [Values( EPieceSort.kPorn, EPieceSort.kSilver, EPieceSort.kGold, EPieceSort.kKing)] EPieceSort sort, [Range(-1, 1)] int row, [Range(2, 3)] int col, [Values] bool isWhite, [Values] bool doPromote) { var piece = MakePiece(sort, isWhite); if (doPromote) { piece.Promote(); } Assert.IsFalse(piece.HasControlTo(new Coord(row, col)), $"{piece} should not have control to ${new Coord(row, col)}"); }
protected BPiece(EPieceSort sort, bool isWhite) { Sort = sort; Promoted = false; White = isWhite; }
public void NG_ShouldNotJump(EPieceSort sort) { BPiece piece = MakePiece(sort, true); Assert.IsFalse(piece.CanJump(), $"{sort} must not jump"); }
public void OK_ShouldJump(EPieceSort sort) { BPiece piece = MakePiece(sort, true); Assert.IsTrue(piece.CanJump(), $"{sort} should jump"); }
public void OK_ShouldPromote(EPieceSort sort) { BPiece piece = MakePiece(sort, true); Assert.IsTrue(piece.CanPromote(), $"{sort} should promote"); }