github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/simulation/rand_util_test.go (about)

     1  package simulation_test
     2  
     3  import (
     4  	"math/rand"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/stretchr/testify/require"
     9  
    10  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
    11  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/simulation"
    12  )
    13  
    14  func TestRandSubsetCoins(t *testing.T) {
    15  	t.Parallel()
    16  	tests := []struct {
    17  		name  string
    18  		r     *rand.Rand
    19  		coins sdk.Coins
    20  	}{
    21  		{"seed=1", rand.New(rand.NewSource(1)), mustParseCoins("100stake,2testtoken")},
    22  		{"seed=50", rand.New(rand.NewSource(50)), mustParseCoins("100stake,2testtoken")},
    23  		{"seed=99", rand.New(rand.NewSource(99)), mustParseCoins("100stake,2testtoken")},
    24  	}
    25  	for _, tt := range tests {
    26  		tt := tt
    27  		t.Run(tt.name, func(t *testing.T) {
    28  			got := simulation.RandSubsetCoins(tt.r, tt.coins)
    29  			gotStringRep := got.String()
    30  			sortedStringRep := got.Sort().String()
    31  			require.Equal(t, gotStringRep, sortedStringRep)
    32  		})
    33  	}
    34  }
    35  
    36  func TestRandStringOfLength(t *testing.T) {
    37  	t.Parallel()
    38  	r := rand.New(rand.NewSource(time.Now().Unix()))
    39  	tests := []struct {
    40  		name string
    41  		n    int
    42  		want int
    43  	}{
    44  		{"0-size", 0, 0},
    45  		{"10-size", 10, 10},
    46  		{"10-size", 1_000_000_000, 1_000_000_000},
    47  	}
    48  	for _, tt := range tests {
    49  		tt := tt
    50  		t.Run(tt.name, func(t *testing.T) {
    51  			got := simulation.RandStringOfLength(r, tt.n)
    52  			require.Equal(t, tt.want, len(got))
    53  		})
    54  	}
    55  }
    56  
    57  func mustParseCoins(s string) sdk.Coins {
    58  	coins, err := sdk.ParseCoins(s)
    59  	if err != nil {
    60  		panic(err)
    61  	}
    62  	return coins
    63  }