github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/common/forward_tree_test.go (about) 1 package common_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "math/big" 8 9 "github.com/sixexorg/magnetic-ring/common" 10 ) 11 12 type forwardMock struct { 13 height uint64 14 val int 15 } 16 17 func (this *forwardMock) GetHeight() uint64 { 18 return this.height 19 } 20 func (this *forwardMock) GetVal() interface{} { 21 return this.val 22 } 23 24 func TestForwarTree(t *testing.T) { 25 f1 := &forwardMock{1, 1} 26 f2 := &forwardMock{3, 2} 27 f3 := &forwardMock{6, 3} 28 f4 := &forwardMock{11, 4} 29 f5 := &forwardMock{23, 5} 30 f6 := &forwardMock{24, 6} 31 f7 := &forwardMock{37, 7} 32 f8 := &forwardMock{39, 8} 33 fs := []common.FTreer{f1, f2, f3, f4, f5, f6, f7, f8} 34 35 ft := common.NewForwardTree(5, 5, 48, fs) 36 for !ft.Next() { 37 fmt.Println(ft.Key(), ft.Val()) 38 } 39 40 fmt.Println("----------------------------------------") 41 f11 := &forwardMock{1, 1} 42 f22 := &forwardMock{8, 5000} 43 f33 := &forwardMock{11, 20} 44 f44 := &forwardMock{21, 60000} 45 fs1 := []common.FTreer{f11, f22, f33, f44} 46 47 ft1 := common.NewForwardTree(5, 0, 24, fs1) 48 for !ft1.Next() { 49 fmt.Println(ft1.Key(), ft1.Val()) 50 } 51 } 52 53 func TestDeepCopy(t *testing.T) { 54 sp := &common.Span{ 55 L: 1, 56 R: 2, 57 Val: big.NewInt(20), 58 } 59 sp1 := &common.Span{} 60 err := common.DeepCopy(&sp1, sp) 61 fmt.Println(sp1, err) 62 }