github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/types/keys_test.go (about)

     1  package types
     2  
     3  import (
     4  	"encoding/hex"
     5  	"testing"
     6  
     7  	"github.com/fibonacci-chain/fbc/libs/tendermint/crypto/ed25519"
     8  
     9  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  var (
    14  	FixPK   = ed25519.GenPrivKeyFromSecret([]byte{1}).PubKey()
    15  	FixAddr = FixPK.Address()
    16  )
    17  
    18  func TestGetValidatorPowerRank(t *testing.T) {
    19  	valAddr1 := sdk.ValAddress(FixAddr)
    20  	emptyDesc := Description{}
    21  	val1 := NewValidator(valAddr1, pk1, emptyDesc, DefaultMinSelfDelegation)
    22  	val1.DelegatorShares = sdk.ZeroDec()
    23  	val2, val3, val4 := val1, val1, val1
    24  	val2.DelegatorShares = sdk.OneDec()
    25  	val3.DelegatorShares = sdk.OneDec().MulInt64(10)
    26  	val4.DelegatorShares = sdk.OneDec().MulInt64(1 << 16)
    27  
    28  	tests := []struct {
    29  		validator Validator
    30  		wantHex   string
    31  	}{
    32  		{val1, "2300000000000000009c288ede7df62742fc3b7d0962045a8cef0f79f6"},
    33  		{val2, "2300000000000000019c288ede7df62742fc3b7d0962045a8cef0f79f6"},
    34  		{val3, "23000000000000000a9c288ede7df62742fc3b7d0962045a8cef0f79f6"},
    35  		{val4, "2300000000000100009c288ede7df62742fc3b7d0962045a8cef0f79f6"},
    36  	}
    37  	for i, tt := range tests {
    38  		got := hex.EncodeToString(getValidatorPowerRank(tt.validator))
    39  
    40  		assert.Equal(t, tt.wantHex, got, "Keys did not match on test case %d", i)
    41  	}
    42  }