cd5abf31d8
Also rename parameters in original version.
64 lines
2.2 KiB
Swift
64 lines
2.2 KiB
Swift
//
|
|
// String_Tests.swift
|
|
// SwiftShell
|
|
//
|
|
// Created by Kåre Morstøl on 04.11.14.
|
|
// Copyright (c) 2014 NotTooBad Software. All rights reserved.
|
|
//
|
|
|
|
import XCTest
|
|
import SwiftShell
|
|
|
|
class String_Tests: XCTestCase {
|
|
|
|
func testCountOccurrencesOfStringInstring () {
|
|
let text = "how many are there here"
|
|
|
|
XCTAssertEqual( text.countOccurrencesOf( "e"), 5)
|
|
XCTAssertEqual( text.countOccurrencesOf( "x"), 0)
|
|
XCTAssertEqual( text.countOccurrencesOf( "h"), 3)
|
|
XCTAssertEqual( text.countOccurrencesOf( "ho"), 1)
|
|
XCTAssertEqual( text.countOccurrencesOf( "re"), 3)
|
|
XCTAssertEqual( text.countOccurrencesOf( "Not found"), 0)
|
|
}
|
|
|
|
func testFindAll () {
|
|
|
|
func ranges(findstring: String) -> [Range<String.Index>] {
|
|
let text = "a b c aa bbb cc ab bc ca"
|
|
return text.findAll(findstring) |> toArray
|
|
}
|
|
|
|
XCTAssertEqual(ranges("a").count, 5)
|
|
XCTAssertEqual(ranges("bb").count, 1)
|
|
XCTAssertEqual(ranges("a ").count, 2)
|
|
}
|
|
|
|
|
|
func testReplaceStringwithstring () {
|
|
let text = "a b c aa bb cc ab bc ca"
|
|
|
|
XCTAssertEqual( text.replace("a", "x"), "x b c xx bb cc xb bc cx")
|
|
XCTAssertEqual( text.replace("b ", "x"), "a xc aa bxcc axbc ca")
|
|
}
|
|
|
|
func testReplaceOnlySomeStringsWithString () {
|
|
let text = "a b c aa bb cc ab bc ca"
|
|
|
|
XCTAssertEqual( text.replace("a", "x", limit: 0), "a b c aa bb cc ab bc ca")
|
|
XCTAssertEqual( text.replace("a", "x", limit: 2), "x b c xa bb cc ab bc ca")
|
|
XCTAssertEqual( text.replace("a", "x", limit: 4), "x b c xx bb cc xb bc ca")
|
|
XCTAssertEqual( text.replace("a", "x", limit: 5), "x b c xx bb cc xb bc cx")
|
|
XCTAssertEqual( text.replace("a", "x", limit: 6), "x b c xx bb cc xb bc cx")
|
|
|
|
XCTAssertEqual( text.replace("a", "[xy]", limit: 4), "[xy] b c [xy][xy] bb cc [xy]b bc ca")
|
|
XCTAssertEqual( text.replace("a", "[xy]", limit: 5), "[xy] b c [xy][xy] bb cc [xy]b bc c[xy]")
|
|
XCTAssertEqual( text.replace("a", "[xy]", limit: 6), "[xy] b c [xy][xy] bb cc [xy]b bc c[xy]")
|
|
|
|
XCTAssertEqual( text.replace("a ", "x", limit: 0), "a b c aa bb cc ab bc ca")
|
|
XCTAssertEqual( text.replace("a ", "x", limit: 1), "xb c aa bb cc ab bc ca")
|
|
XCTAssertEqual( text.replace("a ", "x", limit: 2), "xb c axbb cc ab bc ca")
|
|
XCTAssertEqual( text.replace("a ", "x", limit: 3), "xb c axbb cc ab bc ca")
|
|
}
|
|
}
|