示例#1
0
        void DoTest(GameModel engine, string inputs, string tests, string variation = "")
        {
            var msg = $"[{variation}][{inputs}] [{tests}]";

            engine.AcceptInputs(inputs);
            var ts        = tests.Split(';');
            var location  = ts[0].SafeIntParse();
            var direction = ts[1].Trim();
            var objs      = ts[2].Trim().Split(null as char[], StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < objs.Length; i++)
            {
                var actual = (!engine.Ok) ? "error"
          : (engine.EndLevel) ? "done"
          : (engine.GameOver) ? "over"
          : (location == null) ? "end"
          : engine.GetObjects(location.Value).OrderBy(v => v).Join("");
                Assert.AreEqual(objs[i], actual, msg);
                location = engine.Step(location ?? 0, direction);
            }
        }