1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
// RUN: %target-run-simple-swift(-I %S/Inputs -cxx-interoperability-mode=swift-5.9)
// RUN: %target-run-simple-swift(-I %S/Inputs -cxx-interoperability-mode=swift-6)
// RUN: %target-run-simple-swift(-I %S/Inputs -cxx-interoperability-mode=upcoming-swift)
// REQUIRES: executable_test
import StdlibUnittest
import CxxStdlib
var StdUniquePtrTestSuite = TestSuite("StdChrono")
if #available(SwiftStdlib 5.7, *) {
StdUniquePtrTestSuite.test("std::chrono::seconds <=> Duration") {
let d1 = Duration.seconds(123)
let c1 = std.chrono.seconds(d1)
expectEqual(123, c1.count())
expectEqual(d1, Duration(c1))
let d2 = Duration.milliseconds(1)
let c2 = std.chrono.seconds(d2)
expectEqual(0, c2.count())
let d3 = Duration.milliseconds(5000)
let c3 = std.chrono.seconds(d3)
expectEqual(5, c3.count())
expectEqual(d3, Duration(c3))
let d4 = Duration.seconds(-123)
let c4 = std.chrono.seconds(d4)
expectEqual(-123, c4.count())
expectEqual(d4, Duration(c4))
let d5 = Duration.milliseconds(-5000)
let c5 = std.chrono.seconds(d5)
expectEqual(-5, c5.count())
expectEqual(d5, Duration(c5))
}
StdUniquePtrTestSuite.test("std::chrono::milliseconds <=> Duration") {
let d1 = Duration.milliseconds(321)
let c1 = std.chrono.milliseconds(d1)
expectEqual(321, c1.count())
expectEqual(d1, Duration(c1))
let d2 = Duration.microseconds(1)
let c2 = std.chrono.milliseconds(d2)
expectEqual(0, c2.count())
let d3 = Duration.microseconds(2000)
let c3 = std.chrono.milliseconds(d3)
expectEqual(2, c3.count())
expectEqual(d3, Duration(c3))
let d4 = Duration.seconds(25)
let c4 = std.chrono.milliseconds(d4)
expectEqual(25000, c4.count())
expectEqual(d4, Duration(c4))
let d5 = Duration.microseconds(-5000)
let c5 = std.chrono.milliseconds(d5)
expectEqual(-5, c5.count())
expectEqual(d5, Duration(c5))
}
StdUniquePtrTestSuite.test("std::chrono::microseconds from Duration") {
let d1 = Duration.microseconds(456)
let c1 = std.chrono.microseconds(d1)
expectEqual(456, c1.count())
expectEqual(d1, Duration(c1))
let d2 = Duration.nanoseconds(1)
let c2 = std.chrono.milliseconds(d2)
expectEqual(0, c2.count())
let d3 = Duration.seconds(5)
let c3 = std.chrono.microseconds(d3)
expectEqual(5000000, c3.count())
expectEqual(d3, Duration(c3))
let d4 = Duration.milliseconds(5)
let c4 = std.chrono.microseconds(d4)
expectEqual(5000, c4.count())
expectEqual(d4, Duration(c4))
let d5 = Duration.microseconds(-654)
let c5 = std.chrono.microseconds(d5)
expectEqual(-654, c5.count())
expectEqual(d5, Duration(c5))
}
StdUniquePtrTestSuite.test("std::chrono::nanoseconds from Duration") {
let d1 = Duration.nanoseconds(789)
let c1 = std.chrono.nanoseconds(d1)
expectEqual(789, c1.count())
expectEqual(d1, Duration(c1))
let d2 = Duration.nanoseconds(1) / 1000
let c2 = std.chrono.nanoseconds(d2)
expectEqual(0, c2.count())
let d3 = Duration.seconds(5)
let c3 = std.chrono.nanoseconds(d3)
expectEqual(5000000000, c3.count())
expectEqual(d3, Duration(c3))
let d4 = Duration.milliseconds(2)
let c4 = std.chrono.nanoseconds(d4)
expectEqual(2000000, c4.count())
expectEqual(d4, Duration(c4))
let d5 = Duration.nanoseconds(-654)
let c5 = std.chrono.nanoseconds(d5)
expectEqual(-654, c5.count())
expectEqual(d5, Duration(c5))
}
}
runAllTests()
|