use libutils::log::Log;
#[test]
fn basic() -> () {
let mut log = Log::from([1, 2, 3]);
assert_eq!(log.len(), 3);
log.push(4);
assert_eq!(log.len(), 4);
}
#[test]
fn extenditer() -> () {
let mut log = Log::default();
log.extend([1, 2, 3]);
for (index, value) in log.into_iter().enumerate() {
assert_eq!(index + 1, value)
}
}
#[test]
fn references() -> () {
let array = [1, 2, 3];
let log = Log::from(array);
assert_eq!(log.as_ref(), &array);
}
#[test]
fn biter() -> () {
let log = &Log::from([1, 2, 3]);
for (index, value) in log.iter().enumerate() {
assert_eq!(index + 1, *value)
}
}
#[test]
#[should_panic]
fn drop() -> () {
struct Guard;
impl Drop for Guard {
fn drop(&mut self) {
panic!()
}
}
let _ = Log::from([Guard]);
}
#[test]
fn zst() -> () {
let mut log = Log::from([(), (), ()]);
log.push(());
assert_eq!(log.len(), 4);
}