1
exercism fetch swift diamond

Tests/DiamondTests/DiamondTests.swift

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
import XCTest
@testable import Diamond

class DiamondTests: XCTestCase {

    func testLetterA() {
        XCTAssertEqual(Diamond.makeDiamond(letter: "A"), ["A"])
    }

    func testLetterC() {
        let expected = [
            "  A  ",
            " B B ",
            "C   C",
            " B B ",
            "  A  "]
        XCTAssertEqual(Diamond.makeDiamond(letter: "C"), expected)
    }

    func testLetterE() {
        let expected = [
            "    A    ",
            "   B B   ",
            "  C   C  ",
            " D     D ",
            "E       E",
            " D     D ",
            "  C   C  ",
            "   B B   ",
            "    A    "]
        XCTAssertEqual(Diamond.makeDiamond(letter: "E"), expected)
    }

    func testLargestPossibleDiamond() {
        let expected = [
            "                         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                         "]
        XCTAssertEqual(Diamond.makeDiamond(letter: "Z"), expected)
    }

    static var allTests: [(String, (DiamondTests) -> () throws -> Void)] {
        return [
            ("testLetterA", testLetterA),
            ("testLetterC", testLetterC),
            ("testLetterE", testLetterE),
            ("testLargestPossibleDiamond", testLargestPossibleDiamond),
        ]
    }
}

Tests/LinuxMain.swift

1
2
3
4
5
6
import XCTest
@testable import DiamondTests

XCTMain([
    testCase(DiamondTests.allTests),
])