/// <summary> /// Constructor /// Initialises a new Grid Cell with the expected parameters /// </summary> /// <param name="xref"></param> /// <param name="yref"></param> /// <param name="status"></param> public GridCell(int xref, string yref, GridCellStatus status) { Condition.Requires(xref).IsGreaterOrEqual(1); Condition.Requires(AlphabetHelper.GetAlphabetPositionOfLetter(yref)).IsGreaterOrEqual(1); XRef = xref; YRef = yref; Status = status; HorizontalBoatCapacity = 0; VerticalBoatCapacity = 0; }
public void GetLetterFromAlphabetPosition_WhenValidPositionProvided_ExpectCorrectLetterToBeReturned() { // Arrange _returnedLetter = "C"; // Act var result = AlphabetHelper.GetLetterFromAlphabetPosition(3); // Assert Assert.IsNotNull(result); Assert.AreEqual(_returnedLetter, result); }
public void GetAlphabetPositionOfLetter_WhenValidLetterProvided_ExpectCorrectPositionToBeReturned() { // Arrange _returnedPosition = 18; // Act var result = AlphabetHelper.GetAlphabetPositionOfLetter("R"); // Assert Assert.IsNotNull(result); Assert.AreEqual(_returnedPosition, result); }
public void GetAlphabetPositionOfLetter_WhenLetterIsEmpty_ExpectFormatException() { // Act try { var result = AlphabetHelper.GetAlphabetPositionOfLetter(String.Empty); } catch (FormatException ex) { // Assert Assert.IsInstanceOfType(ex, typeof(FormatException)); throw ex; } }
public void GetLetterFromAlphabetPosition_WhenPositionIsGreaterThanTwentySix_ExpectArgumentOutOfRangeExcpetion() { // Act try { var result = AlphabetHelper.GetLetterFromAlphabetPosition(27); } catch (ArgumentException ex) { // Assert Assert.IsInstanceOfType(ex, typeof(ArgumentOutOfRangeException)); throw ex; } }
public void GetAlphabetPositionOfLetter_WhenLetterIsWhiteSpace_ExpectArgumentException() { // Act try { var result = AlphabetHelper.GetAlphabetPositionOfLetter(" "); } catch (FormatException ex) { // Assert Assert.IsInstanceOfType(ex, typeof(FormatException)); throw ex; } }
public void GetAlphabetPositionOfLetter_WhenLetterIsNull_ExpectArgumentNullException() { // Act try { var result = AlphabetHelper.GetAlphabetPositionOfLetter(null); } catch (ArgumentException ex) { // Assert Assert.IsInstanceOfType(ex, typeof(ArgumentNullException)); throw ex; } }
/// <summary> /// Constructor /// Initialises a new Grid with the expected parameters and sets up Grid Cells with references /// </summary> /// <param name="columns"></param> /// <param name="rows"></param> public Grid(int columns, int rows) { Condition.Requires(columns); Condition.Requires(rows); Cells = new GridCell[columns, rows]; for (int c = 0; c < columns; c++) { for (int r = 0; r < rows; r++) { var xref = c + 1; // Not zero indexed var yref = AlphabetHelper.GetLetterFromAlphabetPosition(r + 1).ToString(); var status = GridCellStatus.OpenSea; Cells[c, r] = new GridCell(xref, yref, status); } } }
public string Decrypt(string decryptString) { var decrypted = Newtonsoft.Json.JsonConvert.DeserializeObject <Response>(decryptString); var deciphered = new StringBuilder(); foreach (var resp in decrypted.Cifrado.ToLower().ToCharArray()) { var alphabetList = AlphabetHelper.CreateAlphabet(); var positionI = alphabetList.FindIndex(x => x.Equals(resp)) + 1; var removed = alphabetList.Count() - positionI; alphabetList.RemoveRange(positionI, removed); if (!alphabetList.Any(x => x.Equals(resp))) { deciphered.Append(resp); continue; } for (var i = 0; i <= decrypted.Numero_casas; i++) { if (i == decrypted.Numero_casas) { var decif = alphabetList.LastOrDefault(); deciphered.Append(decif); continue; } else if (alphabetList.FirstOrDefault().Equals('a') && alphabetList.ToArray().Length == 1) { alphabetList.Remove('a'); alphabetList.AddRange(AlphabetHelper.CreateAlphabet()); continue; } var remove = alphabetList.LastOrDefault(); alphabetList.Remove(alphabetList.LastOrDefault()); } } return(deciphered.ToString()); }