mirror of
				https://github.com/duke-git/lancet.git
				synced 2025-10-31 18:52:43 +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))
 | |
| }
 | 
