diff options
Diffstat (limited to 'test/clear.go')
-rw-r--r-- | test/clear.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/clear.go b/test/clear.go new file mode 100644 index 0000000..60ee4ec --- /dev/null +++ b/test/clear.go @@ -0,0 +1,47 @@ +// run + +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import "math" + +func checkClearSlice() { + s := []int{1, 2, 3} + clear(s) + for i := range s { + if s[i] != 0 { + panic("clear not zeroing slice elem") + } + } + + clear([]int{}) +} + +func checkClearMap() { + m1 := make(map[int]int) + m1[0] = 0 + m1[1] = 1 + clear(m1) + if len(m1) != 0 { + panic("m1 is not cleared") + } + + // map contains NaN keys is also cleared. + m2 := make(map[float64]int) + m2[math.NaN()] = 1 + m2[math.NaN()] = 1 + clear(m2) + if len(m2) != 0 { + panic("m2 is not cleared") + } + + clear(map[int]int{}) +} + +func main() { + checkClearSlice() + checkClearMap() +} |