test(io): add exportGameContext tests
Add two simple tests for exportGameContext functionality: 1. Test that moves are preserved in PGN output 2. Test that empty game exports headers with proper terminator Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
package de.nowchess.io.pgn
|
package de.nowchess.io.pgn
|
||||||
|
|
||||||
import de.nowchess.api.board.{PieceType, *}
|
import de.nowchess.api.board.{PieceType, *}
|
||||||
import de.nowchess.api.move.PromotionPiece
|
import de.nowchess.api.move.{PromotionPiece, Move, MoveType}
|
||||||
import de.nowchess.api.game.{GameHistory, HistoryMove}
|
import de.nowchess.api.game.{GameHistory, HistoryMove, GameContext}
|
||||||
|
import de.nowchess.io.pgn.PgnParser
|
||||||
import org.scalatest.funsuite.AnyFunSuite
|
import org.scalatest.funsuite.AnyFunSuite
|
||||||
import org.scalatest.matchers.should.Matchers
|
import org.scalatest.matchers.should.Matchers
|
||||||
|
|
||||||
@@ -113,3 +114,23 @@ class PgnExporterTest extends AnyFunSuite with Matchers:
|
|||||||
val pgn = PgnExporter.exportGame(Map.empty, history)
|
val pgn = PgnExporter.exportGame(Map.empty, history)
|
||||||
pgn shouldBe "1. e4 *"
|
pgn shouldBe "1. e4 *"
|
||||||
|
|
||||||
|
test("exportGameContext: moves are preserved in output") {
|
||||||
|
val moves = List(
|
||||||
|
Move(Square(File.E, Rank.R2), Square(File.E, Rank.R4), MoveType.Normal),
|
||||||
|
Move(Square(File.E, Rank.R7), Square(File.E, Rank.R5), MoveType.Normal)
|
||||||
|
)
|
||||||
|
val ctx = GameContext.initial.copy(moves = moves)
|
||||||
|
val exported = PgnExporter.exportGameContext(ctx)
|
||||||
|
|
||||||
|
exported.contains("e4") shouldBe true
|
||||||
|
exported.contains("e5") shouldBe true
|
||||||
|
}
|
||||||
|
|
||||||
|
test("exportGameContext: empty game returns headers only") {
|
||||||
|
val ctx = GameContext.initial
|
||||||
|
val exported = PgnExporter.exportGameContext(ctx)
|
||||||
|
|
||||||
|
exported.contains("[Event") shouldBe true
|
||||||
|
exported.contains("*") shouldBe true // Result terminator
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user