1
exercism fetch java diamond

src/test/java/DiamondPrinterTest.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import org.junit.Ignore;
import org.junit.Before;
import org.junit.Test;

import java.util.List;

import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

public class DiamondPrinterTest {

    private DiamondPrinter diamondPrinter;

    @Before
    public void setUp() {
        diamondPrinter = new DiamondPrinter();
    }

    @Test
    public void testOneByOneDiamond() {
        List<String> output = diamondPrinter.printToList('A');
        assertThat(output, is(singletonList("A")));
    }

    @Ignore("Remove to run test")
    @Test
    public void testTwoByTwoDiamond() {
        List<String> output = diamondPrinter.printToList('B');
        assertThat(output, is(asList(" A ",
                                     "B B",
                                     " A ")));
    }

    @Ignore("Remove to run test")
    @Test
    public void testThreeByThreeDiamond() {
        List<String> output = diamondPrinter.printToList('C');
        assertThat(output, is(asList("  A  ",
                                     " B B ",
                                     "C   C",
                                     " B B ",
                                     "  A  ")));
    }

    @Ignore("Remove to run test")
    @Test
    public void testFiveByFiveDiamond() {
        List<String> output = diamondPrinter.printToList('E');
        assertThat(output, is(asList("    A    ",
                                     "   B B   ",
                                     "  C   C  ",
                                     " D     D ",
                                     "E       E",
                                     " D     D ",
                                     "  C   C  ",
                                     "   B B   ",
                                     "    A    ")));
    }

    @Ignore("Remove to run test")
    @Test
    public void testFullDiamond() {
        List<String> output = diamondPrinter.printToList('Z');
        assertThat(output, is(asList("                         A                         ",
                                     "                        B B                        ",
                                     "                       C   C                       ",
                                     "                      D     D                      ",
                                     "                     E       E                     ",
                                     "                    F         F                    ",
                                     "                   G           G                   ",
                                     "                  H             H                  ",
                                     "                 I               I                 ",
                                     "                J                 J                ",
                                     "               K                   K               ",
                                     "              L                     L              ",
                                     "             M                       M             ",
                                     "            N                         N            ",
                                     "           O                           O           ",
                                     "          P                             P          ",
                                     "         Q                               Q         ",
                                     "        R                                 R        ",
                                     "       S                                   S       ",
                                     "      T                                     T      ",
                                     "     U                                       U     ",
                                     "    V                                         V    ",
                                     "   W                                           W   ",
                                     "  X                                             X  ",
                                     " Y                                               Y ",
                                     "Z                                                 Z",
                                     " Y                                               Y ",
                                     "  X                                             X  ",
                                     "   W                                           W   ",
                                     "    V                                         V    ",
                                     "     U                                       U     ",
                                     "      T                                     T      ",
                                     "       S                                   S       ",
                                     "        R                                 R        ",
                                     "         Q                               Q         ",
                                     "          P                             P          ",
                                     "           O                           O           ",
                                     "            N                         N            ",
                                     "             M                       M             ",
                                     "              L                     L              ",
                                     "               K                   K               ",
                                     "                J                 J                ",
                                     "                 I               I                 ",
                                     "                  H             H                  ",
                                     "                   G           G                   ",
                                     "                    F         F                    ",
                                     "                     E       E                     ",
                                     "                      D     D                      ",
                                     "                       C   C                       ",
                                     "                        B B                        ",
                                     "                         A                         ")));
    }

}