まず、PosTestのtestToStringの失敗(fail)を出している行にブレークポイントを設定します。

【図54 失敗行にブレークポイントを設定】
そして、[デバッグ]ボタンを押します。そして「str」と「p.toString()」の結果をよく比較してみたところ、strには空白が一つ足りないことを発見しました。

【図55 「式」ビューを最大化して2つの文字列を比較】
それと、文字列を比較する if 文、
if (p.toString() != str)
fail(“testToString:結果が正しくありません”);
が違っていました。==や!=は文字列の中身の比較には使えません。正しくは、
if (!str.equals(p.toString()))
fail(“testToString:結果が正しくありません”);
です。この2個所を直して、JUnitテストセットPosTestはすべてクリアできるようになりました。
囲碁局面のクラスPosに関してひと通りテストも終わったので、改めて GraphGo05 として公開します。
ここまで作って感じたことを少し述べます。以前作った Igo と比較すると、数式によるプログラミングという面があり、プログラミング言語と人間が思考で使う言語の近さと、数式と日常の言語との距離を感じました。数式にも意味があるのですが、より抽象的なので慣れるまで多少時間がかかりそうだと思います。学生時代に学んだ数学もずいぶん使っているのですが、日常の言葉と同様に使いこなせるまでには至っていなかったことを改めて思い知らされました。
(つづく)
