public void ParseAsyncWhenInvalidInputWithShortLineGivenThenExceptionExpected() { var parser = new FieldParser(); Func <Task> act = async() => await parser.ParseAsync(10, 10, "..."); act.ShouldThrow <Exception>(); }
/// <summary> /// Le Main /// </summary> /// <param name="args"> /// Program arguments /// </param> public static void Main(string[] args) { var counter = 1; // repeat until "0 0" is entered for dimension size input while (true) { // read dimension Console.Write("Field dimension (format 'n m'): "); string dimensionInput = Console.ReadLine(); if (String.IsNullOrEmpty(dimensionInput)) { Console.WriteLine("Expecting dimension input"); break; } string[] dimensionParts = dimensionInput.Trim().Split(new[] { ' ' }, 2); if (dimensionParts.Length != 2) { Console.WriteLine("Invalid input given, expecting dimension in format \"Width Height\" (e.g. \"4 3\""); break; } int width, height; if (!ParseDimension(dimensionParts[0], "Width", out width)) { break; } if (!ParseDimension(dimensionParts[1], "Height", out height)) { break; } // validate input if (width == 0 && height == 0) { break; } string fieldString = ReadField(width, height); // init var fieldParser = new FieldParser(MaxSize); var mineCounter = new MineCounter(); var fieldSolver = new FieldSolver(mineCounter); Field field = fieldParser.ParseAsync(width, height, fieldString).Result; char[,] result = fieldSolver.GetTextualRepresentation(field); // output Console.WriteLine(); Console.WriteLine("Field #{0}: ", counter); WriteResult(result); Console.WriteLine(); ++counter; } }
public void ParseAsyncWhenNullPassedAsFieldThenArgumentNullExceptionExpected() { var parser = new FieldParser(); Func <Task> act = async() => await parser.ParseAsync(100, 100, null); act.ShouldThrow <ArgumentException>(); }
public void ParseAsyncWhenInvalidHeightPassedThenArgumentExceptionExpected() { var parser = new FieldParser(); Func <Task> act = async() => await parser.ParseAsync(100, -1, "dummy"); act.ShouldThrow <ArgumentException>(); }
public void ParseAsyncWhenRectangleFieldGivenThenFieldInstanceExpected() { var input = String.Format("..{0}*.{0}*.{0}..", Environment.NewLine); var expected = new Field( 2, 4, new List <MinePoint> { new MinePoint(0, 1), new MinePoint(0, 2), }); var parser = new FieldParser(); var actual = parser.ParseAsync(2, 4, input).Result; actual.ShouldBeEquivalentTo(expected); }
public void ParseAsyncWhenSquareGivenThenFieldInstanceExpected() { var input = String.Format("*....{0}..*..{0}.....{0}*....{0}....*", Environment.NewLine); var expected = new Field( 5, 5, new List <MinePoint> { new MinePoint(0, 0), new MinePoint(2, 1), new MinePoint(0, 3), new MinePoint(4, 4) }); var parser = new FieldParser(); var actual = parser.ParseAsync(5, 5, input).Result; actual.ShouldBeEquivalentTo(expected); }