github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/algorithm/datastructures/unionfind/unionfind_test.go (about) 1 package unionfind 2 3 import ( 4 "math/rand" 5 "testing" 6 "time" 7 ) 8 9 func BenchmarkUnionFind(b *testing.B) { 10 r := rand.New(rand.NewSource(time.Now().Unix())) 11 size := b.N 12 uf := NewUnionFind(size) 13 for i := 0; i < b.N; i++ { 14 a := r.Intn(size) 15 b := r.Intn(size) 16 uf.UnionElements(a, b) 17 } 18 for i := 0; i < b.N; i++ { 19 a := r.Intn(size) 20 b := r.Intn(size) 21 uf.IsConnected(a, b) 22 } 23 } 24 25 func BenchmarkUnionFindSize(b *testing.B) { 26 r := rand.New(rand.NewSource(time.Now().Unix())) 27 size := b.N 28 uf := NewUnionFindOpSize(size) 29 for i := 0; i < b.N; i++ { 30 a := r.Intn(size) 31 b := r.Intn(size) 32 uf.UnionElements(a, b) 33 } 34 for i := 0; i < b.N; i++ { 35 a := r.Intn(size) 36 b := r.Intn(size) 37 uf.IsConnected(a, b) 38 } 39 }