hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 13dac7f3cd68789479399a9b0c1756d718e70805
parent 30c2e54c25f6c3a942080f30be49712adda27586
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Mon, 11 Apr 2022 11:27:07 +0200

compare: Add a string sort benchmark

Diffstat:
Mcompare/compare_strings_test.go | 19+++++++++++++++++++
1 file changed, 19 insertions(+), 0 deletions(-)
diff --git a/compare/compare_strings_test.go b/compare/compare_strings_test.go
@@ -62,3 +62,22 @@ func TestLexicographicSort(t *testing.T) {
 
 	c.Assert(s, qt.DeepEquals, []string{"A", "b", "Ba", "ba", "ba", "Bz"})
 }
+
+func BenchmarkStringSort(b *testing.B) {
+	prototype := []string{"b", "Bz", "zz", "ba", "αβδ αβδ αβδ", "A", "Ba", "ba", "nnnnasdfnnn", "AAgæåz", "αβδC"}
+	b.Run("LessStrings", func(b *testing.B) {
+		ss := make([][]string, b.N)
+		for i := 0; i < b.N; i++ {
+			ss[i] = make([]string, len(prototype))
+			copy(ss[i], prototype)
+		}
+		b.ResetTimer()
+		for i := 0; i < b.N; i++ {
+			sss := ss[i]
+			sort.Slice(sss, func(i, j int) bool {
+				return LessStrings(sss[i], sss[j])
+			})
+		}
+	})
+
+}