Skip to content

Commit 9f19d5e

Browse files
committed
test env fixes
1 parent bbbf27f commit 9f19d5e

5 files changed

Lines changed: 11 additions & 15 deletions

File tree

config/target.ini

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
[base]
22
env_name = target
33

4-
[env]
5-
width = 1080
6-
height = 720
7-
84
[vec]
95
total_agents = 4096
106
num_buffers = 2

ocean/scape/binding.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
#include "target.h"
1+
#include "scape.h"
22
#define OBS_SIZE 28
33
#define NUM_ATNS 2
44
#define ACT_SIZES {9, 5}
5-
#define OBS_TYPE FLOAT
6-
#define ACT_TYPE DOUBLE
5+
#define OBS_TENSOR_T FloatTensor
76

8-
#define Env Target
7+
#define Env Scape
98
#include "vecenv.h"
109

1110
void my_init(Env* env, Dict* kwargs) {

ocean/squared/binding.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
#define OBS_SIZE 121
33
#define NUM_ATNS 1
44
#define ACT_SIZES {5}
5-
#define OBS_TYPE UNSIGNED_CHAR
6-
#define ACT_TYPE DOUBLE
5+
#define OBS_TENSOR_T ByteTensor
76

87
#define Env Squared
98
#include "vecenv.h"

ocean/squared/squared.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,23 @@ typedef struct {
2424
float score; // Recommended unnormalized single real number perf metric
2525
float episode_return; // Recommended metric: sum of agent rewards over episode
2626
float episode_length; // Recommended metric: number of steps of agent episode
27-
// Any extra fields you add here may be exported to Python in binding.c
27+
// Any extra fields you add here may be exported in binding.c
2828
float n; // Required as the last field
2929
} Log;
3030

3131
// Required that you have some struct for your env
32-
// Recommended that you name it the same as the env file
3332
typedef struct {
3433
Log log; // Required field. Env binding code uses this to aggregate logs
3534
unsigned char* observations; // Required. You can use any obs type, but make sure it matches in Python!
36-
double* actions; // Required. double* for new API
35+
float* actions; // Required
3736
float* rewards; // Required
3837
float* terminals; // Required
3938
int num_agents;
4039
int size;
4140
int tick;
4241
int r;
4342
int c;
43+
unsigned int rng;
4444
} Squared;
4545

4646
void add_log(Squared* env) {
@@ -61,7 +61,7 @@ void c_reset(Squared* env) {
6161
env->tick = 0;
6262
int target_idx = 0; // Deterministic for testing
6363
do {
64-
target_idx = rand() % tiles;
64+
target_idx = rand_r(&env->rng) % tiles;
6565
} while (target_idx == tiles/2);
6666
env->observations[target_idx] = TARGET;
6767
}
@@ -70,7 +70,7 @@ void c_reset(Squared* env) {
7070
void c_step(Squared* env) {
7171
env->tick += 1;
7272

73-
int action = env->actions[0];
73+
int action = (int)env->actions[0];
7474
env->terminals[0] = 0;
7575
env->rewards[0] = 0;
7676

pufferlib/pufferl.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,8 @@ def load_config(env_name):
492492
prev[subkey] = value
493493

494494
args['env_name'] = env_name
495+
for section in p.sections():
496+
args.setdefault(section, {})
495497
return dict(args)
496498

497499
def main():

0 commit comments

Comments
 (0)