code: def test_AssessModelFit(self) -> None:
      # Construct diagnostics
      result = []
      for i, obs in enumerate(self.training_data):
          result.append(
              CVResult(observed=obs, predicted=self.observation_data[i])
          )
      diag = compute_diagnostics(result=result)
      for v in diag.values():
          self.assertEqual(set(v.keys()), {"a", "b"})
      # Check for correct computation, relative to manually computed result
      self.assertAlmostEqual(diag["Fisher exact test p"]["a"], 0.10)
      self.assertAlmostEqual(
          diag["Fisher exact test p"]["b"], 0.166666666
      )
  
      assess_model_fit_result = assess_model_fit(
          diagnostics=diag, significance_level=0.05
      )
      self.assertTrue(
          "a" in assess_model_fit_result.bad_fit_metrics_to_fisher_score
      )
      self.assertTrue(
          "b" in assess_model_fit_result.bad_fit_metrics_to_fisher_score
      )
      assess_model_fit_result = assess_model_fit(
          diagnostics=diag, significance_level=0.15
      )
      self.assertTrue(
          "a"
          in assess_model_fit_result.good_fit_metrics_to_fisher_score
      )
      self.assertTrue(
          "b" in assess_model_fit_result.bad_fit_metrics_to_fisher_score
      )
      assess_model_fit_result = assess_model_fit(
          diagnostics=diag, significance_level=0.2
      )
      self.assertTrue(
          "a"
          in assess_model_fit_result.good_fit_metrics_to_fisher_score
      )
      self.assertTrue(
          "b"
          in assess_model_fit_result.good_fit_metrics_to_fisher_score
      )
  
imports: from typing import List
  from unittest import mock
  import numpy
  from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective
  from ax.core.observation import Observation, ObservationData, ObservationFeatures
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.outcome_constraint import OutcomeConstraint
  from ax.core.types import ComparisonOp
  from ax.modelbridge.cross_validation import assess_model_fit, compute_diagnostics, cross_validate, cross_validate_by_trial, CVDiagnostics, CVResult, has_good_opt_config_model_fit, SingleDiagnosticBestModelSelector
  from ax.modelbridge.registry import Models
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_branin_experiment
label_desc: Use image node_id 7 for calling the CrossValidationTest obj's underlying member method code with example usage: obj.test_AssessModelFit() without return types