10
10
import torch
11
11
import gymnasium as gym
12
12
13
- from velora .buffer .experience import Experience
14
13
from velora .callbacks import CometAnalytics , EarlyStopping , SaveCheckpoints
15
14
from velora .metrics .models import Episode
16
15
from velora .models import LiquidNCPNetwork
@@ -117,13 +116,11 @@ def ddpg(self, ddpg_params: DDPGParamsType) -> LiquidDDPG:
117
116
def env (self ) -> gym .Env :
118
117
return gym .make ("InvertedPendulum-v5" , render_mode = "rgb_array" )
119
118
120
- def test_init (self , ddpg : LiquidDDPG , ddpg_params : DDPGParamsType ):
119
+ def test_init (self , ddpg : LiquidDDPG ):
121
120
assert isinstance (ddpg .actor , DDPGActor )
122
121
assert isinstance (ddpg .critic , DDPGCritic )
123
122
assert isinstance (ddpg .actor_target , DDPGActor )
124
123
assert isinstance (ddpg .critic_target , DDPGCritic )
125
- assert len (ddpg .buffer ) == 0
126
- assert ddpg .buffer .capacity == ddpg_params ["buffer_size" ]
127
124
128
125
def test_update_target_networks (self , ddpg : LiquidDDPG ):
129
126
tau = 0.005
@@ -170,9 +167,7 @@ def test_train_step(self, ddpg: LiquidDDPG):
170
167
next_state = torch .zeros (ddpg .state_dim )
171
168
done = False
172
169
173
- # Create Experience object explicitly
174
- exp = Experience (state , action , reward , next_state , done )
175
- ddpg .buffer .add (exp )
170
+ ddpg .buffer .add (state , action , reward , next_state , done )
176
171
177
172
# Perform training step
178
173
result = ddpg ._train_step (batch_size , gamma )
@@ -188,9 +183,12 @@ def test_train_step_insufficient_buffer(self, ddpg: LiquidDDPG):
188
183
189
184
# Add fewer experiences than batch_size
190
185
for _ in range (batch_size - 1 ):
191
- state = torch .zeros (ddpg .state_dim )
192
- exp = Experience (state , 1.0 , 2.0 , state , False )
193
- ddpg .buffer .add (exp )
186
+ state = torch .zeros ([ddpg .state_dim ])
187
+ action = torch .tensor ([1.0 ])
188
+ reward = 2.0
189
+ next_state = torch .zeros (ddpg .state_dim )
190
+ done = False
191
+ ddpg .buffer .add (state , action , reward , next_state , done )
194
192
195
193
# Should return None when buffer is insufficient
196
194
result = ddpg ._train_step (batch_size , gamma )
@@ -227,8 +225,7 @@ def test_save_load_with_buffer(self, ddpg: LiquidDDPG):
227
225
reward = float (i * 0.5 )
228
226
next_state = torch .ones (ddpg .state_dim )
229
227
done = i == 9
230
- exp = Experience (state , action , reward , next_state , done )
231
- ddpg .buffer .add (exp )
228
+ ddpg .buffer .add (state , action , reward , next_state , done )
232
229
233
230
with tempfile .TemporaryDirectory () as temp_dir :
234
231
filepath = os .path .join (temp_dir , "model.pt" )
0 commit comments