github.com/celestiaorg/celestia-node@v0.15.0-beta.1/share/eds/edstest/testing.go (about)

     1  package edstest
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/celestiaorg/celestia-app/pkg/wrapper"
     9  	"github.com/celestiaorg/nmt"
    10  	"github.com/celestiaorg/rsmt2d"
    11  
    12  	"github.com/celestiaorg/celestia-node/share"
    13  	"github.com/celestiaorg/celestia-node/share/sharetest"
    14  )
    15  
    16  func RandByzantineEDS(t *testing.T, size int, options ...nmt.Option) *rsmt2d.ExtendedDataSquare {
    17  	eds := RandEDS(t, size)
    18  	shares := eds.Flattened()
    19  	copy(share.GetData(shares[0]), share.GetData(shares[1])) // corrupting eds
    20  	eds, err := rsmt2d.ImportExtendedDataSquare(shares,
    21  		share.DefaultRSMT2DCodec(),
    22  		wrapper.NewConstructor(uint64(size),
    23  			options...))
    24  	require.NoError(t, err, "failure to recompute the extended data square")
    25  	return eds
    26  }
    27  
    28  // RandEDS generates EDS filled with the random data with the given size for original square. It
    29  // uses require.TestingT to be able to take both a *testing.T and a *testing.B.
    30  func RandEDS(t require.TestingT, size int) *rsmt2d.ExtendedDataSquare {
    31  	shares := sharetest.RandShares(t, size*size)
    32  	eds, err := rsmt2d.ComputeExtendedDataSquare(shares, share.DefaultRSMT2DCodec(), wrapper.NewConstructor(uint64(size)))
    33  	require.NoError(t, err, "failure to recompute the extended data square")
    34  	return eds
    35  }
    36  
    37  func RandEDSWithNamespace(
    38  	t require.TestingT,
    39  	namespace share.Namespace,
    40  	size int,
    41  ) (*rsmt2d.ExtendedDataSquare, *share.Root) {
    42  	shares := sharetest.RandSharesWithNamespace(t, namespace, size*size)
    43  	eds, err := rsmt2d.ComputeExtendedDataSquare(shares, share.DefaultRSMT2DCodec(), wrapper.NewConstructor(uint64(size)))
    44  	require.NoError(t, err, "failure to recompute the extended data square")
    45  	dah, err := share.NewRoot(eds)
    46  	require.NoError(t, err)
    47  	return eds, dah
    48  }