def check()

in lisa/search_space.py [0:0]


    def check(self, capability: Any) -> ResultReason:
        result = ResultReason()
        if capability is None:
            result.add_reason("capability shouldn't be None")
        else:
            if isinstance(capability, IntRange):
                if capability.max < self.min:
                    result.add_reason(
                        f"capability max({capability.max}) is "
                        f"smaller than requirement min({self.min})"
                    )
                elif capability.max == self.min and not capability.max_inclusive:
                    result.add_reason(
                        f"capability max({capability.max}) equals "
                        f"to requirement min({self.min}), but "
                        f"capability is not max_inclusive"
                    )
                elif capability.min > self.max:
                    result.add_reason(
                        f"capability min({capability.min}) is "
                        f"bigger than requirement max({self.max})"
                    )
                elif capability.min == self.max and not self.max_inclusive:
                    result.add_reason(
                        f"capability min({capability.min}) equals "
                        f"to requirement max({self.max}), but "
                        f"requirement is not max_inclusive"
                    )
            elif isinstance(capability, int):
                if capability < self.min:
                    result.add_reason(
                        f"capability({capability}) is "
                        f"smaller than requirement min({self.min})"
                    )
                elif capability > self.max:
                    result.add_reason(
                        f"capability ({capability}) is "
                        f"bigger than requirement max({self.max})"
                    )
                elif capability == self.max and not self.max_inclusive:
                    result.add_reason(
                        f"capability({capability}) equals "
                        f"to requirement max({self.max}), but "
                        f"requirement is not max_inclusive"
                    )
            else:
                assert isinstance(capability, list), f"actual: {type(capability)}"
                temp_result = _one_of_matched(self, capability)
                if not temp_result.result:
                    result.add_reason(
                        "no capability matches requirement, "
                        f"requirement: {self}, capability: {capability}"
                    )

        return result