continual-foragax 0.10.1__tar.gz → 0.10.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/PKG-INFO +1 -1
  2. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/pyproject.toml +2 -2
  3. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/continual_foragax.egg-info/PKG-INFO +1 -1
  4. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/env.py +8 -5
  5. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/rendering.py +5 -2
  6. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/tests/test_foragax.py +30 -30
  7. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/README.md +0 -0
  8. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/setup.cfg +0 -0
  9. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/continual_foragax.egg-info/SOURCES.txt +0 -0
  10. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/continual_foragax.egg-info/dependency_links.txt +0 -0
  11. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/continual_foragax.egg-info/entry_points.txt +0 -0
  12. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/continual_foragax.egg-info/requires.txt +0 -0
  13. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/continual_foragax.egg-info/top_level.txt +0 -0
  14. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/__init__.py +0 -0
  15. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/colors.py +0 -0
  16. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100897.txt +0 -0
  17. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100928.txt +0 -0
  18. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100929.txt +0 -0
  19. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100930.txt +0 -0
  20. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100931.txt +0 -0
  21. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106714.txt +0 -0
  22. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106715.txt +0 -0
  23. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106716.txt +0 -0
  24. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106717.txt +0 -0
  25. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106718.txt +0 -0
  26. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106930.txt +0 -0
  27. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106931.txt +0 -0
  28. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106932.txt +0 -0
  29. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106933.txt +0 -0
  30. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106934.txt +0 -0
  31. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106935.txt +0 -0
  32. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106936.txt +0 -0
  33. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106937.txt +0 -0
  34. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106938.txt +0 -0
  35. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106939.txt +0 -0
  36. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106940.txt +0 -0
  37. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106941.txt +0 -0
  38. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106942.txt +0 -0
  39. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106943.txt +0 -0
  40. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106994.txt +0 -0
  41. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106995.txt +0 -0
  42. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106996.txt +0 -0
  43. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106997.txt +0 -0
  44. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106998.txt +0 -0
  45. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106999.txt +0 -0
  46. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107000.txt +0 -0
  47. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107001.txt +0 -0
  48. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107002.txt +0 -0
  49. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107003.txt +0 -0
  50. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107004.txt +0 -0
  51. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107005.txt +0 -0
  52. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107006.txt +0 -0
  53. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107007.txt +0 -0
  54. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107008.txt +0 -0
  55. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107009.txt +0 -0
  56. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107010.txt +0 -0
  57. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107011.txt +0 -0
  58. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107012.txt +0 -0
  59. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107013.txt +0 -0
  60. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107014.txt +0 -0
  61. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107015.txt +0 -0
  62. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107016.txt +0 -0
  63. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107017.txt +0 -0
  64. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107018.txt +0 -0
  65. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107019.txt +0 -0
  66. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107020.txt +0 -0
  67. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107021.txt +0 -0
  68. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107022.txt +0 -0
  69. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107023.txt +0 -0
  70. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107024.txt +0 -0
  71. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107025.txt +0 -0
  72. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107026.txt +0 -0
  73. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107027.txt +0 -0
  74. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107028.txt +0 -0
  75. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107029.txt +0 -0
  76. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107030.txt +0 -0
  77. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107031.txt +0 -0
  78. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107032.txt +0 -0
  79. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107033.txt +0 -0
  80. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107034.txt +0 -0
  81. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107035.txt +0 -0
  82. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107036.txt +0 -0
  83. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107037.txt +0 -0
  84. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107038.txt +0 -0
  85. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107039.txt +0 -0
  86. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107040.txt +0 -0
  87. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107041.txt +0 -0
  88. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107042.txt +0 -0
  89. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107043.txt +0 -0
  90. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107044.txt +0 -0
  91. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107045.txt +0 -0
  92. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107046.txt +0 -0
  93. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107047.txt +0 -0
  94. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107048.txt +0 -0
  95. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107049.txt +0 -0
  96. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107050.txt +0 -0
  97. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107051.txt +0 -0
  98. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107052.txt +0 -0
  99. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107053.txt +0 -0
  100. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107054.txt +0 -0
  101. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107055.txt +0 -0
  102. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107056.txt +0 -0
  103. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107057.txt +0 -0
  104. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107058.txt +0 -0
  105. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107059.txt +0 -0
  106. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107060.txt +0 -0
  107. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107061.txt +0 -0
  108. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107062.txt +0 -0
  109. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107063.txt +0 -0
  110. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107064.txt +0 -0
  111. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107065.txt +0 -0
  112. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107066.txt +0 -0
  113. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107067.txt +0 -0
  114. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107068.txt +0 -0
  115. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107069.txt +0 -0
  116. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107070.txt +0 -0
  117. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107071.txt +0 -0
  118. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115808.txt +0 -0
  119. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115812.txt +0 -0
  120. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID146811.txt +0 -0
  121. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156831.txt +0 -0
  122. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156835.txt +0 -0
  123. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156839.txt +0 -0
  124. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156843.txt +0 -0
  125. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156847.txt +0 -0
  126. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156851.txt +0 -0
  127. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156855.txt +0 -0
  128. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156859.txt +0 -0
  129. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156863.txt +0 -0
  130. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156867.txt +0 -0
  131. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156871.txt +0 -0
  132. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156875.txt +0 -0
  133. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156879.txt +0 -0
  134. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156883.txt +0 -0
  135. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156887.txt +0 -0
  136. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/elements.txt +0 -0
  137. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/metadata.txt +0 -0
  138. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/data/ECA_non-blended_custom/sources.txt +0 -0
  139. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/objects.py +0 -0
  140. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/registry.py +0 -0
  141. {continual_foragax-0.10.1 → continual_foragax-0.10.3}/src/foragax/weather.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continual-foragax
