public void TakeTurnShouldAskUserToReEnterIfGivenOutOfBoundsCoordinate() { // do I need to use TestReaderWriter var board = new Board(3); var coordValidator = new CoordinateValidator(); var coord = new Coordinate { X = 5, Y = 2 }; var isValid = coordValidator.IsValid(board, coord); Assert.False(isValid); }
public void IsValid_ValidInput_IsTrue() { // Act var validCoordinateCollection = Defaults.Coordinate.Valid; foreach (var item in validCoordinateCollection) { // Arrange var result = CoordinateValidator.IsValid(item); // Assert Assert.IsTrue(result); } }
public void TakeTurnShouldAskUserToReEnterCoordIfIndexTaken() { // do I need to use TestReaderWriter var board = new Board(3); var existingCoord = new Coordinate { X = 1, Y = 2 }; board.UpdateSquare(existingCoord, 'X'); var coordValidator = new CoordinateValidator(); var enteredCord = new Coordinate { X = 1, Y = 2 }; var isValid = coordValidator.IsValid(board, enteredCord); Assert.False(isValid); }
/// <summary> /// Method decodes polyline encoded representation to coordinates. /// </summary> /// <param name="polyline">Encoded polyline char array to decode</param> /// <returns>Returns coordinates.</returns> /// <exception cref="ArgumentException">If polyline argument is null -or- empty char array.</exception> /// <exception cref="InvalidOperationException">If polyline representation is not in correct format.</exception> public static IEnumerable <(double Latitude, double Longitude)> Decode(char[] polyline) { // Checking null and at least one character if (polyline == null || !polyline.Any()) { throw new ArgumentException(ExceptionMessageResource.ArgumentCannotBeNullOrEmpty, nameof(polyline)); } // Initialize local variables int index = 0; int latitude = 0; int longitude = 0; var result = new List <(double Latitude, double Longitude)>(); // Looping through encoded polyline char array while (index < polyline.Length) { // Attempting to calculate next latitude value. If failed exception is thrown if (!TryCalculateNext(polyline, ref index, ref latitude)) { throw new InvalidOperationException(ExceptionMessageResource.PolylineCharArrayIsMalformed); } // Attempting to calculate next longitude value. If failed exception is thrown if (!TryCalculateNext(polyline, ref index, ref longitude)) { throw new InvalidOperationException(ExceptionMessageResource.PolylineCharArrayIsMalformed); } var coordinate = (GetDoubleRepresentation(latitude), GetDoubleRepresentation(longitude)); if (!CoordinateValidator.IsValid(coordinate)) { throw new InvalidOperationException(ExceptionMessageResource.PolylineCharArrayIsMalformed); } result.Add(coordinate); } return(result); }