function closePercent (actual, expected, maxPercentDifference, message) {
  let actualDiff; let result
  if (actual === expected) {
    actualDiff = 0
    result = actualDiff <= maxPercentDifference
  } else if (actual !== 0 && expected !== 0 && expected !== Infinity && expected !== -Infinity) {
    actualDiff = Math.abs(100 * (actual - expected) / expected)
    result = actualDiff <= maxPercentDifference
  } else {
    // Dividing by zero (0)!  Should return `false` unless the max percentage was `Infinity`
    actualDiff = Infinity
    result = maxPercentDifference === Infinity
  }
  message = message || (actual + ' should be within ' + maxPercentDifference + '% (inclusive) of ' + expected + (result ? '' : '. Actual: ' + actualDiff + '%'))

  return { result, message, actual, expected }
}
Checks that the first two arguments are equal, or are numbers close enough to be considered equal
based on a specified maximum allowable difference percentage.

@example assert.closePercent(155, 150, 3.4); // Difference is ~3.33%

@param {Float} actual
@param {Float} expected
@param {Float} maxPercentDifference (the maximum inclusive difference percentage allowed between the actual and expected numbers)
@param {string} [message] Defaults to a structured message
@returns {InfoObject}