1
2
3
4
5
6
7
8
9
10
11
#![allow(dead_code)]

pub fn floats_are_same(value: f64, reference: f64, threshold: f64) -> bool {
    let absolute_error = (value - reference).abs();
    if reference.abs() > threshold {
        let relative_error = (absolute_error / reference).abs();
        relative_error < threshold
    } else {
        absolute_error < threshold
    }
}