Example #1
0
        public void ShouldNotCollapseAsTheStretchBetweenMatchesIsTooLong()
        {
            var track = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 10d, -10));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 30d, -10 + 1.48));

            Assert.IsFalse(entry1.TryCollapse(entry2, 1.48, out _));
        }
        public void ShouldNotCollapseAsTheStretchBetweenMatchesIsTooLong()
        {
            double permittedGap = 1d;
            var    track1       = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track1, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 1, 2, 3 }).EstimateCoverage(3, 9, 1, permittedGap)));
            var entry2 = new PendingResultEntry(new ResultEntry(track1, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 10, 11, 12 }).EstimateCoverage(3, 9, 1, permittedGap)));

            Assert.IsFalse(entry1.TryCollapse(entry2, permittedGap, out _));
        }
Example #3
0
        public void ShouldNotCollapseAsTracksAreDifferent()
        {
            var track1 = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));
            var track2 = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(2));

            var entry1 = new PendingResultEntry(new ResultEntry(track1, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 10d, -10));
            var entry2 = new PendingResultEntry(new ResultEntry(track2, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 10d + 1.48d, -10 + 1.48));

            Assert.IsFalse(entry1.TryCollapse(entry2, 1.48, out _));
        }
Example #4
0
        public void ShouldSwallowEntryWithinEntry()
        {
            var track = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 3d, 0d, 3d, 3d, 10d, -10));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 2.5d, 0d, 2.5d, 2.5d, 10.5d, -10 + 2.5));

            Assert.IsTrue(entry1.TryCollapse(entry2, 1.48, out var collapsed));

            Assert.AreEqual(3, collapsed.Entry.CoverageWithPermittedGapsLength);
        }
Example #5
0
        public void IsCompletedAsTheMatchIsLongerThanTheThreshold2()
        {
            var track = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 3d, 0d, 3d, 3d, 10d, -10));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 3d, 0d, 3d, 3d, 14d, -10 + 2));

            entry1.TryCollapse(entry2, 1.48, out var collapsed);

            Assert.AreEqual(6, collapsed.Entry.CoverageWithPermittedGapsLength);
        }
        public void ShouldSwallowEntryWithinEntry()
        {
            double permittedGap = 3d;
            var    track        = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3, 4, 5, 6, 7 }, new[] { 1, 2, 3, 4, 5, 6, 7 }).EstimateCoverage(7, 7, 1, permittedGap)));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 3, 4, 5 }).EstimateCoverage(3, 7, 1, permittedGap)));

            Assert.IsTrue(entry1.TryCollapse(entry2, permittedGap, out var collapsed));

            Assert.AreEqual(7, collapsed.Entry.TrackCoverageWithPermittedGapsLength);
        }
        public void IsCompletedAsTheMatchIsLongerThanTheThreshold()
        {
            double permittedGap = 3d;
            var    track        = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 1, 2, 3 }).EstimateCoverage(3, 9, 1, permittedGap)));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 6, 7, 8 }).EstimateCoverage(3, 9, 1, permittedGap)));

            entry1.TryCollapse(entry2, permittedGap, out var collapsed);

            Assert.AreEqual(8, collapsed.Entry.TrackCoverageWithPermittedGapsLength);
            Assert.AreEqual(8, collapsed.Entry.DiscreteTrackCoverageLength);
        }
Example #8
0
        public void ShouldCollapse()
        {
            var track = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 10d, -10));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 10d + 1.48d, -10 + 1.48));
            var entry3 = new PendingResultEntry(new ResultEntry(track, 0d, 100, DateTime.Now, 1.48d, 0d, 1.48d, 1.48d, 10d + 2 * 1.48d, -10 + 2 * 1.48));

            Assert.IsTrue(entry1.TryCollapse(entry2, 1.48, out var collapsed1));
            Assert.IsTrue(collapsed1.TryCollapse(entry3, 1.48, out var collapsed2));

            var result = collapsed2.Entry;

            Assert.AreEqual(3 * 1.48, result.CoverageWithPermittedGapsLength, 0.0001);
            Assert.AreEqual(3 * 1.48, result.QueryLength, 0.0001);
        }
        public void ShouldCollapse()
        {
            double permittedGap = 1d;
            var    track        = new TrackData("1", "artist", "title", 120, new ModelReference <uint>(1));

            var entry1 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 1, 2, 3 }).EstimateCoverage(3, 9, 1, permittedGap)));
            var entry2 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 4, 5, 6 }).EstimateCoverage(3, 9, 1, permittedGap)));
            var entry3 = new PendingResultEntry(new ResultEntry(track, 100, DateTime.Now, TestUtilities.GetMatchedWith(new[] { 1, 2, 3 }, new[] { 7, 8, 9 }).EstimateCoverage(3, 9, 1, permittedGap)));

            Assert.IsTrue(entry1.TryCollapse(entry2, permittedGap, out var collapsed1));
            Assert.IsTrue(collapsed1.TryCollapse(entry3, permittedGap, out var collapsed2));

            var result = collapsed2.Entry;

            Assert.AreEqual(9, result.TrackCoverageWithPermittedGapsLength, 0.0001);
            Assert.AreEqual(9, result.QueryLength, 0.0001);
        }