fix: French album types, add map_album type test
This commit is contained in:
parent
57abab112f
commit
6e2ba71f33
4 changed files with 38 additions and 7 deletions
|
|
@ -64,8 +64,12 @@ pub fn write_samples_to_dict(project_root: &Path) {
|
||||||
let mut e_langs = dict_entry.equivalent.clone();
|
let mut e_langs = dict_entry.equivalent.clone();
|
||||||
e_langs.push(lang);
|
e_langs.push(lang);
|
||||||
|
|
||||||
collected.get(&lang).unwrap().iter().for_each(|(t, v)| {
|
e_langs.iter().for_each(|lang| {
|
||||||
dict_entry.album_types.insert(v.to_lowercase(), *t);
|
collected.get(&lang).unwrap().iter().for_each(|(t, v)| {
|
||||||
|
dict_entry
|
||||||
|
.album_types
|
||||||
|
.insert(v.to_lowercase().trim().to_owned(), *t);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -630,7 +630,29 @@ pub(crate) fn map_artists(artists_p: Option<TextComponents>) -> (Vec<ArtistId>,
|
||||||
pub(crate) fn map_album_type(txt: &str, lang: Language) -> AlbumType {
|
pub(crate) fn map_album_type(txt: &str, lang: Language) -> AlbumType {
|
||||||
dictionary::entry(lang)
|
dictionary::entry(lang)
|
||||||
.album_types
|
.album_types
|
||||||
.get(&txt.to_lowercase())
|
.get(txt.to_lowercase().trim())
|
||||||
.copied()
|
.copied()
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use std::{collections::BTreeMap, fs::File, io::BufReader, path::Path};
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn map_album_type_samples() {
|
||||||
|
let json_path = Path::new("testfiles/dict/album_type_samples.json");
|
||||||
|
let json_file = File::open(json_path).unwrap();
|
||||||
|
let atype_samples: BTreeMap<Language, BTreeMap<AlbumType, String>> =
|
||||||
|
serde_json::from_reader(BufReader::new(json_file)).unwrap();
|
||||||
|
|
||||||
|
atype_samples.iter().for_each(|(lang, entry)| {
|
||||||
|
entry.iter().for_each(|(album_type, txt)| {
|
||||||
|
let res = map_album_type(txt, *lang);
|
||||||
|
assert_eq!(res, *album_type, "lang: {}, txt: {}", lang, txt);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1886,15 +1886,18 @@ pub(crate) fn entry(lang: Language) -> Entry {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
album_types: ::phf::Map {
|
album_types: ::phf::Map {
|
||||||
key: 2980949210194914378,
|
key: 12913932095322966823,
|
||||||
disps: &[
|
disps: &[
|
||||||
(2, 0),
|
(0, 0),
|
||||||
|
(5, 0),
|
||||||
],
|
],
|
||||||
entries: &[
|
entries: &[
|
||||||
|
("microalbum", AlbumType::Ep),
|
||||||
("album", AlbumType::Album),
|
("album", AlbumType::Album),
|
||||||
("émission", AlbumType::Show),
|
|
||||||
("ep", AlbumType::Ep),
|
|
||||||
("livre audio", AlbumType::Audiobook),
|
("livre audio", AlbumType::Audiobook),
|
||||||
|
("émission", AlbumType::Show),
|
||||||
|
("simple", AlbumType::Single),
|
||||||
|
("ep", AlbumType::Ep),
|
||||||
("single", AlbumType::Single),
|
("single", AlbumType::Single),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1104,6 +1104,8 @@
|
||||||
"album": "Album",
|
"album": "Album",
|
||||||
"ep": "Ep",
|
"ep": "Ep",
|
||||||
"livre audio": "Audiobook",
|
"livre audio": "Audiobook",
|
||||||
|
"microalbum": "Ep",
|
||||||
|
"simple": "Single",
|
||||||
"single": "Single",
|
"single": "Single",
|
||||||
"émission": "Show"
|
"émission": "Show"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Reference in a new issue