/**
 * Adds a random offset to a number within a certain percentage
 * @example
 * // Returns between 95-105
 * addOffset(100, 5);
 * @example
 * // Returns between 63-77
 * addOffSet(70, 10);
 * @param midpoint The number to be the midpoint of the offset range
 * @param percentage The percentage (in a range of 0-100) to offset
 */
export function addOffset(midpoint: number, percentage: number) {
    const maxPercent: number = 100;
    if (percentage < 0 || percentage > maxPercent) {
        return midpoint;
    }

    const offset: number = midpoint * (percentage / maxPercent);

    // Double the range to account for both sides of the midpoint.
    // tslint:disable-next-line:no-magic-numbers
    return midpoint + ((Math.random() * (offset * 2)) - offset);
}