Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 1 | // $G $F.go && $L $F.$A && ./$A.out |
| 2 | |
| 3 | // Copyright 2009 The Go Authors. All rights reserved. |
| 4 | // Use of this source code is governed by a BSD-style |
| 5 | // license that can be found in the LICENSE file. |
| 6 | |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 7 | package main |
| 8 | |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 9 | import ( |
| 10 | "fmt"; |
| 11 | "strconv"; |
| 12 | ) |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 13 | |
Russ Cox | ebd27d6 | 2009-10-09 11:18:32 -0700 | [diff] [blame] | 14 | const count = 100; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 15 | |
Russ Cox | 839a684 | 2009-01-20 14:40:40 -0800 | [diff] [blame] | 16 | func P(a []string) string { |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 17 | s := "{"; |
| 18 | for i := 0; i < len(a); i++ { |
| 19 | if i > 0 { |
| 20 | s += "," |
| 21 | } |
| 22 | s += `"` + a[i] + `"`; |
| 23 | } |
| 24 | s +="}"; |
| 25 | return s; |
| 26 | } |
| 27 | |
| 28 | func main() { |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 29 | // Test a map literal. |
Russ Cox | be2edb5 | 2009-03-03 08:39:12 -0800 | [diff] [blame] | 30 | mlit := map[string] int { "0":0, "1":1, "2":2, "3":3, "4":4 }; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 31 | for i := 0; i < len(mlit); i++ { |
Russ Cox | be2edb5 | 2009-03-03 08:39:12 -0800 | [diff] [blame] | 32 | s := string([]byte{byte(i)+'0'}); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 33 | if mlit[s] != i { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 34 | fmt.Printf("mlit[%s] = %d\n", s, mlit[s]) |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 35 | } |
| 36 | } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 37 | |
Russ Cox | 5564504 | 2009-01-06 15:19:02 -0800 | [diff] [blame] | 38 | mib := make(map[int] bool); |
| 39 | mii := make(map[int] int); |
| 40 | mfi := make(map[float] int); |
| 41 | mif := make(map[int] float); |
| 42 | msi := make(map[string] int); |
| 43 | mis := make(map[int] string); |
| 44 | mss := make(map[string] string); |
| 45 | mspa := make(map[string] []string); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 46 | // BUG need an interface map both ways too |
| 47 | |
| 48 | type T struct { |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 49 | i int64; // can't use string here; struct values are only compared at the top level |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 50 | f float; |
| 51 | }; |
Russ Cox | 5564504 | 2009-01-06 15:19:02 -0800 | [diff] [blame] | 52 | mipT := make(map[int] *T); |
| 53 | mpTi := make(map[*T] int); |
| 54 | mit := make(map[int] T); |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 55 | // mti := make(map[T] int); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 56 | |
Russ Cox | 08ca30b | 2008-12-19 03:05:37 -0800 | [diff] [blame] | 57 | type M map[int] int; |
Russ Cox | 5564504 | 2009-01-06 15:19:02 -0800 | [diff] [blame] | 58 | mipM := make(map[int] M); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 59 | |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 60 | var apT [2*count]*T; |
| 61 | |
| 62 | for i := 0; i < count; i++ { |
Russ Cox | 8a7cbad | 2009-01-15 17:22:17 -0800 | [diff] [blame] | 63 | s := strconv.Itoa(i); |
| 64 | s10 := strconv.Itoa(i*10); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 65 | f := float(i); |
Russ Cox | be2edb5 | 2009-03-03 08:39:12 -0800 | [diff] [blame] | 66 | t := T{int64(i),f}; |
Russ Cox | 5564504 | 2009-01-06 15:19:02 -0800 | [diff] [blame] | 67 | apT[i] = new(T); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 68 | apT[i].i = int64(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 69 | apT[i].f = f; |
Russ Cox | 5564504 | 2009-01-06 15:19:02 -0800 | [diff] [blame] | 70 | apT[2*i] = new(T); // need twice as many entries as we use, for the nonexistence check |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 71 | apT[2*i].i = int64(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 72 | apT[2*i].f = f; |
Russ Cox | be2edb5 | 2009-03-03 08:39:12 -0800 | [diff] [blame] | 73 | m := M{i: i+1}; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 74 | mib[i] = (i != 0); |
| 75 | mii[i] = 10*i; |
| 76 | mfi[float(i)] = 10*i; |
| 77 | mif[i] = 10.0*f; |
| 78 | mis[i] = s; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 79 | msi[s] = i; |
| 80 | mss[s] = s10; |
| 81 | mss[s] = s10; |
Russ Cox | ebd27d6 | 2009-10-09 11:18:32 -0700 | [diff] [blame] | 82 | as := make([]string, 2); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 83 | as[0] = s10; |
| 84 | as[1] = s10; |
| 85 | mspa[s] = as; |
| 86 | mipT[i] = apT[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 87 | mpTi[apT[i]] = i; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 88 | mipM[i] = m; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 89 | mit[i] = t; |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 90 | // mti[t] = i; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 91 | } |
| 92 | |
| 93 | // test len |
| 94 | if len(mib) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 95 | fmt.Printf("len(mib) = %d\n", len(mib)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 96 | } |
| 97 | if len(mii) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 98 | fmt.Printf("len(mii) = %d\n", len(mii)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 99 | } |
| 100 | if len(mfi) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 101 | fmt.Printf("len(mfi) = %d\n", len(mfi)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 102 | } |
| 103 | if len(mif) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 104 | fmt.Printf("len(mif) = %d\n", len(mif)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 105 | } |
| 106 | if len(msi) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 107 | fmt.Printf("len(msi) = %d\n", len(msi)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 108 | } |
| 109 | if len(mis) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 110 | fmt.Printf("len(mis) = %d\n", len(mis)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 111 | } |
| 112 | if len(mss) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 113 | fmt.Printf("len(mss) = %d\n", len(mss)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 114 | } |
| 115 | if len(mspa) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 116 | fmt.Printf("len(mspa) = %d\n", len(mspa)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 117 | } |
| 118 | if len(mipT) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 119 | fmt.Printf("len(mipT) = %d\n", len(mipT)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 120 | } |
| 121 | if len(mpTi) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 122 | fmt.Printf("len(mpTi) = %d\n", len(mpTi)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 123 | } |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 124 | // if len(mti) != count { |
| 125 | // fmt.Printf("len(mti) = %d\n", len(mti)); |
| 126 | // } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 127 | if len(mipM) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 128 | fmt.Printf("len(mipM) = %d\n", len(mipM)); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 129 | } |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 130 | // if len(mti) != count { |
| 131 | // fmt.Printf("len(mti) = %d\n", len(mti)); |
| 132 | // } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 133 | if len(mit) != count { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 134 | fmt.Printf("len(mit) = %d\n", len(mit)); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 135 | } |
Russ Cox | 08ca30b | 2008-12-19 03:05:37 -0800 | [diff] [blame] | 136 | |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 137 | // test construction directly |
| 138 | for i := 0; i < count; i++ { |
Russ Cox | 8a7cbad | 2009-01-15 17:22:17 -0800 | [diff] [blame] | 139 | s := strconv.Itoa(i); |
| 140 | s10 := strconv.Itoa(i*10); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 141 | f := float(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 142 | // BUG m := M(i, i+1); |
| 143 | if mib[i] != (i != 0) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 144 | fmt.Printf("mib[%d] = %t\n", i, mib[i]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 145 | } |
| 146 | if(mii[i] != 10*i) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 147 | fmt.Printf("mii[%d] = %d\n", i, mii[i]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 148 | } |
| 149 | if(mfi[f] != 10*i) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 150 | fmt.Printf("mfi[%d] = %d\n", i, mfi[f]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 151 | } |
| 152 | if(mif[i] != 10.0*f) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 153 | fmt.Printf("mif[%d] = %g\n", i, mif[i]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 154 | } |
| 155 | if(mis[i] != s) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 156 | fmt.Printf("mis[%d] = %s\n", i, mis[i]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 157 | } |
| 158 | if(msi[s] != i) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 159 | fmt.Printf("msi[%s] = %d\n", s, msi[s]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 160 | } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 161 | if mss[s] != s10 { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 162 | fmt.Printf("mss[%s] = %g\n", s, mss[s]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 163 | } |
Russ Cox | ebd27d6 | 2009-10-09 11:18:32 -0700 | [diff] [blame] | 164 | for j := 0; j < len(mspa[s]); j++ { |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 165 | if mspa[s][j] != s10 { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 166 | fmt.Printf("mspa[%s][%d] = %s\n", s, j, mspa[s][j]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 167 | } |
| 168 | } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 169 | if(mipT[i].i != int64(i) || mipT[i].f != f) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 170 | fmt.Printf("mipT[%d] = %v\n", i, mipT[i]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 171 | } |
| 172 | if(mpTi[apT[i]] != i) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 173 | fmt.Printf("mpTi[apT[%d]] = %d\n", i, mpTi[apT[i]]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 174 | } |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 175 | // if(mti[t] != i) { |
| 176 | // fmt.Printf("mti[%s] = %s\n", s, mti[t]); |
| 177 | // } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 178 | if (mipM[i][i] != i + 1) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 179 | fmt.Printf("mipM[%d][%d] = %d\n", i, i, mipM[i][i]); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 180 | } |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 181 | // if(mti[t] != i) { |
| 182 | // fmt.Printf("mti[%v] = %d\n", t, mti[t]); |
| 183 | // } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 184 | if(mit[i].i != int64(i) || mit[i].f != f) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 185 | fmt.Printf("mit[%d] = {%d %g}\n", i, mit[i].i, mit[i].f); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 186 | } |
| 187 | } |
| 188 | |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 189 | // test existence with tuple check |
| 190 | // failed lookups yield a false value for the boolean. |
| 191 | for i := 0; i < count; i++ { |
Russ Cox | 8a7cbad | 2009-01-15 17:22:17 -0800 | [diff] [blame] | 192 | s := strconv.Itoa(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 193 | f := float(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 194 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 195 | _, b := mib[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 196 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 197 | fmt.Printf("tuple existence decl: mib[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 198 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 199 | _, b = mib[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 200 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 201 | fmt.Printf("tuple existence assign: mib[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 202 | } |
| 203 | } |
| 204 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 205 | _, b := mii[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 206 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 207 | fmt.Printf("tuple existence decl: mii[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 208 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 209 | _, b = mii[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 210 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 211 | fmt.Printf("tuple existence assign: mii[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 212 | } |
| 213 | } |
| 214 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 215 | _, b := mfi[f]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 216 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 217 | fmt.Printf("tuple existence decl: mfi[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 218 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 219 | _, b = mfi[f]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 220 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 221 | fmt.Printf("tuple existence assign: mfi[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 222 | } |
| 223 | } |
| 224 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 225 | _, b := mif[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 226 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 227 | fmt.Printf("tuple existence decl: mif[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 228 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 229 | _, b = mif[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 230 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 231 | fmt.Printf("tuple existence assign: mif[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 232 | } |
| 233 | } |
| 234 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 235 | _, b := mis[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 236 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 237 | fmt.Printf("tuple existence decl: mis[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 238 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 239 | _, b = mis[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 240 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 241 | fmt.Printf("tuple existence assign: mis[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 242 | } |
| 243 | } |
| 244 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 245 | _, b := msi[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 246 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 247 | fmt.Printf("tuple existence decl: msi[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 248 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 249 | _, b = msi[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 250 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 251 | fmt.Printf("tuple existence assign: msi[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 252 | } |
| 253 | } |
| 254 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 255 | _, b := mss[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 256 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 257 | fmt.Printf("tuple existence decl: mss[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 258 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 259 | _, b = mss[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 260 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 261 | fmt.Printf("tuple existence assign: mss[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 262 | } |
| 263 | } |
| 264 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 265 | _, b := mspa[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 266 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 267 | fmt.Printf("tuple existence decl: mspa[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 268 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 269 | _, b = mspa[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 270 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 271 | fmt.Printf("tuple existence assign: mspa[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 272 | } |
| 273 | } |
| 274 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 275 | _, b := mipT[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 276 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 277 | fmt.Printf("tuple existence decl: mipT[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 278 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 279 | _, b = mipT[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 280 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 281 | fmt.Printf("tuple existence assign: mipT[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 282 | } |
| 283 | } |
| 284 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 285 | _, b := mpTi[apT[i]]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 286 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 287 | fmt.Printf("tuple existence decl: mpTi[apT[%d]]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 288 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 289 | _, b = mpTi[apT[i]]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 290 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 291 | fmt.Printf("tuple existence assign: mpTi[apT[%d]]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 292 | } |
| 293 | } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 294 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 295 | _, b := mipM[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 296 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 297 | fmt.Printf("tuple existence decl: mipM[%d]\n", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 298 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 299 | _, b = mipM[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 300 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 301 | fmt.Printf("tuple existence assign: mipM[%d]\n", i); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 302 | } |
| 303 | } |
| 304 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 305 | _, b := mit[i]; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 306 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 307 | fmt.Printf("tuple existence decl: mit[%d]\n", i); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 308 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 309 | _, b = mit[i]; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 310 | if !b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 311 | fmt.Printf("tuple existence assign: mit[%d]\n", i); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 312 | } |
| 313 | } |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 314 | // { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 315 | // _, b := mti[t]; |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 316 | // if !b { |
| 317 | // fmt.Printf("tuple existence decl: mti[%d]\n", i); |
| 318 | // } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 319 | // _, b = mti[t]; |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 320 | // if !b { |
| 321 | // fmt.Printf("tuple existence assign: mti[%d]\n", i); |
| 322 | // } |
| 323 | // } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 324 | } |
| 325 | |
| 326 | // test nonexistence with tuple check |
| 327 | // failed lookups yield a false value for the boolean. |
| 328 | for i := count; i < 2*count; i++ { |
Russ Cox | 8a7cbad | 2009-01-15 17:22:17 -0800 | [diff] [blame] | 329 | s := strconv.Itoa(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 330 | f := float(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 331 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 332 | _, b := mib[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 333 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 334 | fmt.Printf("tuple nonexistence decl: mib[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 335 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 336 | _, b = mib[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 337 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 338 | fmt.Printf("tuple nonexistence assign: mib[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 339 | } |
| 340 | } |
| 341 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 342 | _, b := mii[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 343 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 344 | fmt.Printf("tuple nonexistence decl: mii[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 345 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 346 | _, b = mii[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 347 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 348 | fmt.Printf("tuple nonexistence assign: mii[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 349 | } |
| 350 | } |
| 351 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 352 | _, b := mfi[f]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 353 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 354 | fmt.Printf("tuple nonexistence decl: mfi[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 355 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 356 | _, b = mfi[f]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 357 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 358 | fmt.Printf("tuple nonexistence assign: mfi[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 359 | } |
| 360 | } |
| 361 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 362 | _, b := mif[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 363 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 364 | fmt.Printf("tuple nonexistence decl: mif[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 365 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 366 | _, b = mif[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 367 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 368 | fmt.Printf("tuple nonexistence assign: mif[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 369 | } |
| 370 | } |
| 371 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 372 | _, b := mis[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 373 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 374 | fmt.Printf("tuple nonexistence decl: mis[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 375 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 376 | _, b = mis[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 377 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 378 | fmt.Printf("tuple nonexistence assign: mis[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 379 | } |
| 380 | } |
| 381 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 382 | _, b := msi[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 383 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 384 | fmt.Printf("tuple nonexistence decl: msi[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 385 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 386 | _, b = msi[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 387 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 388 | fmt.Printf("tuple nonexistence assign: msi[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 389 | } |
| 390 | } |
| 391 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 392 | _, b := mss[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 393 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 394 | fmt.Printf("tuple nonexistence decl: mss[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 395 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 396 | _, b = mss[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 397 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 398 | fmt.Printf("tuple nonexistence assign: mss[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 399 | } |
| 400 | } |
| 401 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 402 | _, b := mspa[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 403 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 404 | fmt.Printf("tuple nonexistence decl: mspa[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 405 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 406 | _, b = mspa[s]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 407 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 408 | fmt.Printf("tuple nonexistence assign: mspa[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 409 | } |
| 410 | } |
| 411 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 412 | _, b := mipT[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 413 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 414 | fmt.Printf("tuple nonexistence decl: mipT[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 415 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 416 | _, b = mipT[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 417 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 418 | fmt.Printf("tuple nonexistence assign: mipT[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 419 | } |
| 420 | } |
| 421 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 422 | _, b := mpTi[apT[i]]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 423 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 424 | fmt.Printf("tuple nonexistence decl: mpTi[apt[%d]]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 425 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 426 | _, b = mpTi[apT[i]]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 427 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 428 | fmt.Printf("tuple nonexistence assign: mpTi[apT[%d]]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 429 | } |
| 430 | } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 431 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 432 | _, b := mipM[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 433 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 434 | fmt.Printf("tuple nonexistence decl: mipM[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 435 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 436 | _, b = mipM[i]; |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 437 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 438 | fmt.Printf("tuple nonexistence assign: mipM[%d]", i); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 439 | } |
| 440 | } |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 441 | // { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 442 | // _, b := mti[t]; |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 443 | // if b { |
| 444 | // fmt.Printf("tuple nonexistence decl: mti[%d]", i); |
| 445 | // } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 446 | // _, b = mti[t]; |
Russ Cox | a7f6d40 | 2009-01-26 09:56:42 -0800 | [diff] [blame] | 447 | // if b { |
| 448 | // fmt.Printf("tuple nonexistence assign: mti[%d]", i); |
| 449 | // } |
| 450 | // } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 451 | { |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 452 | _, b := mit[i]; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 453 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 454 | fmt.Printf("tuple nonexistence decl: mit[%d]", i); |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 455 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 456 | _, b = mit[i]; |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 457 | if b { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 458 | fmt.Printf("tuple nonexistence assign: mit[%d]", i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 459 | } |
| 460 | } |
| 461 | } |
Russ Cox | 08ca30b | 2008-12-19 03:05:37 -0800 | [diff] [blame] | 462 | |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 463 | |
| 464 | // tests for structured map element updates |
| 465 | for i := 0; i < count; i++ { |
Russ Cox | 8a7cbad | 2009-01-15 17:22:17 -0800 | [diff] [blame] | 466 | s := strconv.Itoa(i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 467 | mspa[s][i % 2] = "deleted"; |
| 468 | if mspa[s][i % 2] != "deleted" { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 469 | fmt.Printf("update mspa[%s][%d] = %s\n", s, i %2, mspa[s][i % 2]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 470 | } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 471 | |
| 472 | mipT[i].i += 1; |
| 473 | if mipT[i].i != int64(i)+1 { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 474 | fmt.Printf("update mipT[%d].i = %d\n", i, mipT[i].i); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 475 | } |
| 476 | mipT[i].f = float(i + 1); |
| 477 | if (mipT[i].f != float(i + 1)) { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 478 | fmt.Printf("update mipT[%d].f = %g\n", i, mipT[i].f); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 479 | } |
Rob Pike | 62b06fa | 2008-12-20 16:07:43 -0800 | [diff] [blame] | 480 | |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 481 | mipM[i][i]++; |
| 482 | if mipM[i][i] != (i + 1) + 1 { |
Rob Pike | 61f3302 | 2009-01-15 13:48:11 -0800 | [diff] [blame] | 483 | fmt.Printf("update mipM[%d][%d] = %i\n", i, i, mipM[i][i]); |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 484 | } |
| 485 | } |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 486 | |
Russ Cox | 8614561 | 2009-03-23 18:32:37 -0700 | [diff] [blame] | 487 | // test range on nil map |
| 488 | var mnil map[string] int; |
Russ Cox | ae54cf7 | 2009-09-15 12:42:24 -0700 | [diff] [blame] | 489 | for _, _ = range mnil { |
Russ Cox | 8614561 | 2009-03-23 18:32:37 -0700 | [diff] [blame] | 490 | panic("range mnil"); |
| 491 | } |
Rob Pike | 2738f42 | 2008-08-11 13:32:13 -0700 | [diff] [blame] | 492 | } |