mirror of
https://github.com/duke-git/lancet.git
synced 2025-09-27 03:45:58 +08:00
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package algorithm
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/duke-git/lancet/v2/internal"
|
|
)
|
|
|
|
func TestLinearSearch(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestLinearSearch")
|
|
|
|
numbers := []int{3, 4, 5, 3, 2, 1}
|
|
equalFunc := func(a, b int) bool {
|
|
return a == b
|
|
}
|
|
|
|
assert.Equal(0, LinearSearch(numbers, 3, equalFunc))
|
|
assert.Equal(-1, LinearSearch(numbers, 6, equalFunc))
|
|
}
|
|
|
|
func TestBinarySearch(t *testing.T) {
|
|
t.Parallel()
|
|
assert := internal.NewAssert(t, "TestBinarySearch")
|
|
|
|
sortedNumbers := []int{1, 2, 3, 4, 5, 6, 7, 8}
|
|
comparator := &intComparator{}
|
|
|
|
assert.Equal(4, BinarySearch(sortedNumbers, 5, 0, len(sortedNumbers)-1, comparator))
|
|
assert.Equal(-1, BinarySearch(sortedNumbers, 9, 0, len(sortedNumbers)-1, comparator))
|
|
}
|
|
|
|
func TestBinaryIterativeSearch(t *testing.T) {
|
|
assert := internal.NewAssert(t, "TestBinaryIterativeSearch")
|
|
|
|
sortedNumbers := []int{1, 2, 3, 4, 5, 6, 7, 8}
|
|
comparator := &intComparator{}
|
|
|
|
assert.Equal(4, BinaryIterativeSearch(sortedNumbers, 5, 0, len(sortedNumbers)-1, comparator))
|
|
assert.Equal(-1, BinaryIterativeSearch(sortedNumbers, 9, 0, len(sortedNumbers)-1, comparator))
|
|
}
|