3
- Version: 0.10.1
3
+ Version: 0.10.3
4
4
  Summary: A continual reinforcement learning benchmark
5
5
  Author-email: Steven Tang <stang5@ualberta.ca>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "continual-foragax"
3
- version = "0.10.1"
3
+ version = "0.10.3"
4
4
  description = "A continual reinforcement learning benchmark"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -30,7 +30,7 @@ build-backend = "setuptools.build_meta"
30
30
  [tool]
31
31
  [tool.commitizen]
32
32
  name = "cz_conventional_commits"
33
- version = "0.10.1"
33
+ version = "0.10.3"
34
34
  tag_format = "$version"
35
35
  version_files = ["pyproject.toml"]
36
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continual-foragax
3
- Version: 0.10.1
3
+ Version: 0.10.3
4
4
  Summary: A continual reinforcement learning benchmark
5
5
  Author-email: Steven Tang <stang5@ualberta.ca>
6
6
  Requires-Python: >=3.8
@@ -19,9 +19,9 @@ from foragax.weather import get_temperature
19
19
 
20
20
 
21
21
  class Actions(IntEnum):
22
- UP = 0
22
+ DOWN = 0
23
23
  RIGHT = 1
24
- DOWN = 2
24
+ UP = 2
25
25
  LEFT = 3
26
26
 
27
27
 
@@ -348,7 +348,9 @@ class ForagaxEnv(environment.Environment):
348
348
 
349
349
  if is_true_mode:
350
350
  # Apply true object borders by overlaying true colors on border pixels
351
- img = apply_true_borders(img, render_grid, self.size)
351
+ img = apply_true_borders(
352
+ img, render_grid, self.size, len(self.object_ids)
353
+ )
352
354
 
353
355
  # Add grid lines for world mode
354
356
  grid_color = jnp.zeros(3, dtype=jnp.uint8)
@@ -376,7 +378,9 @@ class ForagaxEnv(environment.Environment):
376
378
 
377
379
  if is_true_mode:
378
380
  # Apply true object borders by overlaying true colors on border pixels
379
- img = apply_true_borders(img, aperture, self.aperture_size)
381
+ img = apply_true_borders(
382
+ img, aperture, self.aperture_size, len(self.object_ids)
383
+ )
380
384
 
381
385
  # Add grid lines for aperture mode
