Files
vamp/tests/unit/battery_macos.rs
T
2026-10-16 18:53:02 +02:00

33 lines
978 B
Rust

unsafe extern "C" {
fn CFNumberCreate(allocator: Object, kind: isize, value: Object) -> Object;
}
use super::*;
#[test]
fn native_values_are_type_checked_and_numbers_must_be_exact_and_nonnegative() {
assert!(Owned::new(std::ptr::null()).is_none());
unsafe {
assert_eq!(number(std::ptr::null()), None);
let text = Owned::string(c"27").unwrap();
assert_eq!(number(text.0), None);
for value in [-1_i64, 0, 100] {
let object = Owned::new(CFNumberCreate(
std::ptr::null(),
4,
(&value as *const i64).cast(),
))
.unwrap();
assert_eq!(number(object.0), u64::try_from(value).ok());
}
let fraction = 1.5_f64;
let object = Owned::new(CFNumberCreate(
std::ptr::null(),
6,
(&fraction as *const f64).cast(),
))
.unwrap();
assert_eq!(number(object.0), None);
}
}