docstr: Tests edge cases of add_metric_column.
docstr_tok: ["Tests","edge","cases","of","add_metric_column","."]
code: def testAddMetricColumn(self):
      """Tests edge cases of add_metric_column."""
  
      # Test list-initialized metric columns.
      reporter = CLIReporter(metric_columns=["foo", "bar"])
      with self.assertRaises(ValueError):
          reporter.add_metric_column("bar")
  
      with self.assertRaises(ValueError):
          reporter.add_metric_column("baz", "qux")
  
      reporter.add_metric_column("baz")
      self.assertIn("baz", reporter._metric_columns)
  
      # Test default-initialized (dict) metric columns.
      reporter = CLIReporter()
      reporter.add_metric_column("foo", "bar")
      self.assertIn("foo", reporter._metric_columns)
  
imports: import collections
  import os
  import regex
  import unittest
  from unittest.mock import MagicMock, Mock, patch
  import pytest
  import numpy
  from ray import train, tune
  from ray._private.test_utils import run_string_as_driver
  from ray.tune.progress_reporter import CLIReporter, JupyterNotebookReporter, ProgressReporter, _fair_filter_trials, _best_trial_str, _detect_reporter, _time_passed_str, _trial_progress_str, TuneReporterBase, _max_len
  from ray.tune.result import AUTO_RESULT_KEYS
  from ray.tune.experiment.trial import Trial
label_desc: Use image node_id 4 for calling the ProgressReporterTest obj's underlying member method code with example usage: obj.testAddMetricColumn() without return types