temperaments 1.0.2

Calculate frequency tables of a wide variety of musical temperaments and calculate cent offsets.
Documentation
//! Module to make floating number comparisons easier using a naive string-formatting based
//! comparison.

macro_rules! assert_flt_eq {
    ($left:expr, $right:expr) => {
        match (format!("{:.8}", &$left), format!("{:.8}", &$right)) {
            (left_val, right_val) => {
                assert_eq!(left_val, right_val)
            }
        }
    };
    ($left:expr, $right:expr, precision = $precision:expr) => {
        match (format!("{:.1$}", &$left, $precision), format!("{:.1$}", &$right, $precision)) {
            (left_val, right_val) => {
                assert_eq!(left_val, right_val);
            }
        }
    };
    ($left:expr, $right:expr, $($arg:tt)+) => {
        match (format!("{:.8}", &$left), format!("{:.8}", &$right)) {
            (left_val, right_val) => {
                assert_eq!(left_val, right_val, format_args!($($arg)+));
            }
        }
    };
    ($left:expr, $right:expr, precision = $precision:expr, $($arg:tt)+) => {
        match (format!("{:.1$}", &$left, $precision), format!("{:.1$}", &$right, $precision)) {
            (left_val, right_val) => {
                assert_eq!(left_val, right_val, format_args!($($arg)+));
            }
        }
    };
}

macro_rules! assert_flt_ne {
    ($left:expr, $right:expr) => {
        match (format!("{:.8}", &$left), format!("{:.8}", &$right)) {
            (left_val, right_val) => {
                assert_ne!(left_val, right_val)
            }
        }
    };
    ($left:expr, $right:expr, precision = $precision:expr) => {
        match (format!("{:.1$}", &$left, $precision), format!("{:.1$}", &$right, $precision)) {
            (left_val, right_val) => {
                assert_ne!(left_val, right_val);
            }
        }
    };
    ($left:expr, $right:expr, $($arg:tt)+) => {
        match (format!("{:.8}", &$left), format!("{:.8}", &$right)) {
            (left_val, right_val) => {
                assert_ne!(left_val, right_val, format_args!($($arg)+));
            }
        }
    };
    ($left:expr, $right:expr, precision = $precision:expr, $($arg:tt)+) => {
        match (format!("{:.1$}", &$left, $precision), format!("{:.1$}", &$right, $precision)) {
            (left_val, right_val) => {
                assert_ne!(left_val, right_val, format_args!($($arg)+));
            }
        }
    };
}

pub(crate) use assert_flt_eq;
pub(crate) use assert_flt_ne;