docstr: Raise an error when trying to specify checkpoint_at_end/checkpoint_frequency
  with a function trainable.
docstr_tok: ["Raise","an","error","when","trying","to","specify","checkpoint_at_end\/checkpoint_frequency","with","a","function","trainable","."]
code: def testFuncTrainableCheckpointConfigValidation(self):
      """Raise an error when trying to specify checkpoint_at_end/checkpoint_frequency
      with a function trainable."""
      with self.assertRaises(ValueError):
          Experiment(
              name="foo",
              run="f1",  # Will point to a wrapped function trainable
              checkpoint_config=CheckpointConfig(
                  checkpoint_at_end=True
              ),
          )
      with self.assertRaises(ValueError):
          Experiment(
              name="foo",
              run="f1",
              checkpoint_config=CheckpointConfig(
                  checkpoint_frequency=1
              ),
          )
      with self.assertRaises(ValueError):
          Experiment(
              name="foo",
              run=lambda config: 1,
              checkpoint_config=CheckpointConfig(
                  checkpoint_at_end=True
              ),
          )
  
imports: import threading
  import unittest
  import ray
  import ray.train
  from ray.train import CheckpointConfig
  from ray.tune import register_trainable
  from ray.tune.experiment import Experiment, _convert_to_experiment_list
  from ray.tune.error import TuneError
  from ray.tune.utils import diagnose_serialization
label_desc: Use image node_id 8 for calling the ExperimentTest obj's underlying member method code with example usage: obj.testFuncTrainableCheckpointConfigValidation() without return types