This repository was archived by the owner on Feb 20, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +36
-0
lines changed Expand file tree Collapse file tree 3 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ import dec2bin from './dec2bin'
2727import searchAndReplace from './search-and-replace'
2828import sqrt from './sqrt'
2929import toPower from './to-power'
30+ import mod from './mod'
3031
3132export {
3233 initArray ,
@@ -57,4 +58,5 @@ export {
5758 searchAndReplace ,
5859 sqrt ,
5960 toPower ,
61+ mod ,
6062}
Original file line number Diff line number Diff line change 1+ export default mod
2+
3+ /**
4+ * Original Source: http://stackoverflow.com/a/17323608
5+ *
6+ * This method provides a modulo function that will always return a positive
7+ * value even when supplied a negative dividend.
8+ *
9+ * @param {Number } dividend - the number to be divided by divisor
10+ * @param {Number } divisor - the number divided by
11+ * @returns {Number } - the remainder
12+ */
13+
14+ function mod ( dividend , divisor ) {
15+ return ( ( dividend % divisor ) + divisor ) % divisor
16+ }
Original file line number Diff line number Diff line change 1+ import test from 'ava'
2+ import { mod } from '../src'
3+
4+ test ( 'a dividend larger than divisor' , t => {
5+ const dividend = 12
6+ const divisor = 8
7+ const expected = 4
8+ const result = mod ( dividend , divisor )
9+ t . is ( expected , result )
10+ } )
11+
12+ test ( 'a negative dividend' , t => {
13+ const dividend = - 12
14+ const divisor = 8
15+ const expected = 4
16+ const result = mod ( dividend , divisor )
17+ t . is ( expected , result )
18+ } )
You can’t perform that action at this time.
0 commit comments