382
386
  grid_color = jnp.zeros(3, dtype=jnp.uint8)
@@ -430,7 +434,6 @@ class ForagaxObjectEnv(ForagaxEnv):
430
434
  # Decode grid for observation
431
435
  obs_grid = jnp.maximum(0, state.object_grid)
432
436
  aperture = self._get_aperture(obs_grid, state.pos)
433
- aperture = jnp.flip(aperture, axis=0)
434
437
 
435
438
  # Handle case with no objects (only EMPTY)
436
439
  if self.num_color_channels == 0:
@@ -9,7 +9,10 @@ from foragax.colors import hsv_to_rgb_255
9
9
 
10
10
 
11
11
  def apply_true_borders(
12
- base_img: jax.Array, true_grid: jax.Array, grid_size: Tuple[int, int]
12
+ base_img: jax.Array,
13
+ true_grid: jax.Array,
14
+ grid_size: Tuple[int, int],
15
+ num_objects: int,
13
16
  ) -> jax.Array:
14
17
  """Apply true object borders by overlaying HSV border colors on border pixels.
15
18
 
@@ -17,12 +20,12 @@ def apply_true_borders(
17
20
  base_img: Base image with object colors
18
21
  true_grid: Grid of object IDs for determining border colors
19
22
  grid_size: (height, width) of the grid
23
+ num_objects: Number of object types
20
24
 
21
25
  Returns:
22
26
  Image with HSV borders overlaid on border pixels
23
27
  """
24
28
  # Create HSV border colors for each object type
25
- num_objects = true_grid.max() + 1 # Assume object IDs start from 0
26
29
  hues = jnp.linspace(0, 1, num_objects, endpoint=False)
27
30
 
28
31
  # Convert HSV to RGB for border colors
@@ -185,7 +185,7 @@ def test_basic_movement():
185
185
 
186
186
  # stays still when bumping into a wall
187
187
  key, step_key = jax.random.split(key)
188
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
188
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
189
189
  assert jnp.array_equal(state.pos, jnp.array([3, 3]))
190
190
 
191
191
  key, step_key = jax.random.split(key)
@@ -197,7 +197,7 @@ def test_basic_movement():
197
197
  assert jnp.array_equal(state.pos, jnp.array([3, 3]))
198
198
 
199
199
  key, step_key = jax.random.split(key)
200
- _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
200
+ _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
201
201
  assert jnp.array_equal(state.pos, jnp.array([3, 2]))
202
202
 
203
203
 
@@ -222,10 +222,10 @@ def test_vision():
222
222
 
223
223
  # No movement
224
224
  key, step_key = jax.random.split(key)
225
- obs, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
225
+ obs, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
226
226
 
227
227
  expected = jnp.zeros((3, 3, 1), dtype=int)
228
- expected = expected.at[0, 1, 0].set(1)
228
+ expected = expected.at[2, 1, 0].set(1)
229
229
 
230
230
  chex.assert_trees_all_equal(state.pos, jnp.array([3, 3]))
231
231
  chex.assert_trees_all_equal(obs, expected)
@@ -234,10 +234,10 @@ def test_vision():
234
234
  key, step_key = jax.random.split(key)
235
235
  obs, state, _, _, _ = env.step(step_key, state, Actions.RIGHT, params)
236
236
  key, step_key = jax.random.split(key)
237
- obs, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
237
+ obs, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
238
238
  expected = jnp.zeros((3, 3, 1), dtype=int)
239
- expected = expected.at[0, 0, 0].set(1)
240
239
  expected = expected.at[1, 0, 0].set(1)
240
+ expected = expected.at[2, 0, 0].set(1)
241
241
 
242
242
  chex.assert_trees_all_equal(state.pos, jnp.array([4, 4]))
243
243
  chex.assert_trees_all_equal(obs, expected)
@@ -264,7 +264,7 @@ def test_respawn():
264
264
 
265
265
  # Collect the flower
266
266
  key, step_key = jax.random.split(key)
