func TestIntKeyOMapDelete(t *testing.T) { intMap := omap.NewIntKeyed() for _, number := range []int{9, 1, 8, 2, 7, 3, 6, 4, 5, 0} { intMap.Insert(number, number*10) } if intMap.Len() != 10 { t.Errorf("map len %d should be 10", intMap.Len()) } length := 9 for i, number := range []int{0, 1, 5, 8, 9} { if deleted := intMap.Delete(number); !deleted { t.Errorf("failed to delete %d", number) } if intMap.Len() != length-i { t.Errorf("map len %d should be %d", intMap.Len(), length-i) } } for _, number := range []int{-1, -21, 10, 11, 148} { if deleted := intMap.Delete(number); deleted { t.Errorf("should not have deleted nonexistent %d", number) } } if intMap.Len() != 5 { t.Errorf("map len %d should be 5", intMap.Len()) } }
func BenchmarkOMapFindFailure(b *testing.B) { b.StopTimer() // Don't time creation and population intMap := omap.NewIntKeyed() for i := 0; i < 1e6; i++ { intMap.Insert(2*i, i) } b.StartTimer() // Time the Find() method failing for i := 0; i < b.N; i++ { intMap.Find(2*(i%1e6) + 1) } }
// Thanks to Russ Cox for improving these benchmarks func BenchmarkOMapFindSuccess(b *testing.B) { b.StopTimer() // Don't time creation and population intMap := omap.NewIntKeyed() for i := 0; i < 1e6; i++ { intMap.Insert(i, i) } b.StartTimer() // Time the Find() method succeeding for i := 0; i < b.N; i++ { intMap.Find(i % 1e6) } }
func TestIntKeyOMapFind(t *testing.T) { intMap := omap.NewIntKeyed() for _, number := range []int{9, 1, 8, 2, 7, 3, 6, 4, 5, 0} { intMap.Insert(number, number*10) } for _, number := range []int{0, 1, 5, 8, 9} { value, found := intMap.Find(number) if !found { t.Errorf("failed to find %d", number) } actual, expected := value.(int), number*10 if actual != expected { t.Errorf("value is %d should be %d", actual, expected) } } for _, number := range []int{-1, -21, 10, 11, 148} { _, found := intMap.Find(number) if found { t.Errorf("should not have found %d", number) } } }
func TestPassing(t *testing.T) { intMap := omap.NewIntKeyed() intMap.Insert(7, 7) passMap(intMap, t) }