aboutsummaryrefslogtreecommitdiff
path: root/test/typeparam/slices.go
diff options
context:
space:
mode:
Diffstat (limited to 'test/typeparam/slices.go')
-rw-r--r--test/typeparam/slices.go90
1 files changed, 45 insertions, 45 deletions
diff --git a/test/typeparam/slices.go b/test/typeparam/slices.go
index 149199eb64..b5e8e0c606 100644
--- a/test/typeparam/slices.go
+++ b/test/typeparam/slices.go
@@ -15,31 +15,31 @@ import (
)
type Ordered interface {
- type int, int8, int16, int32, int64,
- uint, uint8, uint16, uint32, uint64, uintptr,
- float32, float64,
- string
+ ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+ ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+ ~float32 | ~float64 |
+ ~string
}
type Integer interface {
- type int, int8, int16, int32, int64,
- uint, uint8, uint16, uint32, uint64, uintptr
+ ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+ ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
}
// Max returns the maximum of two values of some ordered type.
func _Max[T Ordered](a, b T) T {
- if a > b {
- return a
- }
- return b
+ if a > b {
+ return a
+ }
+ return b
}
// Min returns the minimum of two values of some ordered type.
func _Min[T Ordered](a, b T) T {
- if a < b {
- return a
- }
- return b
+ if a < b {
+ return a
+ }
+ return b
}
// _Equal reports whether two slices are equal: the same length and all
@@ -136,7 +136,7 @@ func _Append[T any](s []T, t ...T) []T {
if tot <= cap(s) {
s = s[:tot]
} else {
- news := make([]T, tot, tot + tot/2)
+ news := make([]T, tot, tot+tot/2)
_Copy(news, s)
s = news
}
@@ -156,37 +156,37 @@ func _Copy[T any](s, t []T) int {
}
func TestEqual() {
- s1 := []int{1, 2, 3}
- if !_Equal(s1, s1) {
- panic(fmt.Sprintf("_Equal(%v, %v) = false, want true", s1, s1))
- }
- s2 := []int{1, 2, 3}
- if !_Equal(s1, s2) {
- panic(fmt.Sprintf("_Equal(%v, %v) = false, want true", s1, s2))
- }
- s2 = append(s2, 4)
- if _Equal(s1, s2) {
- panic(fmt.Sprintf("_Equal(%v, %v) = true, want false", s1, s2))
- }
-
- s3 := []float64{1, 2, math.NaN()}
- if !_Equal(s3, s3) {
- panic(fmt.Sprintf("_Equal(%v, %v) = false, want true", s3, s3))
- }
-
- if _Equal(s1, nil) {
- panic(fmt.Sprintf("_Equal(%v, nil) = true, want false", s1))
- }
- if _Equal(nil, s1) {
- panic(fmt.Sprintf("_Equal(nil, %v) = true, want false", s1))
- }
- if !_Equal(s1[:0], nil) {
- panic(fmt.Sprintf("_Equal(%v, nil = false, want true", s1[:0]))
- }
+ s1 := []int{1, 2, 3}
+ if !_Equal(s1, s1) {
+ panic(fmt.Sprintf("_Equal(%v, %v) = false, want true", s1, s1))
+ }
+ s2 := []int{1, 2, 3}
+ if !_Equal(s1, s2) {
+ panic(fmt.Sprintf("_Equal(%v, %v) = false, want true", s1, s2))
+ }
+ s2 = append(s2, 4)
+ if _Equal(s1, s2) {
+ panic(fmt.Sprintf("_Equal(%v, %v) = true, want false", s1, s2))
+ }
+
+ s3 := []float64{1, 2, math.NaN()}
+ if !_Equal(s3, s3) {
+ panic(fmt.Sprintf("_Equal(%v, %v) = false, want true", s3, s3))
+ }
+
+ if _Equal(s1, nil) {
+ panic(fmt.Sprintf("_Equal(%v, nil) = true, want false", s1))
+ }
+ if _Equal(nil, s1) {
+ panic(fmt.Sprintf("_Equal(nil, %v) = true, want false", s1))
+ }
+ if !_Equal(s1[:0], nil) {
+ panic(fmt.Sprintf("_Equal(%v, nil = false, want true", s1[:0]))
+ }
}
func offByOne[Elem Integer](a, b Elem) bool {
- return a == b + 1 || a == b - 1
+ return a == b+1 || a == b-1
}
func TestEqualFn() {
@@ -231,12 +231,12 @@ func TestMap() {
func TestReduce() {
s1 := []int{1, 2, 3}
- r := _Reduce(s1, 0, func(f float64, i int) float64 { return float64(i) * 2.5 + f })
+ r := _Reduce(s1, 0, func(f float64, i int) float64 { return float64(i)*2.5 + f })
if want := 15.0; r != want {
panic(fmt.Sprintf("_Reduce(%v, 0, ...) = %v, want %v", s1, r, want))
}
- if got := _Reduce(nil, 0, func(i, j int) int { return i + j}); got != 0 {
+ if got := _Reduce(nil, 0, func(i, j int) int { return i + j }); got != 0 {
panic(fmt.Sprintf("_Reduce(nil, 0, add) = %v, want 0", got))
}
}