Beispiel #1
0
func ExampleInsert() {
	bt := btree.New(2)
	bt.Insert(item(4))
	bt.Insert(item(6))
	bt.Insert(item(8))
	bt.Insert(item(18))
	bt.Insert(item(20))
	bt.Insert(item(22))
	bt.Insert(item(24))
	bt.Insert(item(26))
	bt.Insert(item(28))
	bt.Insert(item(30))

	bt.Insert(item(19))
	bt.Insert(item(21))
	// bt.Print(os.Stdout)
	// // Output: NODE:[18]
	// //   NODE:[6]
	// //     NODE:[4]
	// //     NODE:[8]
	// //   NODE:[22 26]
	// //     NODE:[19 20]
	// //     NODE:[24]
	// //     NODE:[28 30]

	// bt.Insert(item(21))
}
Beispiel #2
0
func benchmarkInsert(size int, b *testing.B) {
	b.StopTimer()
	values := perm(size)
	b.StartTimer()

	i := 0
	for i < b.N {
		tr := btree.New(3)
		for _, item := range values {
			tr.Insert(item)
			i++

			if i >= b.N {
				return
			}
		}
	}
}
Beispiel #3
0
func TestGet(t *testing.T) {
	bt := btree.New(2)
	bt.Insert(item(4))
	bt.Insert(item(6))
	bt.Insert(item(8))
	bt.Insert(item(18))
	bt.Insert(item(20))
	bt.Insert(item(22))
	bt.Insert(item(24))
	bt.Insert(item(26))
	bt.Insert(item(28))
	bt.Insert(item(30))

	if bt.Get(item(11)) != nil {
		t.Fatalf("expected is nil, actual is %v", bt.Get(item(7)))
	}

	if bt.Get(item(8)) != item(8) {
		t.Fatalf("expected is 5, actual is %v", bt.Get(item(7)))
	}
}
Beispiel #4
0
func benchmarkGet(size int, b *testing.B) {
	b.StopTimer()
	insert := perm(size)
	remove := perm(size)
	b.StartTimer()
	i := 0
	for i < b.N {
		b.StopTimer()
		tr := btree.New(3)
		for _, v := range insert {
			tr.Insert(v)
		}
		b.StartTimer()
		for _, item := range remove {
			tr.Get(item)
			i++
			if i >= b.N {
				return
			}
		}
	}
}
Beispiel #5
0
func ExampleDelete() {
	bt := btree.New(2)
	bt.Insert(item(2))
	bt.Insert(item(4))
	bt.Insert(item(6))
	bt.Insert(item(8))
	bt.Insert(item(18))
	bt.Insert(item(20))
	bt.Insert(item(22))
	bt.Insert(item(24))
	bt.Insert(item(26))
	bt.Insert(item(28))

	bt.Delete(item(4))
	bt.Print(os.Stdout)
	// Output: NODE:[20]
	//   NODE:[8]
	//     NODE:[2 6]
	//     NODE:[18]
	//   NODE:[24]
	//     NODE:[22]
	//     NODE:[26 28]
}