public void prevents_invalid_moves(BoardState b, Move m, InvalidMoveReason reason) { try { b.CloneAndApply(m); Assert.True(false); } catch (InvalidMoveException ex) { Assert.Equal(reason, ex.Reason); } }
public InvalidMoveException(InvalidMoveReason reason, string message) : this(message) { Reason = reason; }
public InvalidMoveException(InvalidMoveReason reason) : base(reason.ToString()) { Reason = reason; }
private static string GetMessage(InvalidMoveReason reason) => reason switch {
public InvalidMoveException(InvalidMoveReason reason, Exception inner) : base(GetMessage(reason), inner) { Reason = reason; }
public InvalidMoveException(InvalidMoveReason reason) : this(reason, null) { }