77 lines
1002 B
Go
77 lines
1002 B
Go
package parse_test
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func A(b byte) (byte, bool) {
|
|
if b > 'b' {
|
|
switch b {
|
|
case 't':
|
|
return '\t', true
|
|
case 'n':
|
|
return '\n', true
|
|
case 'r':
|
|
return '\r', true
|
|
case 'f':
|
|
return '\f', true
|
|
}
|
|
} else {
|
|
switch b {
|
|
case '"':
|
|
return '"', true
|
|
case '\\':
|
|
return '\\', true
|
|
case 'b':
|
|
return '\b', true
|
|
}
|
|
}
|
|
return 0x00, false
|
|
}
|
|
|
|
func B(b byte) (byte, bool) {
|
|
switch b {
|
|
case 'r':
|
|
return '\r', true
|
|
case 'n':
|
|
return '\n', true
|
|
case 't':
|
|
return '\t', true
|
|
case 'b':
|
|
return '\b', true
|
|
case 'f':
|
|
return '\f', true
|
|
case '"':
|
|
return '"', true
|
|
case '\\':
|
|
return '\\', true
|
|
}
|
|
return 0x00, false
|
|
}
|
|
|
|
// TODO cleanup unused benchmark.
|
|
func Benchmark_A(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
A('b')
|
|
A('t')
|
|
A('n')
|
|
A('f')
|
|
A('r')
|
|
A('"')
|
|
A('\\')
|
|
}
|
|
}
|
|
|
|
// TODO cleanup unused benchmark.
|
|
func Benchmark_B(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
B('b')
|
|
B('t')
|
|
B('n')
|
|
B('f')
|
|
B('r')
|
|
B('"')
|
|
B('\\')
|
|
}
|
|
}
|