def extractInfo(self, otherInfoObject):
        """
        >>> from fontMath.test.test_mathInfo import _TestInfoObject, _testData
        >>> from fontMath.mathFunctions import _roundNumber
        >>> info1 = MathInfo(_TestInfoObject())
        >>> info2 = info1 * 2.5
        >>> info3 = _TestInfoObject()
        >>> info2.extractInfo(info3)
        >>> written = {}
        >>> expected = {}
        >>> for attr, value in _testData.items():
        ...     if value is None:
        ...         continue
        ...     written[attr] = getattr(info2, attr)
        ...     if isinstance(value, list):
        ...         expectedValue = [_roundNumber(v * 2.5) for v in value]
        ...     elif isinstance(value, int):
        ...         expectedValue = _roundNumber(value * 2.5)
        ...     else:
        ...         expectedValue = value * 2.5
        ...     expected[attr] = expectedValue
        >>> sorted(expected) == sorted(written)
        True
        """
        for attr, (formatter, factorIndex) in _infoAttrs.items():
            if hasattr(self, attr):
                v = getattr(self, attr)
                if v is not None:
                    if formatter is not None:
                        v = formatter(v)
                setattr(otherInfoObject, attr, v)
        if hasattr(self, "postscriptWeightName"):
            otherInfoObject.postscriptWeightName = self.postscriptWeightName