1package sortp 2 3import ( 4 "fmt" 5 "testing" 6 7 "github.com/golangplus/testing/assert" 8) 9 10func ExampleBubbleF() { 11 data := []int{5, 3, 1, 8, 0} 12 13 BubbleF(len(data), func(i, j int) bool { 14 return data[i] < data[j] 15 }, func(i, j int) { 16 data[i], data[j] = data[j], data[i] 17 }) 18 19 fmt.Println(data) 20 // OUTPUT: 21 // [0 1 3 5 8] 22} 23 24func TestBubble(t *testing.T) { 25 data := []int{5, 3, 1, 8, 0} 26 27 Bubble(InterfaceStruct{ 28 LenF: func() int { 29 return len(data) 30 }, 31 LessF: func(i, j int) bool { 32 return data[i] < data[j] 33 }, 34 SwapF: func(i, j int) { 35 data[i], data[j] = data[j], data[i] 36 }, 37 }) 38 assert.Equal(t, "data", data, []int{0, 1, 3, 5, 8}) 39} 40