board_test.go 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package board
  2. import (
  3. "math/rand"
  4. "testing"
  5. "time"
  6. )
  7. var testBoard = `~~~~~~~~▲▲▲~▲▲~~*~*~~**~*▲****▲▲***▲~▲***~~▲~~▲~▲~~~~~▲~
  8. ▲~~~~▲~~~~~~~~~~~▲▲▲*~▲▲*▲▲***▲*▲*~▲▲▲~**~▲~~~~~~~~~▲~▲~
  9. ~~~~~~~~~~▲~~~▲~▲~~**▲~~*~**▲▲**▲~*▲~***▲▲~▲~~~~~▲~~~▲▲~
  10. ~~▲~~~~~~▲~~~~▲▲*~~*▲~****▲▲*****▲*~****▲▲~▲~~~~~▲~~~~~~
  11. ~▲~~~~~▲▲~~~~~~~~▲▲~~▲*▲*~*▲▲****▲*▲**~**~~~▲~~~~~~~~~~~
  12. ~~▲~~▲▲▲~~~~~▲~▲~*~******▲▲*▲*****~*~~***~~~~~▲~~~~~~~~~
  13. ▲~~~~~~~~▲▲~▲~~▲▲****~~**~***▲****▲*~~~*~~▲~▲~▲~~~~~~▲▲▲
  14. ▲~~~~~~~~▲~~~~~~~**~***▲**~**~~****~*▲*~~~~▲~~▲~~~~~~~~~
  15. ~~▲~▲~~▲~~~~~~~~~***▲**********~~**▲***~*~~~▲▲~~~▲~~▲~~▲
  16. ▲~~~~~▲~~~~▲~▲~~*~*~~*******▲***▲**▲▲*~~~~~~▲~▲~~~~~▲▲~~
  17. ~▲~~~~~~~~~▲~~~~****▲~*▲**▲****▲▲**~*▲***~~▲▲~▲▲▲~~~~▲~~
  18. ~▲~▲~~~~~▲~~~~~▲**▲**~*~▲*~***▲▲*~*▲***~~~~~~~~~~~~~~~~~
  19. ~▲~~▲~~~▲~▲~▲~~▲*~~▲*~▲**▲▲***▲▲**~*~**~~~~▲▲▲▲~~~~~~~~~
  20. ▲~▲~~▲▲~~▲~~~▲~~~~********▲▲▲▲***▲*~***▲▲~~~~▲~~~~~~~▲~~
  21. ~▲~~~~▲▲~~~~~▲~~▲*~*▲▲*▲****▲▲******▲*~~*~~~~▲~~~~~~~▲~~
  22. ~~~~~~~~~~~~~~▲▲~▲~******▲*▲*▲**~*~*~**~*~~~~~~~~▲▲~~~~▲
  23. ~~▲▲~~~~~~~~~~~▲***▲~*▲**▲*~***▲*********~~~~▲▲~~~~~▲~~~
  24. ~~▲~~~~~~▲▲▲~~~~*~~▲~*~▲*▲*▲*****▲**▲~*▲*~▲~~~~▲▲~▲~~~~~
  25. ~~~~~~▲~~~▲▲~~~~*▲▲**~**▲*▲*▲***▲**▲*****~~~~▲~~~~~~~▲~~
  26. ~~▲~~~~▲~~~~~▲~~~*~********▲**▲*~*▲*▲**▲~~~~~~~~~~~~~~▲~
  27. ~~~~~~~~~~~~~~▲~*~*~~****~~**▲*****▲**~*~~~▲~▲~~▲~~~▲~~▲
  28. ~▲~~~▲~▲▲~~~~~~~~*~**~~*▲**▲*▲▲***~******~▲~~~~~~▲~~~~~~
  29. ~~~~~~~~▲~~~~~~~~*▲**▲*▲***▲▲**▲~***~▲*~*~~▲~~~~~▲~~~~~~
  30. ~~~~▲~▲~~▲~~▲▲~~**~▲*******~***~▲~**~*~~▲~~~~~~~~▲~~~~~~
  31. ~~▲~~~~~~~~~~~~~**~▲**~***~**▲***▲*~*▲▲*~~~~▲▲~~~~~~~▲~~
  32. ~~~~▲~~~▲~~▲▲~▲~▲▲*▲*▲*▲**▲**▲*~******▲*▲▲~~~~~~~~~~~▲~~
  33. ~~~▲~~~~~~~~~~~~*~~▲▲▲▲▲*******~**▲▲*~▲*~~~~~~~~~~▲~~~▲~
  34. ▲~~~~~~▲~~~~▲~~~*▲▲▲****▲▲****▲***▲~▲▲▲*▲~~~~~~~~▲~~~~~~
  35. ~~~~~▲~▲~~~~~~~~*~~*****▲********~~~~▲**~~~▲▲~~~~▲~~~~~~
  36. ~~▲~~~▲~~~▲~~▲~▲▲▲******▲*******▲***▲▲***~~~~~~~~~~~▲~▲~
  37. ~▲~▲~~~~~~▲~~~~▲*~~***~~~*****▲**▲~*~*~~~~▲▲~~~~~~▲~~~~~
  38. ~~~▲~~~~~~~~~~~~~▲**~*~*▲*▲▲**▲~▲*****▲**▲~~~~~~▲~~▲~~~▲
  39. ▲~▲~~~▲~▲▲▲~~~~▲~*~▲~~▲▲▲**▲********▲***~~~~~▲~~~▲~~~~~~
  40. ~~~~▲~~~~~~▲~~~~~▲~*▲*▲*******▲**▲**▲~~*~~▲~~~~~~~~~▲▲~~
  41. ▲~▲~▲~~▲▲~~~~~~~~▲~**▲******▲********▲~**~▲▲~~~~▲▲~~▲~~▲
  42. `
  43. func TestNewBoard(t *testing.T) {
  44. r := rand.New(rand.NewSource(0))
  45. b := newBoard(56, 35, r)
  46. if testBoard != b.String() {
  47. t.Fatalf("Incorrect board:\n %v", b)
  48. }
  49. }
  50. func BenchmarkNew(b *testing.B) {
  51. for i := 0; i < b.N; i++ {
  52. New(56, 35)
  53. }
  54. }
  55. func BenchmarkRnd(b *testing.B) {
  56. for i := 0; i < b.N; i++ {
  57. for j := 0; j < 50*50; j++ {
  58. rand.Intn(10)
  59. }
  60. }
  61. }
  62. func BenchmarkR(b *testing.B) {
  63. r := rand.New(rand.NewSource(time.Now().UnixNano()))
  64. for i := 0; i < b.N; i++ {
  65. for j := 0; j < 50*50; j++ {
  66. r.Intn(10)
  67. }
  68. }
  69. }