lists 1.1.0

Library containing various implementations of list-like data-structures such as Vectors, LinkedLists, and more.
Documentation
use super::super::super::sl_list;
use super::SinglyLinkedList;


#[test]
fn new() {
    let list = SinglyLinkedList::<()>::new();

    assert_eq!(list.len(), 0);
    assert_eq!(list.front(), None);
}


#[test]
fn front() {
    let mut list = sl_list![6, 7, 0];
    
    assert_eq!(list.front_mut(), Some(&mut 6));
    assert_eq!(list.front(), Some(&6));
}


#[test]
fn back() {
    let mut list = sl_list![6, 7, 0];
    
    assert_eq!(list.back_mut(), Some(&mut 0));
    assert_eq!(list.back(), Some(&0));
}


#[test]
fn push_front() {
    let mut list = SinglyLinkedList::new();

    list.push_front(1);
    list.push_front(2);
    list.push_front(3);

    assert_eq!(list.len(), 3);
    assert_eq!(list.front(), Some(&3));
}


#[test]
fn push_back() {
    let mut list = SinglyLinkedList::new();

    list.push_back(1);
    list.push_back(2);
    list.push_back(3);

    assert_eq!(list.len(), 3);
    assert_eq!(list.front(), Some(&1));
}


#[test]
fn sl_list_macro() {
    let list = sl_list![1, 2, 3, 4, 5];
    assert_eq!(list.len(), 5);
    assert_eq!(list.front(), Some(&1));
}


#[test]
fn pop_front() {
    let mut list = sl_list![3, 0, 0, 5];
    let pop = list.pop_front();
    
    assert_eq!(pop, Some(3));
    assert_eq!(list, sl_list![0, 0, 5]);
}


#[test]
fn iter() {
    let list = sl_list![0, 1, 2, 3, 4];
    let mut sum = 0;

    for i in list {
        sum += i;
    }

    assert_eq!(sum, 10);
}


#[test]
fn eq() {
    let list_a = sl_list![1, 2, 3, 4, 5];
    let list_b = sl_list![1, 2, 3, 4, 5];

    assert_eq!(list_a, list_b);
}


#[test]
fn remove_front() {
    let mut list = sl_list![1, 2, 3];
    list.remove_front();

    assert_eq!(list, sl_list![2, 3]);
}


#[test]
fn get() {
    let mut list = sl_list!["Singly", "Linked", "List"];

    assert_eq!(list.get_mut(0), Some(&mut "Singly"));
    assert_eq!(list.get_mut(1), Some(&mut "Linked"));
    assert_eq!(list.get_mut(2), Some(&mut "List"));
    assert_eq!(list.get_mut(3), None);

    assert_eq!(list.get(0), Some(&"Singly"));
    assert_eq!(list.get(1), Some(&"Linked"));
    assert_eq!(list.get(2), Some(&"List"));
    assert_eq!(list.get(3), None);
}