Updated readme
This commit is contained in:
+2
-98
@@ -2628,101 +2628,5 @@ fn ephemeral_track(
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
fn test_owner() -> EndpointId {
|
||||
music_dht::SecretKey::from_bytes(&[7; 32]).public()
|
||||
}
|
||||
|
||||
fn dht_track(main: &[&str], featured: &[&str]) -> LibraryItem {
|
||||
let owner = test_owner();
|
||||
LibraryItem {
|
||||
id: music_dht::ItemId::derive(&owner, ItemKind::Track, "track:1"),
|
||||
owner,
|
||||
kind: ItemKind::Track,
|
||||
name: "Guest Verse".into(),
|
||||
normalized_name: music_dht::normalize_name("Guest Verse"),
|
||||
artist_names: main.iter().map(|name| name.to_string()).collect(),
|
||||
featured_artist_names: featured.iter().map(|name| name.to_string()).collect(),
|
||||
year: Some(2024),
|
||||
release_type: Some("album".into()),
|
||||
release_title: Some("Host Album".into()),
|
||||
track_number: Some(2),
|
||||
disc_number: Some(1),
|
||||
duration_seconds: Some(180.0),
|
||||
content_id: Some(
|
||||
"b3:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef".into(),
|
||||
),
|
||||
revision: 1,
|
||||
deleted: false,
|
||||
updated_at_ms: 0,
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dht_appearance_requires_explicit_featured_artist() {
|
||||
let normalized = music_dht::normalize_name("Guest");
|
||||
assert!(dht_appearance_hit(&dht_track(&["Guest"], &[]), &normalized, "Guest").is_none());
|
||||
|
||||
let hit =
|
||||
dht_appearance_hit(&dht_track(&["Host"], &["Guest"]), &normalized, "Guest").unwrap();
|
||||
assert_eq!(hit.release_title, "Host Album");
|
||||
assert_eq!(hit.release_type, "album");
|
||||
assert_eq!(hit.year, Some(2024));
|
||||
assert_eq!(hit.track.artists, vec!["Host"]);
|
||||
assert_eq!(hit.track.featured_artists, vec!["Guest"]);
|
||||
assert_eq!(hit.track.track_number, Some(2));
|
||||
assert_eq!(hit.track.disc_number, Some(1));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn federation_search_ranks_exact_names_first() {
|
||||
let normalized = music_dht::normalize_name("ежемесячные");
|
||||
let mut artists = vec![
|
||||
FedArtistHit {
|
||||
name: "Booker".into(),
|
||||
peers: 3,
|
||||
},
|
||||
FedArtistHit {
|
||||
name: "Ежемесячные".into(),
|
||||
peers: 1,
|
||||
},
|
||||
];
|
||||
let mut tracks = vec![
|
||||
FedTrack {
|
||||
item_id: "a".into(),
|
||||
owner: "peer-a".into(),
|
||||
own: false,
|
||||
title: "Гость".into(),
|
||||
artist_names: vec!["Other".into()],
|
||||
featured_artist_names: vec!["Ежемесячные".into()],
|
||||
year: None,
|
||||
duration_seconds: None,
|
||||
content_id: None,
|
||||
release_title: None,
|
||||
track_number: None,
|
||||
disc_number: None,
|
||||
},
|
||||
FedTrack {
|
||||
item_id: "b".into(),
|
||||
owner: "peer-b".into(),
|
||||
own: false,
|
||||
title: "Ежемесячные".into(),
|
||||
artist_names: vec!["Other".into()],
|
||||
featured_artist_names: Vec::new(),
|
||||
year: None,
|
||||
duration_seconds: None,
|
||||
content_id: None,
|
||||
release_title: None,
|
||||
track_number: None,
|
||||
disc_number: None,
|
||||
},
|
||||
];
|
||||
|
||||
rank_fed_search_results(&mut artists, &mut tracks, &normalized);
|
||||
|
||||
assert_eq!(artists[0].name, "Ежемесячные");
|
||||
assert_eq!(tracks[0].title, "Ежемесячные");
|
||||
}
|
||||
}
|
||||
#[path = "tests.rs"]
|
||||
mod tests;
|
||||
|
||||
Reference in New Issue
Block a user