creating slice and pointer changes

This commit is contained in:
0syntrax0 2024-10-15 23:33:46 -05:00
parent 507e604582
commit f3ba5b98b6
3 changed files with 90 additions and 0 deletions

13
pointer.go Normal file
View file

@ -0,0 +1,13 @@
package underscore
// Convert values to pointers
//
// Instead of:
// v = "value"
// MyPointerVar = &v
//
// Use:
// MyPointerVar = ToPointer("value")
func ToPointer[T any](in T) *T {
return &in
}

21
slices.go Normal file
View file

@ -0,0 +1,21 @@
package underscore
import (
"sort"
"golang.org/x/exp/constraints"
)
// sort any slice ASENDING
func SortSliceASC[T constraints.Ordered](s []T) {
sort.Slice(s, func(i, j int) bool {
return s[i] < s[j]
})
}
// sort any slice DESCENDING
func SortSliceDESC[T constraints.Ordered](s []T) {
sort.Slice(s, func(i, j int) bool {
return s[i] > s[j]
})
}

56
slices_test.go Normal file
View file

@ -0,0 +1,56 @@
package underscore_test
import (
"testing"
u "github.com/rjNemo/underscore"
"github.com/stretchr/testify/assert"
)
func TestSortSliceAscString(t *testing.T) {
slc := []string{"c", "a", "b"}
expected := []string{"a", "b", "c"}
u.SortSliceASC(slc)
assert.Equal(t, expected, slc)
}
func TestSortSliceDescString(t *testing.T) {
slc := []string{"c", "a", "b"}
expected := []string{"c", "b", "a"}
u.SortSliceDESC(slc)
assert.Equal(t, expected, slc)
}
func TestSortSliceAscInt(t *testing.T) {
slc := []int{1, 4, 3, 5, 2}
expected := []int{1, 2, 3, 4, 5}
u.SortSliceASC(slc)
assert.Equal(t, expected, slc)
}
func TestSortSliceDescInt(t *testing.T) {
slc := []int{1, 4, 3, 5, 2}
expected := []int{5, 4, 3, 2, 1}
u.SortSliceDESC(slc)
assert.Equal(t, expected, slc)
}
func TestSortSliceAscFloat64(t *testing.T) {
slc := []float64{1.0, 1.2, 1.1, 1.5, 1.01}
expected := []float64{1, 1.01, 1.1, 1.2, 1.5}
u.SortSliceASC(slc)
assert.Equal(t, expected, slc)
}
func TestSortSliceDescFloat64(t *testing.T) {
slc := []float64{1.0, 1.2, 1.1, 1.5, 1.01}
expected := []float64{1.5, 1.2, 1.1, 1.01, 1}
u.SortSliceDESC(slc)
assert.Equal(t, expected, slc)
}