public void TestGetTracks(NormalizedTrack normalizedTrack, Track yaTrack, bool expected, string msg = null) { var track = new YandexTracks(new[] { yaTrack }).FindEqualTrack(normalizedTrack); if (expected) { Assert.AreEqual(yaTrack, track, GetMessage(normalizedTrack, yaTrack, msg)); } else { Assert.AreNotEqual(yaTrack, track, GetMessage(normalizedTrack, yaTrack, msg)); } }
public Track FindEqualTrack(NormalizedTrack normalizedTrack) { return(tracks.FirstOrDefault(yaTrack => yaTrack.Albums.Length > 0 && BrutteEquals(yaTrack.Title, normalizedTrack.Title) && yaTrack.Artists.Any(y => normalizedTrack.AllArtists.Any(v => { var yLower = y.Name.ToLowerInvariant(); var vLower = v.ToLowerInvariant(); return OneContainsAnother(vLower, yLower) || OneContainsAnother(BrutteNormalize(vLower), BrutteNormalize(yLower)); })))); }
private string GetMessage(NormalizedTrack normalizedTrack, Track yaTrack, string msg) { return ($"#{msg}: {normalizedTrack.Artist}-{normalizedTrack.Title} vs {string.Join(", ", yaTrack.Artists.Select(x => x.Name))}-{yaTrack.Title}"); }