package json

import (
	"strings"
	"testing"
)

func BenchmarkEscapeIndex4KB(b *testing.B) {
	benchmarkEscapeIndex(b, strings.Repeat("!foobar!", 512), false)
}

func BenchmarkEscapeIndex4KBEscapeHTML(b *testing.B) {
	benchmarkEscapeIndex(b, strings.Repeat("!foobar!", 512), true)
}

func BenchmarkEscapeIndex1(b *testing.B) {
	benchmarkEscapeIndex(b, "1", false)
}

func BenchmarkEscapeIndex1EscapeHTML(b *testing.B) {
	benchmarkEscapeIndex(b, "1", true)
}

func BenchmarkEscapeIndex7(b *testing.B) {
	benchmarkEscapeIndex(b, "1234567", false)
}

func BenchmarkEscapeIndex7EscapeHTML(b *testing.B) {
	benchmarkEscapeIndex(b, "1234567", true)
}

func benchmarkEscapeIndex(b *testing.B, s string, escapeHTML bool) {
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		escapeIndex(s, escapeHTML)
	}
	b.SetBytes(int64(len(s)))
}
