code.gitea.io/gitea@v1.19.3/modules/util/slice_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package util 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestSliceContains(t *testing.T) { 13 assert.True(t, SliceContains([]int{2, 0, 2, 3}, 2)) 14 assert.True(t, SliceContains([]int{2, 0, 2, 3}, 0)) 15 assert.True(t, SliceContains([]int{2, 0, 2, 3}, 3)) 16 17 assert.True(t, SliceContains([]string{"2", "0", "2", "3"}, "0")) 18 assert.True(t, SliceContains([]float64{2, 0, 2, 3}, 0)) 19 assert.True(t, SliceContains([]bool{false, true, false}, true)) 20 21 assert.False(t, SliceContains([]int{2, 0, 2, 3}, 4)) 22 assert.False(t, SliceContains([]int{}, 4)) 23 assert.False(t, SliceContains(nil, 4)) 24 } 25 26 func TestSliceContainsString(t *testing.T) { 27 assert.True(t, SliceContainsString([]string{"c", "b", "a", "b"}, "a")) 28 assert.True(t, SliceContainsString([]string{"c", "b", "a", "b"}, "b")) 29 assert.True(t, SliceContainsString([]string{"c", "b", "a", "b"}, "A", true)) 30 assert.True(t, SliceContainsString([]string{"C", "B", "A", "B"}, "a", true)) 31 32 assert.False(t, SliceContainsString([]string{"c", "b", "a", "b"}, "z")) 33 assert.False(t, SliceContainsString([]string{"c", "b", "a", "b"}, "A")) 34 assert.False(t, SliceContainsString([]string{}, "a")) 35 assert.False(t, SliceContainsString(nil, "a")) 36 } 37 38 func TestSliceSortedEqual(t *testing.T) { 39 assert.True(t, SliceSortedEqual([]int{2, 0, 2, 3}, []int{2, 0, 2, 3})) 40 assert.True(t, SliceSortedEqual([]int{3, 0, 2, 2}, []int{2, 0, 2, 3})) 41 assert.True(t, SliceSortedEqual([]int{}, []int{})) 42 assert.True(t, SliceSortedEqual([]int(nil), nil)) 43 assert.True(t, SliceSortedEqual([]int(nil), []int{})) 44 assert.True(t, SliceSortedEqual([]int{}, []int{})) 45 46 assert.True(t, SliceSortedEqual([]string{"2", "0", "2", "3"}, []string{"2", "0", "2", "3"})) 47 assert.True(t, SliceSortedEqual([]float64{2, 0, 2, 3}, []float64{2, 0, 2, 3})) 48 assert.True(t, SliceSortedEqual([]bool{false, true, false}, []bool{false, true, false})) 49 50 assert.False(t, SliceSortedEqual([]int{2, 0, 2}, []int{2, 0, 2, 3})) 51 assert.False(t, SliceSortedEqual([]int{}, []int{2, 0, 2, 3})) 52 assert.False(t, SliceSortedEqual(nil, []int{2, 0, 2, 3})) 53 assert.False(t, SliceSortedEqual([]int{2, 0, 2, 4}, []int{2, 0, 2, 3})) 54 assert.False(t, SliceSortedEqual([]int{2, 0, 0, 3}, []int{2, 0, 2, 3})) 55 } 56 57 func TestSliceEqual(t *testing.T) { 58 assert.True(t, SliceEqual([]int{2, 0, 2, 3}, []int{2, 0, 2, 3})) 59 assert.True(t, SliceEqual([]int{}, []int{})) 60 assert.True(t, SliceEqual([]int(nil), nil)) 61 assert.True(t, SliceEqual([]int(nil), []int{})) 62 assert.True(t, SliceEqual([]int{}, []int{})) 63 64 assert.True(t, SliceEqual([]string{"2", "0", "2", "3"}, []string{"2", "0", "2", "3"})) 65 assert.True(t, SliceEqual([]float64{2, 0, 2, 3}, []float64{2, 0, 2, 3})) 66 assert.True(t, SliceEqual([]bool{false, true, false}, []bool{false, true, false})) 67 68 assert.False(t, SliceEqual([]int{3, 0, 2, 2}, []int{2, 0, 2, 3})) 69 assert.False(t, SliceEqual([]int{2, 0, 2}, []int{2, 0, 2, 3})) 70 assert.False(t, SliceEqual([]int{}, []int{2, 0, 2, 3})) 71 assert.False(t, SliceEqual(nil, []int{2, 0, 2, 3})) 72 assert.False(t, SliceEqual([]int{2, 0, 2, 4}, []int{2, 0, 2, 3})) 73 assert.False(t, SliceEqual([]int{2, 0, 0, 3}, []int{2, 0, 2, 3})) 74 } 75 76 func TestSliceRemoveAll(t *testing.T) { 77 assert.Equal(t, SliceRemoveAll([]int{2, 0, 2, 3}, 0), []int{2, 2, 3}) 78 assert.Equal(t, SliceRemoveAll([]int{2, 0, 2, 3}, 2), []int{0, 3}) 79 assert.Equal(t, SliceRemoveAll([]int{0, 0, 0, 0}, 0), []int{}) 80 assert.Equal(t, SliceRemoveAll([]int{2, 0, 2, 3}, 4), []int{2, 0, 2, 3}) 81 assert.Equal(t, SliceRemoveAll([]int{}, 0), []int{}) 82 assert.Equal(t, SliceRemoveAll([]int(nil), 0), []int(nil)) 83 assert.Equal(t, SliceRemoveAll([]int{}, 0), []int{}) 84 85 assert.Equal(t, SliceRemoveAll([]string{"2", "0", "2", "3"}, "0"), []string{"2", "2", "3"}) 86 assert.Equal(t, SliceRemoveAll([]float64{2, 0, 2, 3}, 0), []float64{2, 2, 3}) 87 assert.Equal(t, SliceRemoveAll([]bool{false, true, false}, true), []bool{false, false}) 88 }