@@ -114,6 +114,8 @@ using Test
114114 @test eb. episodes_lengths[end ] == 0
115115 @test eb. step_numbers[end ] == 1
116116 @test eb. sampleable_inds == [1 ,1 ,1 ,1 ,1 ,0 ,0 ]
117+ @test eb[:action ][6 ] == 6
118+ @test eb[:next_action ][6 ] == 6
117119 @test eb[6 ][:reward ] == 0 # 6 is not a valid index, the reward there is dummy, filled as zero
118120 ep2_len = 0
119121 for (j,i) = enumerate (8 : 11 )
@@ -235,7 +237,7 @@ using Test
235237 end
236238 @test eb. sampleable_inds == [1 ,1 ,1 ,1 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ]
237239 @test length (eb. traces) == 10
238- # three last steps replace oldest steps in the buffer.
240+
239241 for (i, s) = enumerate (12 : 13 )
240242 ep2_len += 1
241243 push! (eb, (state = s, action = s- 1 , reward = s- 1 , terminal = false ))
@@ -245,16 +247,16 @@ using Test
245247 @test eb. episodes_lengths[end - ep2_len: end ] == fill (ep2_len, ep2_len + 1 )
246248 end
247249 # episode 1
248- for (i,s) in enumerate ( 3 : 13 )
249- if i in (4 , 11 )
250+ for i in 3 : 13
251+ if i in (6 , 13 )
250252 @test eb. sampleable_inds[i] == 0
251253 continue
252254 else
253255 @test eb. sampleable_inds[i] == 1
254256 end
255257 b = eb[i]
256- @test b[:state ] == b[:action ] == b[:reward ] == s
257- @test b[:next_state ] == s + 1
258+ @test b[:state ] == b[:action ] == b[:reward ] == i
259+ @test b[:next_state ] == i + 1
258260 end
259261 # episode 2
260262 # start a third episode
@@ -263,13 +265,14 @@ using Test
263265 @test eb. sampleable_inds[end - 1 ] == 0
264266 @test eb. episodes_lengths[end ] == 0
265267 @test eb. step_numbers[end ] == 1
266- # push until it reaches it own start
268+
267269 for (i,s) in enumerate (15 : 26 )
268270 push! (eb, (state = s, action = s- 1 , reward = s- 1 , terminal = false ))
269271 end
270- @test eb. sampleable_inds == [fill (true , 10 ); [false ]]
271- @test eb. episodes_lengths == fill (length (15 : 26 ), 11 )
272- @test eb. step_numbers == [3 : 13 ;]
272+ @test eb. sampleable_inds[end - 5 : end ] == [fill (true , 5 ); [false ]]
273+ @test eb. episodes_lengths[end - 10 : end ] == fill (length (15 : 26 ), 11 )
274+ @test eb. step_numbers[end - 10 : end ] == [3 : 13 ;]
275+ #= Deactivated until https://github.com/JuliaArrays/ElasticArrays.jl/pull/56/files merged and pop!/popfirst! added to ElasticArrays
273276 step = popfirst!(eb)
274277 @test length(eb) == length(eb.sampleable_inds) - 1 == length(eb.step_numbers) - 1 == length(eb.episodes_lengths) - 1 == 9
275278 @test first(eb.step_numbers) == 4
@@ -280,11 +283,11 @@ using Test
280283 empty!(eb)
281284 @test size(eb) == (0,) == size(eb.traces) == size(eb.sampleable_inds) == size(eb.episodes_lengths) == size(eb.step_numbers)
282285 show(eb);
286+ =#
283287 end
284- @testset " with PartialNamedTuple" begin
288+ @testset " ElasticArraySARTSATraces with PartialNamedTuple" begin
285289 eb = EpisodesBuffer (
286- ElasticArraySARTSATraces (;
287- capacity= 10 )
290+ ElasticArraySARTSATraces ()
288291 )
289292 # push a first episode l=5
290293 push! (eb, (state = 1 ,))
@@ -308,6 +311,8 @@ using Test
308311 @test eb. episodes_lengths[end ] == 0
309312 @test eb. step_numbers[end ] == 1
310313 @test eb. sampleable_inds == [1 ,1 ,1 ,1 ,1 ,0 ,0 ]
314+ @test eb[:action ][6 ] == 6
315+ @test eb[:next_action ][6 ] == 6
311316 @test eb[6 ][:reward ] == 0 # 6 is not a valid index, the reward there is dummy, filled as zero
312317 ep2_len = 0
313318 for (j,i) = enumerate (8 : 11 )
@@ -358,6 +363,7 @@ using Test
358363 @test eb. sampleable_inds == [fill (true , 10 ); [false ]]
359364 @test eb. episodes_lengths == fill (length (15 : 26 ), 11 )
360365 @test eb. step_numbers == [3 : 13 ;]
366+ #= Deactivated until https://github.com/JuliaArrays/ElasticArrays.jl/pull/56/files merged and pop!/popfirst! added to ElasticArrays
361367 step = popfirst!(eb)
362368 @test length(eb) == length(eb.sampleable_inds) - 1 == length(eb.step_numbers) - 1 == length(eb.episodes_lengths) - 1 == 9
363369 @test first(eb.step_numbers) == 4
@@ -368,5 +374,6 @@ using Test
368374 empty!(eb)
369375 @test size(eb) == (0,) == size(eb.traces) == size(eb.sampleable_inds) == size(eb.episodes_lengths) == size(eb.step_numbers)
370376 show(eb);
377+ =#
371378 end
372379end
0 commit comments