github.com/chenjiandongx/go-queue@v0.0.0-20191023082232-e2a36f382f84/ordered_map_test.go (about) 1 package collections 2 3 import ( 4 "testing" 5 6 "github.com/cevaris/ordered_map" 7 ) 8 9 const maxNum = 100 10 11 func BenchmarkCollectionsSet(b *testing.B) { 12 om := NewOrderedMap() 13 for i := 0; i < b.N; i++ { 14 om.Set(i, i) 15 } 16 } 17 18 func BenchmarkCevarisSet(b *testing.B) { 19 om := ordered_map.NewOrderedMap() 20 for i := 0; i < b.N; i++ { 21 om.Set(i, i) 22 } 23 } 24 25 func BenchmarkCollectionsGet(b *testing.B) { 26 om := NewOrderedMap() 27 for i := 0; i < b.N; i++ { 28 om.Set(i, i) 29 } 30 for i := 0; i < b.N; i++ { 31 om.Get(i) 32 } 33 } 34 35 func BenchmarkCevarisGet(b *testing.B) { 36 om := ordered_map.NewOrderedMap() 37 for i := 0; i < b.N; i++ { 38 om.Set(i, i) 39 } 40 for i := 0; i < b.N; i++ { 41 om.Get(i) 42 } 43 } 44 45 func BenchmarkCollectionsIter(b *testing.B) { 46 om := NewOrderedMap() 47 for i := 0; i < b.N; i++ { 48 om.Set(i, i) 49 } 50 for k, v, ok := om.Iter(); ok; k, v, ok = om.Iter() { 51 _, _ = k, v 52 } 53 } 54 55 func BenchmarkCevarisIter(b *testing.B) { 56 om := ordered_map.NewOrderedMap() 57 for i := 0; i < b.N; i++ { 58 om.Set(i, i) 59 } 60 iter := om.IterFunc() 61 for kv, ok := iter(); ok; kv, ok = iter() { 62 _, _ = kv.Key, kv.Value 63 } 64 } 65 66 func TestSet(t *testing.T) { 67 om := NewOrderedMap() 68 for i := 0; i < maxNum; i++ { 69 om.Set(i, i+1) 70 } 71 if om.len != maxNum { 72 t.Error() 73 } 74 } 75 76 func TestGet(t *testing.T) { 77 om := NewOrderedMap() 78 for i := 0; i < maxNum; i++ { 79 om.Set(i, i+1) 80 } 81 for i := 0; i < maxNum; i++ { 82 v, ok := om.Get(i) 83 if !ok || v.(int) != i+1 { 84 t.Error() 85 } 86 } 87 } 88 89 func TestGUpdate(t *testing.T) { 90 om := NewOrderedMap() 91 for i := 0; i < maxNum; i++ { 92 om.Set(i, i+1) 93 } 94 for i := maxNum - 1; i >= 0; i-- { 95 om.Set(i, i-1) 96 } 97 for i := 0; i < maxNum; i++ { 98 v, ok := om.Get(i) 99 if !ok || v.(int) != i-1 { 100 t.Error() 101 } 102 } 103 } 104 105 func TestIter(t *testing.T) { 106 om := NewOrderedMap() 107 for i := 0; i < maxNum; i++ { 108 om.Set(i, i+1) 109 } 110 index := 0 111 for k, v, ok := om.Iter(); ok; k, v, ok = om.Iter() { 112 if k.(int) != index || v.(int) != index+1 || !ok { 113 t.Error() 114 } 115 index++ 116 } 117 118 index = 0 119 om.BackToHead() 120 for k, v, ok := om.Iter(); ok; k, v, ok = om.Iter() { 121 if k.(int) != index || v.(int) != index+1 || !ok { 122 t.Error() 123 } 124 index++ 125 } 126 }