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));
        }
Exemple #3
0
 /// <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(")");
 }