46 lines
932 B
Go
46 lines
932 B
Go
|
package runewidth
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"unicode/utf8"
|
||
|
)
|
||
|
|
||
|
var benchSink int
|
||
|
|
||
|
func benchTable(b *testing.B, tbl table) int {
|
||
|
n := 0
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
for r := rune(0); r <= utf8.MaxRune; r++ {
|
||
|
if inTable(r, tbl) {
|
||
|
n++
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return n
|
||
|
}
|
||
|
|
||
|
func BenchmarkTablePrivate(b *testing.B) {
|
||
|
benchSink = benchTable(b, private)
|
||
|
}
|
||
|
func BenchmarkTableNonprint(b *testing.B) {
|
||
|
benchSink = benchTable(b, nonprint)
|
||
|
}
|
||
|
func BenchmarkTableCombining(b *testing.B) {
|
||
|
benchSink = benchTable(b, combining)
|
||
|
}
|
||
|
func BenchmarkTableDoublewidth(b *testing.B) {
|
||
|
benchSink = benchTable(b, doublewidth)
|
||
|
}
|
||
|
func BenchmarkTableAmbiguous(b *testing.B) {
|
||
|
benchSink = benchTable(b, ambiguous)
|
||
|
}
|
||
|
func BenchmarkTableEmoji(b *testing.B) {
|
||
|
benchSink = benchTable(b, emoji)
|
||
|
}
|
||
|
func BenchmarkTableNotassigned(b *testing.B) {
|
||
|
benchSink = benchTable(b, notassigned)
|
||
|
}
|
||
|
func BenchmarkTableNeutral(b *testing.B) {
|
||
|
benchSink = benchTable(b, neutral)
|
||
|
}
|