def fitness(self, width, height):
        """Search for the best fitness 
        """
        assert(width > 0 and height >0)
        if width > max(self.width, self.height) or\
            height > max(self.height, self.width):
            return None

        # If there is room in wasted space, FREE PACKING!!
        if self._waste_management:
            if self._waste.fitness(width, height) is not None:
                return 0

        # Get best fitness segment, for normal rectangle, and for
        # rotated rectangle if rotation is enabled.
        rect, fitness = self._select_position(width, height)
        return fitness
Search for the best fitness