zjowowen's picture
init space
079c32c
raw
history blame
1.25 kB
import pytest
import pickle
import numpy as np
from ding.framework import Context, OnlineRLContext, OfflineRLContext
from dataclasses import dataclass
@dataclass
class MockContext(Context):
hello: str = "world"
keep_me: int = 0
not_keep_me: int = 0
@pytest.mark.unittest
def test_pickable():
ctx = MockContext()
ctx.keep("keep_me")
_ctx = pickle.loads(pickle.dumps(ctx))
assert _ctx.hello == "world"
ctx.keep_me += 1
ctx.not_keep_me += 1
_ctx = ctx.renew()
assert _ctx.keep_me == 1
assert _ctx.not_keep_me == 0
@pytest.mark.unittest
def test_online():
ctx = OnlineRLContext()
assert ctx.env_step == 0
assert ctx.eval_value == -np.inf
ctx.env_step += 1
ctx.eval_value = 1
assert ctx.env_step == 1
assert ctx.eval_value == 1
_ctx = ctx.renew()
assert _ctx.env_step == 1
assert _ctx.eval_value == -np.inf
@pytest.mark.unittest
def test_offline():
ctx = OfflineRLContext()
assert ctx.train_iter == 0
assert ctx.eval_value == -np.inf
ctx.train_iter += 1
ctx.eval_value = 1
assert ctx.train_iter == 1
assert ctx.eval_value == 1
_ctx = ctx.renew()
assert _ctx.train_iter == 1
assert _ctx.eval_value == -np.inf