pub const DEFAULT_HOTWORDS: &[&str] = &[
"эпл",
"айфон",
"самсунг",
"сони",
"гугл",
"яндекс",
"сбер",
"алиса",
"маруся",
"ютуб",
"фейсбук",
"инстаграм",
"телеграм",
"вконтакте",
"нетфликс",
"спотифай",
"ватсап",
"тикток",
"твич",
"кинопоиск",
"окко",
"иви",
"смотрешка",
"алиэкспресс",
"озон",
"вайлдберриз",
"вк",
"тв",
"синергия",
"пинк",
];
pub fn default_hotword_pairs() -> Vec<(String, f32)> {
DEFAULT_HOTWORDS
.iter()
.map(|w| ((*w).to_string(), 1.0))
.collect()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_hotwords_non_empty_and_unique() {
assert!(!DEFAULT_HOTWORDS.is_empty());
let mut seen = std::collections::HashSet::new();
for w in DEFAULT_HOTWORDS {
assert!(seen.insert(*w), "duplicate hotword in lexicon: {w}");
assert!(!w.trim().is_empty(), "empty hotword in lexicon");
}
}
#[test]
fn test_default_hotword_pairs_unit_weight() {
let pairs = default_hotword_pairs();
assert_eq!(pairs.len(), DEFAULT_HOTWORDS.len());
assert!(pairs.iter().all(|(_, w)| *w == 1.0));
}
}