Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bytes"
- "strings"
- "testing"
- )
- var (
- shortLowercase = []byte(strings.Repeat("a", 20))
- longLowercase = []byte(strings.Repeat("a", 150))
- shortMixed = []byte(strings.Repeat("aA", 10))
- longMixed = []byte(strings.Repeat("aA", 75))
- shortUppercase = []byte(strings.Repeat("A", 20))
- longUppercase = []byte(strings.Repeat("A", 150))
- )
- func ToLowercase(text []byte) []byte {
- lowered := make([]byte, len(text))
- for i, char := range text {
- lowered[i] = char | 0x20
- }
- return lowered
- }
- func BenchmarkSTDShortLowercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- bytes.ToLower(shortLowercase)
- }
- }
- func BenchmarkSTDLongLowercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- bytes.ToLower(longLowercase)
- }
- }
- func BenchmarkSTDShortMixed(b *testing.B) {
- for i := 0; i < b.N; i++ {
- bytes.ToLower(shortMixed)
- }
- }
- func BenchmarkSTDLongMixed(b *testing.B) {
- for i := 0; i < b.N; i++ {
- bytes.ToLower(longMixed)
- }
- }
- func BenchmarkSTDShortUppercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- bytes.ToLower(shortUppercase)
- }
- }
- func BenchmarkSTDLongUppercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- bytes.ToLower(longUppercase)
- }
- }
- func BenchmarkOwnShortLowercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- ToLowercase(shortLowercase)
- }
- }
- func BenchmarkOwnLongLowercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- ToLowercase(longLowercase)
- }
- }
- func BenchmarkOwnShortMixed(b *testing.B) {
- for i := 0; i < b.N; i++ {
- ToLowercase(shortMixed)
- }
- }
- func BenchmarkOwnLongMixed(b *testing.B) {
- for i := 0; i < b.N; i++ {
- ToLowercase(longMixed)
- }
- }
- func BenchmarkOwnShortUppercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- ToLowercase(shortUppercase)
- }
- }
- func BenchmarkOwnLongUppercase(b *testing.B) {
- for i := 0; i < b.N; i++ {
- ToLowercase(longUppercase)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment