mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
132 lines
3.2 KiB
Swift
132 lines
3.2 KiB
Swift
// RUN: %target-run-simple-swift | %FileCheck %s
|
|
// REQUIRES: executable_test
|
|
// REQUIRES: reflection
|
|
|
|
var a : Int
|
|
|
|
func test_Int8() {
|
|
var i8 : Int8
|
|
i8 = -0x1
|
|
print(Int(i8))
|
|
}
|
|
|
|
func test_UInt8() {
|
|
var ui8 : UInt8
|
|
ui8 = 0xFF
|
|
print(ui8)
|
|
var i8 = Int8(bitPattern: ui8)
|
|
print(Int(i8))
|
|
}
|
|
|
|
func test_UInt32() {
|
|
var ui32 : UInt32
|
|
ui32 = 0xFFFFFFFF
|
|
print(ui32)
|
|
var i8 : Int8
|
|
i8 = Int8(ui32 & (0xF))
|
|
print(String(i8))
|
|
}
|
|
|
|
test_Int8()
|
|
test_UInt8()
|
|
test_UInt32()
|
|
|
|
var tentwenty : UInt64
|
|
tentwenty = 1000
|
|
tentwenty += 20
|
|
print(tentwenty)
|
|
|
|
// CHECK: -1
|
|
// CHECK: 255
|
|
// CHECK: 4294967295
|
|
// CHECK: 15
|
|
// CHECK: 1020
|
|
|
|
|
|
// Test generic conversions from floating point
|
|
|
|
print(Int8._convert(from: -128))
|
|
print(Int8._convert(from: 128))
|
|
print(Int8._convert(from: -127))
|
|
print(Int8._convert(from: 127))
|
|
|
|
// CHECK: (value: Optional(-128), exact: true)
|
|
// CHECK: (value: nil, exact: false)
|
|
// CHECK: (value: Optional(-127), exact: true)
|
|
// CHECK: (value: Optional(127), exact: true)
|
|
|
|
print(Int8._convert(from: -129))
|
|
print(Int8._convert(from: -128.999))
|
|
print(Int8._convert(from: -128.001))
|
|
print(Int8._convert(from: -127.999))
|
|
print(Int8._convert(from: -127.001))
|
|
print(Int8._convert(from: 127.001))
|
|
print(Int8._convert(from: 127.999))
|
|
|
|
// CHECK: (value: nil, exact: false)
|
|
// CHECK: (value: Optional(-128), exact: false)
|
|
// CHECK: (value: Optional(-128), exact: false)
|
|
// CHECK: (value: Optional(-127), exact: false)
|
|
// CHECK: (value: Optional(-127), exact: false)
|
|
// CHECK: (value: Optional(127), exact: false)
|
|
// CHECK: (value: Optional(127), exact: false)
|
|
|
|
print(Int8._convert(from: 0))
|
|
print(Int8._convert(from: -0.0))
|
|
print(Int8._convert(from: 0.001))
|
|
print(Int8._convert(from: -0.001))
|
|
|
|
// CHECK: (value: Optional(0), exact: true)
|
|
// CHECK: (value: Optional(0), exact: true)
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
|
|
print(Int8._convert(from: Double.leastNonzeroMagnitude))
|
|
print(Int8._convert(from: -Double.leastNonzeroMagnitude))
|
|
print(Int8._convert(from: Double.leastNormalMagnitude))
|
|
print(Int8._convert(from: -Double.leastNormalMagnitude))
|
|
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
|
|
print(UInt8._convert(from: -1))
|
|
print(UInt8._convert(from: -0.9))
|
|
print(UInt8._convert(from: 255))
|
|
print(UInt8._convert(from: 256))
|
|
print(UInt8._convert(from: Double.infinity))
|
|
print(UInt8._convert(from: -Double.infinity))
|
|
print(UInt8._convert(from: Double.nan))
|
|
|
|
// CHECK: (value: nil, exact: false)
|
|
// CHECK: (value: Optional(0), exact: false)
|
|
// CHECK: (value: Optional(255), exact: true)
|
|
// CHECK: (value: nil, exact: false)
|
|
// CHECK: (value: nil, exact: false)
|
|
// CHECK: (value: nil, exact: false)
|
|
// CHECK: (value: nil, exact: false)
|
|
|
|
let f = Float(Int64.min)
|
|
let ff = Int64._convert(from: f)
|
|
let fff = Int64(f)
|
|
print(fff == ff.value!)
|
|
// CHECK: true
|
|
|
|
let g = f.nextUp
|
|
let gg = Int64._convert(from: g)
|
|
let ggg = Int64(g)
|
|
print(ggg == gg.value!)
|
|
// CHECK: true
|
|
|
|
let h = Float(Int64.max)
|
|
let hh = Int64._convert(from: h)
|
|
print(hh)
|
|
// CHECK: (value: nil, exact: false)
|
|
|
|
let i = h.nextDown
|
|
let ii = Int64._convert(from: i)
|
|
let iii = Int64(i)
|
|
print(iii == ii.value!)
|
|
// CHECK: true
|