github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/util/slice/slice_test.go (about)

     1  // Copyright Monax Industries Limited
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package slice
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestCopyAppend(t *testing.T) {
    13  	assert.Equal(t, Slice(1, "two", "three", 4),
    14  		CopyAppend(Slice(1, "two"), "three", 4))
    15  	assert.Equal(t, EmptySlice(), CopyAppend(nil))
    16  	assert.Equal(t, Slice(1), CopyAppend(nil, 1))
    17  	assert.Equal(t, Slice(1), CopyAppend(Slice(1)))
    18  }
    19  
    20  func TestCopyPrepend(t *testing.T) {
    21  	assert.Equal(t, Slice("three", 4, 1, "two"),
    22  		CopyPrepend(Slice(1, "two"), "three", 4))
    23  	assert.Equal(t, EmptySlice(), CopyPrepend(nil))
    24  	assert.Equal(t, Slice(1), CopyPrepend(nil, 1))
    25  	assert.Equal(t, Slice(1), CopyPrepend(Slice(1)))
    26  }
    27  
    28  func TestConcat(t *testing.T) {
    29  	assert.Equal(t, Slice(1, 2, 3, 4, 5), Concat(Slice(1, 2, 3, 4, 5)))
    30  	assert.Equal(t, Slice(1, 2, 3, 4, 5), Concat(Slice(1, 2, 3), Slice(4, 5)))
    31  	assert.Equal(t, Slice(1, 2, 3, 4, 5), Concat(Slice(1), Slice(2, 3), Slice(4, 5)))
    32  	assert.Equal(t, EmptySlice(), Concat(nil))
    33  	assert.Equal(t, Slice(1), Concat(nil, Slice(), Slice(1)))
    34  	assert.Equal(t, Slice(1), Concat(Slice(1), Slice(), nil))
    35  }
    36  
    37  func TestDelete(t *testing.T) {
    38  	assert.Equal(t, Slice(1, 2, 4, 5), Delete(Slice(1, 2, 3, 4, 5), 2, 1))
    39  }
    40  
    41  func TestDeepFlatten(t *testing.T) {
    42  	assert.Equal(t, Flatten(Slice(Slice(1, 2), 3, 4)), Slice(1, 2, 3, 4))
    43  	nestedSlice := Slice(Slice(1, Slice(Slice(2))), Slice(3, 4))
    44  	assert.Equal(t, DeepFlatten(nestedSlice, -1), Slice(1, 2, 3, 4))
    45  	assert.Equal(t, DeepFlatten(nestedSlice, 2), Slice(1, Slice(2), 3, 4))
    46  }