267
- _, state, reward, _, _ = env.step_env(step_key, state, Actions.UP, params)
267
+ _, state, reward, _, _ = env.step_env(step_key, state, Actions.DOWN, params)
268
268
  assert reward == FLOWER.reward_val
269
269
  assert state.object_grid[4, 3] < 0
270
270
 
@@ -273,11 +273,11 @@ def test_respawn():
273
273
  # Step until it respawns
274
274
  for i in range(steps_until_respawn):
275
275
  key, step_key = jax.random.split(key)
276
- _, state, _, _, _ = env.step_env(step_key, state, Actions.UP, params)
276
+ _, state, _, _, _ = env.step_env(step_key, state, Actions.DOWN, params)
277
277
  assert state.object_grid[4, 3] < 0
278
278
 
279
279
  key, step_key = jax.random.split(key)
280
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
280
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
281
281
  assert state.object_grid[4, 3] == flower_id
282
282
 
283
283
 
@@ -291,38 +291,38 @@ def test_wrapping_dynamics():
291
291
  # Go up
292
292
  assert jnp.array_equal(state.pos, jnp.array([2, 2]))
293
293
  key, step_key = jax.random.split(key)
294
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
294
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
295
295
  assert jnp.array_equal(state.pos, jnp.array([2, 3]))
296
296
  key, step_key = jax.random.split(key)
297
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
297
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
298
298
  assert jnp.array_equal(state.pos, jnp.array([2, 4]))
299
299
  key, step_key = jax.random.split(key)
300
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
300
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
301
301
  assert jnp.array_equal(state.pos, jnp.array([2, 0]))
302
302
  key, step_key = jax.random.split(key)
303
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
303
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
304
304
  assert jnp.array_equal(state.pos, jnp.array([2, 1]))
305
305
  key, step_key = jax.random.split(key)
306
- _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
306
+ _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
307
307
  assert jnp.array_equal(state.pos, jnp.array([2, 2]))
308
308
 
309
309
  # Go down
310
310
  _, state = env.reset(key, params)
311
311
  assert jnp.array_equal(state.pos, jnp.array([2, 2]))
312
312
  key, step_key = jax.random.split(key)
313
- _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
313
+ _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
314
314
  assert jnp.array_equal(state.pos, jnp.array([2, 1]))
315
315
  key, step_key = jax.random.split(key)
316
- _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
316
+ _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
317
317
  assert jnp.array_equal(state.pos, jnp.array([2, 0]))
318
318
  key, step_key = jax.random.split(key)
319
- _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
319
+ _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
320
320
  assert jnp.array_equal(state.pos, jnp.array([2, 4]))
321
321
  key, step_key = jax.random.split(key)
322
- _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
322
+ _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
323
323
  assert jnp.array_equal(state.pos, jnp.array([2, 3]))
324
324
  key, step_key = jax.random.split(key)
325
- _, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
325
+ _, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
326
326
  assert jnp.array_equal(state.pos, jnp.array([2, 2]))
327
327
 
328
328
  # Go right
@@ -387,10 +387,10 @@ def test_wrapping_vision():
387
387
 
388
388
  # go down
389
389
  key, step_key = jax.random.split(key)
390
- obs, state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
390
+ obs, state, _, _, _ = env.step(step_key, state, Actions.UP, params)
391
391
 
392
392
  expected = jnp.zeros((3, 3, 1), dtype=int)
393
- expected = expected.at[2, 0, 0].set(1)
393
+ expected = expected.at[0, 0, 0].set(1)
394
394
 
395
395
  assert jnp.array_equal(state.pos, jnp.array([1, 1]))
396
396
  assert jnp.array_equal(obs, expected)
@@ -402,7 +402,7 @@ def test_wrapping_vision():
402
402
  obs, state, _, _, _ = env.step(step_key, state, Actions.LEFT, params)
403
403
 
404
404
  expected = jnp.zeros((3, 3, 1), dtype=int)
405
- expected = expected.at[2, 2, 0].set(1)
405
+ expected = expected.at[0, 2, 0].set(1)
406
406
 
407
407
  assert jnp.array_equal(state.pos, jnp.array([4, 1]))
