SwiftKit/Tests/SwiftKitTests/Numerics/NumberFormatter+InitTests.s...

57 lines
2.0 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// NumberFormatter+InitTests.swift
// SwiftKit
//
// Created by Daniel Saidi on 2022-10-19.
// Copyright © 2012 Daniel Saidi. All rights reserved.
//
import SwiftKit
import XCTest
class NumberFormatter_InitTests: XCTestCase {
func testConvenienceInitializerUsesUsEnglishByDefault() {
let formatter = NumberFormatter(numberStyle: .currency)
XCTAssertEqual(formatter.locale.identifier, "en-US")
XCTAssertEqual(formatter.numberStyle, .currency)
}
func testConvenienceInitializerCanEnforceFixedDecimals() {
let formatter = NumberFormatter(numberStyle: .percent, fixedDecimals: 2)
XCTAssertEqual(formatter.locale.identifier, "en-US")
XCTAssertEqual(formatter.numberStyle, .percent)
XCTAssertEqual(formatter.minimumFractionDigits, 2)
XCTAssertEqual(formatter.maximumFractionDigits, 2)
}
func testConvenienceInstanceGeneratesValidDateStringForDollars() {
let value = 123_456_789.123
let formatter = NumberFormatter(numberStyle: .currency)
let result = formatter.string(from: NSNumber(value: value))
XCTAssertEqual(result, "$123,456,789.12")
}
func testConvenienceInstanceGeneratesValidDateStringForSwedishKrona() {
let value = 123_456_789.123
let locale = Locale(identifier: "sv-SE")
let formatter = NumberFormatter(numberStyle: .currency, locale: locale)
let result = formatter.string(from: NSNumber(value: value))
XCTAssertEqual(result, "123 456 789,12 kr")
}
func testPercentFormatterGeneratesValidStringWithTwoDecimals() {
let value = 0.09156
let formatter = NumberFormatter.percent(decimals: 2)
let result = formatter.string(from: NSNumber(value: value))
XCTAssertEqual(result, "9.16%")
}
func testPercentFormatterGeneratesValidStringWithZeroDecimals() {
let value = 0.09156
let formatter = NumberFormatter.percent(decimals: 0)
let result = formatter.string(from: NSNumber(value: value))
XCTAssertEqual(result, "9%")
}
}