def METHOD_NAME(state_dim=4, action_dim=2, batch_size=3, net_dims=(64, 32), gpu_id=0):
    device = torch.device(f"cuda:{gpu_id}" if (torch.cuda.is_available() and (gpu_id >= 0)) else "cpu")
    state = torch.rand(size=(batch_size, state_dim), dtype=torch.float32, device=device)
    '''check for agent.AgentDQN'''
    act = QNet(dims=net_dims, state_dim=state_dim, action_dim=action_dim).to(device)
    act.explore_rate = 0.1
    '''check for run.get_rewards_and_steps'''
    action = act(state=state)
    assert isinstance(action, Tensor)
    assert action.dtype in {torch.float}
    assert action.shape == (batch_size, action_dim)
    '''check for agent.AgentDQN.explore_env'''
    action = act.get_action(state=state)
    assert isinstance(action, Tensor)
    assert action.dtype in {torch.int, torch.long}
    assert action.shape == (batch_size, 1)