selfware 0.6.7

Your personal AI workshop — software you own, software that lasts
Documentation
use super::*;

#[test]
fn test_all_levels_count() {
    let levels = all_levels();
    assert_eq!(levels.len(), 6);
}

#[test]
fn test_all_levels_names_unique() {
    let levels = all_levels();
    let names: Vec<&str> = levels.iter().map(|l| l.name()).collect();
    let mut deduped = names.clone();
    deduped.sort();
    deduped.dedup();
    assert_eq!(names.len(), deduped.len(), "Level names must be unique");
}

#[test]
fn test_all_levels_difficulty_ascending() {
    let levels = all_levels();
    for window in levels.windows(2) {
        assert!(
            window[0].difficulty() <= window[1].difficulty(),
            "{} ({}) should be <= {} ({})",
            window[0].name(),
            window[0].difficulty(),
            window[1].name(),
            window[1].difficulty(),
        );
    }
}