408
408
  assert jnp.array_equal(obs, expected)
@@ -476,7 +476,7 @@ def test_color_based_partial_observability():
476
476
  center_obs = obs[2, 2, :] # MOREL at center
477
477
  morel_obs = obs[2, 3, :] # LARGE_MOREL
478
478
  med_morel_obs = obs[2, 4, :] # MEDIUM_MOREL
479
- flower_obs = obs[1, 2, :] # FLOWER (flipped coordinates)
479
+ flower_obs = obs[3, 2, :] # FLOWER (flipped coordinates)
480
480
 
481
481
  # All morels should have the same observation (channel 0 activated)
482
482
  chex.assert_trees_all_equal(center_obs, jnp.array([1.0, 0.0]))
@@ -616,14 +616,14 @@ def test_benchmark_vision(benchmark):
616
616
  @jax.jit
617
617
  def _run(state, key):
618
618
  key, step_key = jax.random.split(key)
619
- obs, new_state, _, _, _ = env.step(step_key, state, Actions.UP, params)
619
+ obs, new_state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
620
620
  return obs, new_state
621
621
 
622
622
  # warm-up
623
623
  obs, new_state = _run(state, key)
624
624
 
625
625
  expected = jnp.zeros((3, 3, 1), dtype=int)
626
- expected = expected.at[0, 1, 0].set(1)
626
+ expected = expected.at[2, 1, 0].set(1)
627
627
 
628
628
  chex.assert_trees_all_equal(new_state.pos, jnp.array([3, 3]))
629
629
  chex.assert_trees_all_equal(obs, expected)
@@ -674,7 +674,7 @@ def test_benchmark_small_env(benchmark):
674
674
  def f(carry, _):
675
675
  state, key = carry
676
676
  key, step_key = jax.random.split(key, 2)
677
- _, new_state, _, _, _ = env.step(step_key, state, Actions.UP, params)
677
+ _, new_state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
678
678
  return (new_state, key), None
679
679
 
680
680
  (final_state, _), _ = jax.lax.scan(f, (state, key), None, length=1000)
@@ -709,7 +709,7 @@ def test_benchmark_big_env(benchmark):
709
709
  def f(carry, _):
710
710
  state, key = carry
711
711
  key, step_key = jax.random.split(key, 2)
712
- _, new_state, _, _, _ = env.step(step_key, state, Actions.UP, params)
712
+ _, new_state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
713
713
  return (new_state, key), None
714
714
 
715
715
  (final_state, _), _ = jax.lax.scan(f, (state, key), None, length=100)
@@ -750,7 +750,7 @@ def test_benchmark_vmap_env(benchmark):
750
750
  key, step_key = jax.random.split(key, 2)
751
751
  step_keys = jax.random.split(step_key, num_envs)
752
752
  _, new_states, _, _, _ = jax.vmap(env.step, in_axes=(0, 0, None, None))(
753
- step_keys, states, Actions.UP, params
753
+ step_keys, states, Actions.DOWN, params
754
754
  )
755
755
  return (new_states, key), None
756
756
 
@@ -786,7 +786,7 @@ def test_benchmark_small_env_color(benchmark):
786
786
  def f(carry, _):
787
787
  state, key = carry
788
788
  key, step_key = jax.random.split(key, 2)
789
- _, new_state, _, _, _ = env.step(step_key, state, Actions.UP, params)
789
+ _, new_state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
790
790
  return (new_state, key), None
791
791
 
792
792
  (final_state, _), _ = jax.lax.scan(f, (state, key), None, length=100)
@@ -818,7 +818,7 @@ def test_benchmark_small_env_world(benchmark):
818
818
  def f(carry, _):
819
819
  state, key = carry
820
820
  key, step_key = jax.random.split(key, 2)
821
- _, new_state, _, _, _ = env.step(step_key, state, Actions.UP, params)
821
+ _, new_state, _, _, _ = env.step(step_key, state, Actions.DOWN, params)
822
822
  return (new_state, key), None
823
823
 
824
824
  (final_state, _), _ = jax.lax.scan(f, (state, key), None, length=100)