scotty/internal/similarity/similarity_test.go

51 lines
1.6 KiB
Go

/*
Copyright © 2024 Philipp Wolfer <phw@uploadedlobster.com>
Scotty is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later version.
Scotty is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
Scotty. If not, see <https://www.gnu.org/licenses/>.
*/
package similarity_test
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"go.uploadedlobster.com/scotty/internal/similarity"
)
func ExampleSimilarity() {
s := similarity.Similarity("bar1", "bär1")
fmt.Println(s)
// Output: 0.75
}
func TestSimilarity(t *testing.T) {
assert := assert.New(t)
assert.Equal(1.0, similarity.Similarity("", ""))
assert.Equal(0.0, similarity.Similarity("foo", ""))
assert.Equal(0.0, similarity.Similarity("foo", "bar"))
assert.Equal(0.5, similarity.Similarity("foobar", "bar"))
assert.Equal(1.0, similarity.Similarity("foo", "foo"))
}
func ExampleNormalizeTitle() {
s := similarity.NormalizeTitle(" Forever \tFailure (video edit) ")
fmt.Println(s)
// Output: forever failure
}
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"))
}