From 8e16a4e98ecd4d2c39e5a59c327a16f32e40a576 Mon Sep 17 00:00:00 2001 From: Yosuke Mizutani Date: Mon, 24 Apr 2017 01:21:27 -0400 Subject: [PATCH 1/2] added tests --- jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala b/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala index f50a93d..f1fe91a 100644 --- a/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala +++ b/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala @@ -21,6 +21,8 @@ class JVMGameSpec extends FlatSpec with MustMatchers with GeneratorDrivenPropert g003.moves.length mustBe 117 g003.branches.map(_.offset) mustBe Seq(69, 69, 49, 33) g003.branches.map(_.moves.length) mustBe Seq(9, 7, 13, 9) + g003.trunk.hasComment(0) mustBe true + g003.trunk.comments.size mustBe 17 g003.branches(2).comments mustBe Map( 52 -> Seq("[Taichi_NAKAMURA] 次に53銀打の狙いがあります。", "\"You are threatening Silver drop to 53 ", From d65a02b36498018dd90a3fda0bc3c5e711c4d91d Mon Sep 17 00:00:00 2001 From: Yosuke Mizutani Date: Mon, 24 Apr 2017 21:25:10 -0400 Subject: [PATCH 2/2] fixed Game#toKifString --- .../test/scala/com/mogproject/mogami/core/JVMGameSpec.scala | 3 +++ .../scala/com/mogproject/mogami/core/io/kif/KifGameIO.scala | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala b/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala index f1fe91a..a578e97 100644 --- a/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala +++ b/jvm/src/test/scala/com/mogproject/mogami/core/JVMGameSpec.scala @@ -23,6 +23,7 @@ class JVMGameSpec extends FlatSpec with MustMatchers with GeneratorDrivenPropert g003.branches.map(_.moves.length) mustBe Seq(9, 7, 13, 9) g003.trunk.hasComment(0) mustBe true g003.trunk.comments.size mustBe 17 + g003.trunk.comments.keySet mustBe Set(0, 32, 33, 46, 49, 56, 64, 69, 72, 76, 83, 100, 105, 109, 111, 113, 117) g003.branches(2).comments mustBe Map( 52 -> Seq("[Taichi_NAKAMURA] 次に53銀打の狙いがあります。", "\"You are threatening Silver drop to 53 ", @@ -44,6 +45,8 @@ class JVMGameSpec extends FlatSpec with MustMatchers with GeneratorDrivenPropert ).mkString("\n") ) + Game.parseKifString(g003.toKifString).toUsenString mustBe g003.toUsenString + Game.parseKifString(loadFile("kif/game/004.kif")).moves.length mustBe 223 val g005: Game = Game.parseKifString(loadFile("kif/game/005.kif")) diff --git a/shared/src/main/scala/com/mogproject/mogami/core/io/kif/KifGameIO.scala b/shared/src/main/scala/com/mogproject/mogami/core/io/kif/KifGameIO.scala index e822227..1e7f3b8 100644 --- a/shared/src/main/scala/com/mogproject/mogami/core/io/kif/KifGameIO.scala +++ b/shared/src/main/scala/com/mogproject/mogami/core/io/kif/KifGameIO.scala @@ -63,12 +63,13 @@ trait KifBranchWriter extends KifLike { } yield "*" + line val lines: Seq[String] = for { - (m, i) <- (descriptiveMoves ++ finalAction).map(_.toKifString).zipWithIndex + (m, i) <- ((descriptiveMoves ++ finalAction).map(_.toKifString) :+ "").zipWithIndex index = offset + i ln <- commentToSeq(index) :+ f"${index + 1}%4d ${m}" } yield ln - (lines ++ commentToSeq(offset + moves.length)).mkString("\n") + // remove the last element (dummy) + lines.init.mkString("\n") } }