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.Equal("(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 }; // TODO: Case doesn't work due to weird encoding issues. // Assert.Equal("37. Nxe5! $13 ({comment} 37. Ne3??) 37... Rd8 38. h4 Rd5 ½-½ {game ends in draw, whooot}", sut.Format(moveText)); }
/// <summary> /// Formats the a Rav (Recursive Annotation Variations) entry. /// </summary> /// <param name="entry">The Rav entry.</param> /// <param name="writer">The writer.</param> private void FormatRavEntry(RavEntry entry, TextWriter writer) { writer.Write("("); this.Format(entry.MoveText, writer); writer.Write(")"); }