public void Format_should_format_continued_single_move() { var sut = new MoveTextFormatter(); var entry = new HalfMoveEntry(_move2) { MoveNumber = 6, IsContinued = true }; Assert.AreEqual("6... Nd4", sut.Format(entry)); }
public void Format_should_format_starting_single_move() { var sut = new MoveTextFormatter(); var entry = new HalfMoveEntry(_move1) { MoveNumber = 6 }; Assert.AreEqual("6. exd5", sut.Format(entry)); }
/// <summary> /// Formats a half move (Ply). /// </summary> /// <param name="entry">The entry.</param> /// <param name="writer">The writer.</param> private void FormatHalfMove(HalfMoveEntry entry, TextWriter writer) { if (entry.MoveNumber != null) { writer.Write(entry.MoveNumber); writer.Write(entry.IsContinued ? "... " : ". "); } _moveFormatter.Format(entry.Move, writer); }
public void Format_should_format_a_RAVEntry() { var sut = new MoveTextFormatter(); var halfMoveEntry = new HalfMoveEntry(_move2) { MoveNumber = 6, IsContinued = true }; var ravEntry = new RAVEntry(new MoveTextEntryList { halfMoveEntry }); Assert.AreEqual("(6... Nd4)", sut.Format(ravEntry)); }
public void Format_should_format_move_text() { var sut = new MoveTextFormatter(); var entry1 = new HalfMoveEntry(new Move { Type = MoveType.Capture, Piece = PieceType.Knight, TargetSquare = new Square(File.E, 5), Annotation = MoveAnnotation.Good }) { MoveNumber = 37 }; var entry2 = new NAGEntry(13); var rav1 = new CommentEntry("comment"); var rav2 = new HalfMoveEntry(new Move { Type = MoveType.Simple, Piece = PieceType.Knight, TargetSquare = new Square(File.E, 3), Annotation = MoveAnnotation.Blunder }) { MoveNumber = 37 }; var entry3 = new RAVEntry(new MoveTextEntryList { rav1, rav2 }); var entry4 = new HalfMoveEntry(new Move { Type = MoveType.Simple, Piece = PieceType.Rook, TargetSquare = new Square(File.D, 8) }) { MoveNumber = 37, IsContinued = true }; var entry5 = new MovePairEntry( new Move { Type = MoveType.Simple, TargetSquare = new Square(File.H, 4) }, new Move { Type = MoveType.Simple, Piece = PieceType.Rook, TargetSquare = new Square(File.D, 5) }) { MoveNumber = 38 }; var entry6 = new GameEndEntry(GameResult.Draw); var entry7 = new CommentEntry("game ends in draw, whooot"); var moveText = new List <MoveTextEntry> { entry1, entry2, entry3, entry4, entry5, entry6, entry7 }; Assert.AreEqual("37. Nxe5! $13 ({comment} 37. Ne3??) 37... Rd8 38. h4 Rd5 ½-½ {game ends in draw, whooot}", sut.Format(moveText)); }
public void Format_should_format_move_text() { var sut = new MoveTextFormatter(); var entry1 = new HalfMoveEntry(new Move { Type = MoveType.Capture, Piece = PieceType.Knight, TargetSquare = new Square(File.E, 5), Annotation = MoveAnnotation.Good }) { MoveNumber = 37 }; var entry2 = new NAGEntry(13); var rav1 = new CommentEntry("comment"); var rav2 = new HalfMoveEntry(new Move { Type = MoveType.Simple, Piece = PieceType.Knight, TargetSquare = new Square(File.E, 3), Annotation = MoveAnnotation.Blunder }) { MoveNumber = 37 }; var entry3 = new RAVEntry(new MoveTextEntryList { rav1, rav2 }); var entry4 = new HalfMoveEntry(new Move { Type = MoveType.Simple, Piece = PieceType.Rook, TargetSquare = new Square(File.D, 8) }) { MoveNumber = 37, IsContinued = true }; var entry5 = new MovePairEntry( new Move { Type = MoveType.Simple, TargetSquare = new Square(File.H, 4) }, new Move { Type = MoveType.Simple, Piece = PieceType.Rook, TargetSquare = new Square(File.D, 5) }) { MoveNumber = 38 }; var entry6 = new GameEndEntry(GameResult.Draw); var entry7 = new CommentEntry("game ends in draw, whooot"); var moveText = new List<MoveTextEntry> { entry1, entry2, entry3, entry4, entry5, entry6, entry7 }; Assert.AreEqual("37. Nxe5! $13 ({comment} 37. Ne3??) 37... Rd8 38. h4 Rd5 ½-½ {game ends in draw, whooot}", sut.Format(moveText)); }