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 }