- Changes to :func:`~utils.estimator_checks.check_estimator` and
  :func:`~utils.estimator_checks.parametrize_with_checks`.

  - :func:`~utils.estimator_checks.check_estimator` introduces new arguments:
    ``on_skip``, ``on_fail``, and ``callback`` to control the behavior of the check
    runner. Refer to the API documentation for more details.

  - ``generate_only=True`` is deprecated in
    :func:`~utils.estimator_checks.check_estimator`. Use
    :func:`~utils.estimator_checks.estimator_checks_generator` instead.

  - The ``_xfail_checks`` estimator tag is now removed, and now in order to indicate
    which tests are expected to fail, you can pass a dictionary to the
    :func:`~utils.estimator_checks.check_estimator` as the ``expected_failed_checks``
    parameter. Similarly, the ``expected_failed_checks`` parameter in
    :func:`~utils.estimator_checks.parametrize_with_checks` can be used, which is a
    callable returning a dictionary of the form::

        {
            "check_name": "reason to mark this check as xfail",
        }

  By `Adrin Jalali`_
