/rlglue/tests/test_1_experiment.go

https://code.google.com/p/go-glue/ · Go · 123 lines · 121 code · 2 blank · 0 comment · 81 complexity · 79fe41995f68b608922226d70cc7b3a7 MD5 · raw file

  1. package main
  2. import (
  3. "os"
  4. "fmt"
  5. "go-glue.googlecode.com/hg/rlglue"
  6. )
  7. func main() {
  8. var err os.Error
  9. defer func() {
  10. if err != nil {
  11. panic(err)
  12. }
  13. }()
  14. gt := &GlueTester{"test_1", 0, 0}
  15. ex := new(rlglue.Experiment)
  16. if err = ex.AutoConnect(); err != nil {
  17. return
  18. }
  19. if _, err = ex.Init(); err != nil {
  20. return
  21. }
  22. if _, _, err = ex.Start(); err != nil {
  23. return
  24. }
  25. var obs rlglue.Observation
  26. var r float64
  27. var t bool
  28. var reply string
  29. if obs, _, r, t, err = ex.Step(); err != nil {
  30. return
  31. }
  32. reply, err = ex.EnvironmentMessage("one")
  33. gt.check("one|1.|one" != reply)
  34. reply, err = ex.AgentMessage("one")
  35. gt.check("one|1.|one" != reply)
  36. gt.check(t != false)
  37. gt.check(r != 1.0)
  38. gt.check(len(obs.Ints()) != 1)
  39. gt.check(len(obs.Doubles()) != 0)
  40. gt.check(len(obs.Chars()) != 0)
  41. gt.check(obs.Ints()[0] != 0)
  42. if obs, _, r, t, err = ex.Step(); err != nil {
  43. return
  44. }
  45. reply, err = ex.EnvironmentMessage("two")
  46. gt.check("two|2.2.|two" != reply)
  47. reply, err = ex.AgentMessage("two")
  48. gt.check("two|2.2.|two" != reply)
  49. gt.check(t != false)
  50. gt.check(r != 1.0)
  51. gt.check(len(obs.Ints()) != 1)
  52. gt.check(len(obs.Doubles()) != 0)
  53. gt.check(len(obs.Chars()) != 0)
  54. gt.check(obs.Ints()[0] != 1)
  55. if obs, _, r, t, err = ex.Step(); err != nil {
  56. return
  57. }
  58. reply, err = ex.EnvironmentMessage("three")
  59. gt.check("three||three" != reply)
  60. reply, err = ex.AgentMessage("three")
  61. gt.check("three||three" != reply)
  62. gt.check(t != false)
  63. gt.check(r != 1.0)
  64. gt.check(len(obs.Ints()) != 1)
  65. gt.check(len(obs.Doubles()) != 0)
  66. gt.check(len(obs.Chars()) != 0)
  67. gt.check(obs.Ints()[0] != 2)
  68. if obs, _, r, t, err = ex.Step(); err != nil {
  69. return
  70. }
  71. reply, err = ex.EnvironmentMessage("four")
  72. gt.check("four|4.|four" != reply)
  73. reply, err = ex.AgentMessage("four")
  74. gt.check("four|4.|four" != reply)
  75. gt.check(t != false)
  76. gt.check(r != 1.0)
  77. gt.check(len(obs.Ints()) != 1)
  78. gt.check(len(obs.Doubles()) != 0)
  79. gt.check(len(obs.Chars()) != 0)
  80. gt.check(obs.Ints()[0] != 3)
  81. if obs, _, r, t, err = ex.Step(); err != nil {
  82. return
  83. }
  84. reply, err = ex.EnvironmentMessage("five")
  85. gt.check("five|5.5.|five" != reply)
  86. reply, err = ex.AgentMessage("five")
  87. gt.check("five|4.|five" != reply)
  88. gt.check(t == false)
  89. gt.check(r != 1.0)
  90. if obs, _, r, t, err = ex.Step(); err != nil {
  91. return
  92. }
  93. gt.check(t != false)
  94. gt.check(r != -2.0)
  95. gt.check(len(obs.Ints()) != 5)
  96. gt.check(len(obs.Doubles()) != 5)
  97. gt.check(len(obs.Chars()) != 5)
  98. gt.check(obs.Ints()[0] != 173)
  99. gt.check(obs.Ints()[1] != -173)
  100. gt.check(obs.Ints()[2] != 2147483647)
  101. gt.check(obs.Ints()[3] != 0)
  102. gt.check(obs.Ints()[4] != -2147483648)
  103. gt.check(obs.Doubles()[0] != 0.0078125)
  104. gt.check(obs.Doubles()[1] != -0.0078125)
  105. gt.check(obs.Doubles()[2] != 0.0)
  106. gt.check(obs.Doubles()[3] != 0.0078125e150)
  107. gt.check(obs.Doubles()[4] != -0.0078125e150)
  108. gt.check(obs.Chars()[0] != 'g')
  109. gt.check(obs.Chars()[1] != 'F')
  110. gt.check(obs.Chars()[2] != '?')
  111. gt.check(obs.Chars()[3] != ' ')
  112. gt.check(obs.Chars()[4] != '&')
  113. if err = ex.Cleanup(); err != nil {
  114. return
  115. }
  116. if err = ex.Close(); err != nil {
  117. return
  118. }
  119. fmt.Printf("%v\n", gt)
  120. os.Exit(gt.failCount)
  121. }