def METHOD_NAME(self, obj):
    """Check whether scenario is applicable to obj.
    Parameters
    ----------
    obj : class or object to check against scenario
    Returns
    -------
    applicable: bool
        True if self is applicable to obj, False if not
    """
    def get_tag(obj, tag_name):
        if isclass(obj):
            return obj.get_class_tag(tag_name)
        else:
            return obj.get_tag(tag_name)
    regr_or_classf = (BaseClassifier, BaseEarlyClassifier, BaseRegressor)
    # applicable only if obj inherits from BaseClassifier, BaseEarlyClassifier or
    #   BaseRegressor. currently we test both classifiers and regressors using these
    #   scenarios
    if not isinstance(obj, regr_or_classf) and not issubclass(obj, regr_or_classf):
        return False
    # if X is multivariate, applicable only if can handle multivariate
    is_multivariate = not self.get_tag("X_univariate")
    if is_multivariate and not get_tag(obj, "capability:multivariate"):
        return False
    # if X is unequal length, applicable only if can handle unequal length
    is_unequal_length = self.get_tag("X_unequal_length")
    if is_unequal_length and not get_tag(obj, "capability:unequal_length"):
        return False
    return True