Sha256: 00b0772ca8955378aa80d74b1fd60b45aa5d8b06ae86fea346b5b21d6139d1df

Contents?: true

Size: 1.1 KB

Versions: 71

Compression:

Stored size: 1.1 KB

Contents

#if swift(>=3.0)
    import XCTest
#endif

class RobotNameTest: XCTestCase {

    func robotNameIsCorrectlyFormatted(_ name: String) -> Bool {
        let robotNameRegex = try? NSRegularExpression(pattern: "\\A\\w{2}\\d{3}\\z", options: NSRegularExpression.Options.caseInsensitive)
        guard let matches = robotNameRegex?.matches(in: name, options: .withoutAnchoringBounds, range: NSRange(0..<name.utf16.count)) else { return false }

        return matches.count > 0
    }

    func testHasName() {
        let robot = Robot()
        XCTAssert(robotNameIsCorrectlyFormatted(robot.name))
    }

    func testNameSticks() {
        let robot = Robot()
        let name = robot.name
        XCTAssertEqual(name, robot.name)
    }

    func testDifferentRobotsHaveDifferentNames() {
        let firstRobot = Robot()
        let secondRobot = Robot()
        XCTAssertNotEqual(firstRobot.name, secondRobot.name)
    }

    func testResetName() {
        var robot = Robot()
        let firstName = robot.name
        robot.resetName()
        let secondName = robot.name
        XCTAssertNotEqual(firstName, secondName)
    }
}

Version data entries

71 entries across 71 versions & 1 rubygems

Version Path
trackler-2.0.6.15 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.14 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.13 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.12 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.11 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.10 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.9 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.8 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.7 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.6 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.5 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.4 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.3 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.2 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.1 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.6.0 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.5.18 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.5.17 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.5.16 tracks/swift/exercises/robot-name/RobotNameTest.swift
trackler-2.0.5.15 tracks/swift/exercises/robot-name/RobotNameTest.swift