Exemplo n.º 1
0
        public void test_identical_albums()
        {
            var tracks      = GivenTracks(3);
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);
            var mapping     = GivenMapping(localTracks, tracks);

            DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping).NormalizedDistance().Should().Be(0.0);
        }
Exemplo n.º 2
0
        public void test_two_medium_release()
        {
            var tracks = GivenTracks(3);

            tracks[2].AbsoluteTrackNumber = 1;
            tracks[2].MediumNumber        = 2;
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);
            var mapping     = GivenMapping(localTracks, tracks);

            DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping).NormalizedDistance().Should().Be(0.0);
        }
Exemplo n.º 3
0
        public void test_tracks_out_of_order()
        {
            var tracks      = GivenTracks(3);
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);

            localTracks = new[] { 1, 3, 2 }.Select(x => localTracks[x - 1]).ToList();
            var mapping = GivenMapping(localTracks, tracks);

            var dist = DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping);

            dist.NormalizedDistance().Should().NotBe(0.0);
            dist.NormalizedDistance().Should().BeLessThan(0.2);
        }
Exemplo n.º 4
0
        public void test_global_artists_differ()
        {
            var tracks      = GivenTracks(3);
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);
            var mapping     = GivenMapping(localTracks, tracks);

            release.Album.Value.ArtistMetadata = Builder <ArtistMetadata>
                                                 .CreateNew()
                                                 .With(x => x.Name = "different artist")
                                                 .Build();

            DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping).NormalizedDistance().Should().NotBe(0.0);
        }
Exemplo n.º 5
0
        public void test_incomplete_album()
        {
            var tracks      = GivenTracks(3);
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);

            localTracks.RemoveAt(1);
            var mapping = GivenMapping(localTracks, tracks);

            var dist = DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping);

            dist.NormalizedDistance().Should().NotBe(0.0);
            dist.NormalizedDistance().Should().BeLessThan(0.2);
        }
Exemplo n.º 6
0
        public void test_comp_track_artists_match()
        {
            var tracks      = GivenTracks(3);
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);
            var mapping     = GivenMapping(localTracks, tracks);

            release.Album.Value.ArtistMetadata = Builder <ArtistMetadata>
                                                 .CreateNew()
                                                 .With(x => x.Name            = "Various Artists")
                                                 .With(x => x.ForeignArtistId = "89ad4ac3-39f7-470e-963a-56509c546377")
                                                 .Build();

            DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping).NormalizedDistance().Should().Be(0.0);
        }
Exemplo n.º 7
0
        public void test_absolute_track_numbering()
        {
            var tracks = GivenTracks(3);

            tracks[2].AbsoluteTrackNumber = 1;
            tracks[2].MediumNumber        = 2;
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);

            localTracks[2].FileTrackInfo.DiscNumber   = 2;
            localTracks[2].FileTrackInfo.TrackNumbers = new[] { 3 };

            var mapping = GivenMapping(localTracks, tracks);

            DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping).NormalizedDistance().Should().Be(0.0);
        }
Exemplo n.º 8
0
        public void test_null_release_year(DateTime?albumDate)
        {
            var tracks      = GivenTracks(3);
            var release     = GivenAlbumRelease("album", tracks);
            var localTracks = GivenLocalTracks(tracks, release);
            var mapping     = GivenMapping(localTracks, tracks);

            release.Album.Value.ReleaseDate = albumDate;
            release.ReleaseDate             = null;

            var result = DistanceCalculator.AlbumReleaseDistance(localTracks, release, mapping).NormalizedDistance();

            if (!albumDate.HasValue || (localTracks[0].FileTrackInfo.Year == (albumDate?.Year ?? 0)))
            {
                result.Should().Be(0.0);
            }
            else
            {
                result.Should().NotBe(0.0);
            }
        }