wrc 0.2.2

A thread-safe weighted reference counting smart-pointer for Rust.
Documentation
use std::cmp::Ordering;
use std::hash::Hash;
use std::collections::hash_map::DefaultHasher;
use WRC;

#[test]
fn implements_fmt_debug() {
    let example = WRC::new((1,2,3));
    assert_eq!(format!("{:?}", example), "(1, 2, 3)");
}

#[test]
fn implemnts_fmt_display() {
    let example = WRC::new(13);
    assert_eq!(format!("{}", example), "13");
}

#[test]
fn implements_partial_eq() {
    let wrc0 = WRC::new((1,2,3));
    let wrc1 = wrc0.clone();
    assert_eq!(wrc0, wrc1);
}

#[test]
fn implements_partial_ord() {
    let wrc0 = WRC::new(13);
    let wrc1 = WRC::new(27);

    assert!(wrc0 < wrc1);
    assert!(wrc0 <= wrc1);
    assert!(wrc0 <= wrc0);
    assert!(wrc1 > wrc0);
    assert!(wrc1 >= wrc0);
    assert!(wrc1 >= wrc1);
}

#[test]
fn implements_ord() {
    let wrc0 = WRC::new(13);
    let wrc1 = WRC::new(27);
    assert_eq!(wrc0.cmp(&wrc1), Ordering::Less);
    assert_eq!(wrc1.cmp(&wrc0), Ordering::Greater);
    assert_eq!(wrc0.cmp(&wrc0), Ordering::Equal);
}

#[test]
fn implements_default() {
    let wrc0: WRC<usize> = Default::default();
    let wrc1 = WRC::new(0);
    assert_eq!(wrc0, wrc1);
}

#[test]
fn implements_hash() {
    let wrc = WRC::new(13);
    let mut hasher = DefaultHasher::new();
    let hash0 = wrc.hash(&mut hasher);
    let mut hasher = DefaultHasher::new();
    let hash1 = 13.hash(&mut hasher);
    assert_eq!(hash0, hash1);
}