From daea5680a35d03117e273bf85377904f2fb6facc Mon Sep 17 00:00:00 2001 From: Eric Cox Date: Wed, 1 Jul 2015 16:33:59 -0400 Subject: [PATCH] adding mysort function with a benchmark test --- benchdb/benchdb_test.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 benchdb/benchdb_test.go diff --git a/benchdb/benchdb_test.go b/benchdb/benchdb_test.go new file mode 100644 index 0000000..12ac62b --- /dev/null +++ b/benchdb/benchdb_test.go @@ -0,0 +1,29 @@ +package benchdb + +import ( + "math/rand" + "sort" + "testing" +) + +func mySort(data sort.Interface, a, b int) { + // Insertion sort borrowed from the std library. + for i := a + 1; i < b; i++ { + for j := i; j > a && data.Less(j, j-1); j-- { + data.Swap(j, j-1) + } + } +} + +func BenchmarkMySort1K(b *testing.B) { + b.StopTimer() + for i := 0; i < b.N; i++ { + data := make([]int, 1000) + for i := 0; i < len(data); i++ { + data[i] = rand.Int() + } + b.StartTimer() + mySort(sort.IntSlice(data), 0, len(data)) + b.StopTimer() + } +}