public void All_rows_must_have_symmetric_contour(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); Assert.That(rows, Is.All.Matches <string>(row => LeadingSpaces(row) == TrailingSpaces(row))); }
public void First_row_contains_a(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var firstRowCharacters = rows.First().Trim(); Assert.Equal("A", firstRowCharacters); }
public void First_row_contains_A(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var firstRowCharacters = rows.First().Trim(); Assert.That(firstRowCharacters, Is.EqualTo("A")); }
public void Diamond_has_square_shape(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var expected = rows.Length; Assert.That(rows, Is.All.Matches <string>(row => row.Length == expected)); }
public void Figure_is_symmetric_around_the_horizontal_axis(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var top = rows.TakeWhile(row => !row.Contains(letter)); var bottom = rows.Reverse().TakeWhile(row => !row.Contains(letter)); Assert.Equal(bottom, top); }
[DiamondProperty(Skip = "Remove this Skip property to run this test")] // not resolved yet public void Top_of_figure_has_letters_in_correct_order(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var expected = GetLetterRange('A', letter); var firstNonSpaceLetters = rows.Take(expected.Length).Select(row => row.Trim()[0]); Assert.Equal(firstNonSpaceLetters, expected); }
public void All_rows_must_have_symmetric_contour(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); Assert.All(rows, row => { Assert.Equal(LeadingSpaces(row), TrailingSpaces(row)); }); }
public void Diamond_has_square_shape(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var expected = rows.Length; Assert.All(rows, row => { Assert.Equal(expected, row.Length); }); }
public void Bottom_left_corner_spaces_are_triangle(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual); var cornerSpaces = rows.Reverse().SkipWhile(row => !row.Contains(letter)).Select(LeadingSpaces); var spaceCounts = cornerSpaces.Select(row => row.Length).ToList(); var expected = Enumerable.Range(0, spaceCounts.Count).Select(i => i).ToList(); Assert.Equal(expected, spaceCounts); }
public void All_rows_except_top_and_bottom_have_two_identical_letters(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual).Where(row => !row.Contains('A')); Assert.All(rows, row => { var twoCharacters = row.Replace(" ", "").Length == 2; var identicalCharacters = row.Replace(" ", "").Distinct().Count() == 1; Assert.True(twoCharacters && identicalCharacters, "Does not have two identical letters"); }); }
public void All_rows_except_top_and_bottom_have_two_identical_letters(char letter) { var actual = Diamond.Make(letter); var rows = Rows(actual).Where(row => !row.Contains('A')); Assert.That(rows, Is.All.Matches <string>(row => { var twoCharacters = row.Replace(" ", "").Length == 2; var identicalCharacters = row.Replace(" ", "").Distinct().Count() == 1; return(twoCharacters && identicalCharacters); })); }
public void DiamondWithLetterD() { string expected = @"---A--- --B-B-- -C---C- D-----D -C---C- --B-B-- ---A---"; var actual = Diamond.Make('D'); Assert.That(actual, Is.EqualTo(expected)); }
public void Diamond_is_not_empty(char letter) { var actual = Diamond.Make(letter); Assert.NotEmpty(actual); }