//===----------------------------------------------------------------------=== // // This source file is part of the MarvelService open source project // // Copyright (c) 2025 Röck+Cöde VoF. and the MarvelService project authors // Licensed under the EUPL 1.2 or later. // // See LICENSE for license information // See CONTRIBUTORS for the list of MarvelService project authors // //===----------------------------------------------------------------------=== import Testing import struct Foundation.TimeInterval @testable import MarvelService @Suite("Time Interval computed properties", .tags(.extension)) struct TimeIntervalComputedTests { // MARK: Properties tests #if swift(>=6.2) @Test(arguments: zip( Input.timestamps, Output.timestampAsString )) func `asString`( timestamp: TimeInterval, expects string: String ) { assertAsString( timestamp: timestamp, expects: string ) } #else @Test("asString", arguments: zip( Input.timestamps, Output.timestampAsString )) func asString( timestamp: TimeInterval, expects string: String ) { assertAsString( timestamp: timestamp, expects: string ) } #endif } // MARK: - Assertions private extension TimeIntervalComputedTests { // MARK: Functions /// Asserts the timestamp to string conversion. /// - Parameters: /// - timestamp: A timestamp to convert. /// - string: An expected timestamp converted to string. func assertAsString( timestamp: TimeInterval, expects string: String ) { // GIVEN // WHEN let result = timestamp.asString // THEN #expect(result == string) } } // MARK: - Constants private extension Output { /// A list of outcomes that are expected from converting timestamps to string. static let timestampAsString: [String] = [ "0.000000", "1000.000000", "1000000.000000", "1000000000.000000" ] }