Files

50 lines
1.8 KiB
C#

using System;
using MusicMetaTagger.Client.AllMusicGuide.Services;
using MusicMetaTagger.Core.Model;
using MusicMetaTagger.Core.Queries;
using MusicMetaTagger.Core.Services;
using NUnit.Framework;
namespace MusicMetaTagger.Client.AllMusicGuide.Tests.Services
{
[TestFixture]
public class TrackSimilarityTests
{
[Test]
public void Similarity_Identical()
{
var trackQuery = new TrackQuery { TrackTitle = "track", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 34) };
var track = new Track {TrackTitle = "track", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 34)};
Assert.AreEqual(1, TrackSimilarity.Similarity(trackQuery, track));
}
[Test]
public void Similarity_TitleSlightlyDifferent()
{
var trackQuery = new TrackQuery { TrackTitle = "track", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 34) };
var track = new Track {TrackTitle = "tracker", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 34)};
Assert.That(TrackSimilarity.Similarity(trackQuery, track), Is.InRange(.8, .99));
}
[Test]
public void Similarity_TimeSlightlyOff()
{
var trackQuery = new TrackQuery { TrackTitle = "track", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 34) };
var track = new Track {TrackTitle = "track", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 30)};
Assert.That(TrackSimilarity.Similarity(trackQuery, track), Is.InRange(.95, .995));
}
[Test]
public void Similarity_TrackNumberWrong()
{
var trackQuery = new TrackQuery { TrackTitle = "track", TrackNumber = 3, TrackLength = new TimeSpan(0, 0, 2, 34) };
var track = new Track {TrackTitle = "track", TrackNumber = 2, TrackLength = new TimeSpan(0, 0, 2, 34)};
Assert.That(TrackSimilarity.Similarity(trackQuery, track), Is.InRange(.7, .9));
}
}
}