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  }