github.com/sandwich-go/boost@v1.3.29/xmap/walk_test.go (about)

     1  // Code generated by tools. DO NOT EDIT.
     2  package xmap
     3  
     4  import (
     5  	. "github.com/smartystreets/goconvey/convey"
     6  	"sort"
     7  	"strconv"
     8  	"testing"
     9  )
    10  
    11  func TestWalkMapDeterministic(t *testing.T) {
    12  	var n = 100
    13  	Convey("WalkFloat32Float32MapDeterministic", t, func() {
    14  		var keys = make([]float32, 0, n)
    15  		var value float32
    16  		var tm = make(map[float32]float32)
    17  		for i := 0; i < n; i++ {
    18  			var key float32
    19  			key = float32(i)
    20  			tm[key] = value
    21  			keys = append(keys, key)
    22  		}
    23  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
    24  
    25  		var dest = make([]float32, 0, n)
    26  		WalkFloat32Float32MapDeterministic(tm, func(k float32, v float32) bool {
    27  			dest = append(dest, k)
    28  			return true
    29  		})
    30  
    31  		for k, v := range keys {
    32  			So(v, ShouldEqual, dest[k])
    33  		}
    34  	})
    35  
    36  	Convey("WalkFloat32Float64MapDeterministic", t, func() {
    37  		var keys = make([]float32, 0, n)
    38  		var value float64
    39  		var tm = make(map[float32]float64)
    40  		for i := 0; i < n; i++ {
    41  			var key float32
    42  			key = float32(i)
    43  			tm[key] = value
    44  			keys = append(keys, key)
    45  		}
    46  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
    47  
    48  		var dest = make([]float32, 0, n)
    49  		WalkFloat32Float64MapDeterministic(tm, func(k float32, v float64) bool {
    50  			dest = append(dest, k)
    51  			return true
    52  		})
    53  
    54  		for k, v := range keys {
    55  			So(v, ShouldEqual, dest[k])
    56  		}
    57  	})
    58  
    59  	Convey("WalkFloat32IntMapDeterministic", t, func() {
    60  		var keys = make([]float32, 0, n)
    61  		var value int
    62  		var tm = make(map[float32]int)
    63  		for i := 0; i < n; i++ {
    64  			var key float32
    65  			key = float32(i)
    66  			tm[key] = value
    67  			keys = append(keys, key)
    68  		}
    69  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
    70  
    71  		var dest = make([]float32, 0, n)
    72  		WalkFloat32IntMapDeterministic(tm, func(k float32, v int) bool {
    73  			dest = append(dest, k)
    74  			return true
    75  		})
    76  
    77  		for k, v := range keys {
    78  			So(v, ShouldEqual, dest[k])
    79  		}
    80  	})
    81  
    82  	Convey("WalkFloat32Int16MapDeterministic", t, func() {
    83  		var keys = make([]float32, 0, n)
    84  		var value int16
    85  		var tm = make(map[float32]int16)
    86  		for i := 0; i < n; i++ {
    87  			var key float32
    88  			key = float32(i)
    89  			tm[key] = value
    90  			keys = append(keys, key)
    91  		}
    92  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
    93  
    94  		var dest = make([]float32, 0, n)
    95  		WalkFloat32Int16MapDeterministic(tm, func(k float32, v int16) bool {
    96  			dest = append(dest, k)
    97  			return true
    98  		})
    99  
   100  		for k, v := range keys {
   101  			So(v, ShouldEqual, dest[k])
   102  		}
   103  	})
   104  
   105  	Convey("WalkFloat32Int32MapDeterministic", t, func() {
   106  		var keys = make([]float32, 0, n)
   107  		var value int32
   108  		var tm = make(map[float32]int32)
   109  		for i := 0; i < n; i++ {
   110  			var key float32
   111  			key = float32(i)
   112  			tm[key] = value
   113  			keys = append(keys, key)
   114  		}
   115  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   116  
   117  		var dest = make([]float32, 0, n)
   118  		WalkFloat32Int32MapDeterministic(tm, func(k float32, v int32) bool {
   119  			dest = append(dest, k)
   120  			return true
   121  		})
   122  
   123  		for k, v := range keys {
   124  			So(v, ShouldEqual, dest[k])
   125  		}
   126  	})
   127  
   128  	Convey("WalkFloat32Int64MapDeterministic", t, func() {
   129  		var keys = make([]float32, 0, n)
   130  		var value int64
   131  		var tm = make(map[float32]int64)
   132  		for i := 0; i < n; i++ {
   133  			var key float32
   134  			key = float32(i)
   135  			tm[key] = value
   136  			keys = append(keys, key)
   137  		}
   138  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   139  
   140  		var dest = make([]float32, 0, n)
   141  		WalkFloat32Int64MapDeterministic(tm, func(k float32, v int64) bool {
   142  			dest = append(dest, k)
   143  			return true
   144  		})
   145  
   146  		for k, v := range keys {
   147  			So(v, ShouldEqual, dest[k])
   148  		}
   149  	})
   150  
   151  	Convey("WalkFloat32Int8MapDeterministic", t, func() {
   152  		var keys = make([]float32, 0, n)
   153  		var value int8
   154  		var tm = make(map[float32]int8)
   155  		for i := 0; i < n; i++ {
   156  			var key float32
   157  			key = float32(i)
   158  			tm[key] = value
   159  			keys = append(keys, key)
   160  		}
   161  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   162  
   163  		var dest = make([]float32, 0, n)
   164  		WalkFloat32Int8MapDeterministic(tm, func(k float32, v int8) bool {
   165  			dest = append(dest, k)
   166  			return true
   167  		})
   168  
   169  		for k, v := range keys {
   170  			So(v, ShouldEqual, dest[k])
   171  		}
   172  	})
   173  
   174  	Convey("WalkFloat32InterfaceMapDeterministic", t, func() {
   175  		var keys = make([]float32, 0, n)
   176  		var value interface{}
   177  		var tm = make(map[float32]interface{})
   178  		for i := 0; i < n; i++ {
   179  			var key float32
   180  			key = float32(i)
   181  			tm[key] = value
   182  			keys = append(keys, key)
   183  		}
   184  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   185  
   186  		var dest = make([]float32, 0, n)
   187  		WalkFloat32InterfaceMapDeterministic(tm, func(k float32, v interface{}) bool {
   188  			dest = append(dest, k)
   189  			return true
   190  		})
   191  
   192  		for k, v := range keys {
   193  			So(v, ShouldEqual, dest[k])
   194  		}
   195  	})
   196  
   197  	Convey("WalkFloat32StringMapDeterministic", t, func() {
   198  		var keys = make([]float32, 0, n)
   199  		var value string
   200  		var tm = make(map[float32]string)
   201  		for i := 0; i < n; i++ {
   202  			var key float32
   203  			key = float32(i)
   204  			tm[key] = value
   205  			keys = append(keys, key)
   206  		}
   207  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   208  
   209  		var dest = make([]float32, 0, n)
   210  		WalkFloat32StringMapDeterministic(tm, func(k float32, v string) bool {
   211  			dest = append(dest, k)
   212  			return true
   213  		})
   214  
   215  		for k, v := range keys {
   216  			So(v, ShouldEqual, dest[k])
   217  		}
   218  	})
   219  
   220  	Convey("WalkFloat32UintMapDeterministic", t, func() {
   221  		var keys = make([]float32, 0, n)
   222  		var value uint
   223  		var tm = make(map[float32]uint)
   224  		for i := 0; i < n; i++ {
   225  			var key float32
   226  			key = float32(i)
   227  			tm[key] = value
   228  			keys = append(keys, key)
   229  		}
   230  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   231  
   232  		var dest = make([]float32, 0, n)
   233  		WalkFloat32UintMapDeterministic(tm, func(k float32, v uint) bool {
   234  			dest = append(dest, k)
   235  			return true
   236  		})
   237  
   238  		for k, v := range keys {
   239  			So(v, ShouldEqual, dest[k])
   240  		}
   241  	})
   242  
   243  	Convey("WalkFloat32Uint16MapDeterministic", t, func() {
   244  		var keys = make([]float32, 0, n)
   245  		var value uint16
   246  		var tm = make(map[float32]uint16)
   247  		for i := 0; i < n; i++ {
   248  			var key float32
   249  			key = float32(i)
   250  			tm[key] = value
   251  			keys = append(keys, key)
   252  		}
   253  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   254  
   255  		var dest = make([]float32, 0, n)
   256  		WalkFloat32Uint16MapDeterministic(tm, func(k float32, v uint16) bool {
   257  			dest = append(dest, k)
   258  			return true
   259  		})
   260  
   261  		for k, v := range keys {
   262  			So(v, ShouldEqual, dest[k])
   263  		}
   264  	})
   265  
   266  	Convey("WalkFloat32Uint32MapDeterministic", t, func() {
   267  		var keys = make([]float32, 0, n)
   268  		var value uint32
   269  		var tm = make(map[float32]uint32)
   270  		for i := 0; i < n; i++ {
   271  			var key float32
   272  			key = float32(i)
   273  			tm[key] = value
   274  			keys = append(keys, key)
   275  		}
   276  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   277  
   278  		var dest = make([]float32, 0, n)
   279  		WalkFloat32Uint32MapDeterministic(tm, func(k float32, v uint32) bool {
   280  			dest = append(dest, k)
   281  			return true
   282  		})
   283  
   284  		for k, v := range keys {
   285  			So(v, ShouldEqual, dest[k])
   286  		}
   287  	})
   288  
   289  	Convey("WalkFloat32Uint64MapDeterministic", t, func() {
   290  		var keys = make([]float32, 0, n)
   291  		var value uint64
   292  		var tm = make(map[float32]uint64)
   293  		for i := 0; i < n; i++ {
   294  			var key float32
   295  			key = float32(i)
   296  			tm[key] = value
   297  			keys = append(keys, key)
   298  		}
   299  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   300  
   301  		var dest = make([]float32, 0, n)
   302  		WalkFloat32Uint64MapDeterministic(tm, func(k float32, v uint64) bool {
   303  			dest = append(dest, k)
   304  			return true
   305  		})
   306  
   307  		for k, v := range keys {
   308  			So(v, ShouldEqual, dest[k])
   309  		}
   310  	})
   311  
   312  	Convey("WalkFloat32Uint8MapDeterministic", t, func() {
   313  		var keys = make([]float32, 0, n)
   314  		var value uint8
   315  		var tm = make(map[float32]uint8)
   316  		for i := 0; i < n; i++ {
   317  			var key float32
   318  			key = float32(i)
   319  			tm[key] = value
   320  			keys = append(keys, key)
   321  		}
   322  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   323  
   324  		var dest = make([]float32, 0, n)
   325  		WalkFloat32Uint8MapDeterministic(tm, func(k float32, v uint8) bool {
   326  			dest = append(dest, k)
   327  			return true
   328  		})
   329  
   330  		for k, v := range keys {
   331  			So(v, ShouldEqual, dest[k])
   332  		}
   333  	})
   334  
   335  	Convey("WalkFloat64Float32MapDeterministic", t, func() {
   336  		var keys = make([]float64, 0, n)
   337  		var value float32
   338  		var tm = make(map[float64]float32)
   339  		for i := 0; i < n; i++ {
   340  			var key float64
   341  			key = float64(i)
   342  			tm[key] = value
   343  			keys = append(keys, key)
   344  		}
   345  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   346  
   347  		var dest = make([]float64, 0, n)
   348  		WalkFloat64Float32MapDeterministic(tm, func(k float64, v float32) bool {
   349  			dest = append(dest, k)
   350  			return true
   351  		})
   352  
   353  		for k, v := range keys {
   354  			So(v, ShouldEqual, dest[k])
   355  		}
   356  	})
   357  
   358  	Convey("WalkFloat64Float64MapDeterministic", t, func() {
   359  		var keys = make([]float64, 0, n)
   360  		var value float64
   361  		var tm = make(map[float64]float64)
   362  		for i := 0; i < n; i++ {
   363  			var key float64
   364  			key = float64(i)
   365  			tm[key] = value
   366  			keys = append(keys, key)
   367  		}
   368  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   369  
   370  		var dest = make([]float64, 0, n)
   371  		WalkFloat64Float64MapDeterministic(tm, func(k float64, v float64) bool {
   372  			dest = append(dest, k)
   373  			return true
   374  		})
   375  
   376  		for k, v := range keys {
   377  			So(v, ShouldEqual, dest[k])
   378  		}
   379  	})
   380  
   381  	Convey("WalkFloat64IntMapDeterministic", t, func() {
   382  		var keys = make([]float64, 0, n)
   383  		var value int
   384  		var tm = make(map[float64]int)
   385  		for i := 0; i < n; i++ {
   386  			var key float64
   387  			key = float64(i)
   388  			tm[key] = value
   389  			keys = append(keys, key)
   390  		}
   391  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   392  
   393  		var dest = make([]float64, 0, n)
   394  		WalkFloat64IntMapDeterministic(tm, func(k float64, v int) bool {
   395  			dest = append(dest, k)
   396  			return true
   397  		})
   398  
   399  		for k, v := range keys {
   400  			So(v, ShouldEqual, dest[k])
   401  		}
   402  	})
   403  
   404  	Convey("WalkFloat64Int16MapDeterministic", t, func() {
   405  		var keys = make([]float64, 0, n)
   406  		var value int16
   407  		var tm = make(map[float64]int16)
   408  		for i := 0; i < n; i++ {
   409  			var key float64
   410  			key = float64(i)
   411  			tm[key] = value
   412  			keys = append(keys, key)
   413  		}
   414  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   415  
   416  		var dest = make([]float64, 0, n)
   417  		WalkFloat64Int16MapDeterministic(tm, func(k float64, v int16) bool {
   418  			dest = append(dest, k)
   419  			return true
   420  		})
   421  
   422  		for k, v := range keys {
   423  			So(v, ShouldEqual, dest[k])
   424  		}
   425  	})
   426  
   427  	Convey("WalkFloat64Int32MapDeterministic", t, func() {
   428  		var keys = make([]float64, 0, n)
   429  		var value int32
   430  		var tm = make(map[float64]int32)
   431  		for i := 0; i < n; i++ {
   432  			var key float64
   433  			key = float64(i)
   434  			tm[key] = value
   435  			keys = append(keys, key)
   436  		}
   437  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   438  
   439  		var dest = make([]float64, 0, n)
   440  		WalkFloat64Int32MapDeterministic(tm, func(k float64, v int32) bool {
   441  			dest = append(dest, k)
   442  			return true
   443  		})
   444  
   445  		for k, v := range keys {
   446  			So(v, ShouldEqual, dest[k])
   447  		}
   448  	})
   449  
   450  	Convey("WalkFloat64Int64MapDeterministic", t, func() {
   451  		var keys = make([]float64, 0, n)
   452  		var value int64
   453  		var tm = make(map[float64]int64)
   454  		for i := 0; i < n; i++ {
   455  			var key float64
   456  			key = float64(i)
   457  			tm[key] = value
   458  			keys = append(keys, key)
   459  		}
   460  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   461  
   462  		var dest = make([]float64, 0, n)
   463  		WalkFloat64Int64MapDeterministic(tm, func(k float64, v int64) bool {
   464  			dest = append(dest, k)
   465  			return true
   466  		})
   467  
   468  		for k, v := range keys {
   469  			So(v, ShouldEqual, dest[k])
   470  		}
   471  	})
   472  
   473  	Convey("WalkFloat64Int8MapDeterministic", t, func() {
   474  		var keys = make([]float64, 0, n)
   475  		var value int8
   476  		var tm = make(map[float64]int8)
   477  		for i := 0; i < n; i++ {
   478  			var key float64
   479  			key = float64(i)
   480  			tm[key] = value
   481  			keys = append(keys, key)
   482  		}
   483  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   484  
   485  		var dest = make([]float64, 0, n)
   486  		WalkFloat64Int8MapDeterministic(tm, func(k float64, v int8) bool {
   487  			dest = append(dest, k)
   488  			return true
   489  		})
   490  
   491  		for k, v := range keys {
   492  			So(v, ShouldEqual, dest[k])
   493  		}
   494  	})
   495  
   496  	Convey("WalkFloat64InterfaceMapDeterministic", t, func() {
   497  		var keys = make([]float64, 0, n)
   498  		var value interface{}
   499  		var tm = make(map[float64]interface{})
   500  		for i := 0; i < n; i++ {
   501  			var key float64
   502  			key = float64(i)
   503  			tm[key] = value
   504  			keys = append(keys, key)
   505  		}
   506  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   507  
   508  		var dest = make([]float64, 0, n)
   509  		WalkFloat64InterfaceMapDeterministic(tm, func(k float64, v interface{}) bool {
   510  			dest = append(dest, k)
   511  			return true
   512  		})
   513  
   514  		for k, v := range keys {
   515  			So(v, ShouldEqual, dest[k])
   516  		}
   517  	})
   518  
   519  	Convey("WalkFloat64StringMapDeterministic", t, func() {
   520  		var keys = make([]float64, 0, n)
   521  		var value string
   522  		var tm = make(map[float64]string)
   523  		for i := 0; i < n; i++ {
   524  			var key float64
   525  			key = float64(i)
   526  			tm[key] = value
   527  			keys = append(keys, key)
   528  		}
   529  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   530  
   531  		var dest = make([]float64, 0, n)
   532  		WalkFloat64StringMapDeterministic(tm, func(k float64, v string) bool {
   533  			dest = append(dest, k)
   534  			return true
   535  		})
   536  
   537  		for k, v := range keys {
   538  			So(v, ShouldEqual, dest[k])
   539  		}
   540  	})
   541  
   542  	Convey("WalkFloat64UintMapDeterministic", t, func() {
   543  		var keys = make([]float64, 0, n)
   544  		var value uint
   545  		var tm = make(map[float64]uint)
   546  		for i := 0; i < n; i++ {
   547  			var key float64
   548  			key = float64(i)
   549  			tm[key] = value
   550  			keys = append(keys, key)
   551  		}
   552  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   553  
   554  		var dest = make([]float64, 0, n)
   555  		WalkFloat64UintMapDeterministic(tm, func(k float64, v uint) bool {
   556  			dest = append(dest, k)
   557  			return true
   558  		})
   559  
   560  		for k, v := range keys {
   561  			So(v, ShouldEqual, dest[k])
   562  		}
   563  	})
   564  
   565  	Convey("WalkFloat64Uint16MapDeterministic", t, func() {
   566  		var keys = make([]float64, 0, n)
   567  		var value uint16
   568  		var tm = make(map[float64]uint16)
   569  		for i := 0; i < n; i++ {
   570  			var key float64
   571  			key = float64(i)
   572  			tm[key] = value
   573  			keys = append(keys, key)
   574  		}
   575  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   576  
   577  		var dest = make([]float64, 0, n)
   578  		WalkFloat64Uint16MapDeterministic(tm, func(k float64, v uint16) bool {
   579  			dest = append(dest, k)
   580  			return true
   581  		})
   582  
   583  		for k, v := range keys {
   584  			So(v, ShouldEqual, dest[k])
   585  		}
   586  	})
   587  
   588  	Convey("WalkFloat64Uint32MapDeterministic", t, func() {
   589  		var keys = make([]float64, 0, n)
   590  		var value uint32
   591  		var tm = make(map[float64]uint32)
   592  		for i := 0; i < n; i++ {
   593  			var key float64
   594  			key = float64(i)
   595  			tm[key] = value
   596  			keys = append(keys, key)
   597  		}
   598  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   599  
   600  		var dest = make([]float64, 0, n)
   601  		WalkFloat64Uint32MapDeterministic(tm, func(k float64, v uint32) bool {
   602  			dest = append(dest, k)
   603  			return true
   604  		})
   605  
   606  		for k, v := range keys {
   607  			So(v, ShouldEqual, dest[k])
   608  		}
   609  	})
   610  
   611  	Convey("WalkFloat64Uint64MapDeterministic", t, func() {
   612  		var keys = make([]float64, 0, n)
   613  		var value uint64
   614  		var tm = make(map[float64]uint64)
   615  		for i := 0; i < n; i++ {
   616  			var key float64
   617  			key = float64(i)
   618  			tm[key] = value
   619  			keys = append(keys, key)
   620  		}
   621  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   622  
   623  		var dest = make([]float64, 0, n)
   624  		WalkFloat64Uint64MapDeterministic(tm, func(k float64, v uint64) bool {
   625  			dest = append(dest, k)
   626  			return true
   627  		})
   628  
   629  		for k, v := range keys {
   630  			So(v, ShouldEqual, dest[k])
   631  		}
   632  	})
   633  
   634  	Convey("WalkFloat64Uint8MapDeterministic", t, func() {
   635  		var keys = make([]float64, 0, n)
   636  		var value uint8
   637  		var tm = make(map[float64]uint8)
   638  		for i := 0; i < n; i++ {
   639  			var key float64
   640  			key = float64(i)
   641  			tm[key] = value
   642  			keys = append(keys, key)
   643  		}
   644  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   645  
   646  		var dest = make([]float64, 0, n)
   647  		WalkFloat64Uint8MapDeterministic(tm, func(k float64, v uint8) bool {
   648  			dest = append(dest, k)
   649  			return true
   650  		})
   651  
   652  		for k, v := range keys {
   653  			So(v, ShouldEqual, dest[k])
   654  		}
   655  	})
   656  
   657  	Convey("WalkIntFloat32MapDeterministic", t, func() {
   658  		var keys = make([]int, 0, n)
   659  		var value float32
   660  		var tm = make(map[int]float32)
   661  		for i := 0; i < n; i++ {
   662  			var key int
   663  			key = i
   664  			tm[key] = value
   665  			keys = append(keys, key)
   666  		}
   667  		sort.Ints(keys)
   668  
   669  		var dest = make([]int, 0, n)
   670  		WalkIntFloat32MapDeterministic(tm, func(k int, v float32) bool {
   671  			dest = append(dest, k)
   672  			return true
   673  		})
   674  
   675  		for k, v := range keys {
   676  			So(v, ShouldEqual, dest[k])
   677  		}
   678  	})
   679  
   680  	Convey("WalkIntFloat64MapDeterministic", t, func() {
   681  		var keys = make([]int, 0, n)
   682  		var value float64
   683  		var tm = make(map[int]float64)
   684  		for i := 0; i < n; i++ {
   685  			var key int
   686  			key = i
   687  			tm[key] = value
   688  			keys = append(keys, key)
   689  		}
   690  		sort.Ints(keys)
   691  
   692  		var dest = make([]int, 0, n)
   693  		WalkIntFloat64MapDeterministic(tm, func(k int, v float64) bool {
   694  			dest = append(dest, k)
   695  			return true
   696  		})
   697  
   698  		for k, v := range keys {
   699  			So(v, ShouldEqual, dest[k])
   700  		}
   701  	})
   702  
   703  	Convey("WalkIntIntMapDeterministic", t, func() {
   704  		var keys = make([]int, 0, n)
   705  		var value int
   706  		var tm = make(map[int]int)
   707  		for i := 0; i < n; i++ {
   708  			var key int
   709  			key = i
   710  			tm[key] = value
   711  			keys = append(keys, key)
   712  		}
   713  		sort.Ints(keys)
   714  
   715  		var dest = make([]int, 0, n)
   716  		WalkIntIntMapDeterministic(tm, func(k int, v int) bool {
   717  			dest = append(dest, k)
   718  			return true
   719  		})
   720  
   721  		for k, v := range keys {
   722  			So(v, ShouldEqual, dest[k])
   723  		}
   724  	})
   725  
   726  	Convey("WalkIntInt16MapDeterministic", t, func() {
   727  		var keys = make([]int, 0, n)
   728  		var value int16
   729  		var tm = make(map[int]int16)
   730  		for i := 0; i < n; i++ {
   731  			var key int
   732  			key = i
   733  			tm[key] = value
   734  			keys = append(keys, key)
   735  		}
   736  		sort.Ints(keys)
   737  
   738  		var dest = make([]int, 0, n)
   739  		WalkIntInt16MapDeterministic(tm, func(k int, v int16) bool {
   740  			dest = append(dest, k)
   741  			return true
   742  		})
   743  
   744  		for k, v := range keys {
   745  			So(v, ShouldEqual, dest[k])
   746  		}
   747  	})
   748  
   749  	Convey("WalkIntInt32MapDeterministic", t, func() {
   750  		var keys = make([]int, 0, n)
   751  		var value int32
   752  		var tm = make(map[int]int32)
   753  		for i := 0; i < n; i++ {
   754  			var key int
   755  			key = i
   756  			tm[key] = value
   757  			keys = append(keys, key)
   758  		}
   759  		sort.Ints(keys)
   760  
   761  		var dest = make([]int, 0, n)
   762  		WalkIntInt32MapDeterministic(tm, func(k int, v int32) bool {
   763  			dest = append(dest, k)
   764  			return true
   765  		})
   766  
   767  		for k, v := range keys {
   768  			So(v, ShouldEqual, dest[k])
   769  		}
   770  	})
   771  
   772  	Convey("WalkIntInt64MapDeterministic", t, func() {
   773  		var keys = make([]int, 0, n)
   774  		var value int64
   775  		var tm = make(map[int]int64)
   776  		for i := 0; i < n; i++ {
   777  			var key int
   778  			key = i
   779  			tm[key] = value
   780  			keys = append(keys, key)
   781  		}
   782  		sort.Ints(keys)
   783  
   784  		var dest = make([]int, 0, n)
   785  		WalkIntInt64MapDeterministic(tm, func(k int, v int64) bool {
   786  			dest = append(dest, k)
   787  			return true
   788  		})
   789  
   790  		for k, v := range keys {
   791  			So(v, ShouldEqual, dest[k])
   792  		}
   793  	})
   794  
   795  	Convey("WalkIntInt8MapDeterministic", t, func() {
   796  		var keys = make([]int, 0, n)
   797  		var value int8
   798  		var tm = make(map[int]int8)
   799  		for i := 0; i < n; i++ {
   800  			var key int
   801  			key = i
   802  			tm[key] = value
   803  			keys = append(keys, key)
   804  		}
   805  		sort.Ints(keys)
   806  
   807  		var dest = make([]int, 0, n)
   808  		WalkIntInt8MapDeterministic(tm, func(k int, v int8) bool {
   809  			dest = append(dest, k)
   810  			return true
   811  		})
   812  
   813  		for k, v := range keys {
   814  			So(v, ShouldEqual, dest[k])
   815  		}
   816  	})
   817  
   818  	Convey("WalkIntInterfaceMapDeterministic", t, func() {
   819  		var keys = make([]int, 0, n)
   820  		var value interface{}
   821  		var tm = make(map[int]interface{})
   822  		for i := 0; i < n; i++ {
   823  			var key int
   824  			key = i
   825  			tm[key] = value
   826  			keys = append(keys, key)
   827  		}
   828  		sort.Ints(keys)
   829  
   830  		var dest = make([]int, 0, n)
   831  		WalkIntInterfaceMapDeterministic(tm, func(k int, v interface{}) bool {
   832  			dest = append(dest, k)
   833  			return true
   834  		})
   835  
   836  		for k, v := range keys {
   837  			So(v, ShouldEqual, dest[k])
   838  		}
   839  	})
   840  
   841  	Convey("WalkIntStringMapDeterministic", t, func() {
   842  		var keys = make([]int, 0, n)
   843  		var value string
   844  		var tm = make(map[int]string)
   845  		for i := 0; i < n; i++ {
   846  			var key int
   847  			key = i
   848  			tm[key] = value
   849  			keys = append(keys, key)
   850  		}
   851  		sort.Ints(keys)
   852  
   853  		var dest = make([]int, 0, n)
   854  		WalkIntStringMapDeterministic(tm, func(k int, v string) bool {
   855  			dest = append(dest, k)
   856  			return true
   857  		})
   858  
   859  		for k, v := range keys {
   860  			So(v, ShouldEqual, dest[k])
   861  		}
   862  	})
   863  
   864  	Convey("WalkIntUintMapDeterministic", t, func() {
   865  		var keys = make([]int, 0, n)
   866  		var value uint
   867  		var tm = make(map[int]uint)
   868  		for i := 0; i < n; i++ {
   869  			var key int
   870  			key = i
   871  			tm[key] = value
   872  			keys = append(keys, key)
   873  		}
   874  		sort.Ints(keys)
   875  
   876  		var dest = make([]int, 0, n)
   877  		WalkIntUintMapDeterministic(tm, func(k int, v uint) bool {
   878  			dest = append(dest, k)
   879  			return true
   880  		})
   881  
   882  		for k, v := range keys {
   883  			So(v, ShouldEqual, dest[k])
   884  		}
   885  	})
   886  
   887  	Convey("WalkIntUint16MapDeterministic", t, func() {
   888  		var keys = make([]int, 0, n)
   889  		var value uint16
   890  		var tm = make(map[int]uint16)
   891  		for i := 0; i < n; i++ {
   892  			var key int
   893  			key = i
   894  			tm[key] = value
   895  			keys = append(keys, key)
   896  		}
   897  		sort.Ints(keys)
   898  
   899  		var dest = make([]int, 0, n)
   900  		WalkIntUint16MapDeterministic(tm, func(k int, v uint16) bool {
   901  			dest = append(dest, k)
   902  			return true
   903  		})
   904  
   905  		for k, v := range keys {
   906  			So(v, ShouldEqual, dest[k])
   907  		}
   908  	})
   909  
   910  	Convey("WalkIntUint32MapDeterministic", t, func() {
   911  		var keys = make([]int, 0, n)
   912  		var value uint32
   913  		var tm = make(map[int]uint32)
   914  		for i := 0; i < n; i++ {
   915  			var key int
   916  			key = i
   917  			tm[key] = value
   918  			keys = append(keys, key)
   919  		}
   920  		sort.Ints(keys)
   921  
   922  		var dest = make([]int, 0, n)
   923  		WalkIntUint32MapDeterministic(tm, func(k int, v uint32) bool {
   924  			dest = append(dest, k)
   925  			return true
   926  		})
   927  
   928  		for k, v := range keys {
   929  			So(v, ShouldEqual, dest[k])
   930  		}
   931  	})
   932  
   933  	Convey("WalkIntUint64MapDeterministic", t, func() {
   934  		var keys = make([]int, 0, n)
   935  		var value uint64
   936  		var tm = make(map[int]uint64)
   937  		for i := 0; i < n; i++ {
   938  			var key int
   939  			key = i
   940  			tm[key] = value
   941  			keys = append(keys, key)
   942  		}
   943  		sort.Ints(keys)
   944  
   945  		var dest = make([]int, 0, n)
   946  		WalkIntUint64MapDeterministic(tm, func(k int, v uint64) bool {
   947  			dest = append(dest, k)
   948  			return true
   949  		})
   950  
   951  		for k, v := range keys {
   952  			So(v, ShouldEqual, dest[k])
   953  		}
   954  	})
   955  
   956  	Convey("WalkIntUint8MapDeterministic", t, func() {
   957  		var keys = make([]int, 0, n)
   958  		var value uint8
   959  		var tm = make(map[int]uint8)
   960  		for i := 0; i < n; i++ {
   961  			var key int
   962  			key = i
   963  			tm[key] = value
   964  			keys = append(keys, key)
   965  		}
   966  		sort.Ints(keys)
   967  
   968  		var dest = make([]int, 0, n)
   969  		WalkIntUint8MapDeterministic(tm, func(k int, v uint8) bool {
   970  			dest = append(dest, k)
   971  			return true
   972  		})
   973  
   974  		for k, v := range keys {
   975  			So(v, ShouldEqual, dest[k])
   976  		}
   977  	})
   978  
   979  	Convey("WalkInt16Float32MapDeterministic", t, func() {
   980  		var keys = make([]int16, 0, n)
   981  		var value float32
   982  		var tm = make(map[int16]float32)
   983  		for i := 0; i < n; i++ {
   984  			var key int16
   985  			key = int16(i)
   986  			tm[key] = value
   987  			keys = append(keys, key)
   988  		}
   989  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
   990  
   991  		var dest = make([]int16, 0, n)
   992  		WalkInt16Float32MapDeterministic(tm, func(k int16, v float32) bool {
   993  			dest = append(dest, k)
   994  			return true
   995  		})
   996  
   997  		for k, v := range keys {
   998  			So(v, ShouldEqual, dest[k])
   999  		}
  1000  	})
  1001  
  1002  	Convey("WalkInt16Float64MapDeterministic", t, func() {
  1003  		var keys = make([]int16, 0, n)
  1004  		var value float64
  1005  		var tm = make(map[int16]float64)
  1006  		for i := 0; i < n; i++ {
  1007  			var key int16
  1008  			key = int16(i)
  1009  			tm[key] = value
  1010  			keys = append(keys, key)
  1011  		}
  1012  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1013  
  1014  		var dest = make([]int16, 0, n)
  1015  		WalkInt16Float64MapDeterministic(tm, func(k int16, v float64) bool {
  1016  			dest = append(dest, k)
  1017  			return true
  1018  		})
  1019  
  1020  		for k, v := range keys {
  1021  			So(v, ShouldEqual, dest[k])
  1022  		}
  1023  	})
  1024  
  1025  	Convey("WalkInt16IntMapDeterministic", t, func() {
  1026  		var keys = make([]int16, 0, n)
  1027  		var value int
  1028  		var tm = make(map[int16]int)
  1029  		for i := 0; i < n; i++ {
  1030  			var key int16
  1031  			key = int16(i)
  1032  			tm[key] = value
  1033  			keys = append(keys, key)
  1034  		}
  1035  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1036  
  1037  		var dest = make([]int16, 0, n)
  1038  		WalkInt16IntMapDeterministic(tm, func(k int16, v int) bool {
  1039  			dest = append(dest, k)
  1040  			return true
  1041  		})
  1042  
  1043  		for k, v := range keys {
  1044  			So(v, ShouldEqual, dest[k])
  1045  		}
  1046  	})
  1047  
  1048  	Convey("WalkInt16Int16MapDeterministic", t, func() {
  1049  		var keys = make([]int16, 0, n)
  1050  		var value int16
  1051  		var tm = make(map[int16]int16)
  1052  		for i := 0; i < n; i++ {
  1053  			var key int16
  1054  			key = int16(i)
  1055  			tm[key] = value
  1056  			keys = append(keys, key)
  1057  		}
  1058  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1059  
  1060  		var dest = make([]int16, 0, n)
  1061  		WalkInt16Int16MapDeterministic(tm, func(k int16, v int16) bool {
  1062  			dest = append(dest, k)
  1063  			return true
  1064  		})
  1065  
  1066  		for k, v := range keys {
  1067  			So(v, ShouldEqual, dest[k])
  1068  		}
  1069  	})
  1070  
  1071  	Convey("WalkInt16Int32MapDeterministic", t, func() {
  1072  		var keys = make([]int16, 0, n)
  1073  		var value int32
  1074  		var tm = make(map[int16]int32)
  1075  		for i := 0; i < n; i++ {
  1076  			var key int16
  1077  			key = int16(i)
  1078  			tm[key] = value
  1079  			keys = append(keys, key)
  1080  		}
  1081  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1082  
  1083  		var dest = make([]int16, 0, n)
  1084  		WalkInt16Int32MapDeterministic(tm, func(k int16, v int32) bool {
  1085  			dest = append(dest, k)
  1086  			return true
  1087  		})
  1088  
  1089  		for k, v := range keys {
  1090  			So(v, ShouldEqual, dest[k])
  1091  		}
  1092  	})
  1093  
  1094  	Convey("WalkInt16Int64MapDeterministic", t, func() {
  1095  		var keys = make([]int16, 0, n)
  1096  		var value int64
  1097  		var tm = make(map[int16]int64)
  1098  		for i := 0; i < n; i++ {
  1099  			var key int16
  1100  			key = int16(i)
  1101  			tm[key] = value
  1102  			keys = append(keys, key)
  1103  		}
  1104  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1105  
  1106  		var dest = make([]int16, 0, n)
  1107  		WalkInt16Int64MapDeterministic(tm, func(k int16, v int64) bool {
  1108  			dest = append(dest, k)
  1109  			return true
  1110  		})
  1111  
  1112  		for k, v := range keys {
  1113  			So(v, ShouldEqual, dest[k])
  1114  		}
  1115  	})
  1116  
  1117  	Convey("WalkInt16Int8MapDeterministic", t, func() {
  1118  		var keys = make([]int16, 0, n)
  1119  		var value int8
  1120  		var tm = make(map[int16]int8)
  1121  		for i := 0; i < n; i++ {
  1122  			var key int16
  1123  			key = int16(i)
  1124  			tm[key] = value
  1125  			keys = append(keys, key)
  1126  		}
  1127  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1128  
  1129  		var dest = make([]int16, 0, n)
  1130  		WalkInt16Int8MapDeterministic(tm, func(k int16, v int8) bool {
  1131  			dest = append(dest, k)
  1132  			return true
  1133  		})
  1134  
  1135  		for k, v := range keys {
  1136  			So(v, ShouldEqual, dest[k])
  1137  		}
  1138  	})
  1139  
  1140  	Convey("WalkInt16InterfaceMapDeterministic", t, func() {
  1141  		var keys = make([]int16, 0, n)
  1142  		var value interface{}
  1143  		var tm = make(map[int16]interface{})
  1144  		for i := 0; i < n; i++ {
  1145  			var key int16
  1146  			key = int16(i)
  1147  			tm[key] = value
  1148  			keys = append(keys, key)
  1149  		}
  1150  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1151  
  1152  		var dest = make([]int16, 0, n)
  1153  		WalkInt16InterfaceMapDeterministic(tm, func(k int16, v interface{}) bool {
  1154  			dest = append(dest, k)
  1155  			return true
  1156  		})
  1157  
  1158  		for k, v := range keys {
  1159  			So(v, ShouldEqual, dest[k])
  1160  		}
  1161  	})
  1162  
  1163  	Convey("WalkInt16StringMapDeterministic", t, func() {
  1164  		var keys = make([]int16, 0, n)
  1165  		var value string
  1166  		var tm = make(map[int16]string)
  1167  		for i := 0; i < n; i++ {
  1168  			var key int16
  1169  			key = int16(i)
  1170  			tm[key] = value
  1171  			keys = append(keys, key)
  1172  		}
  1173  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1174  
  1175  		var dest = make([]int16, 0, n)
  1176  		WalkInt16StringMapDeterministic(tm, func(k int16, v string) bool {
  1177  			dest = append(dest, k)
  1178  			return true
  1179  		})
  1180  
  1181  		for k, v := range keys {
  1182  			So(v, ShouldEqual, dest[k])
  1183  		}
  1184  	})
  1185  
  1186  	Convey("WalkInt16UintMapDeterministic", t, func() {
  1187  		var keys = make([]int16, 0, n)
  1188  		var value uint
  1189  		var tm = make(map[int16]uint)
  1190  		for i := 0; i < n; i++ {
  1191  			var key int16
  1192  			key = int16(i)
  1193  			tm[key] = value
  1194  			keys = append(keys, key)
  1195  		}
  1196  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1197  
  1198  		var dest = make([]int16, 0, n)
  1199  		WalkInt16UintMapDeterministic(tm, func(k int16, v uint) bool {
  1200  			dest = append(dest, k)
  1201  			return true
  1202  		})
  1203  
  1204  		for k, v := range keys {
  1205  			So(v, ShouldEqual, dest[k])
  1206  		}
  1207  	})
  1208  
  1209  	Convey("WalkInt16Uint16MapDeterministic", t, func() {
  1210  		var keys = make([]int16, 0, n)
  1211  		var value uint16
  1212  		var tm = make(map[int16]uint16)
  1213  		for i := 0; i < n; i++ {
  1214  			var key int16
  1215  			key = int16(i)
  1216  			tm[key] = value
  1217  			keys = append(keys, key)
  1218  		}
  1219  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1220  
  1221  		var dest = make([]int16, 0, n)
  1222  		WalkInt16Uint16MapDeterministic(tm, func(k int16, v uint16) bool {
  1223  			dest = append(dest, k)
  1224  			return true
  1225  		})
  1226  
  1227  		for k, v := range keys {
  1228  			So(v, ShouldEqual, dest[k])
  1229  		}
  1230  	})
  1231  
  1232  	Convey("WalkInt16Uint32MapDeterministic", t, func() {
  1233  		var keys = make([]int16, 0, n)
  1234  		var value uint32
  1235  		var tm = make(map[int16]uint32)
  1236  		for i := 0; i < n; i++ {
  1237  			var key int16
  1238  			key = int16(i)
  1239  			tm[key] = value
  1240  			keys = append(keys, key)
  1241  		}
  1242  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1243  
  1244  		var dest = make([]int16, 0, n)
  1245  		WalkInt16Uint32MapDeterministic(tm, func(k int16, v uint32) bool {
  1246  			dest = append(dest, k)
  1247  			return true
  1248  		})
  1249  
  1250  		for k, v := range keys {
  1251  			So(v, ShouldEqual, dest[k])
  1252  		}
  1253  	})
  1254  
  1255  	Convey("WalkInt16Uint64MapDeterministic", t, func() {
  1256  		var keys = make([]int16, 0, n)
  1257  		var value uint64
  1258  		var tm = make(map[int16]uint64)
  1259  		for i := 0; i < n; i++ {
  1260  			var key int16
  1261  			key = int16(i)
  1262  			tm[key] = value
  1263  			keys = append(keys, key)
  1264  		}
  1265  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1266  
  1267  		var dest = make([]int16, 0, n)
  1268  		WalkInt16Uint64MapDeterministic(tm, func(k int16, v uint64) bool {
  1269  			dest = append(dest, k)
  1270  			return true
  1271  		})
  1272  
  1273  		for k, v := range keys {
  1274  			So(v, ShouldEqual, dest[k])
  1275  		}
  1276  	})
  1277  
  1278  	Convey("WalkInt16Uint8MapDeterministic", t, func() {
  1279  		var keys = make([]int16, 0, n)
  1280  		var value uint8
  1281  		var tm = make(map[int16]uint8)
  1282  		for i := 0; i < n; i++ {
  1283  			var key int16
  1284  			key = int16(i)
  1285  			tm[key] = value
  1286  			keys = append(keys, key)
  1287  		}
  1288  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1289  
  1290  		var dest = make([]int16, 0, n)
  1291  		WalkInt16Uint8MapDeterministic(tm, func(k int16, v uint8) bool {
  1292  			dest = append(dest, k)
  1293  			return true
  1294  		})
  1295  
  1296  		for k, v := range keys {
  1297  			So(v, ShouldEqual, dest[k])
  1298  		}
  1299  	})
  1300  
  1301  	Convey("WalkInt32Float32MapDeterministic", t, func() {
  1302  		var keys = make([]int32, 0, n)
  1303  		var value float32
  1304  		var tm = make(map[int32]float32)
  1305  		for i := 0; i < n; i++ {
  1306  			var key int32
  1307  			key = int32(i)
  1308  			tm[key] = value
  1309  			keys = append(keys, key)
  1310  		}
  1311  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1312  
  1313  		var dest = make([]int32, 0, n)
  1314  		WalkInt32Float32MapDeterministic(tm, func(k int32, v float32) bool {
  1315  			dest = append(dest, k)
  1316  			return true
  1317  		})
  1318  
  1319  		for k, v := range keys {
  1320  			So(v, ShouldEqual, dest[k])
  1321  		}
  1322  	})
  1323  
  1324  	Convey("WalkInt32Float64MapDeterministic", t, func() {
  1325  		var keys = make([]int32, 0, n)
  1326  		var value float64
  1327  		var tm = make(map[int32]float64)
  1328  		for i := 0; i < n; i++ {
  1329  			var key int32
  1330  			key = int32(i)
  1331  			tm[key] = value
  1332  			keys = append(keys, key)
  1333  		}
  1334  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1335  
  1336  		var dest = make([]int32, 0, n)
  1337  		WalkInt32Float64MapDeterministic(tm, func(k int32, v float64) bool {
  1338  			dest = append(dest, k)
  1339  			return true
  1340  		})
  1341  
  1342  		for k, v := range keys {
  1343  			So(v, ShouldEqual, dest[k])
  1344  		}
  1345  	})
  1346  
  1347  	Convey("WalkInt32IntMapDeterministic", t, func() {
  1348  		var keys = make([]int32, 0, n)
  1349  		var value int
  1350  		var tm = make(map[int32]int)
  1351  		for i := 0; i < n; i++ {
  1352  			var key int32
  1353  			key = int32(i)
  1354  			tm[key] = value
  1355  			keys = append(keys, key)
  1356  		}
  1357  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1358  
  1359  		var dest = make([]int32, 0, n)
  1360  		WalkInt32IntMapDeterministic(tm, func(k int32, v int) bool {
  1361  			dest = append(dest, k)
  1362  			return true
  1363  		})
  1364  
  1365  		for k, v := range keys {
  1366  			So(v, ShouldEqual, dest[k])
  1367  		}
  1368  	})
  1369  
  1370  	Convey("WalkInt32Int16MapDeterministic", t, func() {
  1371  		var keys = make([]int32, 0, n)
  1372  		var value int16
  1373  		var tm = make(map[int32]int16)
  1374  		for i := 0; i < n; i++ {
  1375  			var key int32
  1376  			key = int32(i)
  1377  			tm[key] = value
  1378  			keys = append(keys, key)
  1379  		}
  1380  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1381  
  1382  		var dest = make([]int32, 0, n)
  1383  		WalkInt32Int16MapDeterministic(tm, func(k int32, v int16) bool {
  1384  			dest = append(dest, k)
  1385  			return true
  1386  		})
  1387  
  1388  		for k, v := range keys {
  1389  			So(v, ShouldEqual, dest[k])
  1390  		}
  1391  	})
  1392  
  1393  	Convey("WalkInt32Int32MapDeterministic", t, func() {
  1394  		var keys = make([]int32, 0, n)
  1395  		var value int32
  1396  		var tm = make(map[int32]int32)
  1397  		for i := 0; i < n; i++ {
  1398  			var key int32
  1399  			key = int32(i)
  1400  			tm[key] = value
  1401  			keys = append(keys, key)
  1402  		}
  1403  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1404  
  1405  		var dest = make([]int32, 0, n)
  1406  		WalkInt32Int32MapDeterministic(tm, func(k int32, v int32) bool {
  1407  			dest = append(dest, k)
  1408  			return true
  1409  		})
  1410  
  1411  		for k, v := range keys {
  1412  			So(v, ShouldEqual, dest[k])
  1413  		}
  1414  	})
  1415  
  1416  	Convey("WalkInt32Int64MapDeterministic", t, func() {
  1417  		var keys = make([]int32, 0, n)
  1418  		var value int64
  1419  		var tm = make(map[int32]int64)
  1420  		for i := 0; i < n; i++ {
  1421  			var key int32
  1422  			key = int32(i)
  1423  			tm[key] = value
  1424  			keys = append(keys, key)
  1425  		}
  1426  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1427  
  1428  		var dest = make([]int32, 0, n)
  1429  		WalkInt32Int64MapDeterministic(tm, func(k int32, v int64) bool {
  1430  			dest = append(dest, k)
  1431  			return true
  1432  		})
  1433  
  1434  		for k, v := range keys {
  1435  			So(v, ShouldEqual, dest[k])
  1436  		}
  1437  	})
  1438  
  1439  	Convey("WalkInt32Int8MapDeterministic", t, func() {
  1440  		var keys = make([]int32, 0, n)
  1441  		var value int8
  1442  		var tm = make(map[int32]int8)
  1443  		for i := 0; i < n; i++ {
  1444  			var key int32
  1445  			key = int32(i)
  1446  			tm[key] = value
  1447  			keys = append(keys, key)
  1448  		}
  1449  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1450  
  1451  		var dest = make([]int32, 0, n)
  1452  		WalkInt32Int8MapDeterministic(tm, func(k int32, v int8) bool {
  1453  			dest = append(dest, k)
  1454  			return true
  1455  		})
  1456  
  1457  		for k, v := range keys {
  1458  			So(v, ShouldEqual, dest[k])
  1459  		}
  1460  	})
  1461  
  1462  	Convey("WalkInt32InterfaceMapDeterministic", t, func() {
  1463  		var keys = make([]int32, 0, n)
  1464  		var value interface{}
  1465  		var tm = make(map[int32]interface{})
  1466  		for i := 0; i < n; i++ {
  1467  			var key int32
  1468  			key = int32(i)
  1469  			tm[key] = value
  1470  			keys = append(keys, key)
  1471  		}
  1472  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1473  
  1474  		var dest = make([]int32, 0, n)
  1475  		WalkInt32InterfaceMapDeterministic(tm, func(k int32, v interface{}) bool {
  1476  			dest = append(dest, k)
  1477  			return true
  1478  		})
  1479  
  1480  		for k, v := range keys {
  1481  			So(v, ShouldEqual, dest[k])
  1482  		}
  1483  	})
  1484  
  1485  	Convey("WalkInt32StringMapDeterministic", t, func() {
  1486  		var keys = make([]int32, 0, n)
  1487  		var value string
  1488  		var tm = make(map[int32]string)
  1489  		for i := 0; i < n; i++ {
  1490  			var key int32
  1491  			key = int32(i)
  1492  			tm[key] = value
  1493  			keys = append(keys, key)
  1494  		}
  1495  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1496  
  1497  		var dest = make([]int32, 0, n)
  1498  		WalkInt32StringMapDeterministic(tm, func(k int32, v string) bool {
  1499  			dest = append(dest, k)
  1500  			return true
  1501  		})
  1502  
  1503  		for k, v := range keys {
  1504  			So(v, ShouldEqual, dest[k])
  1505  		}
  1506  	})
  1507  
  1508  	Convey("WalkInt32UintMapDeterministic", t, func() {
  1509  		var keys = make([]int32, 0, n)
  1510  		var value uint
  1511  		var tm = make(map[int32]uint)
  1512  		for i := 0; i < n; i++ {
  1513  			var key int32
  1514  			key = int32(i)
  1515  			tm[key] = value
  1516  			keys = append(keys, key)
  1517  		}
  1518  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1519  
  1520  		var dest = make([]int32, 0, n)
  1521  		WalkInt32UintMapDeterministic(tm, func(k int32, v uint) bool {
  1522  			dest = append(dest, k)
  1523  			return true
  1524  		})
  1525  
  1526  		for k, v := range keys {
  1527  			So(v, ShouldEqual, dest[k])
  1528  		}
  1529  	})
  1530  
  1531  	Convey("WalkInt32Uint16MapDeterministic", t, func() {
  1532  		var keys = make([]int32, 0, n)
  1533  		var value uint16
  1534  		var tm = make(map[int32]uint16)
  1535  		for i := 0; i < n; i++ {
  1536  			var key int32
  1537  			key = int32(i)
  1538  			tm[key] = value
  1539  			keys = append(keys, key)
  1540  		}
  1541  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1542  
  1543  		var dest = make([]int32, 0, n)
  1544  		WalkInt32Uint16MapDeterministic(tm, func(k int32, v uint16) bool {
  1545  			dest = append(dest, k)
  1546  			return true
  1547  		})
  1548  
  1549  		for k, v := range keys {
  1550  			So(v, ShouldEqual, dest[k])
  1551  		}
  1552  	})
  1553  
  1554  	Convey("WalkInt32Uint32MapDeterministic", t, func() {
  1555  		var keys = make([]int32, 0, n)
  1556  		var value uint32
  1557  		var tm = make(map[int32]uint32)
  1558  		for i := 0; i < n; i++ {
  1559  			var key int32
  1560  			key = int32(i)
  1561  			tm[key] = value
  1562  			keys = append(keys, key)
  1563  		}
  1564  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1565  
  1566  		var dest = make([]int32, 0, n)
  1567  		WalkInt32Uint32MapDeterministic(tm, func(k int32, v uint32) bool {
  1568  			dest = append(dest, k)
  1569  			return true
  1570  		})
  1571  
  1572  		for k, v := range keys {
  1573  			So(v, ShouldEqual, dest[k])
  1574  		}
  1575  	})
  1576  
  1577  	Convey("WalkInt32Uint64MapDeterministic", t, func() {
  1578  		var keys = make([]int32, 0, n)
  1579  		var value uint64
  1580  		var tm = make(map[int32]uint64)
  1581  		for i := 0; i < n; i++ {
  1582  			var key int32
  1583  			key = int32(i)
  1584  			tm[key] = value
  1585  			keys = append(keys, key)
  1586  		}
  1587  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1588  
  1589  		var dest = make([]int32, 0, n)
  1590  		WalkInt32Uint64MapDeterministic(tm, func(k int32, v uint64) bool {
  1591  			dest = append(dest, k)
  1592  			return true
  1593  		})
  1594  
  1595  		for k, v := range keys {
  1596  			So(v, ShouldEqual, dest[k])
  1597  		}
  1598  	})
  1599  
  1600  	Convey("WalkInt32Uint8MapDeterministic", t, func() {
  1601  		var keys = make([]int32, 0, n)
  1602  		var value uint8
  1603  		var tm = make(map[int32]uint8)
  1604  		for i := 0; i < n; i++ {
  1605  			var key int32
  1606  			key = int32(i)
  1607  			tm[key] = value
  1608  			keys = append(keys, key)
  1609  		}
  1610  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1611  
  1612  		var dest = make([]int32, 0, n)
  1613  		WalkInt32Uint8MapDeterministic(tm, func(k int32, v uint8) bool {
  1614  			dest = append(dest, k)
  1615  			return true
  1616  		})
  1617  
  1618  		for k, v := range keys {
  1619  			So(v, ShouldEqual, dest[k])
  1620  		}
  1621  	})
  1622  
  1623  	Convey("WalkInt64Float32MapDeterministic", t, func() {
  1624  		var keys = make([]int64, 0, n)
  1625  		var value float32
  1626  		var tm = make(map[int64]float32)
  1627  		for i := 0; i < n; i++ {
  1628  			var key int64
  1629  			key = int64(i)
  1630  			tm[key] = value
  1631  			keys = append(keys, key)
  1632  		}
  1633  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1634  
  1635  		var dest = make([]int64, 0, n)
  1636  		WalkInt64Float32MapDeterministic(tm, func(k int64, v float32) bool {
  1637  			dest = append(dest, k)
  1638  			return true
  1639  		})
  1640  
  1641  		for k, v := range keys {
  1642  			So(v, ShouldEqual, dest[k])
  1643  		}
  1644  	})
  1645  
  1646  	Convey("WalkInt64Float64MapDeterministic", t, func() {
  1647  		var keys = make([]int64, 0, n)
  1648  		var value float64
  1649  		var tm = make(map[int64]float64)
  1650  		for i := 0; i < n; i++ {
  1651  			var key int64
  1652  			key = int64(i)
  1653  			tm[key] = value
  1654  			keys = append(keys, key)
  1655  		}
  1656  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1657  
  1658  		var dest = make([]int64, 0, n)
  1659  		WalkInt64Float64MapDeterministic(tm, func(k int64, v float64) bool {
  1660  			dest = append(dest, k)
  1661  			return true
  1662  		})
  1663  
  1664  		for k, v := range keys {
  1665  			So(v, ShouldEqual, dest[k])
  1666  		}
  1667  	})
  1668  
  1669  	Convey("WalkInt64IntMapDeterministic", t, func() {
  1670  		var keys = make([]int64, 0, n)
  1671  		var value int
  1672  		var tm = make(map[int64]int)
  1673  		for i := 0; i < n; i++ {
  1674  			var key int64
  1675  			key = int64(i)
  1676  			tm[key] = value
  1677  			keys = append(keys, key)
  1678  		}
  1679  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1680  
  1681  		var dest = make([]int64, 0, n)
  1682  		WalkInt64IntMapDeterministic(tm, func(k int64, v int) bool {
  1683  			dest = append(dest, k)
  1684  			return true
  1685  		})
  1686  
  1687  		for k, v := range keys {
  1688  			So(v, ShouldEqual, dest[k])
  1689  		}
  1690  	})
  1691  
  1692  	Convey("WalkInt64Int16MapDeterministic", t, func() {
  1693  		var keys = make([]int64, 0, n)
  1694  		var value int16
  1695  		var tm = make(map[int64]int16)
  1696  		for i := 0; i < n; i++ {
  1697  			var key int64
  1698  			key = int64(i)
  1699  			tm[key] = value
  1700  			keys = append(keys, key)
  1701  		}
  1702  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1703  
  1704  		var dest = make([]int64, 0, n)
  1705  		WalkInt64Int16MapDeterministic(tm, func(k int64, v int16) bool {
  1706  			dest = append(dest, k)
  1707  			return true
  1708  		})
  1709  
  1710  		for k, v := range keys {
  1711  			So(v, ShouldEqual, dest[k])
  1712  		}
  1713  	})
  1714  
  1715  	Convey("WalkInt64Int32MapDeterministic", t, func() {
  1716  		var keys = make([]int64, 0, n)
  1717  		var value int32
  1718  		var tm = make(map[int64]int32)
  1719  		for i := 0; i < n; i++ {
  1720  			var key int64
  1721  			key = int64(i)
  1722  			tm[key] = value
  1723  			keys = append(keys, key)
  1724  		}
  1725  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1726  
  1727  		var dest = make([]int64, 0, n)
  1728  		WalkInt64Int32MapDeterministic(tm, func(k int64, v int32) bool {
  1729  			dest = append(dest, k)
  1730  			return true
  1731  		})
  1732  
  1733  		for k, v := range keys {
  1734  			So(v, ShouldEqual, dest[k])
  1735  		}
  1736  	})
  1737  
  1738  	Convey("WalkInt64Int64MapDeterministic", t, func() {
  1739  		var keys = make([]int64, 0, n)
  1740  		var value int64
  1741  		var tm = make(map[int64]int64)
  1742  		for i := 0; i < n; i++ {
  1743  			var key int64
  1744  			key = int64(i)
  1745  			tm[key] = value
  1746  			keys = append(keys, key)
  1747  		}
  1748  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1749  
  1750  		var dest = make([]int64, 0, n)
  1751  		WalkInt64Int64MapDeterministic(tm, func(k int64, v int64) bool {
  1752  			dest = append(dest, k)
  1753  			return true
  1754  		})
  1755  
  1756  		for k, v := range keys {
  1757  			So(v, ShouldEqual, dest[k])
  1758  		}
  1759  	})
  1760  
  1761  	Convey("WalkInt64Int8MapDeterministic", t, func() {
  1762  		var keys = make([]int64, 0, n)
  1763  		var value int8
  1764  		var tm = make(map[int64]int8)
  1765  		for i := 0; i < n; i++ {
  1766  			var key int64
  1767  			key = int64(i)
  1768  			tm[key] = value
  1769  			keys = append(keys, key)
  1770  		}
  1771  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1772  
  1773  		var dest = make([]int64, 0, n)
  1774  		WalkInt64Int8MapDeterministic(tm, func(k int64, v int8) bool {
  1775  			dest = append(dest, k)
  1776  			return true
  1777  		})
  1778  
  1779  		for k, v := range keys {
  1780  			So(v, ShouldEqual, dest[k])
  1781  		}
  1782  	})
  1783  
  1784  	Convey("WalkInt64InterfaceMapDeterministic", t, func() {
  1785  		var keys = make([]int64, 0, n)
  1786  		var value interface{}
  1787  		var tm = make(map[int64]interface{})
  1788  		for i := 0; i < n; i++ {
  1789  			var key int64
  1790  			key = int64(i)
  1791  			tm[key] = value
  1792  			keys = append(keys, key)
  1793  		}
  1794  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1795  
  1796  		var dest = make([]int64, 0, n)
  1797  		WalkInt64InterfaceMapDeterministic(tm, func(k int64, v interface{}) bool {
  1798  			dest = append(dest, k)
  1799  			return true
  1800  		})
  1801  
  1802  		for k, v := range keys {
  1803  			So(v, ShouldEqual, dest[k])
  1804  		}
  1805  	})
  1806  
  1807  	Convey("WalkInt64StringMapDeterministic", t, func() {
  1808  		var keys = make([]int64, 0, n)
  1809  		var value string
  1810  		var tm = make(map[int64]string)
  1811  		for i := 0; i < n; i++ {
  1812  			var key int64
  1813  			key = int64(i)
  1814  			tm[key] = value
  1815  			keys = append(keys, key)
  1816  		}
  1817  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1818  
  1819  		var dest = make([]int64, 0, n)
  1820  		WalkInt64StringMapDeterministic(tm, func(k int64, v string) bool {
  1821  			dest = append(dest, k)
  1822  			return true
  1823  		})
  1824  
  1825  		for k, v := range keys {
  1826  			So(v, ShouldEqual, dest[k])
  1827  		}
  1828  	})
  1829  
  1830  	Convey("WalkInt64UintMapDeterministic", t, func() {
  1831  		var keys = make([]int64, 0, n)
  1832  		var value uint
  1833  		var tm = make(map[int64]uint)
  1834  		for i := 0; i < n; i++ {
  1835  			var key int64
  1836  			key = int64(i)
  1837  			tm[key] = value
  1838  			keys = append(keys, key)
  1839  		}
  1840  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1841  
  1842  		var dest = make([]int64, 0, n)
  1843  		WalkInt64UintMapDeterministic(tm, func(k int64, v uint) bool {
  1844  			dest = append(dest, k)
  1845  			return true
  1846  		})
  1847  
  1848  		for k, v := range keys {
  1849  			So(v, ShouldEqual, dest[k])
  1850  		}
  1851  	})
  1852  
  1853  	Convey("WalkInt64Uint16MapDeterministic", t, func() {
  1854  		var keys = make([]int64, 0, n)
  1855  		var value uint16
  1856  		var tm = make(map[int64]uint16)
  1857  		for i := 0; i < n; i++ {
  1858  			var key int64
  1859  			key = int64(i)
  1860  			tm[key] = value
  1861  			keys = append(keys, key)
  1862  		}
  1863  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1864  
  1865  		var dest = make([]int64, 0, n)
  1866  		WalkInt64Uint16MapDeterministic(tm, func(k int64, v uint16) bool {
  1867  			dest = append(dest, k)
  1868  			return true
  1869  		})
  1870  
  1871  		for k, v := range keys {
  1872  			So(v, ShouldEqual, dest[k])
  1873  		}
  1874  	})
  1875  
  1876  	Convey("WalkInt64Uint32MapDeterministic", t, func() {
  1877  		var keys = make([]int64, 0, n)
  1878  		var value uint32
  1879  		var tm = make(map[int64]uint32)
  1880  		for i := 0; i < n; i++ {
  1881  			var key int64
  1882  			key = int64(i)
  1883  			tm[key] = value
  1884  			keys = append(keys, key)
  1885  		}
  1886  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1887  
  1888  		var dest = make([]int64, 0, n)
  1889  		WalkInt64Uint32MapDeterministic(tm, func(k int64, v uint32) bool {
  1890  			dest = append(dest, k)
  1891  			return true
  1892  		})
  1893  
  1894  		for k, v := range keys {
  1895  			So(v, ShouldEqual, dest[k])
  1896  		}
  1897  	})
  1898  
  1899  	Convey("WalkInt64Uint64MapDeterministic", t, func() {
  1900  		var keys = make([]int64, 0, n)
  1901  		var value uint64
  1902  		var tm = make(map[int64]uint64)
  1903  		for i := 0; i < n; i++ {
  1904  			var key int64
  1905  			key = int64(i)
  1906  			tm[key] = value
  1907  			keys = append(keys, key)
  1908  		}
  1909  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1910  
  1911  		var dest = make([]int64, 0, n)
  1912  		WalkInt64Uint64MapDeterministic(tm, func(k int64, v uint64) bool {
  1913  			dest = append(dest, k)
  1914  			return true
  1915  		})
  1916  
  1917  		for k, v := range keys {
  1918  			So(v, ShouldEqual, dest[k])
  1919  		}
  1920  	})
  1921  
  1922  	Convey("WalkInt64Uint8MapDeterministic", t, func() {
  1923  		var keys = make([]int64, 0, n)
  1924  		var value uint8
  1925  		var tm = make(map[int64]uint8)
  1926  		for i := 0; i < n; i++ {
  1927  			var key int64
  1928  			key = int64(i)
  1929  			tm[key] = value
  1930  			keys = append(keys, key)
  1931  		}
  1932  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1933  
  1934  		var dest = make([]int64, 0, n)
  1935  		WalkInt64Uint8MapDeterministic(tm, func(k int64, v uint8) bool {
  1936  			dest = append(dest, k)
  1937  			return true
  1938  		})
  1939  
  1940  		for k, v := range keys {
  1941  			So(v, ShouldEqual, dest[k])
  1942  		}
  1943  	})
  1944  
  1945  	Convey("WalkInt8Float32MapDeterministic", t, func() {
  1946  		var keys = make([]int8, 0, n)
  1947  		var value float32
  1948  		var tm = make(map[int8]float32)
  1949  		for i := 0; i < n; i++ {
  1950  			var key int8
  1951  			key = int8(i)
  1952  			tm[key] = value
  1953  			keys = append(keys, key)
  1954  		}
  1955  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1956  
  1957  		var dest = make([]int8, 0, n)
  1958  		WalkInt8Float32MapDeterministic(tm, func(k int8, v float32) bool {
  1959  			dest = append(dest, k)
  1960  			return true
  1961  		})
  1962  
  1963  		for k, v := range keys {
  1964  			So(v, ShouldEqual, dest[k])
  1965  		}
  1966  	})
  1967  
  1968  	Convey("WalkInt8Float64MapDeterministic", t, func() {
  1969  		var keys = make([]int8, 0, n)
  1970  		var value float64
  1971  		var tm = make(map[int8]float64)
  1972  		for i := 0; i < n; i++ {
  1973  			var key int8
  1974  			key = int8(i)
  1975  			tm[key] = value
  1976  			keys = append(keys, key)
  1977  		}
  1978  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  1979  
  1980  		var dest = make([]int8, 0, n)
  1981  		WalkInt8Float64MapDeterministic(tm, func(k int8, v float64) bool {
  1982  			dest = append(dest, k)
  1983  			return true
  1984  		})
  1985  
  1986  		for k, v := range keys {
  1987  			So(v, ShouldEqual, dest[k])
  1988  		}
  1989  	})
  1990  
  1991  	Convey("WalkInt8IntMapDeterministic", t, func() {
  1992  		var keys = make([]int8, 0, n)
  1993  		var value int
  1994  		var tm = make(map[int8]int)
  1995  		for i := 0; i < n; i++ {
  1996  			var key int8
  1997  			key = int8(i)
  1998  			tm[key] = value
  1999  			keys = append(keys, key)
  2000  		}
  2001  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2002  
  2003  		var dest = make([]int8, 0, n)
  2004  		WalkInt8IntMapDeterministic(tm, func(k int8, v int) bool {
  2005  			dest = append(dest, k)
  2006  			return true
  2007  		})
  2008  
  2009  		for k, v := range keys {
  2010  			So(v, ShouldEqual, dest[k])
  2011  		}
  2012  	})
  2013  
  2014  	Convey("WalkInt8Int16MapDeterministic", t, func() {
  2015  		var keys = make([]int8, 0, n)
  2016  		var value int16
  2017  		var tm = make(map[int8]int16)
  2018  		for i := 0; i < n; i++ {
  2019  			var key int8
  2020  			key = int8(i)
  2021  			tm[key] = value
  2022  			keys = append(keys, key)
  2023  		}
  2024  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2025  
  2026  		var dest = make([]int8, 0, n)
  2027  		WalkInt8Int16MapDeterministic(tm, func(k int8, v int16) bool {
  2028  			dest = append(dest, k)
  2029  			return true
  2030  		})
  2031  
  2032  		for k, v := range keys {
  2033  			So(v, ShouldEqual, dest[k])
  2034  		}
  2035  	})
  2036  
  2037  	Convey("WalkInt8Int32MapDeterministic", t, func() {
  2038  		var keys = make([]int8, 0, n)
  2039  		var value int32
  2040  		var tm = make(map[int8]int32)
  2041  		for i := 0; i < n; i++ {
  2042  			var key int8
  2043  			key = int8(i)
  2044  			tm[key] = value
  2045  			keys = append(keys, key)
  2046  		}
  2047  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2048  
  2049  		var dest = make([]int8, 0, n)
  2050  		WalkInt8Int32MapDeterministic(tm, func(k int8, v int32) bool {
  2051  			dest = append(dest, k)
  2052  			return true
  2053  		})
  2054  
  2055  		for k, v := range keys {
  2056  			So(v, ShouldEqual, dest[k])
  2057  		}
  2058  	})
  2059  
  2060  	Convey("WalkInt8Int64MapDeterministic", t, func() {
  2061  		var keys = make([]int8, 0, n)
  2062  		var value int64
  2063  		var tm = make(map[int8]int64)
  2064  		for i := 0; i < n; i++ {
  2065  			var key int8
  2066  			key = int8(i)
  2067  			tm[key] = value
  2068  			keys = append(keys, key)
  2069  		}
  2070  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2071  
  2072  		var dest = make([]int8, 0, n)
  2073  		WalkInt8Int64MapDeterministic(tm, func(k int8, v int64) bool {
  2074  			dest = append(dest, k)
  2075  			return true
  2076  		})
  2077  
  2078  		for k, v := range keys {
  2079  			So(v, ShouldEqual, dest[k])
  2080  		}
  2081  	})
  2082  
  2083  	Convey("WalkInt8Int8MapDeterministic", t, func() {
  2084  		var keys = make([]int8, 0, n)
  2085  		var value int8
  2086  		var tm = make(map[int8]int8)
  2087  		for i := 0; i < n; i++ {
  2088  			var key int8
  2089  			key = int8(i)
  2090  			tm[key] = value
  2091  			keys = append(keys, key)
  2092  		}
  2093  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2094  
  2095  		var dest = make([]int8, 0, n)
  2096  		WalkInt8Int8MapDeterministic(tm, func(k int8, v int8) bool {
  2097  			dest = append(dest, k)
  2098  			return true
  2099  		})
  2100  
  2101  		for k, v := range keys {
  2102  			So(v, ShouldEqual, dest[k])
  2103  		}
  2104  	})
  2105  
  2106  	Convey("WalkInt8InterfaceMapDeterministic", t, func() {
  2107  		var keys = make([]int8, 0, n)
  2108  		var value interface{}
  2109  		var tm = make(map[int8]interface{})
  2110  		for i := 0; i < n; i++ {
  2111  			var key int8
  2112  			key = int8(i)
  2113  			tm[key] = value
  2114  			keys = append(keys, key)
  2115  		}
  2116  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2117  
  2118  		var dest = make([]int8, 0, n)
  2119  		WalkInt8InterfaceMapDeterministic(tm, func(k int8, v interface{}) bool {
  2120  			dest = append(dest, k)
  2121  			return true
  2122  		})
  2123  
  2124  		for k, v := range keys {
  2125  			So(v, ShouldEqual, dest[k])
  2126  		}
  2127  	})
  2128  
  2129  	Convey("WalkInt8StringMapDeterministic", t, func() {
  2130  		var keys = make([]int8, 0, n)
  2131  		var value string
  2132  		var tm = make(map[int8]string)
  2133  		for i := 0; i < n; i++ {
  2134  			var key int8
  2135  			key = int8(i)
  2136  			tm[key] = value
  2137  			keys = append(keys, key)
  2138  		}
  2139  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2140  
  2141  		var dest = make([]int8, 0, n)
  2142  		WalkInt8StringMapDeterministic(tm, func(k int8, v string) bool {
  2143  			dest = append(dest, k)
  2144  			return true
  2145  		})
  2146  
  2147  		for k, v := range keys {
  2148  			So(v, ShouldEqual, dest[k])
  2149  		}
  2150  	})
  2151  
  2152  	Convey("WalkInt8UintMapDeterministic", t, func() {
  2153  		var keys = make([]int8, 0, n)
  2154  		var value uint
  2155  		var tm = make(map[int8]uint)
  2156  		for i := 0; i < n; i++ {
  2157  			var key int8
  2158  			key = int8(i)
  2159  			tm[key] = value
  2160  			keys = append(keys, key)
  2161  		}
  2162  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2163  
  2164  		var dest = make([]int8, 0, n)
  2165  		WalkInt8UintMapDeterministic(tm, func(k int8, v uint) bool {
  2166  			dest = append(dest, k)
  2167  			return true
  2168  		})
  2169  
  2170  		for k, v := range keys {
  2171  			So(v, ShouldEqual, dest[k])
  2172  		}
  2173  	})
  2174  
  2175  	Convey("WalkInt8Uint16MapDeterministic", t, func() {
  2176  		var keys = make([]int8, 0, n)
  2177  		var value uint16
  2178  		var tm = make(map[int8]uint16)
  2179  		for i := 0; i < n; i++ {
  2180  			var key int8
  2181  			key = int8(i)
  2182  			tm[key] = value
  2183  			keys = append(keys, key)
  2184  		}
  2185  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2186  
  2187  		var dest = make([]int8, 0, n)
  2188  		WalkInt8Uint16MapDeterministic(tm, func(k int8, v uint16) bool {
  2189  			dest = append(dest, k)
  2190  			return true
  2191  		})
  2192  
  2193  		for k, v := range keys {
  2194  			So(v, ShouldEqual, dest[k])
  2195  		}
  2196  	})
  2197  
  2198  	Convey("WalkInt8Uint32MapDeterministic", t, func() {
  2199  		var keys = make([]int8, 0, n)
  2200  		var value uint32
  2201  		var tm = make(map[int8]uint32)
  2202  		for i := 0; i < n; i++ {
  2203  			var key int8
  2204  			key = int8(i)
  2205  			tm[key] = value
  2206  			keys = append(keys, key)
  2207  		}
  2208  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2209  
  2210  		var dest = make([]int8, 0, n)
  2211  		WalkInt8Uint32MapDeterministic(tm, func(k int8, v uint32) bool {
  2212  			dest = append(dest, k)
  2213  			return true
  2214  		})
  2215  
  2216  		for k, v := range keys {
  2217  			So(v, ShouldEqual, dest[k])
  2218  		}
  2219  	})
  2220  
  2221  	Convey("WalkInt8Uint64MapDeterministic", t, func() {
  2222  		var keys = make([]int8, 0, n)
  2223  		var value uint64
  2224  		var tm = make(map[int8]uint64)
  2225  		for i := 0; i < n; i++ {
  2226  			var key int8
  2227  			key = int8(i)
  2228  			tm[key] = value
  2229  			keys = append(keys, key)
  2230  		}
  2231  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2232  
  2233  		var dest = make([]int8, 0, n)
  2234  		WalkInt8Uint64MapDeterministic(tm, func(k int8, v uint64) bool {
  2235  			dest = append(dest, k)
  2236  			return true
  2237  		})
  2238  
  2239  		for k, v := range keys {
  2240  			So(v, ShouldEqual, dest[k])
  2241  		}
  2242  	})
  2243  
  2244  	Convey("WalkInt8Uint8MapDeterministic", t, func() {
  2245  		var keys = make([]int8, 0, n)
  2246  		var value uint8
  2247  		var tm = make(map[int8]uint8)
  2248  		for i := 0; i < n; i++ {
  2249  			var key int8
  2250  			key = int8(i)
  2251  			tm[key] = value
  2252  			keys = append(keys, key)
  2253  		}
  2254  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2255  
  2256  		var dest = make([]int8, 0, n)
  2257  		WalkInt8Uint8MapDeterministic(tm, func(k int8, v uint8) bool {
  2258  			dest = append(dest, k)
  2259  			return true
  2260  		})
  2261  
  2262  		for k, v := range keys {
  2263  			So(v, ShouldEqual, dest[k])
  2264  		}
  2265  	})
  2266  
  2267  	Convey("WalkStringFloat32MapDeterministic", t, func() {
  2268  		var keys = make([]string, 0, n)
  2269  		var value float32
  2270  		var tm = make(map[string]float32)
  2271  		for i := 0; i < n; i++ {
  2272  			var key string
  2273  			key = strconv.FormatInt(int64(i), 10)
  2274  			tm[key] = value
  2275  			keys = append(keys, key)
  2276  		}
  2277  		sort.Strings(keys)
  2278  
  2279  		var dest = make([]string, 0, n)
  2280  		WalkStringFloat32MapDeterministic(tm, func(k string, v float32) bool {
  2281  			dest = append(dest, k)
  2282  			return true
  2283  		})
  2284  
  2285  		for k, v := range keys {
  2286  			So(v, ShouldEqual, dest[k])
  2287  		}
  2288  	})
  2289  
  2290  	Convey("WalkStringFloat64MapDeterministic", t, func() {
  2291  		var keys = make([]string, 0, n)
  2292  		var value float64
  2293  		var tm = make(map[string]float64)
  2294  		for i := 0; i < n; i++ {
  2295  			var key string
  2296  			key = strconv.FormatInt(int64(i), 10)
  2297  			tm[key] = value
  2298  			keys = append(keys, key)
  2299  		}
  2300  		sort.Strings(keys)
  2301  
  2302  		var dest = make([]string, 0, n)
  2303  		WalkStringFloat64MapDeterministic(tm, func(k string, v float64) bool {
  2304  			dest = append(dest, k)
  2305  			return true
  2306  		})
  2307  
  2308  		for k, v := range keys {
  2309  			So(v, ShouldEqual, dest[k])
  2310  		}
  2311  	})
  2312  
  2313  	Convey("WalkStringIntMapDeterministic", t, func() {
  2314  		var keys = make([]string, 0, n)
  2315  		var value int
  2316  		var tm = make(map[string]int)
  2317  		for i := 0; i < n; i++ {
  2318  			var key string
  2319  			key = strconv.FormatInt(int64(i), 10)
  2320  			tm[key] = value
  2321  			keys = append(keys, key)
  2322  		}
  2323  		sort.Strings(keys)
  2324  
  2325  		var dest = make([]string, 0, n)
  2326  		WalkStringIntMapDeterministic(tm, func(k string, v int) bool {
  2327  			dest = append(dest, k)
  2328  			return true
  2329  		})
  2330  
  2331  		for k, v := range keys {
  2332  			So(v, ShouldEqual, dest[k])
  2333  		}
  2334  	})
  2335  
  2336  	Convey("WalkStringInt16MapDeterministic", t, func() {
  2337  		var keys = make([]string, 0, n)
  2338  		var value int16
  2339  		var tm = make(map[string]int16)
  2340  		for i := 0; i < n; i++ {
  2341  			var key string
  2342  			key = strconv.FormatInt(int64(i), 10)
  2343  			tm[key] = value
  2344  			keys = append(keys, key)
  2345  		}
  2346  		sort.Strings(keys)
  2347  
  2348  		var dest = make([]string, 0, n)
  2349  		WalkStringInt16MapDeterministic(tm, func(k string, v int16) bool {
  2350  			dest = append(dest, k)
  2351  			return true
  2352  		})
  2353  
  2354  		for k, v := range keys {
  2355  			So(v, ShouldEqual, dest[k])
  2356  		}
  2357  	})
  2358  
  2359  	Convey("WalkStringInt32MapDeterministic", t, func() {
  2360  		var keys = make([]string, 0, n)
  2361  		var value int32
  2362  		var tm = make(map[string]int32)
  2363  		for i := 0; i < n; i++ {
  2364  			var key string
  2365  			key = strconv.FormatInt(int64(i), 10)
  2366  			tm[key] = value
  2367  			keys = append(keys, key)
  2368  		}
  2369  		sort.Strings(keys)
  2370  
  2371  		var dest = make([]string, 0, n)
  2372  		WalkStringInt32MapDeterministic(tm, func(k string, v int32) bool {
  2373  			dest = append(dest, k)
  2374  			return true
  2375  		})
  2376  
  2377  		for k, v := range keys {
  2378  			So(v, ShouldEqual, dest[k])
  2379  		}
  2380  	})
  2381  
  2382  	Convey("WalkStringInt64MapDeterministic", t, func() {
  2383  		var keys = make([]string, 0, n)
  2384  		var value int64
  2385  		var tm = make(map[string]int64)
  2386  		for i := 0; i < n; i++ {
  2387  			var key string
  2388  			key = strconv.FormatInt(int64(i), 10)
  2389  			tm[key] = value
  2390  			keys = append(keys, key)
  2391  		}
  2392  		sort.Strings(keys)
  2393  
  2394  		var dest = make([]string, 0, n)
  2395  		WalkStringInt64MapDeterministic(tm, func(k string, v int64) bool {
  2396  			dest = append(dest, k)
  2397  			return true
  2398  		})
  2399  
  2400  		for k, v := range keys {
  2401  			So(v, ShouldEqual, dest[k])
  2402  		}
  2403  	})
  2404  
  2405  	Convey("WalkStringInt8MapDeterministic", t, func() {
  2406  		var keys = make([]string, 0, n)
  2407  		var value int8
  2408  		var tm = make(map[string]int8)
  2409  		for i := 0; i < n; i++ {
  2410  			var key string
  2411  			key = strconv.FormatInt(int64(i), 10)
  2412  			tm[key] = value
  2413  			keys = append(keys, key)
  2414  		}
  2415  		sort.Strings(keys)
  2416  
  2417  		var dest = make([]string, 0, n)
  2418  		WalkStringInt8MapDeterministic(tm, func(k string, v int8) bool {
  2419  			dest = append(dest, k)
  2420  			return true
  2421  		})
  2422  
  2423  		for k, v := range keys {
  2424  			So(v, ShouldEqual, dest[k])
  2425  		}
  2426  	})
  2427  
  2428  	Convey("WalkStringInterfaceMapDeterministic", t, func() {
  2429  		var keys = make([]string, 0, n)
  2430  		var value interface{}
  2431  		var tm = make(map[string]interface{})
  2432  		for i := 0; i < n; i++ {
  2433  			var key string
  2434  			key = strconv.FormatInt(int64(i), 10)
  2435  			tm[key] = value
  2436  			keys = append(keys, key)
  2437  		}
  2438  		sort.Strings(keys)
  2439  
  2440  		var dest = make([]string, 0, n)
  2441  		WalkStringInterfaceMapDeterministic(tm, func(k string, v interface{}) bool {
  2442  			dest = append(dest, k)
  2443  			return true
  2444  		})
  2445  
  2446  		for k, v := range keys {
  2447  			So(v, ShouldEqual, dest[k])
  2448  		}
  2449  	})
  2450  
  2451  	Convey("WalkStringStringMapDeterministic", t, func() {
  2452  		var keys = make([]string, 0, n)
  2453  		var value string
  2454  		var tm = make(map[string]string)
  2455  		for i := 0; i < n; i++ {
  2456  			var key string
  2457  			key = strconv.FormatInt(int64(i), 10)
  2458  			tm[key] = value
  2459  			keys = append(keys, key)
  2460  		}
  2461  		sort.Strings(keys)
  2462  
  2463  		var dest = make([]string, 0, n)
  2464  		WalkStringStringMapDeterministic(tm, func(k string, v string) bool {
  2465  			dest = append(dest, k)
  2466  			return true
  2467  		})
  2468  
  2469  		for k, v := range keys {
  2470  			So(v, ShouldEqual, dest[k])
  2471  		}
  2472  	})
  2473  
  2474  	Convey("WalkStringUintMapDeterministic", t, func() {
  2475  		var keys = make([]string, 0, n)
  2476  		var value uint
  2477  		var tm = make(map[string]uint)
  2478  		for i := 0; i < n; i++ {
  2479  			var key string
  2480  			key = strconv.FormatInt(int64(i), 10)
  2481  			tm[key] = value
  2482  			keys = append(keys, key)
  2483  		}
  2484  		sort.Strings(keys)
  2485  
  2486  		var dest = make([]string, 0, n)
  2487  		WalkStringUintMapDeterministic(tm, func(k string, v uint) bool {
  2488  			dest = append(dest, k)
  2489  			return true
  2490  		})
  2491  
  2492  		for k, v := range keys {
  2493  			So(v, ShouldEqual, dest[k])
  2494  		}
  2495  	})
  2496  
  2497  	Convey("WalkStringUint16MapDeterministic", t, func() {
  2498  		var keys = make([]string, 0, n)
  2499  		var value uint16
  2500  		var tm = make(map[string]uint16)
  2501  		for i := 0; i < n; i++ {
  2502  			var key string
  2503  			key = strconv.FormatInt(int64(i), 10)
  2504  			tm[key] = value
  2505  			keys = append(keys, key)
  2506  		}
  2507  		sort.Strings(keys)
  2508  
  2509  		var dest = make([]string, 0, n)
  2510  		WalkStringUint16MapDeterministic(tm, func(k string, v uint16) bool {
  2511  			dest = append(dest, k)
  2512  			return true
  2513  		})
  2514  
  2515  		for k, v := range keys {
  2516  			So(v, ShouldEqual, dest[k])
  2517  		}
  2518  	})
  2519  
  2520  	Convey("WalkStringUint32MapDeterministic", t, func() {
  2521  		var keys = make([]string, 0, n)
  2522  		var value uint32
  2523  		var tm = make(map[string]uint32)
  2524  		for i := 0; i < n; i++ {
  2525  			var key string
  2526  			key = strconv.FormatInt(int64(i), 10)
  2527  			tm[key] = value
  2528  			keys = append(keys, key)
  2529  		}
  2530  		sort.Strings(keys)
  2531  
  2532  		var dest = make([]string, 0, n)
  2533  		WalkStringUint32MapDeterministic(tm, func(k string, v uint32) bool {
  2534  			dest = append(dest, k)
  2535  			return true
  2536  		})
  2537  
  2538  		for k, v := range keys {
  2539  			So(v, ShouldEqual, dest[k])
  2540  		}
  2541  	})
  2542  
  2543  	Convey("WalkStringUint64MapDeterministic", t, func() {
  2544  		var keys = make([]string, 0, n)
  2545  		var value uint64
  2546  		var tm = make(map[string]uint64)
  2547  		for i := 0; i < n; i++ {
  2548  			var key string
  2549  			key = strconv.FormatInt(int64(i), 10)
  2550  			tm[key] = value
  2551  			keys = append(keys, key)
  2552  		}
  2553  		sort.Strings(keys)
  2554  
  2555  		var dest = make([]string, 0, n)
  2556  		WalkStringUint64MapDeterministic(tm, func(k string, v uint64) bool {
  2557  			dest = append(dest, k)
  2558  			return true
  2559  		})
  2560  
  2561  		for k, v := range keys {
  2562  			So(v, ShouldEqual, dest[k])
  2563  		}
  2564  	})
  2565  
  2566  	Convey("WalkStringUint8MapDeterministic", t, func() {
  2567  		var keys = make([]string, 0, n)
  2568  		var value uint8
  2569  		var tm = make(map[string]uint8)
  2570  		for i := 0; i < n; i++ {
  2571  			var key string
  2572  			key = strconv.FormatInt(int64(i), 10)
  2573  			tm[key] = value
  2574  			keys = append(keys, key)
  2575  		}
  2576  		sort.Strings(keys)
  2577  
  2578  		var dest = make([]string, 0, n)
  2579  		WalkStringUint8MapDeterministic(tm, func(k string, v uint8) bool {
  2580  			dest = append(dest, k)
  2581  			return true
  2582  		})
  2583  
  2584  		for k, v := range keys {
  2585  			So(v, ShouldEqual, dest[k])
  2586  		}
  2587  	})
  2588  
  2589  	Convey("WalkUintFloat32MapDeterministic", t, func() {
  2590  		var keys = make([]uint, 0, n)
  2591  		var value float32
  2592  		var tm = make(map[uint]float32)
  2593  		for i := 0; i < n; i++ {
  2594  			var key uint
  2595  			key = uint(i)
  2596  			tm[key] = value
  2597  			keys = append(keys, key)
  2598  		}
  2599  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2600  
  2601  		var dest = make([]uint, 0, n)
  2602  		WalkUintFloat32MapDeterministic(tm, func(k uint, v float32) bool {
  2603  			dest = append(dest, k)
  2604  			return true
  2605  		})
  2606  
  2607  		for k, v := range keys {
  2608  			So(v, ShouldEqual, dest[k])
  2609  		}
  2610  	})
  2611  
  2612  	Convey("WalkUintFloat64MapDeterministic", t, func() {
  2613  		var keys = make([]uint, 0, n)
  2614  		var value float64
  2615  		var tm = make(map[uint]float64)
  2616  		for i := 0; i < n; i++ {
  2617  			var key uint
  2618  			key = uint(i)
  2619  			tm[key] = value
  2620  			keys = append(keys, key)
  2621  		}
  2622  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2623  
  2624  		var dest = make([]uint, 0, n)
  2625  		WalkUintFloat64MapDeterministic(tm, func(k uint, v float64) bool {
  2626  			dest = append(dest, k)
  2627  			return true
  2628  		})
  2629  
  2630  		for k, v := range keys {
  2631  			So(v, ShouldEqual, dest[k])
  2632  		}
  2633  	})
  2634  
  2635  	Convey("WalkUintIntMapDeterministic", t, func() {
  2636  		var keys = make([]uint, 0, n)
  2637  		var value int
  2638  		var tm = make(map[uint]int)
  2639  		for i := 0; i < n; i++ {
  2640  			var key uint
  2641  			key = uint(i)
  2642  			tm[key] = value
  2643  			keys = append(keys, key)
  2644  		}
  2645  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2646  
  2647  		var dest = make([]uint, 0, n)
  2648  		WalkUintIntMapDeterministic(tm, func(k uint, v int) bool {
  2649  			dest = append(dest, k)
  2650  			return true
  2651  		})
  2652  
  2653  		for k, v := range keys {
  2654  			So(v, ShouldEqual, dest[k])
  2655  		}
  2656  	})
  2657  
  2658  	Convey("WalkUintInt16MapDeterministic", t, func() {
  2659  		var keys = make([]uint, 0, n)
  2660  		var value int16
  2661  		var tm = make(map[uint]int16)
  2662  		for i := 0; i < n; i++ {
  2663  			var key uint
  2664  			key = uint(i)
  2665  			tm[key] = value
  2666  			keys = append(keys, key)
  2667  		}
  2668  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2669  
  2670  		var dest = make([]uint, 0, n)
  2671  		WalkUintInt16MapDeterministic(tm, func(k uint, v int16) bool {
  2672  			dest = append(dest, k)
  2673  			return true
  2674  		})
  2675  
  2676  		for k, v := range keys {
  2677  			So(v, ShouldEqual, dest[k])
  2678  		}
  2679  	})
  2680  
  2681  	Convey("WalkUintInt32MapDeterministic", t, func() {
  2682  		var keys = make([]uint, 0, n)
  2683  		var value int32
  2684  		var tm = make(map[uint]int32)
  2685  		for i := 0; i < n; i++ {
  2686  			var key uint
  2687  			key = uint(i)
  2688  			tm[key] = value
  2689  			keys = append(keys, key)
  2690  		}
  2691  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2692  
  2693  		var dest = make([]uint, 0, n)
  2694  		WalkUintInt32MapDeterministic(tm, func(k uint, v int32) bool {
  2695  			dest = append(dest, k)
  2696  			return true
  2697  		})
  2698  
  2699  		for k, v := range keys {
  2700  			So(v, ShouldEqual, dest[k])
  2701  		}
  2702  	})
  2703  
  2704  	Convey("WalkUintInt64MapDeterministic", t, func() {
  2705  		var keys = make([]uint, 0, n)
  2706  		var value int64
  2707  		var tm = make(map[uint]int64)
  2708  		for i := 0; i < n; i++ {
  2709  			var key uint
  2710  			key = uint(i)
  2711  			tm[key] = value
  2712  			keys = append(keys, key)
  2713  		}
  2714  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2715  
  2716  		var dest = make([]uint, 0, n)
  2717  		WalkUintInt64MapDeterministic(tm, func(k uint, v int64) bool {
  2718  			dest = append(dest, k)
  2719  			return true
  2720  		})
  2721  
  2722  		for k, v := range keys {
  2723  			So(v, ShouldEqual, dest[k])
  2724  		}
  2725  	})
  2726  
  2727  	Convey("WalkUintInt8MapDeterministic", t, func() {
  2728  		var keys = make([]uint, 0, n)
  2729  		var value int8
  2730  		var tm = make(map[uint]int8)
  2731  		for i := 0; i < n; i++ {
  2732  			var key uint
  2733  			key = uint(i)
  2734  			tm[key] = value
  2735  			keys = append(keys, key)
  2736  		}
  2737  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2738  
  2739  		var dest = make([]uint, 0, n)
  2740  		WalkUintInt8MapDeterministic(tm, func(k uint, v int8) bool {
  2741  			dest = append(dest, k)
  2742  			return true
  2743  		})
  2744  
  2745  		for k, v := range keys {
  2746  			So(v, ShouldEqual, dest[k])
  2747  		}
  2748  	})
  2749  
  2750  	Convey("WalkUintInterfaceMapDeterministic", t, func() {
  2751  		var keys = make([]uint, 0, n)
  2752  		var value interface{}
  2753  		var tm = make(map[uint]interface{})
  2754  		for i := 0; i < n; i++ {
  2755  			var key uint
  2756  			key = uint(i)
  2757  			tm[key] = value
  2758  			keys = append(keys, key)
  2759  		}
  2760  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2761  
  2762  		var dest = make([]uint, 0, n)
  2763  		WalkUintInterfaceMapDeterministic(tm, func(k uint, v interface{}) bool {
  2764  			dest = append(dest, k)
  2765  			return true
  2766  		})
  2767  
  2768  		for k, v := range keys {
  2769  			So(v, ShouldEqual, dest[k])
  2770  		}
  2771  	})
  2772  
  2773  	Convey("WalkUintStringMapDeterministic", t, func() {
  2774  		var keys = make([]uint, 0, n)
  2775  		var value string
  2776  		var tm = make(map[uint]string)
  2777  		for i := 0; i < n; i++ {
  2778  			var key uint
  2779  			key = uint(i)
  2780  			tm[key] = value
  2781  			keys = append(keys, key)
  2782  		}
  2783  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2784  
  2785  		var dest = make([]uint, 0, n)
  2786  		WalkUintStringMapDeterministic(tm, func(k uint, v string) bool {
  2787  			dest = append(dest, k)
  2788  			return true
  2789  		})
  2790  
  2791  		for k, v := range keys {
  2792  			So(v, ShouldEqual, dest[k])
  2793  		}
  2794  	})
  2795  
  2796  	Convey("WalkUintUintMapDeterministic", t, func() {
  2797  		var keys = make([]uint, 0, n)
  2798  		var value uint
  2799  		var tm = make(map[uint]uint)
  2800  		for i := 0; i < n; i++ {
  2801  			var key uint
  2802  			key = uint(i)
  2803  			tm[key] = value
  2804  			keys = append(keys, key)
  2805  		}
  2806  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2807  
  2808  		var dest = make([]uint, 0, n)
  2809  		WalkUintUintMapDeterministic(tm, func(k uint, v uint) bool {
  2810  			dest = append(dest, k)
  2811  			return true
  2812  		})
  2813  
  2814  		for k, v := range keys {
  2815  			So(v, ShouldEqual, dest[k])
  2816  		}
  2817  	})
  2818  
  2819  	Convey("WalkUintUint16MapDeterministic", t, func() {
  2820  		var keys = make([]uint, 0, n)
  2821  		var value uint16
  2822  		var tm = make(map[uint]uint16)
  2823  		for i := 0; i < n; i++ {
  2824  			var key uint
  2825  			key = uint(i)
  2826  			tm[key] = value
  2827  			keys = append(keys, key)
  2828  		}
  2829  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2830  
  2831  		var dest = make([]uint, 0, n)
  2832  		WalkUintUint16MapDeterministic(tm, func(k uint, v uint16) bool {
  2833  			dest = append(dest, k)
  2834  			return true
  2835  		})
  2836  
  2837  		for k, v := range keys {
  2838  			So(v, ShouldEqual, dest[k])
  2839  		}
  2840  	})
  2841  
  2842  	Convey("WalkUintUint32MapDeterministic", t, func() {
  2843  		var keys = make([]uint, 0, n)
  2844  		var value uint32
  2845  		var tm = make(map[uint]uint32)
  2846  		for i := 0; i < n; i++ {
  2847  			var key uint
  2848  			key = uint(i)
  2849  			tm[key] = value
  2850  			keys = append(keys, key)
  2851  		}
  2852  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2853  
  2854  		var dest = make([]uint, 0, n)
  2855  		WalkUintUint32MapDeterministic(tm, func(k uint, v uint32) bool {
  2856  			dest = append(dest, k)
  2857  			return true
  2858  		})
  2859  
  2860  		for k, v := range keys {
  2861  			So(v, ShouldEqual, dest[k])
  2862  		}
  2863  	})
  2864  
  2865  	Convey("WalkUintUint64MapDeterministic", t, func() {
  2866  		var keys = make([]uint, 0, n)
  2867  		var value uint64
  2868  		var tm = make(map[uint]uint64)
  2869  		for i := 0; i < n; i++ {
  2870  			var key uint
  2871  			key = uint(i)
  2872  			tm[key] = value
  2873  			keys = append(keys, key)
  2874  		}
  2875  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2876  
  2877  		var dest = make([]uint, 0, n)
  2878  		WalkUintUint64MapDeterministic(tm, func(k uint, v uint64) bool {
  2879  			dest = append(dest, k)
  2880  			return true
  2881  		})
  2882  
  2883  		for k, v := range keys {
  2884  			So(v, ShouldEqual, dest[k])
  2885  		}
  2886  	})
  2887  
  2888  	Convey("WalkUintUint8MapDeterministic", t, func() {
  2889  		var keys = make([]uint, 0, n)
  2890  		var value uint8
  2891  		var tm = make(map[uint]uint8)
  2892  		for i := 0; i < n; i++ {
  2893  			var key uint
  2894  			key = uint(i)
  2895  			tm[key] = value
  2896  			keys = append(keys, key)
  2897  		}
  2898  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2899  
  2900  		var dest = make([]uint, 0, n)
  2901  		WalkUintUint8MapDeterministic(tm, func(k uint, v uint8) bool {
  2902  			dest = append(dest, k)
  2903  			return true
  2904  		})
  2905  
  2906  		for k, v := range keys {
  2907  			So(v, ShouldEqual, dest[k])
  2908  		}
  2909  	})
  2910  
  2911  	Convey("WalkUint16Float32MapDeterministic", t, func() {
  2912  		var keys = make([]uint16, 0, n)
  2913  		var value float32
  2914  		var tm = make(map[uint16]float32)
  2915  		for i := 0; i < n; i++ {
  2916  			var key uint16
  2917  			key = uint16(i)
  2918  			tm[key] = value
  2919  			keys = append(keys, key)
  2920  		}
  2921  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2922  
  2923  		var dest = make([]uint16, 0, n)
  2924  		WalkUint16Float32MapDeterministic(tm, func(k uint16, v float32) bool {
  2925  			dest = append(dest, k)
  2926  			return true
  2927  		})
  2928  
  2929  		for k, v := range keys {
  2930  			So(v, ShouldEqual, dest[k])
  2931  		}
  2932  	})
  2933  
  2934  	Convey("WalkUint16Float64MapDeterministic", t, func() {
  2935  		var keys = make([]uint16, 0, n)
  2936  		var value float64
  2937  		var tm = make(map[uint16]float64)
  2938  		for i := 0; i < n; i++ {
  2939  			var key uint16
  2940  			key = uint16(i)
  2941  			tm[key] = value
  2942  			keys = append(keys, key)
  2943  		}
  2944  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2945  
  2946  		var dest = make([]uint16, 0, n)
  2947  		WalkUint16Float64MapDeterministic(tm, func(k uint16, v float64) bool {
  2948  			dest = append(dest, k)
  2949  			return true
  2950  		})
  2951  
  2952  		for k, v := range keys {
  2953  			So(v, ShouldEqual, dest[k])
  2954  		}
  2955  	})
  2956  
  2957  	Convey("WalkUint16IntMapDeterministic", t, func() {
  2958  		var keys = make([]uint16, 0, n)
  2959  		var value int
  2960  		var tm = make(map[uint16]int)
  2961  		for i := 0; i < n; i++ {
  2962  			var key uint16
  2963  			key = uint16(i)
  2964  			tm[key] = value
  2965  			keys = append(keys, key)
  2966  		}
  2967  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2968  
  2969  		var dest = make([]uint16, 0, n)
  2970  		WalkUint16IntMapDeterministic(tm, func(k uint16, v int) bool {
  2971  			dest = append(dest, k)
  2972  			return true
  2973  		})
  2974  
  2975  		for k, v := range keys {
  2976  			So(v, ShouldEqual, dest[k])
  2977  		}
  2978  	})
  2979  
  2980  	Convey("WalkUint16Int16MapDeterministic", t, func() {
  2981  		var keys = make([]uint16, 0, n)
  2982  		var value int16
  2983  		var tm = make(map[uint16]int16)
  2984  		for i := 0; i < n; i++ {
  2985  			var key uint16
  2986  			key = uint16(i)
  2987  			tm[key] = value
  2988  			keys = append(keys, key)
  2989  		}
  2990  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  2991  
  2992  		var dest = make([]uint16, 0, n)
  2993  		WalkUint16Int16MapDeterministic(tm, func(k uint16, v int16) bool {
  2994  			dest = append(dest, k)
  2995  			return true
  2996  		})
  2997  
  2998  		for k, v := range keys {
  2999  			So(v, ShouldEqual, dest[k])
  3000  		}
  3001  	})
  3002  
  3003  	Convey("WalkUint16Int32MapDeterministic", t, func() {
  3004  		var keys = make([]uint16, 0, n)
  3005  		var value int32
  3006  		var tm = make(map[uint16]int32)
  3007  		for i := 0; i < n; i++ {
  3008  			var key uint16
  3009  			key = uint16(i)
  3010  			tm[key] = value
  3011  			keys = append(keys, key)
  3012  		}
  3013  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3014  
  3015  		var dest = make([]uint16, 0, n)
  3016  		WalkUint16Int32MapDeterministic(tm, func(k uint16, v int32) bool {
  3017  			dest = append(dest, k)
  3018  			return true
  3019  		})
  3020  
  3021  		for k, v := range keys {
  3022  			So(v, ShouldEqual, dest[k])
  3023  		}
  3024  	})
  3025  
  3026  	Convey("WalkUint16Int64MapDeterministic", t, func() {
  3027  		var keys = make([]uint16, 0, n)
  3028  		var value int64
  3029  		var tm = make(map[uint16]int64)
  3030  		for i := 0; i < n; i++ {
  3031  			var key uint16
  3032  			key = uint16(i)
  3033  			tm[key] = value
  3034  			keys = append(keys, key)
  3035  		}
  3036  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3037  
  3038  		var dest = make([]uint16, 0, n)
  3039  		WalkUint16Int64MapDeterministic(tm, func(k uint16, v int64) bool {
  3040  			dest = append(dest, k)
  3041  			return true
  3042  		})
  3043  
  3044  		for k, v := range keys {
  3045  			So(v, ShouldEqual, dest[k])
  3046  		}
  3047  	})
  3048  
  3049  	Convey("WalkUint16Int8MapDeterministic", t, func() {
  3050  		var keys = make([]uint16, 0, n)
  3051  		var value int8
  3052  		var tm = make(map[uint16]int8)
  3053  		for i := 0; i < n; i++ {
  3054  			var key uint16
  3055  			key = uint16(i)
  3056  			tm[key] = value
  3057  			keys = append(keys, key)
  3058  		}
  3059  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3060  
  3061  		var dest = make([]uint16, 0, n)
  3062  		WalkUint16Int8MapDeterministic(tm, func(k uint16, v int8) bool {
  3063  			dest = append(dest, k)
  3064  			return true
  3065  		})
  3066  
  3067  		for k, v := range keys {
  3068  			So(v, ShouldEqual, dest[k])
  3069  		}
  3070  	})
  3071  
  3072  	Convey("WalkUint16InterfaceMapDeterministic", t, func() {
  3073  		var keys = make([]uint16, 0, n)
  3074  		var value interface{}
  3075  		var tm = make(map[uint16]interface{})
  3076  		for i := 0; i < n; i++ {
  3077  			var key uint16
  3078  			key = uint16(i)
  3079  			tm[key] = value
  3080  			keys = append(keys, key)
  3081  		}
  3082  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3083  
  3084  		var dest = make([]uint16, 0, n)
  3085  		WalkUint16InterfaceMapDeterministic(tm, func(k uint16, v interface{}) bool {
  3086  			dest = append(dest, k)
  3087  			return true
  3088  		})
  3089  
  3090  		for k, v := range keys {
  3091  			So(v, ShouldEqual, dest[k])
  3092  		}
  3093  	})
  3094  
  3095  	Convey("WalkUint16StringMapDeterministic", t, func() {
  3096  		var keys = make([]uint16, 0, n)
  3097  		var value string
  3098  		var tm = make(map[uint16]string)
  3099  		for i := 0; i < n; i++ {
  3100  			var key uint16
  3101  			key = uint16(i)
  3102  			tm[key] = value
  3103  			keys = append(keys, key)
  3104  		}
  3105  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3106  
  3107  		var dest = make([]uint16, 0, n)
  3108  		WalkUint16StringMapDeterministic(tm, func(k uint16, v string) bool {
  3109  			dest = append(dest, k)
  3110  			return true
  3111  		})
  3112  
  3113  		for k, v := range keys {
  3114  			So(v, ShouldEqual, dest[k])
  3115  		}
  3116  	})
  3117  
  3118  	Convey("WalkUint16UintMapDeterministic", t, func() {
  3119  		var keys = make([]uint16, 0, n)
  3120  		var value uint
  3121  		var tm = make(map[uint16]uint)
  3122  		for i := 0; i < n; i++ {
  3123  			var key uint16
  3124  			key = uint16(i)
  3125  			tm[key] = value
  3126  			keys = append(keys, key)
  3127  		}
  3128  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3129  
  3130  		var dest = make([]uint16, 0, n)
  3131  		WalkUint16UintMapDeterministic(tm, func(k uint16, v uint) bool {
  3132  			dest = append(dest, k)
  3133  			return true
  3134  		})
  3135  
  3136  		for k, v := range keys {
  3137  			So(v, ShouldEqual, dest[k])
  3138  		}
  3139  	})
  3140  
  3141  	Convey("WalkUint16Uint16MapDeterministic", t, func() {
  3142  		var keys = make([]uint16, 0, n)
  3143  		var value uint16
  3144  		var tm = make(map[uint16]uint16)
  3145  		for i := 0; i < n; i++ {
  3146  			var key uint16
  3147  			key = uint16(i)
  3148  			tm[key] = value
  3149  			keys = append(keys, key)
  3150  		}
  3151  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3152  
  3153  		var dest = make([]uint16, 0, n)
  3154  		WalkUint16Uint16MapDeterministic(tm, func(k uint16, v uint16) bool {
  3155  			dest = append(dest, k)
  3156  			return true
  3157  		})
  3158  
  3159  		for k, v := range keys {
  3160  			So(v, ShouldEqual, dest[k])
  3161  		}
  3162  	})
  3163  
  3164  	Convey("WalkUint16Uint32MapDeterministic", t, func() {
  3165  		var keys = make([]uint16, 0, n)
  3166  		var value uint32
  3167  		var tm = make(map[uint16]uint32)
  3168  		for i := 0; i < n; i++ {
  3169  			var key uint16
  3170  			key = uint16(i)
  3171  			tm[key] = value
  3172  			keys = append(keys, key)
  3173  		}
  3174  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3175  
  3176  		var dest = make([]uint16, 0, n)
  3177  		WalkUint16Uint32MapDeterministic(tm, func(k uint16, v uint32) bool {
  3178  			dest = append(dest, k)
  3179  			return true
  3180  		})
  3181  
  3182  		for k, v := range keys {
  3183  			So(v, ShouldEqual, dest[k])
  3184  		}
  3185  	})
  3186  
  3187  	Convey("WalkUint16Uint64MapDeterministic", t, func() {
  3188  		var keys = make([]uint16, 0, n)
  3189  		var value uint64
  3190  		var tm = make(map[uint16]uint64)
  3191  		for i := 0; i < n; i++ {
  3192  			var key uint16
  3193  			key = uint16(i)
  3194  			tm[key] = value
  3195  			keys = append(keys, key)
  3196  		}
  3197  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3198  
  3199  		var dest = make([]uint16, 0, n)
  3200  		WalkUint16Uint64MapDeterministic(tm, func(k uint16, v uint64) bool {
  3201  			dest = append(dest, k)
  3202  			return true
  3203  		})
  3204  
  3205  		for k, v := range keys {
  3206  			So(v, ShouldEqual, dest[k])
  3207  		}
  3208  	})
  3209  
  3210  	Convey("WalkUint16Uint8MapDeterministic", t, func() {
  3211  		var keys = make([]uint16, 0, n)
  3212  		var value uint8
  3213  		var tm = make(map[uint16]uint8)
  3214  		for i := 0; i < n; i++ {
  3215  			var key uint16
  3216  			key = uint16(i)
  3217  			tm[key] = value
  3218  			keys = append(keys, key)
  3219  		}
  3220  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3221  
  3222  		var dest = make([]uint16, 0, n)
  3223  		WalkUint16Uint8MapDeterministic(tm, func(k uint16, v uint8) bool {
  3224  			dest = append(dest, k)
  3225  			return true
  3226  		})
  3227  
  3228  		for k, v := range keys {
  3229  			So(v, ShouldEqual, dest[k])
  3230  		}
  3231  	})
  3232  
  3233  	Convey("WalkUint32Float32MapDeterministic", t, func() {
  3234  		var keys = make([]uint32, 0, n)
  3235  		var value float32
  3236  		var tm = make(map[uint32]float32)
  3237  		for i := 0; i < n; i++ {
  3238  			var key uint32
  3239  			key = uint32(i)
  3240  			tm[key] = value
  3241  			keys = append(keys, key)
  3242  		}
  3243  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3244  
  3245  		var dest = make([]uint32, 0, n)
  3246  		WalkUint32Float32MapDeterministic(tm, func(k uint32, v float32) bool {
  3247  			dest = append(dest, k)
  3248  			return true
  3249  		})
  3250  
  3251  		for k, v := range keys {
  3252  			So(v, ShouldEqual, dest[k])
  3253  		}
  3254  	})
  3255  
  3256  	Convey("WalkUint32Float64MapDeterministic", t, func() {
  3257  		var keys = make([]uint32, 0, n)
  3258  		var value float64
  3259  		var tm = make(map[uint32]float64)
  3260  		for i := 0; i < n; i++ {
  3261  			var key uint32
  3262  			key = uint32(i)
  3263  			tm[key] = value
  3264  			keys = append(keys, key)
  3265  		}
  3266  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3267  
  3268  		var dest = make([]uint32, 0, n)
  3269  		WalkUint32Float64MapDeterministic(tm, func(k uint32, v float64) bool {
  3270  			dest = append(dest, k)
  3271  			return true
  3272  		})
  3273  
  3274  		for k, v := range keys {
  3275  			So(v, ShouldEqual, dest[k])
  3276  		}
  3277  	})
  3278  
  3279  	Convey("WalkUint32IntMapDeterministic", t, func() {
  3280  		var keys = make([]uint32, 0, n)
  3281  		var value int
  3282  		var tm = make(map[uint32]int)
  3283  		for i := 0; i < n; i++ {
  3284  			var key uint32
  3285  			key = uint32(i)
  3286  			tm[key] = value
  3287  			keys = append(keys, key)
  3288  		}
  3289  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3290  
  3291  		var dest = make([]uint32, 0, n)
  3292  		WalkUint32IntMapDeterministic(tm, func(k uint32, v int) bool {
  3293  			dest = append(dest, k)
  3294  			return true
  3295  		})
  3296  
  3297  		for k, v := range keys {
  3298  			So(v, ShouldEqual, dest[k])
  3299  		}
  3300  	})
  3301  
  3302  	Convey("WalkUint32Int16MapDeterministic", t, func() {
  3303  		var keys = make([]uint32, 0, n)
  3304  		var value int16
  3305  		var tm = make(map[uint32]int16)
  3306  		for i := 0; i < n; i++ {
  3307  			var key uint32
  3308  			key = uint32(i)
  3309  			tm[key] = value
  3310  			keys = append(keys, key)
  3311  		}
  3312  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3313  
  3314  		var dest = make([]uint32, 0, n)
  3315  		WalkUint32Int16MapDeterministic(tm, func(k uint32, v int16) bool {
  3316  			dest = append(dest, k)
  3317  			return true
  3318  		})
  3319  
  3320  		for k, v := range keys {
  3321  			So(v, ShouldEqual, dest[k])
  3322  		}
  3323  	})
  3324  
  3325  	Convey("WalkUint32Int32MapDeterministic", t, func() {
  3326  		var keys = make([]uint32, 0, n)
  3327  		var value int32
  3328  		var tm = make(map[uint32]int32)
  3329  		for i := 0; i < n; i++ {
  3330  			var key uint32
  3331  			key = uint32(i)
  3332  			tm[key] = value
  3333  			keys = append(keys, key)
  3334  		}
  3335  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3336  
  3337  		var dest = make([]uint32, 0, n)
  3338  		WalkUint32Int32MapDeterministic(tm, func(k uint32, v int32) bool {
  3339  			dest = append(dest, k)
  3340  			return true
  3341  		})
  3342  
  3343  		for k, v := range keys {
  3344  			So(v, ShouldEqual, dest[k])
  3345  		}
  3346  	})
  3347  
  3348  	Convey("WalkUint32Int64MapDeterministic", t, func() {
  3349  		var keys = make([]uint32, 0, n)
  3350  		var value int64
  3351  		var tm = make(map[uint32]int64)
  3352  		for i := 0; i < n; i++ {
  3353  			var key uint32
  3354  			key = uint32(i)
  3355  			tm[key] = value
  3356  			keys = append(keys, key)
  3357  		}
  3358  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3359  
  3360  		var dest = make([]uint32, 0, n)
  3361  		WalkUint32Int64MapDeterministic(tm, func(k uint32, v int64) bool {
  3362  			dest = append(dest, k)
  3363  			return true
  3364  		})
  3365  
  3366  		for k, v := range keys {
  3367  			So(v, ShouldEqual, dest[k])
  3368  		}
  3369  	})
  3370  
  3371  	Convey("WalkUint32Int8MapDeterministic", t, func() {
  3372  		var keys = make([]uint32, 0, n)
  3373  		var value int8
  3374  		var tm = make(map[uint32]int8)
  3375  		for i := 0; i < n; i++ {
  3376  			var key uint32
  3377  			key = uint32(i)
  3378  			tm[key] = value
  3379  			keys = append(keys, key)
  3380  		}
  3381  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3382  
  3383  		var dest = make([]uint32, 0, n)
  3384  		WalkUint32Int8MapDeterministic(tm, func(k uint32, v int8) bool {
  3385  			dest = append(dest, k)
  3386  			return true
  3387  		})
  3388  
  3389  		for k, v := range keys {
  3390  			So(v, ShouldEqual, dest[k])
  3391  		}
  3392  	})
  3393  
  3394  	Convey("WalkUint32InterfaceMapDeterministic", t, func() {
  3395  		var keys = make([]uint32, 0, n)
  3396  		var value interface{}
  3397  		var tm = make(map[uint32]interface{})
  3398  		for i := 0; i < n; i++ {
  3399  			var key uint32
  3400  			key = uint32(i)
  3401  			tm[key] = value
  3402  			keys = append(keys, key)
  3403  		}
  3404  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3405  
  3406  		var dest = make([]uint32, 0, n)
  3407  		WalkUint32InterfaceMapDeterministic(tm, func(k uint32, v interface{}) bool {
  3408  			dest = append(dest, k)
  3409  			return true
  3410  		})
  3411  
  3412  		for k, v := range keys {
  3413  			So(v, ShouldEqual, dest[k])
  3414  		}
  3415  	})
  3416  
  3417  	Convey("WalkUint32StringMapDeterministic", t, func() {
  3418  		var keys = make([]uint32, 0, n)
  3419  		var value string
  3420  		var tm = make(map[uint32]string)
  3421  		for i := 0; i < n; i++ {
  3422  			var key uint32
  3423  			key = uint32(i)
  3424  			tm[key] = value
  3425  			keys = append(keys, key)
  3426  		}
  3427  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3428  
  3429  		var dest = make([]uint32, 0, n)
  3430  		WalkUint32StringMapDeterministic(tm, func(k uint32, v string) bool {
  3431  			dest = append(dest, k)
  3432  			return true
  3433  		})
  3434  
  3435  		for k, v := range keys {
  3436  			So(v, ShouldEqual, dest[k])
  3437  		}
  3438  	})
  3439  
  3440  	Convey("WalkUint32UintMapDeterministic", t, func() {
  3441  		var keys = make([]uint32, 0, n)
  3442  		var value uint
  3443  		var tm = make(map[uint32]uint)
  3444  		for i := 0; i < n; i++ {
  3445  			var key uint32
  3446  			key = uint32(i)
  3447  			tm[key] = value
  3448  			keys = append(keys, key)
  3449  		}
  3450  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3451  
  3452  		var dest = make([]uint32, 0, n)
  3453  		WalkUint32UintMapDeterministic(tm, func(k uint32, v uint) bool {
  3454  			dest = append(dest, k)
  3455  			return true
  3456  		})
  3457  
  3458  		for k, v := range keys {
  3459  			So(v, ShouldEqual, dest[k])
  3460  		}
  3461  	})
  3462  
  3463  	Convey("WalkUint32Uint16MapDeterministic", t, func() {
  3464  		var keys = make([]uint32, 0, n)
  3465  		var value uint16
  3466  		var tm = make(map[uint32]uint16)
  3467  		for i := 0; i < n; i++ {
  3468  			var key uint32
  3469  			key = uint32(i)
  3470  			tm[key] = value
  3471  			keys = append(keys, key)
  3472  		}
  3473  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3474  
  3475  		var dest = make([]uint32, 0, n)
  3476  		WalkUint32Uint16MapDeterministic(tm, func(k uint32, v uint16) bool {
  3477  			dest = append(dest, k)
  3478  			return true
  3479  		})
  3480  
  3481  		for k, v := range keys {
  3482  			So(v, ShouldEqual, dest[k])
  3483  		}
  3484  	})
  3485  
  3486  	Convey("WalkUint32Uint32MapDeterministic", t, func() {
  3487  		var keys = make([]uint32, 0, n)
  3488  		var value uint32
  3489  		var tm = make(map[uint32]uint32)
  3490  		for i := 0; i < n; i++ {
  3491  			var key uint32
  3492  			key = uint32(i)
  3493  			tm[key] = value
  3494  			keys = append(keys, key)
  3495  		}
  3496  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3497  
  3498  		var dest = make([]uint32, 0, n)
  3499  		WalkUint32Uint32MapDeterministic(tm, func(k uint32, v uint32) bool {
  3500  			dest = append(dest, k)
  3501  			return true
  3502  		})
  3503  
  3504  		for k, v := range keys {
  3505  			So(v, ShouldEqual, dest[k])
  3506  		}
  3507  	})
  3508  
  3509  	Convey("WalkUint32Uint64MapDeterministic", t, func() {
  3510  		var keys = make([]uint32, 0, n)
  3511  		var value uint64
  3512  		var tm = make(map[uint32]uint64)
  3513  		for i := 0; i < n; i++ {
  3514  			var key uint32
  3515  			key = uint32(i)
  3516  			tm[key] = value
  3517  			keys = append(keys, key)
  3518  		}
  3519  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3520  
  3521  		var dest = make([]uint32, 0, n)
  3522  		WalkUint32Uint64MapDeterministic(tm, func(k uint32, v uint64) bool {
  3523  			dest = append(dest, k)
  3524  			return true
  3525  		})
  3526  
  3527  		for k, v := range keys {
  3528  			So(v, ShouldEqual, dest[k])
  3529  		}
  3530  	})
  3531  
  3532  	Convey("WalkUint32Uint8MapDeterministic", t, func() {
  3533  		var keys = make([]uint32, 0, n)
  3534  		var value uint8
  3535  		var tm = make(map[uint32]uint8)
  3536  		for i := 0; i < n; i++ {
  3537  			var key uint32
  3538  			key = uint32(i)
  3539  			tm[key] = value
  3540  			keys = append(keys, key)
  3541  		}
  3542  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3543  
  3544  		var dest = make([]uint32, 0, n)
  3545  		WalkUint32Uint8MapDeterministic(tm, func(k uint32, v uint8) bool {
  3546  			dest = append(dest, k)
  3547  			return true
  3548  		})
  3549  
  3550  		for k, v := range keys {
  3551  			So(v, ShouldEqual, dest[k])
  3552  		}
  3553  	})
  3554  
  3555  	Convey("WalkUint64Float32MapDeterministic", t, func() {
  3556  		var keys = make([]uint64, 0, n)
  3557  		var value float32
  3558  		var tm = make(map[uint64]float32)
  3559  		for i := 0; i < n; i++ {
  3560  			var key uint64
  3561  			key = uint64(i)
  3562  			tm[key] = value
  3563  			keys = append(keys, key)
  3564  		}
  3565  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3566  
  3567  		var dest = make([]uint64, 0, n)
  3568  		WalkUint64Float32MapDeterministic(tm, func(k uint64, v float32) bool {
  3569  			dest = append(dest, k)
  3570  			return true
  3571  		})
  3572  
  3573  		for k, v := range keys {
  3574  			So(v, ShouldEqual, dest[k])
  3575  		}
  3576  	})
  3577  
  3578  	Convey("WalkUint64Float64MapDeterministic", t, func() {
  3579  		var keys = make([]uint64, 0, n)
  3580  		var value float64
  3581  		var tm = make(map[uint64]float64)
  3582  		for i := 0; i < n; i++ {
  3583  			var key uint64
  3584  			key = uint64(i)
  3585  			tm[key] = value
  3586  			keys = append(keys, key)
  3587  		}
  3588  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3589  
  3590  		var dest = make([]uint64, 0, n)
  3591  		WalkUint64Float64MapDeterministic(tm, func(k uint64, v float64) bool {
  3592  			dest = append(dest, k)
  3593  			return true
  3594  		})
  3595  
  3596  		for k, v := range keys {
  3597  			So(v, ShouldEqual, dest[k])
  3598  		}
  3599  	})
  3600  
  3601  	Convey("WalkUint64IntMapDeterministic", t, func() {
  3602  		var keys = make([]uint64, 0, n)
  3603  		var value int
  3604  		var tm = make(map[uint64]int)
  3605  		for i := 0; i < n; i++ {
  3606  			var key uint64
  3607  			key = uint64(i)
  3608  			tm[key] = value
  3609  			keys = append(keys, key)
  3610  		}
  3611  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3612  
  3613  		var dest = make([]uint64, 0, n)
  3614  		WalkUint64IntMapDeterministic(tm, func(k uint64, v int) bool {
  3615  			dest = append(dest, k)
  3616  			return true
  3617  		})
  3618  
  3619  		for k, v := range keys {
  3620  			So(v, ShouldEqual, dest[k])
  3621  		}
  3622  	})
  3623  
  3624  	Convey("WalkUint64Int16MapDeterministic", t, func() {
  3625  		var keys = make([]uint64, 0, n)
  3626  		var value int16
  3627  		var tm = make(map[uint64]int16)
  3628  		for i := 0; i < n; i++ {
  3629  			var key uint64
  3630  			key = uint64(i)
  3631  			tm[key] = value
  3632  			keys = append(keys, key)
  3633  		}
  3634  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3635  
  3636  		var dest = make([]uint64, 0, n)
  3637  		WalkUint64Int16MapDeterministic(tm, func(k uint64, v int16) bool {
  3638  			dest = append(dest, k)
  3639  			return true
  3640  		})
  3641  
  3642  		for k, v := range keys {
  3643  			So(v, ShouldEqual, dest[k])
  3644  		}
  3645  	})
  3646  
  3647  	Convey("WalkUint64Int32MapDeterministic", t, func() {
  3648  		var keys = make([]uint64, 0, n)
  3649  		var value int32
  3650  		var tm = make(map[uint64]int32)
  3651  		for i := 0; i < n; i++ {
  3652  			var key uint64
  3653  			key = uint64(i)
  3654  			tm[key] = value
  3655  			keys = append(keys, key)
  3656  		}
  3657  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3658  
  3659  		var dest = make([]uint64, 0, n)
  3660  		WalkUint64Int32MapDeterministic(tm, func(k uint64, v int32) bool {
  3661  			dest = append(dest, k)
  3662  			return true
  3663  		})
  3664  
  3665  		for k, v := range keys {
  3666  			So(v, ShouldEqual, dest[k])
  3667  		}
  3668  	})
  3669  
  3670  	Convey("WalkUint64Int64MapDeterministic", t, func() {
  3671  		var keys = make([]uint64, 0, n)
  3672  		var value int64
  3673  		var tm = make(map[uint64]int64)
  3674  		for i := 0; i < n; i++ {
  3675  			var key uint64
  3676  			key = uint64(i)
  3677  			tm[key] = value
  3678  			keys = append(keys, key)
  3679  		}
  3680  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3681  
  3682  		var dest = make([]uint64, 0, n)
  3683  		WalkUint64Int64MapDeterministic(tm, func(k uint64, v int64) bool {
  3684  			dest = append(dest, k)
  3685  			return true
  3686  		})
  3687  
  3688  		for k, v := range keys {
  3689  			So(v, ShouldEqual, dest[k])
  3690  		}
  3691  	})
  3692  
  3693  	Convey("WalkUint64Int8MapDeterministic", t, func() {
  3694  		var keys = make([]uint64, 0, n)
  3695  		var value int8
  3696  		var tm = make(map[uint64]int8)
  3697  		for i := 0; i < n; i++ {
  3698  			var key uint64
  3699  			key = uint64(i)
  3700  			tm[key] = value
  3701  			keys = append(keys, key)
  3702  		}
  3703  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3704  
  3705  		var dest = make([]uint64, 0, n)
  3706  		WalkUint64Int8MapDeterministic(tm, func(k uint64, v int8) bool {
  3707  			dest = append(dest, k)
  3708  			return true
  3709  		})
  3710  
  3711  		for k, v := range keys {
  3712  			So(v, ShouldEqual, dest[k])
  3713  		}
  3714  	})
  3715  
  3716  	Convey("WalkUint64InterfaceMapDeterministic", t, func() {
  3717  		var keys = make([]uint64, 0, n)
  3718  		var value interface{}
  3719  		var tm = make(map[uint64]interface{})
  3720  		for i := 0; i < n; i++ {
  3721  			var key uint64
  3722  			key = uint64(i)
  3723  			tm[key] = value
  3724  			keys = append(keys, key)
  3725  		}
  3726  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3727  
  3728  		var dest = make([]uint64, 0, n)
  3729  		WalkUint64InterfaceMapDeterministic(tm, func(k uint64, v interface{}) bool {
  3730  			dest = append(dest, k)
  3731  			return true
  3732  		})
  3733  
  3734  		for k, v := range keys {
  3735  			So(v, ShouldEqual, dest[k])
  3736  		}
  3737  	})
  3738  
  3739  	Convey("WalkUint64StringMapDeterministic", t, func() {
  3740  		var keys = make([]uint64, 0, n)
  3741  		var value string
  3742  		var tm = make(map[uint64]string)
  3743  		for i := 0; i < n; i++ {
  3744  			var key uint64
  3745  			key = uint64(i)
  3746  			tm[key] = value
  3747  			keys = append(keys, key)
  3748  		}
  3749  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3750  
  3751  		var dest = make([]uint64, 0, n)
  3752  		WalkUint64StringMapDeterministic(tm, func(k uint64, v string) bool {
  3753  			dest = append(dest, k)
  3754  			return true
  3755  		})
  3756  
  3757  		for k, v := range keys {
  3758  			So(v, ShouldEqual, dest[k])
  3759  		}
  3760  	})
  3761  
  3762  	Convey("WalkUint64UintMapDeterministic", t, func() {
  3763  		var keys = make([]uint64, 0, n)
  3764  		var value uint
  3765  		var tm = make(map[uint64]uint)
  3766  		for i := 0; i < n; i++ {
  3767  			var key uint64
  3768  			key = uint64(i)
  3769  			tm[key] = value
  3770  			keys = append(keys, key)
  3771  		}
  3772  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3773  
  3774  		var dest = make([]uint64, 0, n)
  3775  		WalkUint64UintMapDeterministic(tm, func(k uint64, v uint) bool {
  3776  			dest = append(dest, k)
  3777  			return true
  3778  		})
  3779  
  3780  		for k, v := range keys {
  3781  			So(v, ShouldEqual, dest[k])
  3782  		}
  3783  	})
  3784  
  3785  	Convey("WalkUint64Uint16MapDeterministic", t, func() {
  3786  		var keys = make([]uint64, 0, n)
  3787  		var value uint16
  3788  		var tm = make(map[uint64]uint16)
  3789  		for i := 0; i < n; i++ {
  3790  			var key uint64
  3791  			key = uint64(i)
  3792  			tm[key] = value
  3793  			keys = append(keys, key)
  3794  		}
  3795  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3796  
  3797  		var dest = make([]uint64, 0, n)
  3798  		WalkUint64Uint16MapDeterministic(tm, func(k uint64, v uint16) bool {
  3799  			dest = append(dest, k)
  3800  			return true
  3801  		})
  3802  
  3803  		for k, v := range keys {
  3804  			So(v, ShouldEqual, dest[k])
  3805  		}
  3806  	})
  3807  
  3808  	Convey("WalkUint64Uint32MapDeterministic", t, func() {
  3809  		var keys = make([]uint64, 0, n)
  3810  		var value uint32
  3811  		var tm = make(map[uint64]uint32)
  3812  		for i := 0; i < n; i++ {
  3813  			var key uint64
  3814  			key = uint64(i)
  3815  			tm[key] = value
  3816  			keys = append(keys, key)
  3817  		}
  3818  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3819  
  3820  		var dest = make([]uint64, 0, n)
  3821  		WalkUint64Uint32MapDeterministic(tm, func(k uint64, v uint32) bool {
  3822  			dest = append(dest, k)
  3823  			return true
  3824  		})
  3825  
  3826  		for k, v := range keys {
  3827  			So(v, ShouldEqual, dest[k])
  3828  		}
  3829  	})
  3830  
  3831  	Convey("WalkUint64Uint64MapDeterministic", t, func() {
  3832  		var keys = make([]uint64, 0, n)
  3833  		var value uint64
  3834  		var tm = make(map[uint64]uint64)
  3835  		for i := 0; i < n; i++ {
  3836  			var key uint64
  3837  			key = uint64(i)
  3838  			tm[key] = value
  3839  			keys = append(keys, key)
  3840  		}
  3841  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3842  
  3843  		var dest = make([]uint64, 0, n)
  3844  		WalkUint64Uint64MapDeterministic(tm, func(k uint64, v uint64) bool {
  3845  			dest = append(dest, k)
  3846  			return true
  3847  		})
  3848  
  3849  		for k, v := range keys {
  3850  			So(v, ShouldEqual, dest[k])
  3851  		}
  3852  	})
  3853  
  3854  	Convey("WalkUint64Uint8MapDeterministic", t, func() {
  3855  		var keys = make([]uint64, 0, n)
  3856  		var value uint8
  3857  		var tm = make(map[uint64]uint8)
  3858  		for i := 0; i < n; i++ {
  3859  			var key uint64
  3860  			key = uint64(i)
  3861  			tm[key] = value
  3862  			keys = append(keys, key)
  3863  		}
  3864  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3865  
  3866  		var dest = make([]uint64, 0, n)
  3867  		WalkUint64Uint8MapDeterministic(tm, func(k uint64, v uint8) bool {
  3868  			dest = append(dest, k)
  3869  			return true
  3870  		})
  3871  
  3872  		for k, v := range keys {
  3873  			So(v, ShouldEqual, dest[k])
  3874  		}
  3875  	})
  3876  
  3877  	Convey("WalkUint8Float32MapDeterministic", t, func() {
  3878  		var keys = make([]uint8, 0, n)
  3879  		var value float32
  3880  		var tm = make(map[uint8]float32)
  3881  		for i := 0; i < n; i++ {
  3882  			var key uint8
  3883  			key = uint8(i)
  3884  			tm[key] = value
  3885  			keys = append(keys, key)
  3886  		}
  3887  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3888  
  3889  		var dest = make([]uint8, 0, n)
  3890  		WalkUint8Float32MapDeterministic(tm, func(k uint8, v float32) bool {
  3891  			dest = append(dest, k)
  3892  			return true
  3893  		})
  3894  
  3895  		for k, v := range keys {
  3896  			So(v, ShouldEqual, dest[k])
  3897  		}
  3898  	})
  3899  
  3900  	Convey("WalkUint8Float64MapDeterministic", t, func() {
  3901  		var keys = make([]uint8, 0, n)
  3902  		var value float64
  3903  		var tm = make(map[uint8]float64)
  3904  		for i := 0; i < n; i++ {
  3905  			var key uint8
  3906  			key = uint8(i)
  3907  			tm[key] = value
  3908  			keys = append(keys, key)
  3909  		}
  3910  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3911  
  3912  		var dest = make([]uint8, 0, n)
  3913  		WalkUint8Float64MapDeterministic(tm, func(k uint8, v float64) bool {
  3914  			dest = append(dest, k)
  3915  			return true
  3916  		})
  3917  
  3918  		for k, v := range keys {
  3919  			So(v, ShouldEqual, dest[k])
  3920  		}
  3921  	})
  3922  
  3923  	Convey("WalkUint8IntMapDeterministic", t, func() {
  3924  		var keys = make([]uint8, 0, n)
  3925  		var value int
  3926  		var tm = make(map[uint8]int)
  3927  		for i := 0; i < n; i++ {
  3928  			var key uint8
  3929  			key = uint8(i)
  3930  			tm[key] = value
  3931  			keys = append(keys, key)
  3932  		}
  3933  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3934  
  3935  		var dest = make([]uint8, 0, n)
  3936  		WalkUint8IntMapDeterministic(tm, func(k uint8, v int) bool {
  3937  			dest = append(dest, k)
  3938  			return true
  3939  		})
  3940  
  3941  		for k, v := range keys {
  3942  			So(v, ShouldEqual, dest[k])
  3943  		}
  3944  	})
  3945  
  3946  	Convey("WalkUint8Int16MapDeterministic", t, func() {
  3947  		var keys = make([]uint8, 0, n)
  3948  		var value int16
  3949  		var tm = make(map[uint8]int16)
  3950  		for i := 0; i < n; i++ {
  3951  			var key uint8
  3952  			key = uint8(i)
  3953  			tm[key] = value
  3954  			keys = append(keys, key)
  3955  		}
  3956  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3957  
  3958  		var dest = make([]uint8, 0, n)
  3959  		WalkUint8Int16MapDeterministic(tm, func(k uint8, v int16) bool {
  3960  			dest = append(dest, k)
  3961  			return true
  3962  		})
  3963  
  3964  		for k, v := range keys {
  3965  			So(v, ShouldEqual, dest[k])
  3966  		}
  3967  	})
  3968  
  3969  	Convey("WalkUint8Int32MapDeterministic", t, func() {
  3970  		var keys = make([]uint8, 0, n)
  3971  		var value int32
  3972  		var tm = make(map[uint8]int32)
  3973  		for i := 0; i < n; i++ {
  3974  			var key uint8
  3975  			key = uint8(i)
  3976  			tm[key] = value
  3977  			keys = append(keys, key)
  3978  		}
  3979  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  3980  
  3981  		var dest = make([]uint8, 0, n)
  3982  		WalkUint8Int32MapDeterministic(tm, func(k uint8, v int32) bool {
  3983  			dest = append(dest, k)
  3984  			return true
  3985  		})
  3986  
  3987  		for k, v := range keys {
  3988  			So(v, ShouldEqual, dest[k])
  3989  		}
  3990  	})
  3991  
  3992  	Convey("WalkUint8Int64MapDeterministic", t, func() {
  3993  		var keys = make([]uint8, 0, n)
  3994  		var value int64
  3995  		var tm = make(map[uint8]int64)
  3996  		for i := 0; i < n; i++ {
  3997  			var key uint8
  3998  			key = uint8(i)
  3999  			tm[key] = value
  4000  			keys = append(keys, key)
  4001  		}
  4002  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4003  
  4004  		var dest = make([]uint8, 0, n)
  4005  		WalkUint8Int64MapDeterministic(tm, func(k uint8, v int64) bool {
  4006  			dest = append(dest, k)
  4007  			return true
  4008  		})
  4009  
  4010  		for k, v := range keys {
  4011  			So(v, ShouldEqual, dest[k])
  4012  		}
  4013  	})
  4014  
  4015  	Convey("WalkUint8Int8MapDeterministic", t, func() {
  4016  		var keys = make([]uint8, 0, n)
  4017  		var value int8
  4018  		var tm = make(map[uint8]int8)
  4019  		for i := 0; i < n; i++ {
  4020  			var key uint8
  4021  			key = uint8(i)
  4022  			tm[key] = value
  4023  			keys = append(keys, key)
  4024  		}
  4025  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4026  
  4027  		var dest = make([]uint8, 0, n)
  4028  		WalkUint8Int8MapDeterministic(tm, func(k uint8, v int8) bool {
  4029  			dest = append(dest, k)
  4030  			return true
  4031  		})
  4032  
  4033  		for k, v := range keys {
  4034  			So(v, ShouldEqual, dest[k])
  4035  		}
  4036  	})
  4037  
  4038  	Convey("WalkUint8InterfaceMapDeterministic", t, func() {
  4039  		var keys = make([]uint8, 0, n)
  4040  		var value interface{}
  4041  		var tm = make(map[uint8]interface{})
  4042  		for i := 0; i < n; i++ {
  4043  			var key uint8
  4044  			key = uint8(i)
  4045  			tm[key] = value
  4046  			keys = append(keys, key)
  4047  		}
  4048  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4049  
  4050  		var dest = make([]uint8, 0, n)
  4051  		WalkUint8InterfaceMapDeterministic(tm, func(k uint8, v interface{}) bool {
  4052  			dest = append(dest, k)
  4053  			return true
  4054  		})
  4055  
  4056  		for k, v := range keys {
  4057  			So(v, ShouldEqual, dest[k])
  4058  		}
  4059  	})
  4060  
  4061  	Convey("WalkUint8StringMapDeterministic", t, func() {
  4062  		var keys = make([]uint8, 0, n)
  4063  		var value string
  4064  		var tm = make(map[uint8]string)
  4065  		for i := 0; i < n; i++ {
  4066  			var key uint8
  4067  			key = uint8(i)
  4068  			tm[key] = value
  4069  			keys = append(keys, key)
  4070  		}
  4071  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4072  
  4073  		var dest = make([]uint8, 0, n)
  4074  		WalkUint8StringMapDeterministic(tm, func(k uint8, v string) bool {
  4075  			dest = append(dest, k)
  4076  			return true
  4077  		})
  4078  
  4079  		for k, v := range keys {
  4080  			So(v, ShouldEqual, dest[k])
  4081  		}
  4082  	})
  4083  
  4084  	Convey("WalkUint8UintMapDeterministic", t, func() {
  4085  		var keys = make([]uint8, 0, n)
  4086  		var value uint
  4087  		var tm = make(map[uint8]uint)
  4088  		for i := 0; i < n; i++ {
  4089  			var key uint8
  4090  			key = uint8(i)
  4091  			tm[key] = value
  4092  			keys = append(keys, key)
  4093  		}
  4094  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4095  
  4096  		var dest = make([]uint8, 0, n)
  4097  		WalkUint8UintMapDeterministic(tm, func(k uint8, v uint) bool {
  4098  			dest = append(dest, k)
  4099  			return true
  4100  		})
  4101  
  4102  		for k, v := range keys {
  4103  			So(v, ShouldEqual, dest[k])
  4104  		}
  4105  	})
  4106  
  4107  	Convey("WalkUint8Uint16MapDeterministic", t, func() {
  4108  		var keys = make([]uint8, 0, n)
  4109  		var value uint16
  4110  		var tm = make(map[uint8]uint16)
  4111  		for i := 0; i < n; i++ {
  4112  			var key uint8
  4113  			key = uint8(i)
  4114  			tm[key] = value
  4115  			keys = append(keys, key)
  4116  		}
  4117  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4118  
  4119  		var dest = make([]uint8, 0, n)
  4120  		WalkUint8Uint16MapDeterministic(tm, func(k uint8, v uint16) bool {
  4121  			dest = append(dest, k)
  4122  			return true
  4123  		})
  4124  
  4125  		for k, v := range keys {
  4126  			So(v, ShouldEqual, dest[k])
  4127  		}
  4128  	})
  4129  
  4130  	Convey("WalkUint8Uint32MapDeterministic", t, func() {
  4131  		var keys = make([]uint8, 0, n)
  4132  		var value uint32
  4133  		var tm = make(map[uint8]uint32)
  4134  		for i := 0; i < n; i++ {
  4135  			var key uint8
  4136  			key = uint8(i)
  4137  			tm[key] = value
  4138  			keys = append(keys, key)
  4139  		}
  4140  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4141  
  4142  		var dest = make([]uint8, 0, n)
  4143  		WalkUint8Uint32MapDeterministic(tm, func(k uint8, v uint32) bool {
  4144  			dest = append(dest, k)
  4145  			return true
  4146  		})
  4147  
  4148  		for k, v := range keys {
  4149  			So(v, ShouldEqual, dest[k])
  4150  		}
  4151  	})
  4152  
  4153  	Convey("WalkUint8Uint64MapDeterministic", t, func() {
  4154  		var keys = make([]uint8, 0, n)
  4155  		var value uint64
  4156  		var tm = make(map[uint8]uint64)
  4157  		for i := 0; i < n; i++ {
  4158  			var key uint8
  4159  			key = uint8(i)
  4160  			tm[key] = value
  4161  			keys = append(keys, key)
  4162  		}
  4163  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4164  
  4165  		var dest = make([]uint8, 0, n)
  4166  		WalkUint8Uint64MapDeterministic(tm, func(k uint8, v uint64) bool {
  4167  			dest = append(dest, k)
  4168  			return true
  4169  		})
  4170  
  4171  		for k, v := range keys {
  4172  			So(v, ShouldEqual, dest[k])
  4173  		}
  4174  	})
  4175  
  4176  	Convey("WalkUint8Uint8MapDeterministic", t, func() {
  4177  		var keys = make([]uint8, 0, n)
  4178  		var value uint8
  4179  		var tm = make(map[uint8]uint8)
  4180  		for i := 0; i < n; i++ {
  4181  			var key uint8
  4182  			key = uint8(i)
  4183  			tm[key] = value
  4184  			keys = append(keys, key)
  4185  		}
  4186  		sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] })
  4187  
  4188  		var dest = make([]uint8, 0, n)
  4189  		WalkUint8Uint8MapDeterministic(tm, func(k uint8, v uint8) bool {
  4190  			dest = append(dest, k)
  4191  			return true
  4192  		})
  4193  
  4194  		for k, v := range keys {
  4195  			So(v, ShouldEqual, dest[k])
  4196  		}
  4197  	})
  4198  }