///|
test "UInt16 constants" {
// Minimum value of UInt16
inspect(@uint16.MIN_VALUE, content="0")
// Maximum value of UInt16
inspect(@uint16.MAX_VALUE, content="65535")
}///|
test "UInt16 arithmetic" {
let a : UInt16 = 100
let b : UInt16 = 50
// Addition
inspect(a + b, content="150")
// Subtraction
inspect(a - b, content="50")
// Multiplication
inspect(a * b, content="5000")
// Division
inspect(a / b, content="2")
// Overflow behavior
inspect(@uint16.MAX_VALUE + 1, content="0") // Wraps around to 0
inspect(@uint16.MIN_VALUE - 1, content="65535") // Underflow wraps to maximum value
}///|
test "UInt16 bitwise operations" {
let a : UInt16 = 0b1010
let b : UInt16 = 0b1100
// Bitwise AND
inspect(a & b, content="8")
// Bitwise OR
inspect(a | b, content="14")
// Bitwise XOR
inspect(a ^ b, content="6")
// Left shift
inspect(a << 1, content="20")
inspect(a << 2, content="40")
// Right shift
inspect(a >> 1, content="5")
inspect(b >> 2, content="3")
}///|
test "UInt16 comparison and equality" {
let a : UInt16 = 100
let b : UInt16 = 50
let c : UInt16 = 100
// Equality
inspect(a == c, content="true")
inspect(a != b, content="true")
// Comparison
inspect(a > b, content="true")
inspect(b < a, content="true")
inspect(a >= c, content="true")
inspect(c <= a, content="true")
}///|
test "UInt16 default value" {
// Default value is 0
let a : UInt16 = 0
inspect(a, content="0")
// Hash support is available via hash()
let value : UInt16 = 42
// This may be random per process
let _ = hash(value)
}///|
test "UInt16 conversions" {
// From Int to UInt16
inspect((42).to_uint16(), content="42")
// From UInt16 to Int
let value : UInt16 = 100
inspect(value.to_int(), content="100")
// Overflow handling in conversions
inspect((-1).to_uint16(), content="65535") // Negative numbers wrap around
inspect((65536).to_uint16(), content="0") // Values too large wrap around
inspect((65537).to_uint16(), content="1") // 65536 + 1 = 1 (modulo 65536)
// From Byte to UInt16
inspect(b'A'.to_uint16(), content="65")
inspect(b'\xFF'.to_uint16(), content="255")
}#deprecated("Use `Int16::reinterpret_from_uint16` instead")
fn UInt16::reinterpret_as_int16(self : UInt16) -> Int16#deprecated("Use `MAX_VALUE` instead")
let max_value : UInt16#deprecated("Use `MIN_VALUE` instead")
let min_value : UInt16Install
Installed by default