add compare_frac17_float test

This commit is contained in:
Trevor Spiteri 2019-08-29 14:20:56 +02:00
parent 1a81cef6eb
commit 75df9749ff
1 changed files with 15 additions and 1 deletions

View File

@ -716,7 +716,7 @@ mod tests {
for u in 0..=255u8 {
// I4F4 and U4F4 are displayed like f32 when the f32
// display precision is the number of fractional digits
// displayed for fixed-point. This verfies correct display
// displayed for fixed-point. This verifies correct display
// of the integer part.
let (ifix, ufix) = (I4F4::from_bits(u as i8), U4F4::from_bits(u));
let (iflo, uflo) = (ifix.to_num::<f32>(), ufix.to_num::<f32>());
@ -751,4 +751,18 @@ mod tests {
assert_eq!(sufix_frac, sufixed_frac);
}
}
#[test]
fn compare_frac17_float() {
for u in 0..(1 << 17) {
// 24 bits of precision: 17 fractional bits + 7 significant integer bits
let ufix = U15F17::from_bits(u) + U15F17::from_num(99);
let ifix = -I15F17::from_num(ufix);
let (iflo, uflo) = (ifix.to_num::<f32>(), ufix.to_num::<f32>());
assert_eq!(ifix.to_string(), iflo.to_string());
assert_eq!(ufix.to_string(), uflo.to_string());
assert_eq!(format!("{:.3}", ifix), format!("{:.3}", iflo));
assert_eq!(format!("{:.3}", ufix), format!("{:.3}", uflo));
}
}
}