git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/object/erasurecode/constructor_test.go (about)

     1  package erasurecode_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/erasurecode"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestErasureConstruct(t *testing.T) {
    11  	t.Run("negative, no panic", func(t *testing.T) {
    12  		_, err := erasurecode.NewConstructor(-1, 2)
    13  		require.ErrorIs(t, err, erasurecode.ErrInvShardNum)
    14  	})
    15  	t.Run("negative, no panic", func(t *testing.T) {
    16  		_, err := erasurecode.NewConstructor(2, -1)
    17  		require.ErrorIs(t, err, erasurecode.ErrInvShardNum)
    18  	})
    19  	t.Run("zero parity", func(t *testing.T) {
    20  		_, err := erasurecode.NewConstructor(1, 0)
    21  		require.NoError(t, err)
    22  	})
    23  	t.Run("max shard num", func(t *testing.T) {
    24  		_, err := erasurecode.NewConstructor(erasurecode.MaxShardCount, 0)
    25  		require.NoError(t, err)
    26  	})
    27  	t.Run("max+1 shard num", func(t *testing.T) {
    28  		_, err := erasurecode.NewConstructor(erasurecode.MaxShardCount+1, 0)
    29  		require.ErrorIs(t, err, erasurecode.ErrMaxShardNum)
    30  	})
    31  }