continual-foragax 0.10.2__tar.gz → 0.11.0__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.2 → continual_foragax-0.11.0}/PKG-INFO +1 -1
  2. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/pyproject.toml +2 -2
  3. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/continual_foragax.egg-info/PKG-INFO +1 -1
  4. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/env.py +2 -3
  5. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/objects.py +31 -0
  6. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/registry.py +17 -0
  7. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/tests/test_foragax.py +30 -30
  8. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/README.md +0 -0
  9. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/setup.cfg +0 -0
  10. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/continual_foragax.egg-info/SOURCES.txt +0 -0
  11. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/continual_foragax.egg-info/dependency_links.txt +0 -0
  12. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/continual_foragax.egg-info/entry_points.txt +0 -0
  13. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/continual_foragax.egg-info/requires.txt +0 -0
  14. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/continual_foragax.egg-info/top_level.txt +0 -0
  15. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/__init__.py +0 -0
  16. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/colors.py +0 -0
  17. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100897.txt +0 -0
  18. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100928.txt +0 -0
  19. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100929.txt +0 -0
  20. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100930.txt +0 -0
  21. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100931.txt +0 -0
  22. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106714.txt +0 -0
  23. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106715.txt +0 -0
  24. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106716.txt +0 -0
  25. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106717.txt +0 -0
  26. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106718.txt +0 -0
  27. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106930.txt +0 -0
  28. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106931.txt +0 -0
  29. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106932.txt +0 -0
  30. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106933.txt +0 -0
  31. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106934.txt +0 -0
  32. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106935.txt +0 -0
  33. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106936.txt +0 -0
  34. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106937.txt +0 -0
  35. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106938.txt +0 -0
  36. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106939.txt +0 -0
  37. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106940.txt +0 -0
  38. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106941.txt +0 -0
  39. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106942.txt +0 -0
  40. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106943.txt +0 -0
  41. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106994.txt +0 -0
  42. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106995.txt +0 -0
  43. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106996.txt +0 -0
  44. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106997.txt +0 -0
  45. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106998.txt +0 -0
  46. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106999.txt +0 -0
  47. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107000.txt +0 -0
  48. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107001.txt +0 -0
  49. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107002.txt +0 -0
  50. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107003.txt +0 -0
  51. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107004.txt +0 -0
  52. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107005.txt +0 -0
  53. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107006.txt +0 -0
  54. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107007.txt +0 -0
  55. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107008.txt +0 -0
  56. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107009.txt +0 -0
  57. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107010.txt +0 -0
  58. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107011.txt +0 -0
  59. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107012.txt +0 -0
  60. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107013.txt +0 -0
  61. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107014.txt +0 -0
  62. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107015.txt +0 -0
  63. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107016.txt +0 -0
  64. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107017.txt +0 -0
  65. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107018.txt +0 -0
  66. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107019.txt +0 -0
  67. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107020.txt +0 -0
  68. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107021.txt +0 -0
  69. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107022.txt +0 -0
  70. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107023.txt +0 -0
  71. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107024.txt +0 -0
  72. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107025.txt +0 -0
  73. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107026.txt +0 -0
  74. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107027.txt +0 -0
  75. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107028.txt +0 -0
  76. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107029.txt +0 -0
  77. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107030.txt +0 -0
  78. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107031.txt +0 -0
  79. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107032.txt +0 -0
  80. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107033.txt +0 -0
  81. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107034.txt +0 -0
  82. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107035.txt +0 -0
  83. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107036.txt +0 -0
  84. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107037.txt +0 -0
  85. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107038.txt +0 -0
  86. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107039.txt +0 -0
  87. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107040.txt +0 -0
  88. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107041.txt +0 -0
  89. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107042.txt +0 -0
  90. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107043.txt +0 -0
  91. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107044.txt +0 -0
  92. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107045.txt +0 -0
  93. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107046.txt +0 -0
  94. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107047.txt +0 -0
  95. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107048.txt +0 -0
  96. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107049.txt +0 -0
  97. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107050.txt +0 -0
  98. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107051.txt +0 -0
  99. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107052.txt +0 -0
  100. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107053.txt +0 -0
  101. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107054.txt +0 -0
  102. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107055.txt +0 -0
  103. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107056.txt +0 -0
  104. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107057.txt +0 -0
  105. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107058.txt +0 -0
  106. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107059.txt +0 -0
  107. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107060.txt +0 -0
  108. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107061.txt +0 -0
  109. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107062.txt +0 -0
  110. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107063.txt +0 -0
  111. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107064.txt +0 -0
  112. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107065.txt +0 -0
  113. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107066.txt +0 -0
  114. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107067.txt +0 -0
  115. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107068.txt +0 -0
  116. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107069.txt +0 -0
  117. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107070.txt +0 -0
  118. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107071.txt +0 -0
  119. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115808.txt +0 -0
  120. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115812.txt +0 -0
  121. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID146811.txt +0 -0
  122. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156831.txt +0 -0
  123. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156835.txt +0 -0
  124. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156839.txt +0 -0
  125. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156843.txt +0 -0
  126. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156847.txt +0 -0
  127. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156851.txt +0 -0
  128. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156855.txt +0 -0
  129. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156859.txt +0 -0
  130. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156863.txt +0 -0
  131. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156867.txt +0 -0
  132. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156871.txt +0 -0
  133. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156875.txt +0 -0
  134. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156879.txt +0 -0
  135. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156883.txt +0 -0
  136. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156887.txt +0 -0
  137. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/elements.txt +0 -0
  138. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/metadata.txt +0 -0
  139. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/data/ECA_non-blended_custom/sources.txt +0 -0
  140. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/src/foragax/rendering.py +0 -0
  141. {continual_foragax-0.10.2 → continual_foragax-0.11.0}/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.2
