docstr: Test if DDPPO will raise errors after invalid configs are passed.
docstr_tok: ["Test","if","DDPPO","will","raise","errors","after","invalid","configs","are","passed","."]
code: def test_validate_config(self):
      """Test if DDPPO will raise errors after invalid configs are passed."""
      config = DDPPOConfig().training(kl_coeff=1.0)
      msg = "DDPPO doesn't support KL penalties like PPO-1"
      with pytest.raises(ValueError, match=msg):
          config.build(env="CartPole-v1")
      config.kl_coeff = 0.0
      config.kl_target = 1.0
      with pytest.raises(ValueError, match=msg):
          config.build(env="CartPole-v1")
  
file_path: ray/rllib_contrib/ddppo/tests/test_ddppo.py
imports: import unittest
  import pytest
  from rllib_ddppo.ddppo import DDPPOConfig
  import ray
  from ray.rllib.policy.sample_batch import DEFAULT_POLICY_ID
  from ray.rllib.utils.metrics.learner_info import LEARNER_INFO, LEARNER_STATS_KEY
  from ray.rllib.utils.test_utils import check, check_compute_single_action, check_train_results, framework_iterator
label_desc: Use image node_id 5 for calling the TestDDPPO obj's underlying member method code with example usage: obj.test_validate_config() without return types