use cap::Cap;
use crates_index::*;
use rayon::iter::ParallelIterator;
use std::alloc;

#[global_allocator]
static ALLOCATOR: Cap<alloc::System> = Cap::new(alloc::System, usize::max_value());

#[test]
fn mem_usage() {
    let index = Index::new_cargo_default().unwrap();

    let before = ALLOCATOR.allocated();
    // let all_crates: Vec<_> = index.crates().collect();
    let all_crates: Vec<_> = index.crates_parallel().map(|c| c.unwrap()).collect();
    let after = ALLOCATOR.allocated();
    let used = after - before;
    assert!(all_crates.len() > 76200);
    eprintln!(
        "used mem: {}B for {} crates, {}B per crate",
        used,
        all_crates.len(),
        used / all_crates.len()
    );
    assert!(used / all_crates.len() < 4800);
}
