format 0.2.4

A utility crate to make it easier to work with the formatter
Documentation
use format::{Binary, Debug, Display, LowerExp, LowerHex, Octal, Pointer, UpperExp, UpperHex};

#[test]
fn binary() {
    let lazy_format = Binary(|f| write!(f, "{:#b}", 123456789));
    assert_eq!(
        "0b111010110111100110100010101",
        format!("{:b}", lazy_format)
    );
    assert_eq!("0b111010110111100110100010101", format!("{}", lazy_format));
    assert_eq!(
        "Binary(0b111010110111100110100010101)",
        format!("{:?}", lazy_format)
    );
}

#[test]
fn debug() {
    let lazy_format = Debug(|f| write!(f, "{}", 123456789));
    assert_eq!("123456789", format!("{:?}", lazy_format));
}

#[test]
fn display() {
    let lazy_format = Display(|f| write!(f, "{}", 123456789));
    assert_eq!("123456789", format!("{}", lazy_format));
    assert_eq!("Display(123456789)", format!("{:?}", lazy_format));
}

#[test]
fn lower_exp() {
    let lazy_format = LowerExp(|f| write!(f, "{:#e}", 123456789f64));
    assert_eq!("1.23456789e8", format!("{:e}", lazy_format));
    assert_eq!("1.23456789e8", format!("{}", lazy_format));
    assert_eq!("LowerExp(1.23456789e8)", format!("{:?}", lazy_format));
}

#[test]
fn lower_hex() {
    let lazy_format = LowerHex(|f| write!(f, "{:#x}", 123456789));
    assert_eq!("0x75bcd15", format!("{:x}", lazy_format));
    assert_eq!("0x75bcd15", format!("{}", lazy_format));
    assert_eq!("LowerHex(0x75bcd15)", format!("{:?}", lazy_format));
}

#[test]
fn octal() {
    let lazy_format = Octal(|f| write!(f, "{:#o}", 123456789));
    assert_eq!("0o726746425", format!("{:o}", lazy_format));
    assert_eq!("0o726746425", format!("{}", lazy_format));
    assert_eq!("Octal(0o726746425)", format!("{:?}", lazy_format));
}

#[test]
fn pointer() {
    let lazy_format = Pointer(|f| write!(f, "{:#p}", 123456789 as *const ()));
    assert_eq!("0x00000000075bcd15", format!("{:p}", lazy_format));
    assert_eq!("0x00000000075bcd15", format!("{}", lazy_format));
    assert_eq!("Pointer(0x00000000075bcd15)", format!("{:?}", lazy_format));
}

#[test]
fn upper_exp() {
    let lazy_format = UpperExp(|f| write!(f, "{:#E}", 123456789f64));
    println!("{:E}", lazy_format);
    assert_eq!("1.23456789E8", format!("{:E}", lazy_format));
    assert_eq!("1.23456789E8", format!("{}", lazy_format));
    assert_eq!("UpperExp(1.23456789E8)", format!("{:?}", lazy_format));
}

#[test]
fn upper_hex() {
    let lazy_format = UpperHex(|f| write!(f, "{:#X}", 123456789));
    assert_eq!("0x75BCD15", format!("{:X}", lazy_format));
    assert_eq!("0x75BCD15", format!("{}", lazy_format));
    assert_eq!("UpperHex(0x75BCD15)", format!("{:?}", lazy_format));
}