node build fixed
This commit is contained in:
114
seanime-2.9.10/internal/util/comparison/matching_test.go
Normal file
114
seanime-2.9.10/internal/util/comparison/matching_test.go
Normal file
@@ -0,0 +1,114 @@
|
||||
package comparison
|
||||
|
||||
import (
|
||||
"github.com/samber/lo"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFindBestMatchWithLevenstein(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
title string
|
||||
comparisonTitles []string
|
||||
expectedResult string
|
||||
expectedDistance int
|
||||
}{
|
||||
{
|
||||
title: "jujutsu kaisen 2",
|
||||
comparisonTitles: []string{"JJK", "Jujutsu Kaisen", "Jujutsu Kaisen 2"},
|
||||
expectedResult: "Jujutsu Kaisen 2",
|
||||
expectedDistance: 0,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
t.Run(test.title, func(t *testing.T) {
|
||||
res, ok := FindBestMatchWithLevenshtein(&test.title, lo.ToSlicePtr(test.comparisonTitles))
|
||||
|
||||
if assert.True(t, ok) {
|
||||
assert.Equal(t, test.expectedResult, *res.Value, "expected result does not match")
|
||||
assert.Equal(t, test.expectedDistance, res.Distance, "expected distance does not match")
|
||||
t.Logf("value: %s, distance: %d", *res.Value, res.Distance)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
func TestFindBestMatchWithDice(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
title string
|
||||
comparisonTitles []string
|
||||
expectedResult string
|
||||
expectedRating float64
|
||||
}{
|
||||
{
|
||||
title: "jujutsu kaisen 2",
|
||||
comparisonTitles: []string{"JJK", "Jujutsu Kaisen", "Jujutsu Kaisen 2"},
|
||||
expectedResult: "Jujutsu Kaisen 2",
|
||||
expectedRating: 1,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
t.Run(test.title, func(t *testing.T) {
|
||||
res, ok := FindBestMatchWithSorensenDice(&test.title, lo.ToSlicePtr(test.comparisonTitles))
|
||||
|
||||
if assert.True(t, ok, "expected result, got nil") {
|
||||
assert.Equal(t, test.expectedResult, *res.Value, "expected result does not match")
|
||||
assert.Equal(t, test.expectedRating, res.Rating, "expected rating does not match")
|
||||
t.Logf("value: %s, rating: %f", *res.Value, res.Rating)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestEliminateLestSimilarValue(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
title string
|
||||
comparisonTitles []string
|
||||
expectedEliminated string
|
||||
}{
|
||||
{
|
||||
title: "jujutsu kaisen 2",
|
||||
comparisonTitles: []string{"JJK", "Jujutsu Kaisen", "Jujutsu Kaisen 2"},
|
||||
expectedEliminated: "JJK",
|
||||
},
|
||||
{
|
||||
title: "One Piece - Film Z",
|
||||
comparisonTitles: []string{"One Piece - Film Z", "One Piece Film Z", "One Piece Gold"},
|
||||
expectedEliminated: "One Piece Gold",
|
||||
},
|
||||
{
|
||||
title: "One Piece - Film Z",
|
||||
comparisonTitles: []string{"One Piece - Film Z", "One Piece Film Z", "One Piece Z"},
|
||||
expectedEliminated: "One Piece Z",
|
||||
},
|
||||
{
|
||||
title: "Mononogatari",
|
||||
comparisonTitles: []string{"Mononogatari", "Mononogatari Cour 2", "Nekomonogatari"},
|
||||
expectedEliminated: "Nekomonogatari",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.title, func(t *testing.T) {
|
||||
res := EliminateLeastSimilarValue(test.comparisonTitles)
|
||||
for _, n := range res {
|
||||
if n == test.expectedEliminated {
|
||||
t.Fatalf("expected \"%s\" to be eliminated from %v", n, res)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user