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" )
|
|
}
|
|
}
|