Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
mapclear.go90 linesDownload Raw Back to test
1// run2 3// Copyright 2018 The Go Authors. All rights reserved.4// Use of this source code is governed by a BSD-style5// license that can be found in the LICENSE file.6 7// Ensure that range loops over maps with delete statements8// have the requisite side-effects.9 10package main11 12import (13	"fmt"14	"os"15)16 17func checkcleared() {18	m := make(map[byte]int)19	m[1] = 120	m[2] = 221	for k := range m {22		delete(m, k)23	}24	l := len(m)25	if want := 0; l != want {26		fmt.Printf("len after map clear = %d want %d\n", l, want)27		os.Exit(1)28	}29 30	m[0] = 0 // To have non empty map and avoid internal map code fast paths.31	n := 032	for range m {33		n++34	}35	if want := 1; n != want {36		fmt.Printf("number of keys found = %d want %d\n", n, want)37		os.Exit(1)38	}39}40 41func checkloopvars() {42	k := 043	m := make(map[int]int)44	m[42] = 045	for k = range m {46		delete(m, k)47	}48	if want := 42; k != want {49		fmt.Printf("var after range with side-effect = %d want %d\n", k, want)50		os.Exit(1)51	}52}53 54func checksideeffects() {55	var x int56	f := func() int {57		x++58		return 059	}60	m := make(map[int]int)61	m[0] = 062	m[1] = 163	for k := range m {64		delete(m, k+f())65	}66	if want := 2; x != want {67		fmt.Printf("var after range with side-effect = %d want %d\n", x, want)68		os.Exit(1)69	}70 71	var n int72	m = make(map[int]int)73	m[0] = 074	m[1] = 175	for k := range m {76		delete(m, k)77		n++78	}79	if want := 2; n != want {80		fmt.Printf("counter for range with side-effect = %d want %d\n", n, want)81		os.Exit(1)82	}83}84 85func main() {86	checkcleared()87	checkloopvars()88	checksideeffects()89}90 
codekingpro/portable-devtools · Team Ai