iprs 0.0.4

Inter planetary specifications in rust-lang
use super::*;
use multibase::Base;

#[test]
fn test_sha1() {
    use crate::multibase;

    let mh = {
        let data = "Hello world".as_bytes();
        Multihash::new(multicodec::SHA1.into(), data).unwrap()
    };

    {
        let orig = "f11147b502c3a1f48c8609ae212cdfb639dee39673f5e";
        let data = mh.encode().unwrap();
        let mb = multibase::Multibase::from_base(Base::Base16Lower, &data).unwrap();
        assert_eq!(mb.encode().unwrap(), orig);
    }
    {
        let orig = "f7b502c3a1f48c8609ae212cdfb639dee39673f5e";
        let data = mh.to_digest().unwrap();
        let mb = multibase::Multibase::from_base(Base::Base16Lower, &data).unwrap();
        assert_eq!(mb.encode().unwrap(), orig);
    }
}

#[test]
fn test_sha2_256() {
    use crate::multibase;

    let mut mh = {
        let data = "Hello world".as_bytes();
        Multihash::new(multicodec::SHA2_256.into(), data).unwrap()
    };

    {
        let orig = "f122064ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c";
        let data = mh.encode().unwrap();
        let mb = multibase::Multibase::from_base(Base::Base16Lower, &data).unwrap();
        assert_eq!(mb.encode().unwrap(), orig);
    }
    {
        let orig = "f64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c";
        let data = mh.to_digest().unwrap();
        let mb = multibase::Multibase::from_base(Base::Base16Lower, &data).unwrap();
        assert_eq!(mb.encode().unwrap(), orig);
    }

    mh.reset().unwrap();
    mh.write("hello world".as_bytes())
        .unwrap()
        .finish()
        .unwrap();

    let data = mh.encode().unwrap();
    let mb = multibase::Multibase::from_base(Base::Base16Lower, &data).unwrap();
    let orig = "f1220b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9";
    assert_eq!(mb.encode().unwrap(), orig);
}

#[test]
fn test_multihash_pretty() {
    let mh = {
        let data = "hello world".as_bytes();
        Multihash::new(multicodec::SHA2_256.into(), data).unwrap()
    };
    assert_eq!(
        format!("{}", mh),
        "sha2-256-256-b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9".to_string(),
    );
}