github.com/blend/go-sdk@v1.20240719.1/collections/slices_test.go (about) 1 /* 2 3 Copyright (c) 2024 - Present. Blend Labs, Inc. All rights reserved 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file. 5 6 */ 7 8 package collections 9 10 import ( 11 "testing" 12 13 "github.com/blend/go-sdk/assert" 14 ) 15 16 func TestFirst(t *testing.T) { 17 a := assert.New(t) 18 sa := []string{"Foo", "bar", "baz"} 19 a.Equal("Foo", First(sa)) 20 } 21 22 func TestLast(t *testing.T) { 23 a := assert.New(t) 24 sa := []string{"Foo", "bar", "baz"} 25 a.Equal("baz", Last(sa)) 26 } 27 28 func TestContains(t *testing.T) { 29 a := assert.New(t) 30 sa := []string{"Foo", "bar", "baz"} 31 a.True(Contains(sa, "Foo")) 32 a.False(Contains(sa, "FOO")) 33 a.False(Contains(sa, "will")) 34 } 35 36 func TestReverse(t *testing.T) { 37 a := assert.New(t) 38 strSlice := []string{"h", "e", "l", "l", "o"} 39 strSlice2 := Reverse(strSlice) 40 a.Equal([]string{"h", "e", "l", "l", "o"}, strSlice) 41 a.Equal([]string{"o", "l", "l", "e", "h"}, strSlice2) 42 43 intSlice := []int{} 44 newSlice := Reverse(intSlice) 45 a.Nil(newSlice) 46 47 intSlice = []int{0} 48 newSlice = Reverse(intSlice) 49 a.Equal([]int{0}, newSlice) 50 51 intSlice = []int{0, 1} 52 newSlice = Reverse(intSlice) 53 a.Equal([]int{0, 1}, intSlice) 54 a.Equal([]int{1, 0}, newSlice) 55 56 intSlice = []int{0, 1, 2} 57 newSlice = Reverse(intSlice) 58 a.Equal([]int{0, 1, 2}, intSlice) 59 a.Equal([]int{2, 1, 0}, newSlice) 60 61 intSlice = []int{0, 1, 2, 3} 62 newSlice = Reverse(intSlice) 63 a.Equal([]int{0, 1, 2, 3}, intSlice) 64 a.Equal([]int{3, 2, 1, 0}, newSlice) 65 66 intSlice = []int{0, 1, 2, 3, 4} 67 newSlice = Reverse(intSlice) 68 a.Equal([]int{0, 1, 2, 3, 4}, intSlice) 69 a.Equal([]int{4, 3, 2, 1, 0}, newSlice) 70 } 71 72 func TestReverseInPlace(t *testing.T) { 73 a := assert.New(t) 74 strSlice := []string{"h", "e", "l", "l", "o"} 75 ReverseInPlace(strSlice) 76 a.Equal([]string{"o", "l", "l", "e", "h"}, strSlice) 77 78 intSlice := []int{} 79 ReverseInPlace(intSlice) 80 a.Equal([]int{}, intSlice) 81 82 intSlice = []int{0} 83 ReverseInPlace(intSlice) 84 a.Equal([]int{0}, intSlice) 85 86 intSlice = []int{0, 1} 87 ReverseInPlace(intSlice) 88 a.Equal([]int{1, 0}, intSlice) 89 90 intSlice = []int{0, 1, 2} 91 ReverseInPlace(intSlice) 92 a.Equal([]int{2, 1, 0}, intSlice) 93 94 intSlice = []int{0, 1, 2, 3} 95 ReverseInPlace(intSlice) 96 a.Equal([]int{3, 2, 1, 0}, intSlice) 97 98 intSlice = []int{0, 1, 2, 3, 4} 99 ReverseInPlace(intSlice) 100 a.Equal([]int{4, 3, 2, 1, 0}, intSlice) 101 }