public void TestFromFenValid() { const string FEN_STRING = "pQ4N1/3k3R/1r4n1/KbBbBppP/8/8/q7/7n"; FENSerializer ser = new FENSerializer(); Board expected = new Board(null); Board actual; // Setup expected['8', 'A'] = new Pawn('b'); expected['8', 'B'] = new Queen('w'); expected['8', 'G'] = new Knight('w'); expected['7', 'D'] = new King('b'); expected['7', 'H'] = new Rook('w'); expected['6', 'B'] = new Rook('b'); expected['6', 'G'] = new Knight('b'); expected['5', 'A'] = new King('w'); expected['5', 'B'] = new Bishop('b'); expected['5', 'C'] = new Bishop('w'); expected['5', 'D'] = new Bishop('b'); expected['5', 'E'] = new Bishop('w'); expected['5', 'F'] = new Pawn('b'); expected['5', 'G'] = new Pawn('b'); expected['5', 'H'] = new Pawn('w'); expected['2', 'A'] = new Queen('b'); expected['1', 'H'] = new Knight('b'); // Act actual = ser.Deserialize(FEN_STRING); // Test for (int file = 0; file < Board.NUM_FILES; file++) { for (int row = 0; row < Board.NUM_ROWS; row++) { Piece expectedPiece = expected[row, file]; Piece actualPiece = actual[row, file]; bool areEqual = Piece.AreEqual(expectedPiece, actualPiece); Assert.IsTrue(areEqual); } } }
private void TestInvalidFen(string fen, string expectedErrMsg, int expectedIndex) { //Setup FENSerializer ser = new FENSerializer(); bool exceptionThrown = false; string actualErrMsg = String.Empty; int actualIndex = Int32.MinValue; try { // Act ser.Deserialize(fen); } catch (FENException e) { exceptionThrown = true; actualErrMsg = e.Message; actualIndex = e.ErrorIndex; } // Test Assert.IsTrue(exceptionThrown); Assert.AreEqual(expectedErrMsg, actualErrMsg); Assert.AreEqual(expectedIndex, actualIndex); Assert.AreEqual(exceptionThrown, !ser.IsValidSerialization(fen)); }
private void textBox1_Validating(object sender, CancelEventArgs e) { // Check if valid FEN string FENSerializer serializer = new FENSerializer(); validEntry = serializer.IsValidSerialization(txtInput.Text) || String.IsNullOrEmpty(txtInput.Text); //GameSerializer serializer = new GameSerializer(); //validEntry = String.IsNullOrEmpty(serializer.IsValidFEN(txtInput.Text)); e.Cancel = !validEntry; if (!validEntry) errorProvider1.SetError(txtInput, "Not a valid FEN string"); else errorProvider1.SetError(txtInput, ""); }
private void btnFromFile_Click(object sender, EventArgs e) { // Prompt for where to save file if (this.openDiag.ShowDialog() == DialogResult.OK) { // Open stream and serializer StreamReader stream = new StreamReader(new FileStream(this.openDiag.FileName, FileMode.OpenOrCreate, FileAccess.Read)); FENSerializer s = new FENSerializer(); string result = String.Empty; try { // Generate string and write to file result = stream.ReadLine(); if (s.IsValidSerialization(result)) this.Result = result; } catch (Exception ex) // May be FEN Exception { MessageBox.Show(ex.Message); } finally { stream.Close(); stream.Dispose(); } } }
private void btnToFile_Click(object sender, EventArgs e) { // Prompt for where to save file if (this.saveDiag.ShowDialog() == DialogResult.OK) { // Open stream and serializer StreamWriter writer = new StreamWriter(new FileStream(this.saveDiag.FileName, FileMode.OpenOrCreate, FileAccess.Write)); FENSerializer s = new FENSerializer(); try { // Format, write and close writer.Write(this.Result); writer.Flush(); } catch (Exception ex) // May be FEN Exception { MessageBox.Show(ex.Message); } finally { writer.Close(); writer.Dispose(); } } }