code: def test_exact(self, param, num_rounds, dataset):
      if dataset.name.endswith("-l1"):
          return
      param["tree_method"] = "exact"
      param = dataset.set_params(param)
      result = train_result(param, dataset.get_dmat(), num_rounds)
      assert tm.non_increasing(result["train"][dataset.metric])
  
imports: import json
  from string import ascii_lowercase
  from typing import Any, Dict
  import numpy
  import pytest
  from hypothesis import given, note, settings, strategies
  import xgboost
  from xgboost import testing
  from xgboost.testing.params import cat_parameter_strategy, exact_parameter_strategy, hist_cache_strategy, hist_parameter_strategy
  from xgboost.testing.updater import check_categorical_missing, check_categorical_ohe, check_get_quantile_cut, check_init_estimation, check_quantile_loss, train_result
label_desc: Use image node_id 1 for calling the TestTreeMethod obj's underlying member method code with example usage: obj.test_exact(param, num_rounds, dataset) without return types