New similarity.CompareTracks function

This commit is contained in:
Philipp Wolfer 2024-01-14 17:14:05 +01:00
parent bace31471e
commit b2b5c69278
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
4 changed files with 110 additions and 2 deletions

View file

@ -20,6 +20,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"go.uploadedlobster.com/scotty/internal/models"
"go.uploadedlobster.com/scotty/internal/similarity"
)
@ -36,6 +37,7 @@ func TestSimilarity(t *testing.T) {
assert.Equal(0.0, similarity.Similarity("foo", "bar"))
assert.Equal(0.5, similarity.Similarity("foobar", "bar"))
assert.Equal(1.0, similarity.Similarity("foo", "foo"))
assert.Equal(0.6, similarity.Similarity("Forever After", "Forever Failure"))
}
func ExampleNormalizeTitle() {
@ -48,4 +50,37 @@ func TestNormalizeTitle(t *testing.T) {
assert := assert.New(t)
assert.Equal("forever failure", similarity.NormalizeTitle("Forever Failure"))
assert.Equal("foo", similarity.NormalizeTitle(" \tfoo\t \t"))
assert.Equal("wasted years", similarity.NormalizeTitle("Wasted Years - 2015 Remaster"))
assert.Equal("london calling", similarity.NormalizeTitle("London Calling - Remastered"))
assert.Equal("london calling", similarity.NormalizeTitle("London Calling (Remastered)"))
}
func ExampleCompareTracks() {
t1 := models.Track{
ArtistNames: []string{"Paradise Lost"},
TrackName: "Forever After",
}
t2 := models.Track{
ArtistNames: []string{"Paradise Lost"},
TrackName: "Forever Failure (radio edit)",
ReleaseName: "Draconian Times",
}
sim := similarity.CompareTracks(t1, t2)
fmt.Println(sim)
// Output: 0.8333333333333334
}
func TestCompareTracksSameMBID(t *testing.T) {
t1 := models.Track{
ArtistNames: []string{"Paradise Lost"},
TrackName: "Forever After",
RecordingMbid: models.MBID("2886d15c-09b0-43c6-af56-932f70dde164"),
}
t2 := models.Track{
ArtistNames: []string{"Paradise Lost"},
TrackName: "Forever Failure (radio edit)",
ReleaseName: "Draconian Times",
RecordingMbid: models.MBID("2886d15c-09b0-43c6-af56-932f70dde164"),
}
assert.Equal(t, 1.0, similarity.CompareTracks(t1, t2))
}