extern crate kib;
use kib::{fmt, KIB, MIB, GIB, TIB, PIB, EIB, ZIB, YIB};
#[test]
fn units() {
let one_kib: u128 = 1024;
assert_eq!(one_kib, KIB.into());
assert_eq!(one_kib.pow(2), MIB.into());
assert_eq!(one_kib.pow(3), GIB.into());
assert_eq!(one_kib.pow(4), TIB.into());
assert_eq!(one_kib.pow(5), PIB.into());
assert_eq!(one_kib.pow(6), EIB.into());
assert_eq!(one_kib.pow(7), ZIB);
assert_eq!(one_kib.pow(8), YIB);
assert_eq!(one_kib.pow(9), YIB * 1024_u128);
assert_eq!(one_kib.pow(10), YIB * 1024_u128.pow(2));
assert_eq!(one_kib.pow(11), YIB * 1024_u128.pow(3));
}
#[test]
fn formats() {
assert_eq!(fmt(1023_u16), "1023 Bytes");
assert_eq!(fmt(KIB), "1.00 KiB");
assert_eq!(fmt(MIB), "1.00 MiB");
assert_eq!(fmt(GIB), "1.00 GiB");
assert_eq!(fmt(TIB), "1.00 TiB");
assert_eq!(fmt(PIB), "1.00 PiB");
assert_eq!(fmt(EIB), "1.00 EiB");
assert_eq!(fmt(ZIB), "1.00 ZiB");
assert_eq!(fmt(YIB), "1.00 YiB");
assert_eq!(fmt(YIB * 1024), "1024.00 YiB");
assert_eq!(fmt(YIB * 1024_u128.pow(2)), "1048576.00 YiB");
assert_eq!(fmt(YIB * 1024_u128.pow(3)), "1073741824.00 YiB");
}