public void RepeatedMethodCallDoNotChangeBehaviour()
        {
            var board       = BoardParser.ParseBoardByLines(_testBoardLines);
            var chesProblem = new ChessProblem(board);

            Assert.AreEqual(ChessStatus.Check, chesProblem.CalculateChessStatus());

            // Now check that internal board modifications during the first call do not change answer
            Assert.AreEqual(ChessStatus.Check, chesProblem.CalculateChessStatus());
        }
        private static void TestOnFile(string filename)
        {
            var boardLines  = File.ReadAllLines(filename);
            var board       = BoardParser.ParseBoardByLines(boardLines);
            var chesProblem = new ChessProblem(board);

            var expectedAnswer = File.ReadAllText(Path.ChangeExtension(filename, ".ans")).Trim();
            var resultStatus   = chesProblem.CalculateChessStatus();

            Assert.AreEqual(expectedAnswer, resultStatus.ToString().ToLower(), "Failed test " + filename);
        }