emdb_lib 0.1.3

Orthographic token compression
Documentation
pub fn test_module_file() {
    println!("src/word_finals_freq.rs connected");
}

pub fn final_ly_ily_to_l(word: &str) -> String {
    if word.ends_with("ily") {
        return format!("{}l", &word[..word.len() - 3]);
    }
    else if word.ends_with("ly") {
        return format!("{}l", &word[..word.len() - 2]);
    }
    word.to_string()
}

pub fn final_ing_thing_to_g(word: &str) -> String {
    if word.ends_with("thing") {
        return format!("{}g", &word[..word.len() - 5]);
    }
    else if word.ends_with("ing") {
        return format!("{}g", &word[..word.len() - 3]);
    }
    word.to_string()
}

pub fn final_ary_ery_iry_ory_ury_to_y(word: &str) -> String {
    if word.ends_with("orry") { return format!("{}y", &word[..word.len() - 4]); }
    else if word.ends_with("airy") { return format!("{}y", &word[..word.len() - 4]); }
    else if word.ends_with("ary") { return format!("{}y", &word[..word.len() - 3]); }
    else if word.ends_with("iry") { return format!("{}y", &word[..word.len() - 3]); }
    else if word.ends_with("ery") { return format!("{}y", &word[..word.len() - 3]); }
    else if word.ends_with("ory") { return format!("{}y", &word[..word.len() - 3]); }
    else if word.ends_with("ury") { return format!("{}y", &word[..word.len() - 3]); }
    else if word.ends_with("ari") { return format!("{}y", &word[..word.len() - 3]); }
    else if word.ends_with("ry") { return format!("{}y", &word[..word.len() - 2]); }
    word.to_string()
}

#[cfg(test)]
    mod tests {
    use super::*;

    #[test]
    fn test_final_ly_ily_to_l() {
        assert_eq!(final_ly_ily_to_l("happily"), "happl".to_string());
        assert_eq!(final_ly_ily_to_l("greatly"), "greatl".to_string());
    }

    #[test]
    fn test_final_ing_thing_to_g() {
        assert_eq!(final_ing_thing_to_g("anything"), "anyg".to_string());
        assert_eq!(final_ing_thing_to_g("running"), "runng".to_string());
    }

    #[test]
    fn test_final_ary_ery_iry_ory_ury_to_y() {
        assert_eq!(final_ary_ery_iry_ory_ury_to_y("fairy"), "fy".to_string());
        assert_eq!(final_ary_ery_iry_ory_ury_to_y("flattery"), "flatty".to_string());
        assert_eq!(final_ary_ery_iry_ory_ury_to_y("sorry"), "sy".to_string());
        assert_eq!(final_ary_ery_iry_ory_ury_to_y("wiry"), "wy".to_string());
        assert_eq!(final_ary_ery_iry_ory_ury_to_y("surgery"), "surgy".to_string());
        assert_eq!(final_ary_ery_iry_ory_ury_to_y("hurry"), "hury".to_string());
//        assert_eq!(final_ary_ery_iry_ory_ury_to_y("glorious"), "glyous".to_string()); // this test will fail
//        assert_eq!(final_ary_ery_iry_ory_ury_to_y("nefarious"), "nefyous".to_string()); // this test will fail
    }
}