github.com/cosmos/cosmos-sdk@v0.50.10/types/bech32/bech32_test.go (about)

     1  package bech32_test
     2  
     3  import (
     4  	"bytes"
     5  	"crypto/sha256"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"github.com/cosmos/cosmos-sdk/types/bech32"
    11  )
    12  
    13  func TestEncodeAndDecode(t *testing.T) {
    14  	sum := sha256.Sum256([]byte("hello world\n"))
    15  	ss := "shasum"
    16  
    17  	bech, err := bech32.ConvertAndEncode(ss, sum[:])
    18  	require.NoError(t, err)
    19  
    20  	hrp, data, err := bech32.DecodeAndConvert(bech)
    21  	require.NoError(t, err)
    22  
    23  	require.Equal(t, hrp, ss, "Invalid hrp")
    24  	require.True(t, bytes.Equal(data, sum[:]), "Invalid decode")
    25  }
    26  
    27  func FuzzDecodeAndConvert(f *testing.F) {
    28  	if testing.Short() {
    29  		f.Skip()
    30  	}
    31  
    32  	f.Add("shasum149yfqne0parehrupja55kvqcfvxja5wpe54pas8mshffngvj53rs93fk75")
    33  	f.Add("bech321er8m900ayvv9rg5r6ush4nzvqhj4p9tqnxqkxaaxrs4ueuvhurcs4x3j4j")
    34  
    35  	f.Fuzz(func(t *testing.T, str string) {
    36  		_, _, _ = bech32.DecodeAndConvert(str)
    37  	})
    38  }