All files / number/src mod.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 2/2
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                                2x 2x    
/**
 * Modulus function
 *
 * @remark
 * JavaScript's `%` operator returns the remainder, not the modulus. This
 * behave different from modulus for negative values: `-4 % 3 === -1`.
 *
 * @example
 * Modulus of negative value
 * ```ts
 * const n = mod(-4, 3)
 * console.log(n); // 2
 * ```
 *
 * @returns the modulus of `n` and `m`
 */
export const mod = (n: number, m: number): number => {
  return ((n % m) + m) % m;
};