performance_test.go 1017 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package urn
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. var benchs = []testCase{
  7. genericTestCases[14],
  8. genericTestCases[2],
  9. genericTestCases[6],
  10. genericTestCases[10],
  11. genericTestCases[11],
  12. genericTestCases[13],
  13. genericTestCases[20],
  14. genericTestCases[23],
  15. genericTestCases[33],
  16. genericTestCases[45],
  17. genericTestCases[47],
  18. genericTestCases[48],
  19. genericTestCases[50],
  20. genericTestCases[52],
  21. genericTestCases[53],
  22. genericTestCases[57],
  23. genericTestCases[62],
  24. genericTestCases[63],
  25. genericTestCases[67],
  26. genericTestCases[60],
  27. }
  28. // This is here to avoid compiler optimizations that
  29. // could remove the actual call we are benchmarking
  30. // during benchmarks
  31. var benchParseResult *URN
  32. func BenchmarkParse(b *testing.B) {
  33. for ii, tt := range benchs {
  34. tt := tt
  35. outcome := (map[bool]string{true: "ok", false: "no"})[tt.ok]
  36. b.Run(
  37. fmt.Sprintf("%s/%02d/%s/", outcome, ii, rxpad(string(tt.in), 45)),
  38. func(b *testing.B) {
  39. for i := 0; i < b.N; i++ {
  40. benchParseResult, _ = Parse(tt.in)
  41. }
  42. },
  43. )
  44. }
  45. }