3
+ Version: 0.11.0
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.2"
3
+ version = "0.11.0"
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.2"
33
+ version = "0.11.0"
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.2
3
+ Version: 0.11.0
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
 
@@ -434,7 +434,6 @@ class ForagaxObjectEnv(ForagaxEnv):
434
434
  # Decode grid for observation
435
435
  obs_grid = jnp.maximum(0, state.object_grid)
436
436
  aperture = self._get_aperture(obs_grid, state.pos)
437
- aperture = jnp.flip(aperture, axis=0)
438
437
 
439
438
  # Handle case with no objects (only EMPTY)
440
439
  if self.num_color_channels == 0:
@@ -179,6 +179,37 @@ DEATHCAP = DefaultForagaxObject(
179
179
  )
180
180
  AGENT = DefaultForagaxObject(name="agent", blocking=True, color=(0, 0, 255))
181
181
 
182
+ BROWN_MOREL = NormalRegenForagaxObject(
183
+ name="brown_morel",
184
+ reward=30.0,
185
+ collectable=True,
186
+ color=(63, 30, 25),
187
+ mean_regen_delay=300,
188
+ std_regen_delay=30,
189
+ )
190
+ BROWN_OYSTER = NormalRegenForagaxObject(
191
+ name="brown_oyster",
192
+ reward=1.0,
193
+ collectable=True,
194
+ color=(63, 30, 25),
195
+ mean_regen_delay=10,
196
+ std_regen_delay=1,
197
+ )
198
+ GREEN_DEATHCAP = DefaultForagaxObject(
199
+ name="green_deathcap",
200
+ reward=-1.0,
201
+ collectable=True,
202
+ color=(0, 255, 0),
203
+ regen_delay=(10, 10),
204
+ )
205
+ GREEN_FAKE = DefaultForagaxObject(
206
+ name="green_fake",
207
+ reward=0.0,
208
+ collectable=True,
209
+ color=(0, 255, 0),
210
+ regen_delay=(10, 10),
211
+ )
212
+
182
213
 
183
214
  def create_weather_objects(
184
215
  file_index: int = 0, repeat: int = 500, multiplier: float = 1.0
@@ -10,6 +10,10 @@ from foragax.env import (
10
10
  ForagaxWorldEnv,
11
11
  )
12
12
  from foragax.objects import (
13
+ BROWN_MOREL,
14
+ BROWN_OYSTER,
15
+ GREEN_DEATHCAP,
16
+ GREEN_FAKE,
13
17
  LARGE_MOREL,
14
18
  LARGE_OYSTER,
15
19
  MEDIUM_MOREL,
@@ -28,6 +32,19 @@ ENV_CONFIGS: Dict[str, Dict[str, Any]] = {
28
32
  Biome(start=(0, 10), stop=(15, 12), object_frequencies=(0.0, 0.5)),
29
33
  ),
30
34
  },
35
+ "ForagaxTwoBiome-v1": {
36
+ "size": (15, 15),
37
+ "aperture_size": None,
38
+ "objects": (BROWN_MOREL, BROWN_OYSTER, GREEN_DEATHCAP, GREEN_FAKE),
39
+ "biomes": (
40
+ # Morel biome
41
+ Biome(start=(3, 0), stop=(5, 15), object_frequencies=(0.5, 0.0, 0.25, 0.0)),
42
+ # Oyster biome
43
+ Biome(
44
+ start=(10, 0), stop=(12, 15), object_frequencies=(0.0, 0.5, 0.0, 0.25)
45
+ ),
46
+ ),
47
+ },
31
48
  "ForagaxTwoBiomeSmall-v1": {
32
49
  "size": (16, 8),
33
50
  "aperture_size": None,
@@ -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)