zwallet-ios/ZWalletTests/ExtensionsTests/String-ExtensionTests.swift

93 lines
2.8 KiB
Swift

//
// String-ExtensionTests.swift
// ZWalletTests
//
// Created by loj on 03.02.19.
// Copyright © 2019 XMR Systems LLC. All rights reserved.
//
import XCTest
class String_ExtensionTest: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
public func testString_Index() {
XCTAssertEqual("b", "abcdefg"[1])
}
public func testString_RangeInclusive() {
XCTAssertEqual("bcd", "abcdefg"[1...3])
}
public func testString_Suffix() {
XCTAssertEqual("de", "abcde".suffix(2))
}
public func test_toDouble() {
guard let s = Locale.current.decimalSeparator else {
print("*** skipping test, locale has no decimal separator")
return
}
XCTAssertEqual(1.2, "1\(s)2".toDouble())
}
public func test_isValidDouble() {
if let s = Locale.current.decimalSeparator {
XCTAssertTrue("0".isValidDouble())
XCTAssertTrue("0\(s)".isValidDouble())
XCTAssertTrue("\(s)0".isValidDouble())
XCTAssertTrue("-0\(s)1".isValidDouble())
XCTAssertFalse(" ".isValidDouble())
XCTAssertFalse("\(s)".isValidDouble())
XCTAssertFalse("a".isValidDouble())
XCTAssertFalse("\(s)a".isValidDouble())
XCTAssertFalse("a\(s)".isValidDouble())
}
}
public func test_prettyPrintDouble() {
XCTAssertEqual(nil, "abc".prettyPrintDouble())
XCTAssertEqual("0", "".prettyPrintDouble())
XCTAssertEqual("0", "00".prettyPrintDouble())
XCTAssertEqual("1", "01".prettyPrintDouble())
XCTAssertEqual("100", "000100".prettyPrintDouble())
if let s = Locale.current.decimalSeparator {
XCTAssertEqual("100\(s)", "00100\(s)".prettyPrintDouble())
XCTAssertEqual(nil, "\(s)".prettyPrintDouble())
XCTAssertEqual("0\(s)10", "\(s)10".prettyPrintDouble())
XCTAssertEqual("0\(s)00100", "0000\(s)00100".prettyPrintDouble())
}
}
public func test_convertToDate() {
guard let date = "20180822".toDate() else {
XCTFail("failed to convert string date into date")
return
}
let calendar = Calendar.current
let year = calendar.component(.year, from: date)
let month = calendar.component(.month, from: date)
let day = calendar.component(.day, from: date)
XCTAssertEqual(2018, year)
XCTAssertEqual(8, month)
XCTAssertEqual(22, day)
}
}