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