update to the playlists. testing
This commit is contained in:
@@ -83,7 +83,7 @@ fn test_score_tracks_basic() {
|
||||
let mut top_map = HashMap::new();
|
||||
top_map.insert("artist-1".to_string(), top_tracks);
|
||||
|
||||
let scored = score_tracks(&artists, &tracks_map, &top_map, 5);
|
||||
let scored = score_tracks(&artists, &tracks_map, &top_map, 5, 0, None);
|
||||
|
||||
// Should have 3 tracks (only ones matching top tracks)
|
||||
assert_eq!(scored.len(), 3);
|
||||
@@ -107,7 +107,7 @@ fn test_score_tracks_no_top_tracks_uses_uniform() {
|
||||
|
||||
let top_map = HashMap::new(); // No top tracks
|
||||
|
||||
let scored = score_tracks(&artists, &tracks_map, &top_map, 5);
|
||||
let scored = score_tracks(&artists, &tracks_map, &top_map, 5, 0, None);
|
||||
|
||||
// All 3 tracks should be included with uniform scoring
|
||||
assert_eq!(scored.len(), 3);
|
||||
@@ -141,11 +141,11 @@ fn test_score_tracks_per_artist_cap() {
|
||||
top_map.insert("artist-1".to_string(), top_tracks);
|
||||
|
||||
// bias 10 → cap = 10
|
||||
let scored = score_tracks(&artists, &tracks_map, &top_map, 10);
|
||||
let scored = score_tracks(&artists, &tracks_map, &top_map, 10, 0, None);
|
||||
assert!(scored.len() <= 10);
|
||||
|
||||
// bias 0 → no cap
|
||||
let scored_no_cap = score_tracks(&artists, &tracks_map, &top_map, 0);
|
||||
let scored_no_cap = score_tracks(&artists, &tracks_map, &top_map, 0, 0, None);
|
||||
assert_eq!(scored_no_cap.len(), 50);
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ fn test_similarity_transform() {
|
||||
tracks_map.insert("high".to_string(), vec![track_high]);
|
||||
tracks_map.insert("low".to_string(), vec![track_low]);
|
||||
|
||||
let scored = score_tracks(&artists, &tracks_map, &HashMap::new(), 5);
|
||||
let scored = score_tracks(&artists, &tracks_map, &HashMap::new(), 5, 0, None);
|
||||
assert_eq!(scored.len(), 2);
|
||||
|
||||
let high_score = scored
|
||||
@@ -189,7 +189,7 @@ fn test_generate_playlist_basic() {
|
||||
.collect();
|
||||
|
||||
let seeds = HashSet::new();
|
||||
let result = generate_playlist(&candidates, 10, &seeds);
|
||||
let result = generate_playlist(&candidates, 10, &seeds, None, false);
|
||||
|
||||
assert_eq!(result.len(), 10);
|
||||
}
|
||||
@@ -199,7 +199,7 @@ fn test_generate_playlist_respects_count() {
|
||||
let candidates: Vec<Candidate> = (1..=5).map(|i| make_candidate(i, "Artist", 1.0)).collect();
|
||||
|
||||
let seeds = HashSet::new();
|
||||
let result = generate_playlist(&candidates, 3, &seeds);
|
||||
let result = generate_playlist(&candidates, 3, &seeds, None, false);
|
||||
assert_eq!(result.len(), 3);
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ fn test_generate_playlist_not_more_than_available() {
|
||||
let candidates: Vec<Candidate> = (1..=3).map(|i| make_candidate(i, "Artist", 1.0)).collect();
|
||||
|
||||
let seeds = HashSet::new();
|
||||
let result = generate_playlist(&candidates, 100, &seeds);
|
||||
let result = generate_playlist(&candidates, 100, &seeds, None, false);
|
||||
assert_eq!(result.len(), 3);
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ fn test_generate_playlist_not_more_than_available() {
|
||||
fn test_generate_playlist_empty_candidates() {
|
||||
let candidates: Vec<Candidate> = vec![];
|
||||
let seeds = HashSet::new();
|
||||
let result = generate_playlist(&candidates, 10, &seeds);
|
||||
let result = generate_playlist(&candidates, 10, &seeds, None, false);
|
||||
assert!(result.is_empty());
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ fn test_generate_playlist_per_artist_cap() {
|
||||
candidates.extend((21..=25).map(|i| make_candidate(i, "Minor", 1.0)));
|
||||
|
||||
let seeds = HashSet::new();
|
||||
let result = generate_playlist(&candidates, 15, &seeds);
|
||||
let result = generate_playlist(&candidates, 15, &seeds, None, false);
|
||||
|
||||
let prolific_count = result.iter().filter(|c| c.artist == "Prolific").count();
|
||||
let minor_count = result.iter().filter(|c| c.artist == "Minor").count();
|
||||
@@ -259,7 +259,7 @@ fn test_generate_playlist_seed_enforcement() {
|
||||
let mut seeds = HashSet::new();
|
||||
seeds.insert("Seed".to_string());
|
||||
|
||||
let result = generate_playlist(&candidates, 10, &seeds);
|
||||
let result = generate_playlist(&candidates, 10, &seeds, None, false);
|
||||
let seed_count = result.iter().filter(|c| c.artist == "Seed").count();
|
||||
|
||||
// seed_min = (10/10).max(1) = 1, so at least 1 seed track
|
||||
|
||||
Reference in New Issue
Block a user