<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fitness(self, width, height):
 """ Metric used to rate how much space is wasted if a rectangle is placed. Returns a value greater or equal to zero, the smaller the value the more 'fit' is the rectangle. If the rectangle can't be placed, returns None. Arguments: width (int, float):
 Rectangle width height (int, float):
 Rectangle height Returns: int, float: Rectangle fitness None: Rectangle can't be placed """

        assert(width > 0 and height > 0)
        
        rect, max_rect = self._select_position(width, height)
        if rect is None:
            return None

        # Return fitness
        return self._rect_fitness(max_rect, rect.width, rect.height)