diff --git a/.codeclimate.yml b/.codeclimate.yml new file mode 100644 index 000000000..629be083a --- /dev/null +++ b/.codeclimate.yml @@ -0,0 +1,45 @@ +version: "2" # required to adjust maintainability checks +plugins: + eslint: + enabled: true + markdownlint: + enabled: true + # initial: .mdlrc + # config: .mdlrc.style.rb + fixme: + enabled: true +checks: + argument-count: + config: + threshold: 4 + complex-logic: + config: + threshold: 4 + file-lines: + config: + threshold: 250 + method-complexity: + config: + threshold: 5 + method-count: + config: + threshold: 20 + method-lines: + config: + threshold: 25 + nested-control-flow: + config: + threshold: 4 + return-statements: + config: + threshold: 4 + similar-code: + config: + threshold: # language-specific defaults. an override will affect all languages. + identical-code: + config: + threshold: # language-specific defaults. an override will affect all languages +exclude_patterns: + - "locale/" + - "**/test/" + - "dist/" diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 000000000..1399044eb --- /dev/null +++ b/.mdlrc @@ -0,0 +1,12 @@ +rules "MD003", // header style - atx + "MD004", // ul list style - asterisk + "MD009", // no trailing whitespaces + "MD010", // no hard tabs + "MD011", // no reversed links + "MD018", // no space after hash on atx style header + "MD023", // headers should start on the start of the line + "MD025", // no multiple h1 headers + "MD031", // blanks around fences + "MD038", // no spaces inside code elements + "MD040" // fenced code blocks need to have a language specified +style ".mdlrc.style.rb" diff --git a/.mdlrc.style.rb b/.mdlrc.style.rb new file mode 100644 index 000000000..5118afccf --- /dev/null +++ b/.mdlrc.style.rb @@ -0,0 +1,7 @@ +all +rule 'header-style', :style => "atx" +rule 'ul-style', :style => "asterisk" + +exclude_rule 'first-header-h1' +exclude_rule 'first-line-h1' +exclude_rule 'no-inline-html' diff --git a/README.md b/README.md index 39fc8c4fa..d6f750d77 100644 --- a/README.md +++ b/README.md @@ -3275,9 +3275,8 @@ Return a promise, listening for `onmessage` and `onerror` events and resolving t ```js const runAsync = fn => { - const blob = `var fn = ${fn.toString()}; postMessage(fn());`; const worker = new Worker( - URL.createObjectURL(new Blob([blob]), { + URL.createObjectURL(new Blob([`postMessage((${fn})());`]), { type: 'application/javascript; charset=utf-8' }) ); diff --git a/docs/index.html b/docs/index.html index fc78ace94..110dec1cb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -700,9 +700,8 @@ document.body? (window.location.href = url) : window.location.replace(url);
redirect('https://google.com');
 

runAsyncadvanced

Runs a function in a separate thread by using a Web Worker, allowing long running functions to not block the UI.

Create a new Worker using a Blob object URL, the contents of which should be the stringified version of the supplied function. Immediately post the return value of calling the function back. Return a promise, listening for onmessage and onerror events and resolving the data posted back from the worker, or throwing an error.

const runAsync = fn => {
-  const blob = `var fn = ${fn.toString()}; postMessage(fn());`;
   const worker = new Worker(
-    URL.createObjectURL(new Blob([blob]), {
+    URL.createObjectURL(new Blob([`postMessage((${fn})());`]), {
       type: 'application/javascript; charset=utf-8'
     })
   );
diff --git a/snippets/runAsync.md b/snippets/runAsync.md
index f52f400e9..09c116fbf 100644
--- a/snippets/runAsync.md
+++ b/snippets/runAsync.md
@@ -8,9 +8,8 @@ Return a promise, listening for `onmessage` and `onerror` events and resolving t
 
 ```js
 const runAsync = fn => {
-  const blob = `var fn = ${fn.toString()}; postMessage(fn());`;
   const worker = new Worker(
-    URL.createObjectURL(new Blob([blob]), {
+    URL.createObjectURL(new Blob([`postMessage((${fn})());`]), {
       type: 'application/javascript; charset=utf-8'
     })
   );
diff --git a/test/mapObject/mapObject.test.js b/test/mapObject/mapObject.test.js
index 044c43b19..294bdcd00 100644
--- a/test/mapObject/mapObject.test.js
+++ b/test/mapObject/mapObject.test.js
@@ -5,11 +5,12 @@ test('Testing mapObject', (t) => {
   //For more information on all the methods supported by tape
   //Please go to https://github.com/substack/tape
   t.true(typeof mapObject === 'function', 'mapObject is a Function');
-  const squareIt = arr => mapObject(arr, a => a * a);
-  t.deepEqual(squareIt([1, 2, 3]), { 1: 1, 2: 4, 3: 9 }, "Maps the values of an array to an object using a function");
-  //t.deepEqual(mapObject(args..), 'Expected');
+  t.deepEqual(mapObject([1, 2, 3], a => a * a), { 1: 1, 2: 4, 3: 9 }, "mapObject([1, 2, 3], a => a * a) returns { 1: 1, 2: 4, 3: 9 }");
+  t.deepEqual(mapObject([1, 2, 3, 4], (a, b) => b - a), { 1: -1, 2: -1, 3: -1, 4: -1 }, 'mapObject([1, 2, 3, 4], (a, b) => b - a) returns { 1: -1, 2: -1, 3: -1, 4: -1 }');
+  t.deepEqual(mapObject([1, 2, 3, 4], (a, b) => a - b), { 1: 1, 2: 1, 3: 1, 4: 1 }, 'mapObject([1, 2, 3, 4], (a, b) => a - b) returns { 1: 1, 2: 1, 3: 1, 4: 1 }');
+
   //t.equal(mapObject(args..), 'Expected');
   //t.false(mapObject(args..), 'Expected');
   //t.throws(mapObject(args..), 'Expected');
   t.end();
-});
\ No newline at end of file
+});
diff --git a/test/randomIntegerInRange/randomIntegerInRange.test.js b/test/randomIntegerInRange/randomIntegerInRange.test.js
index c294b1208..b68a184db 100644
--- a/test/randomIntegerInRange/randomIntegerInRange.test.js
+++ b/test/randomIntegerInRange/randomIntegerInRange.test.js
@@ -5,9 +5,14 @@ test('Testing randomIntegerInRange', (t) => {
   //For more information on all the methods supported by tape
   //Please go to https://github.com/substack/tape
   t.true(typeof randomIntegerInRange === 'function', 'randomIntegerInRange is a Function');
+  const lowerLimit = Math.floor(Math.random() * 20);
+  const upperLimit = Math.floor(lowerLimit + Math.random() * 10);
+  t.true(Number.isInteger(randomIntegerInRange(lowerLimit,upperLimit)),'The returned value is a Integer');
+  const numberForTest = randomIntegerInRange(lowerLimit,upperLimit);
+  t.true((numberForTest >= lowerLimit) && (numberForTest <= upperLimit),'The returned value lies between provied lowerLimit and upperLimit (both inclusive).');  
   //t.deepEqual(randomIntegerInRange(args..), 'Expected');
   //t.equal(randomIntegerInRange(args..), 'Expected');
   //t.false(randomIntegerInRange(args..), 'Expected');
   //t.throws(randomIntegerInRange(args..), 'Expected');
   t.end();
-});
\ No newline at end of file
+});
diff --git a/test/testlog b/test/testlog
index ede50b9f8..7de0f4416 100644
--- a/test/testlog
+++ b/test/testlog
@@ -1,1300 +1,1323 @@
+<<<<<<< HEAD
 Test log for: Fri Feb 09 2018 13:05:56 GMT+0200 (GTB Standard Time)
+=======
+Test log for: Thu Feb 08 2018 20:21:00 GMT+0000 (UTC)
+>>>>>>> master
 
-> 30-seconds-of-code@0.0.1 test G:\My Files\git Repositories\30-seconds-of-code
+> 30-seconds-of-code@0.0.1 test /home/travis/build/Chalarangelo/30-seconds-of-code
 > tape test/**/*.test.js | tap-spec
 
 
-  Testing anagrams
-
-    √ anagrams is a Function
-    √ Generates all anagrams of a string
-    √ Works for single-letter strings
-    √ Works for empty strings
-
-  Testing arrayToHtmlList
-
-    √ arrayToHtmlList is a Function
-
-  Testing ary
-
-    √ ary is a Function
-    √ Discards arguments with index >=n
-
-  Testing atob
-
-    √ atob is a Function
-    √ atob("Zm9vYmFy") equals "foobar"
-    √ atob("Z") returns ""
-
-  Testing attempt
-
-    √ attempt is a Function
-    √ Returns a value
-    √ Returns an error
-
-  Testing average
-
-    √ average is a Function
-    √ average(true) returns 0
-    √ average(false) returns 1
-    √ average(9, 1) returns 5
-    √ average(153, 44, 55, 64, 71, 1122, 322774, 2232, 23423, 234, 3631) returns 32163.909090909092 
-    √ average(1, 2, 3) returns 2
-    √ average(null) returns 0
-    √ average(1, 2, 3) returns NaN
-    √ average(String) returns NaN
-    √ average({ a: 123}) returns NaN
-    √ average([undefined, 0, string]) returns NaN
-    √ head([1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1122, 32124, 23232]) takes less than 2s to run
-
-  Testing averageBy
-
-    √ averageBy is a Function
-    √ Produces the right result with a function
-    √ Produces the right result with a property name
-
-  Testing binarySearch
-
-    √ binarySearch is a Function
-    √ Finds item in array
-    √ Returns -1 when not found
-    √ Works with empty arrays
-    √ Works for one element arrays
-
-  Testing bind
-
-    √ bind is a Function
-    √ Binds to an object context
-
-  Testing bindAll
-
-    √ bindAll is a Function
-    √ Binds to an object context
-
-  Testing bindKey
-
-    √ bindKey is a Function
-    √ Binds function to an object context
-
-  Testing bottomVisible
-
-    √ bottomVisible is a Function
-
-  Testing btoa
-
-    √ btoa is a Function
-    √ btoa("foobar") equals "Zm9vYmFy"
-
-  Testing byteSize
-
-    √ byteSize is a Function
-    √ Works for a single letter
-    √ Works for a common string
-    √ Works for emoji
-
-  Testing call
-
-    √ call is a Function
-    √ Calls function on given object
-
-  Testing capitalize
-
-    √ capitalize is a Function
-    √ Capitalizes the first letter of a string
-    √ Capitalizes the first letter of a string
-    √ Works with characters
-    √ Works with single character words
-
-  Testing capitalizeEveryWord
-
-    √ capitalizeEveryWord is a Function
-    √ Capitalizes the first letter of every word in a string
-    √ Works with characters
-    √ Works with one word string
-
-  Testing castArray
-
-    √ castArray is a Function
-    √ Works for single values
-    √ Works for arrays with one value
-    √ Works for arrays with multiple value
-    √ Works for strings
-    √ Works for objects
-
-  Testing chainAsync
-
-    √ chainAsync is a Function
-
-  Testing chunk
-
-    √ chunk is a Function
-    √ chunk([1, 2, 3, 4, 5], 2) returns [[1,2],[3,4],[5]] 
-    √ chunk([]) returns []
-    √ chunk(123) returns []
-    √ chunk({ a: 123}) returns []
-    √ chunk(string, 2) returns [ st, ri, ng ]
-    √ chunk() throws an error
-    √ chunk(undefined) throws an error
-    √ chunk(null) throws an error
-    √ chunk(This is a string, 2) takes less than 2s to run
-
-  Testing clampNumber
-
-    √ clampNumber is a Function
-    √ Clamps num within the inclusive range specified by the boundary values a and b
-
-  Testing cleanObj
-
-    √ cleanObj is a Function
-    √ Removes any properties except the ones specified from a JSON object
-
-  Testing cloneRegExp
-
-    √ cloneRegExp is a Function
-    √ Clones regular expressions properly
-
-  Testing coalesce
-
-    √ coalesce is a Function
-    √ Returns the first non-null/undefined argument
-
-  Testing coalesceFactory
-
-    √ coalesceFactory is a Function
-    √ Returns a customized coalesce function
-
-  Testing collatz
-
-    √ collatz is a Function
-    √ When n is even, divide by 2
-    √ When n is odd, times by 3 and add 1
-    √ Eventually reaches 1
-
-  Testing collectInto
-
-    √ collectInto is a Function
-
-  Testing colorize
-
-    √ colorize is a Function
-
-  Testing compact
-
-    √ compact is a Function
-    √ Removes falsey values from an array
-
-  Testing compose
-
-    √ compose is a Function
-    √ Performs right-to-left function composition
-
-  Testing composeRight
-
-    √ composeRight is a Function
-    √ Performs left-to-right function composition
-
-  Testing converge
-
-    √ converge is a Function
-    √ Produces the average of the array
-    √ Produces the strange concatenation
-
-  Testing copyToClipboard
-
-    √ copyToClipboard is a Function
-
-  Testing countBy
-
-    √ countBy is a Function
-    √ Works for functions
-    √ Works for property names
-
-  Testing countOccurrences
-
-    √ countOccurrences is a Function
-    √ Counts the occurrences of a value in an array
-
-  Testing countVowels
-
-    √ countVowels is a Function
-
-  Testing createElement
-
-    √ createElement is a Function
-
-  Testing createEventHub
-
-    √ createEventHub is a Function
-
-  Testing currentURL
-
-    √ currentURL is a Function
-
-  Testing curry
-
-    √ curry is a Function
-    √ curries a Math.pow
-    √ curries a Math.min
-
-  Testing debounce
-
-    √ debounce is a Function
-
-  Testing decapitalize
-
-    √ decapitalize is a Function
-    √ Works with default parameter
-    √ Works with second parameter set to true
-
-  Testing deepClone
-
-    √ deepClone is a Function
-    √ Shallow cloning works
-    √ Deep cloning works
-
-  Testing deepFlatten
-
-    √ deepFlatten is a Function
-    √ Deep flattens an array
-
-  Testing defaults
-
-    √ defaults is a Function
-
-  Testing defer
-
-    √ defer is a Function
-
-  Testing delay
-
-    √ delay is a Function
-
-  Testing detectDeviceType
-
-    √ detectDeviceType is a Function
-
-  Testing difference
-
-    √ difference is a Function
-    √ Returns the difference between two arrays
-
-  Testing differenceBy
-
-    √ differenceBy is a Function
-    √ Works using a native function and numbers
-    √ Works with arrow function and objects
-
-  Testing differenceWith
-
-    √ differenceWith is a Function
-    √ Filters out all values from an array
-
-  Testing digitize
-
-    √ digitize is a Function
-    √ Converts a number to an array of digits
-
-  Testing distance
-
-    √ distance is a Function
-    √ Calculates the distance between two points
-
-  Testing drop
-
-    √ drop is a Function
-    √ Works without the last argument
-    √ Removes appropriate element count as specified
-    √ Empties array given a count greater than length
-
-  Testing dropRight
-
-    √ dropRight is a Function
-    √ Returns a new array with n elements removed from the right
-    √ Returns a new array with n elements removed from the right
-    √ Returns a new array with n elements removed from the right
-
-  Testing dropRightWhile
-
-    √ dropRightWhile is a Function
-    √ Removes elements from the end of an array until the passed function returns true.
-
-  Testing dropWhile
-
-    √ dropWhile is a Function
-    √ Removes elements in an array until the passed function returns true.
-
-  Testing elementIsVisibleInViewport
-
-    √ elementIsVisibleInViewport is a Function
-
-  Testing elo
-
-    √ elo is a Function
-    √ Standard 1v1s
-    √ should be equivalent
-    √ 4 player FFA, all same rank
-
-  Testing equals
-
-    √ equals is a Function
-    √ { a: [2, {e: 3}], b: [4], c: 'foo' } is equal to { a: [2, {e: 3}], b: [4], c: 'foo' }
-    √ [1,2,3] is equal to [1,2,3]
-    √ { a: [2, 3], b: [4] } is not equal to { a: [2, 3], b: [6] }
-    √ [1,2,3] is not equal to [1,2,4]
-    √ [1, 2, 3] should be equal to { 0: 1, 1: 2, 2: 3 }) - type is different, but their enumerable properties match.
-
-  Testing escapeHTML
-
-    √ escapeHTML is a Function
-    √ Escapes a string for use in HTML
-
-  Testing escapeRegExp
-
-    √ escapeRegExp is a Function
-    √ Escapes a string to use in a regular expression
-
-  Testing everyNth
-
-    √ everyNth is a Function
-    √ Returns every nth element in an array
-
-  Testing extendHex
-
-    √ extendHex is a Function
-    √ Extends a 3-digit color code to a 6-digit color code
-    √ Extends a 3-digit color code to a 6-digit color code
-
-  Testing factorial
-
-    √ factorial is a Function
-    √ Calculates the factorial of 720
-    √ Calculates the factorial of 0
-    √ Calculates the factorial of 1
-    √ Calculates the factorial of 4
-    √ Calculates the factorial of 10
-
-  Testing factors
-
-    √ factors is a Function
-
-  Testing fibonacci
-
-    √ fibonacci is a Function
-    √ Generates an array, containing the Fibonacci sequence
-
-  Testing fibonacciCountUntilNum
-
-    √ fibonacciCountUntilNum is a Function
-
-  Testing fibonacciUntilNum
-
-    √ fibonacciUntilNum is a Function
-
-  Testing filterNonUnique
-
-    √ filterNonUnique is a Function
-    √ Filters out the non-unique values in an array
-
-  Testing findKey
-
-    √ findKey is a Function
-    √ Returns the appropriate key
-
-  Testing findLast
-
-    √ findLast is a Function
-    √ Finds last element for which the given function returns true
-
-  Testing findLastIndex
-
-    √ findLastIndex is a Function
-    √ Finds last index for which the given function returns true
-
-  Testing findLastKey
-
-    √ findLastKey is a Function
-    √ Returns the appropriate key
-
-  Testing flatten
-
-    √ flatten is a Function
-    √ Flattens an array
-    √ Flattens an array
-
-  Testing flattenObject
-
-    √ flattenObject is a Function
-    √ Flattens an object with the paths for keys
-    √ Works with arrays
-
-  Testing flip
-
-    √ flip is a Function
-    √ Flips argument order
-
-  Testing forEachRight
-
-    √ forEachRight is a Function
-    √ Iterates over the array in reverse
-
-  Testing formatDuration
-
-    √ formatDuration is a Function
-    √ Returns the human readable format of the given number of milliseconds
-    √ Returns the human readable format of the given number of milliseconds
-
-  Testing forOwn
-
-    √ forOwn is a Function
-    √ Iterates over an element's key-value pairs
-
-  Testing forOwnRight
-
-    √ forOwnRight is a Function
-    √ Iterates over an element's key-value pairs in reverse
-
-  Testing fromCamelCase
-
-    √ fromCamelCase is a Function
-    √ Converts a string from camelcase
-    √ Converts a string from camelcase
-    √ Converts a string from camelcase
-
-  Testing functionName
-
-    √ functionName is a Function
-    √ Works for native functions
-    √ Works for functions
-    √ Works for arrow functions
-
-  Testing functions
-
-    √ functions is a Function
-    √ Returns own methods
-    √ Returns own and inherited methods
-
-  Testing gcd
-
-    √ gcd is a Function
-    √ Calculates the greatest common divisor between two or more numbers/arrays
-    √ Calculates the greatest common divisor between two or more numbers/arrays
-
-  Testing geometricProgression
-
-    √ geometricProgression is a Function
-    √ Initializes an array containing the numbers in the specified range
-    √ Initializes an array containing the numbers in the specified range
-    √ Initializes an array containing the numbers in the specified range
-
-  Testing get
-
-    √ get is a Function
-    √ Retrieve a property indicated by the selector from an object.
-
-  Testing getColonTimeFromDate
-
-    √ getColonTimeFromDate is a Function
-
-  Testing getDaysDiffBetweenDates
-
-    √ getDaysDiffBetweenDates is a Function
-    √ Returns the difference in days between two dates
-
-  Testing getMeridiemSuffixOfInteger
-
-    √ getMeridiemSuffixOfInteger is a Function
-
-  Testing getScrollPosition
-
-    √ getScrollPosition is a Function
-
-  Testing getStyle
-
-    √ getStyle is a Function
-
-  Testing getType
-
-    √ getType is a Function
-    √ Returns the native type of a value
-
-  Testing getURLParameters
-
-    √ getURLParameters is a Function
-    √ Returns an object containing the parameters of the current URL
-
-  Testing groupBy
-
-    √ groupBy is a Function
-    √ Groups the elements of an array based on the given function
-    √ Groups the elements of an array based on the given function
-
-  Testing hammingDistance
-
-    √ hammingDistance is a Function
-    √ retuns hamming disance between 2 values
-
-  Testing hasClass
-
-    √ hasClass is a Function
-
-  Testing hasFlags
-
-    √ hasFlags is a Function
-
-  Testing hashBrowser
-
-    √ hashBrowser is a Function
-
-  Testing hashNode
-
-    √ hashNode is a Function
-
-  Testing head
-
-    √ head is a Function
-    √ head({ a: 1234}) returns undefined
-    √ head([1, 2, 3]) returns 1
-    √ head({ 0: false}) returns false
-    √ head(String) returns S
-    √ head(null) throws an Error
-    √ head(undefined) throws an Error
-    √ head() throws an Error
-    √ head([1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1122, 32124, 23232]) takes less than 2s to run
-
-  Testing hexToRGB
-
-    √ hexToRGB is a Function
-    √ Converts a color code to a rgb() or rgba() string
-    √ Converts a color code to a rgb() or rgba() string
-    √ Converts a color code to a rgb() or rgba() string
-
-  Testing hide
-
-    √ hide is a Function
-
-  Testing howManyTimes
-
-    √ howManyTimes is a Function
-
-  Testing httpDelete
-
-    √ httpDelete is a Function
-
-  Testing httpGet
-
-    √ httpGet is a Function
-
-  Testing httpPost
-
-    √ httpPost is a Function
-
-  Testing httpPut
-
-    √ httpPut is a Function
-
-  Testing httpsRedirect
-
-    √ httpsRedirect is a Function
-
-  Testing indexOfAll
-
-    √ indexOfAll is a Function
-    √ Returns all indices of val in an array
-    √ Returns all indices of val in an array
-
-  Testing initial
-
-    √ initial is a Function
-    √ Returns all the elements of an array except the last one
-
-  Testing initialize2DArray
-
-    √ initialize2DArray is a Function
-    √ Initializes a 2D array of given width and height and value
-
-  Testing initializeArrayWithRange
-
-    √ initializeArrayWithRange is a Function
-    √ Initializes an array containing the numbers in the specified range
-
-  Testing initializeArrayWithRangeRight
-
-    √ initializeArrayWithRangeRight is a Function
-
-  Testing initializeArrayWithValues
-
-    √ initializeArrayWithValues is a Function
-    √ Initializes and fills an array with the specified values
-
-  Testing inRange
-
-    √ inRange is a Function
-    √ The given number falls within the given range
-    √ The given number falls within the given range
-    √ The given number does not falls within the given range
-    √ The given number does not falls within the given range
-
-  Testing intersection
-
-    √ intersection is a Function
-    √ Returns a list of elements that exist in both arrays
-
-  Testing intersectionBy
-
-    √ intersectionBy is a Function
-    √ Returns a list of elements that exist in both arrays, after applying the provided function to each array element of both
-
-  Testing intersectionWith
-
-    √ intersectionWith is a Function
-    √ Returns a list of elements that exist in both arrays, using a provided comparator function
-
-  Testing invertKeyValues
-
-    √ invertKeyValues is a Function
-    √ invertKeyValues({ a: 1, b: 2, c: 1 }) returns { 1: [ 'a', 'c' ], 2: [ 'b' ] }
-    √ invertKeyValues({ a: 1, b: 2, c: 1 }, value => 'group' + value) returns { group1: [ 'a', 'c' ], group2: [ 'b' ] }
-
-  Testing is
-
-    √ is is a Function
-    √ Works for arrays with data
-    √ Works for empty arrays
-    √ Works for arrays, not objects
-    √ Works for objects
-    √ Works for maps
-    √ Works for regular expressions
-    √ Works for sets
-    √ Works for weak maps
-    √ Works for weak sets
-    √ Works for strings - returns false for primitive
-    √ Works for strings - returns true when using constructor
-    √ Works for numbers - returns false for primitive
-    √ Works for numbers - returns true when using constructor
-    √ Works for booleans - returns false for primitive
-    √ Works for booleans - returns true when using constructor
-    √ Works for functions
-
-  Testing isAbsoluteURL
-
-    √ isAbsoluteURL is a Function
-    √ Given string is an absolute URL
-    √ Given string is an absolute URL
-    √ Given string is not an absolute URL
-
-  Testing isArmstrongNumber
-
-    √ isArmstrongNumber is a Function
-
-  Testing isArray
-
-    √ isArray is a Function
-    √ passed value is an array
-    √ passed value is not an array
-
-  Testing isArrayBuffer
-
-    √ isArrayBuffer is a Function
-
-  Testing isArrayLike
-
-    √ isArrayLike is a Function
-    √ Returns true for a string
-    √ Returns true for an array
-    √ Returns false for null
-
-  Testing isBoolean
-
-    √ isBoolean is a Function
-    √ passed value is not a boolean
-    √ passed value is not a boolean
-
-  Testing isDivisible
-
-    √ isDivisible is a Function
-    √ The number 6 is divisible by 3
-
-  Testing isEmpty
-
-    √ isEmpty is a Function
-    √ Returns true for empty Map
-    √ Returns true for empty Set
-    √ Returns true for empty array
-    √ Returns true for empty object
-    √ Returns true for empty string
-    √ Returns false for non-empty array
-    √ Returns false for non-empty object
-    √ Returns false for non-empty string
-    √ Returns true - type is not considered a collection
-    √ Returns true - type is not considered a collection
-
-  Testing isEven
-
-    √ isEven is a Function
-    √ 4 is even number
-    √ undefined
-
-  Testing isFunction
-
-    √ isFunction is a Function
-    √ passed value is a function
-    √ passed value is not a function
-
-  Testing isLowerCase
-
-    √ isLowerCase is a Function
-    √ passed string is a lowercase
-    √ passed string is a lowercase
-    √ passed value is not a lowercase
-
-  Testing isMap
-
-    √ isMap is a Function
-
-  Testing isNil
-
-    √ isNil is a Function
-    √ Returns true for null
-    √ Returns true for undefined
-    √ Returns false for an empty string
-
-  Testing isNull
-
-    √ isNull is a Function
-    √ passed argument is a null
-    √ passed argument is a null
-
-  Testing isNumber
-
-    √ isNumber is a Function
-    √ passed argument is a number
-    √ passed argument is not a number
-
-  Testing isObject
-
-    √ isObject is a Function
-    √ isObject([1, 2, 3, 4]) is a object
-    √ isObject([]) is a object
-    √ isObject({ a:1 }) is a object
-    √ isObject(true) is not a object
-
-  Testing isObjectLike
-
-    √ isObjectLike is a Function
-    √ Returns true for an object
-    √ Returns true for an array
-    √ Returns false for a function
-    √ Returns false for null
-
-  Testing isPlainObject
-
-    √ isPlainObject is a Function
-    √ Returns true for a plain object
-    √ Returns false for a Map (example of non-plain object)
-
-  Testing isPrime
-
-    √ isPrime is a Function
-    √ passed number is a prime
-
-  Testing isPrimitive
-
-    √ isPrimitive is a Function
-    √ isPrimitive(null) is primitive
-    √ isPrimitive(undefined) is primitive
-    √ isPrimitive(string) is primitive
-    √ isPrimitive(true) is primitive
-    √ isPrimitive(50) is primitive
-    √ isPrimitive('Hello') is primitive
-    √ isPrimitive(false) is primitive
-    √ isPrimitive(Symbol()) is primitive
-    √ isPrimitive([1, 2, 3]) is not primitive
-    √ isPrimitive({ a: 123 }) is not primitive
-    √ isPrimitive({ a: 123 }) takes less than 2s to run
-
-  Testing isPromiseLike
-
-    √ isPromiseLike is a Function
-    √ Returns true for a promise-like object
-    √ Returns false for null
-    √ Returns false for an empty object
-
-  Testing isRegExp
-
-    √ isRegExp is a Function
-
-  Testing isSet
-
-    √ isSet is a Function
-
-  Testing isSorted
-
-    √ isSorted is a Function
-    √ Array is sorted in ascending order
-    √ Array is sorted in descending order
-    √ Array is not sorted, direction changed in array
-
-  Testing isString
-
-    √ isString is a Function
-    √ foo is a string
-    √ "10" is a string
-    √ Empty string is a string
-    √ 10 is not a string
-    √ true is not string
-
-  Testing isSymbol
-
-    √ isSymbol is a Function
-    √ Checks if the given argument is a symbol
-
-  Testing isTravisCI
-
-    √ isTravisCI is a Function
-    √ Not running on Travis, correctly evaluates
-
-  Testing isTypedArray
-
-    √ isTypedArray is a Function
-
-  Testing isUndefined
-
-    √ isUndefined is a Function
-    √ Returns true for undefined
-
-  Testing isUpperCase
-
-    √ isUpperCase is a Function
-    √ ABC is all upper case
-    √ abc is not all upper case
-    √ A3@$ is all uppercase
-
-  Testing isValidJSON
-
-    √ isValidJSON is a Function
-    √ {"name":"Adam","age":20} is a valid JSON
-    √ {"name":"Adam",age:"20"} is not a valid JSON
-    √ null is a valid JSON
-
-  Testing isWeakMap
-
-    √ isWeakMap is a Function
-
-  Testing isWeakSet
-
-    √ isWeakSet is a Function
-
-  Testing join
-
-    √ join is a Function
-    √ Joins all elements of an array into a string and returns this string
-    √ Joins all elements of an array into a string and returns this string
-    √ Joins all elements of an array into a string and returns this string
-
   Testing JSONToDate
 
-    √ JSONToDate is a Function
+    ✔ JSONToDate is a Function
 
   Testing JSONToFile
 
-    √ JSONToFile is a Function
-
-  Testing last
-
-    √ last is a Function
-    √ last({ a: 1234}) returns undefined
-    √ last([1, 2, 3]) returns 3
-    √ last({ 0: false}) returns undefined
-    √ last(String) returns g
-    √ last(null) throws an Error
-    √ last(undefined) throws an Error
-    √ last() throws an Error
-    √ last([1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1122, 32124, 23232]) takes less than 2s to run
-
-  Testing lcm
-
-    √ lcm is a Function
-    √ Returns the least common multiple of two or more numbers.
-    √ Returns the least common multiple of two or more numbers.
-
-  Testing longestItem
-
-    √ longestItem is a Function
-    √ Returns the longest object
-
-  Testing lowercaseKeys
-
-    √ lowercaseKeys is a Function
-    √ Lowercases object keys
-    √ Does not mutate original object
-
-  Testing luhnCheck
-
-    √ luhnCheck is a Function
-    √ validates identification number
-    √ validates identification number
-    √ validates identification number
-
-  Testing mapKeys
-
-    √ mapKeys is a Function
-    √ Maps keys
-
-  Testing mapObject
-
-    √ mapObject is a Function
-    √ Maps the values of an array to an object using a function
-
-  Testing mapValues
-
-    √ mapValues is a Function
-    √ Maps values
-
-  Testing mask
-
-    √ mask is a Function
-    √ Replaces all but the last num of characters with the specified mask character
-    √ Replaces all but the last num of characters with the specified mask character
-    √ Replaces all but the last num of characters with the specified mask character
-
-  Testing matches
-
-    √ matches is a Function
-    √ Matches returns true for two similar objects
-    √ Matches returns false for two non-similar objects
-
-  Testing matchesWith
-
-    √ matchesWith is a Function
-    √ Returns true for two objects with similar values, based on the provided function
-
-  Testing maxBy
-
-    √ maxBy is a Function
-    √ Produces the right result with a function
-    √ Produces the right result with a property name
-
-  Testing maxN
-
-    √ maxN is a Function
-    √ Returns the n maximum elements from the provided array
-    √ Returns the n maximum elements from the provided array
-
-  Testing median
-
-    √ median is a Function
-    √ Returns the median of an array of numbers
-    √ Returns the median of an array of numbers
-
-  Testing memoize
-
-    √ memoize is a Function
-    √ Function works properly
-    √ Function works properly
-    √ Cache stores values
-
-  Testing merge
-
-    √ merge is a Function
-    √ Merges two objects
-
-  Testing minBy
-
-    √ minBy is a Function
-    √ Produces the right result with a function
-    √ Produces the right result with a property name
-
-  Testing minN
-
-    √ minN is a Function
-    √ Returns the n minimum elements from the provided array
-    √ Returns the n minimum elements from the provided array
-
-  Testing negate
-
-    √ negate is a Function
-    √ Negates a predicate function
-
-  Testing nthArg
-
-    √ nthArg is a Function
-    √ Returns the nth argument
-    √ Returns undefined if arguments too few
-    √ Works for negative values
-
-  Testing nthElement
-
-    √ nthElement is a Function
-    √ Returns the nth element of an array.
-    √ Returns the nth element of an array.
-
-  Testing objectFromPairs
-
-    √ objectFromPairs is a Function
-    √ Creates an object from the given key-value pairs.
-
-  Testing objectToPairs
-
-    √ objectToPairs is a Function
-    √ Creates an array of key-value pair arrays from an object.
-
-  Testing observeMutations
-
-    √ observeMutations is a Function
-
-  Testing off
-
-    √ off is a Function
-
-  Testing omit
-
-    √ omit is a Function
-    √ Omits the key-value pairs corresponding to the given keys from an object
-
-  Testing omitBy
-
-    √ omitBy is a Function
-    √ Creates an object composed of the properties the given function returns falsey for
-
-  Testing on
-
-    √ on is a Function
-
-  Testing once
-
-    √ once is a Function
-
-  Testing onUserInputChange
-
-    √ onUserInputChange is a Function
-
-  Testing orderBy
-
-    √ orderBy is a Function
-    √ Returns a sorted array of objects ordered by properties and orders.
-    √ Returns a sorted array of objects ordered by properties and orders.
-
-  Testing over
-
-    √ over is a Function
-    √ Applies given functions over multiple arguments
-
-  Testing overArgs
-
-    √ overArgs is a Function
-    √ Invokes the provided function with its arguments transformed
-
-  Testing palindrome
-
-    √ palindrome is a Function
-    √ Given string is a palindrome
-    √ Given string is not a palindrome
-
-  Testing parseCookie
-
-    √ parseCookie is a Function
-    √ Parses the cookie
-
-  Testing partial
-
-    √ partial is a Function
-    √ Prepends arguments
-
-  Testing partialRight
-
-    √ partialRight is a Function
-    √ Appends arguments
-
-  Testing partition
-
-    √ partition is a Function
-    √ Groups the elements into two arrays, depending on the provided function's truthiness for each element.
-
-  Testing percentile
-
-    √ percentile is a Function
-    √ Uses the percentile formula to calculate how many numbers in the given array are less or equal to the given value.
-
-  Testing pick
-
-    √ pick is a Function
-    √ Picks the key-value pairs corresponding to the given keys from an object.
-
-  Testing pickBy
-
-    √ pickBy is a Function
-    √ Creates an object composed of the properties the given function returns truthy for.
-
-  Testing pipeAsyncFunctions
-
-    √ pipeAsyncFunctions is a Function
-    √ Produces the appropriate hash
-    √ pipeAsyncFunctions result should be 15
-
-  Testing pipeFunctions
-
-    √ pipeFunctions is a Function
-    √ Performs left-to-right function composition
-
-  Testing pluralize
-
-    √ pluralize is a Function
-    √ Produces the plural of the word
-    √ Produces the singular of the word
-    √ Produces the plural of the word
-    √ Prodices the defined plural of the word
-    √ Works with a dictionary
-
-  Testing powerset
-
-    √ powerset is a Function
-    √ Returns the powerset of a given array of numbers.
-
-  Testing prettyBytes
-
-    √ prettyBytes is a Function
-    √ Converts a number in bytes to a human-readable string.
-    √ Converts a number in bytes to a human-readable string.
-    √ Converts a number in bytes to a human-readable string.
-
-  Testing primes
-
-    √ primes is a Function
-    √ Generates primes up to a given number, using the Sieve of Eratosthenes.
-
-  Testing promisify
-
-    √ promisify is a Function
-
-  Testing pull
-
-    √ pull is a Function
-    √ Pulls the specified values
-
-  Testing pullAtIndex
-
-    √ pullAtIndex is a Function
-    √ Pulls the given values
-    √ Pulls the given values
-
-  Testing pullAtValue
-
-    √ pullAtValue is a Function
-    √ Pulls the specified values
-    √ Pulls the specified values
-
-  Testing pullBy
-
-    √ pullBy is a Function
-    √ Pulls the specified values
-
-  Testing quickSort
-
-    √ quickSort is a Function
-    √ quickSort([5, 6, 4, 3, 1, 2]) returns [1, 2, 3, 4, 5, 6]
-    √ quickSort([-1, 0, -2]) returns [-2, -1, 0]
-    √ quickSort() throws an error
-    √ quickSort(123) throws an error
-    √ quickSort({ 234: string}) throws an error
-    √ quickSort(null) throws an error
-    √ quickSort(undefined) throws an error
-    √ quickSort([11, 1, 324, 23232, -1, 53, 2, 524, 32, 13, 156, 133, 62, 12, 4]) takes less than 2s to run
-
-  Testing randomHexColorCode
-
-    √ randomHexColorCode is a Function
-    √ should be equal
-
-  Testing randomIntArrayInRange
-
-    √ randomIntArrayInRange is a Function
-
-  Testing randomIntegerInRange
-
-    √ randomIntegerInRange is a Function
-
-  Testing randomNumberInRange
-
-    √ randomNumberInRange is a Function
-
-  Testing readFileLines
-
-    √ readFileLines is a Function
-
-  Testing rearg
-
-    √ rearg is a Function
-    √ Reorders arguments in invoked function
-
-  Testing redirect
-
-    √ redirect is a Function
-
-  Testing reducedFilter
-
-    √ reducedFilter is a Function
-    √ Filter an array of objects based on a condition while also filtering out unspecified keys.
-
-  Testing reduceSuccessive
-
-    √ reduceSuccessive is a Function
-    √ Returns the array of successively reduced values
-
-  Testing reduceWhich
-
-    √ reduceWhich is a Function
-    √ Returns the minimum of an array
-    √ Returns the maximum of an array
-    √ Returns the object with the minimum specified value in an array
-
-  Testing remove
-
-    √ remove is a Function
-    √ Removes elements from an array for which the given function returns false
-
-  Testing removeNonASCII
-
-    √ removeNonASCII is a Function
-    √ Removes non-ASCII characters
-
-  Testing removeVowels
-
-    √ removeVowels is a Function
-
-  Testing reverseString
-
-    √ reverseString is a Function
-    √ Reverses a string.
+    ✔ JSONToFile is a Function
 
   Testing RGBToHex
 
-    √ RGBToHex is a Function
-    √ Converts the values of RGB components to a color code.
+    ✔ RGBToHex is a Function
+    ✔ Converts the values of RGB components to a color code.
+
+  Testing URLJoin
+
+    ✔ URLJoin is a Function
+    ✔ Returns proper URL
+    ✔ Returns proper URL
+
+  Testing UUIDGeneratorBrowser
+
+    ✔ UUIDGeneratorBrowser is a Function
+
+  Testing UUIDGeneratorNode
+
+    ✔ UUIDGeneratorNode is a Function
+
+  Testing anagrams
+
+    ✔ anagrams is a Function
+    ✔ Generates all anagrams of a string
+    ✔ Works for single-letter strings
+    ✔ Works for empty strings
+
+  Testing arrayToHtmlList
+
+    ✔ arrayToHtmlList is a Function
+
+  Testing ary
+
+    ✔ ary is a Function
+    ✔ Discards arguments with index >=n
+
+  Testing atob
+
+    ✔ atob is a Function
+    ✔ atob("Zm9vYmFy") equals "foobar"
+    ✔ atob("Z") returns ""
+
+  Testing attempt
+
+    ✔ attempt is a Function
+    ✔ Returns a value
+    ✔ Returns an error
+
+  Testing average
+
+    ✔ average is a Function
+    ✔ average(true) returns 0
+    ✔ average(false) returns 1
+    ✔ average(9, 1) returns 5
+    ✔ average(153, 44, 55, 64, 71, 1122, 322774, 2232, 23423, 234, 3631) returns 32163.909090909092 
+    ✔ average(1, 2, 3) returns 2
+    ✔ average(null) returns 0
+    ✔ average(1, 2, 3) returns NaN
+    ✔ average(String) returns NaN
+    ✔ average({ a: 123}) returns NaN
+    ✔ average([undefined, 0, string]) returns NaN
+    ✔ head([1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1122, 32124, 23232]) takes less than 2s to run
+
+  Testing averageBy
+
+    ✔ averageBy is a Function
+    ✔ Produces the right result with a function
+    ✔ Produces the right result with a property name
+
+  Testing binarySearch
+
+    ✔ binarySearch is a Function
+    ✔ Finds item in array
+    ✔ Returns -1 when not found
+    ✔ Works with empty arrays
+    ✔ Works for one element arrays
+
+  Testing bind
+
+    ✔ bind is a Function
+    ✔ Binds to an object context
+
+  Testing bindAll
+
+    ✔ bindAll is a Function
+    ✔ Binds to an object context
+
+  Testing bindKey
+
+    ✔ bindKey is a Function
+    ✔ Binds function to an object context
+
+  Testing bottomVisible
+
+    ✔ bottomVisible is a Function
+
+  Testing btoa
+
+    ✔ btoa is a Function
+    ✔ btoa("foobar") equals "Zm9vYmFy"
+
+  Testing byteSize
+
+    ✔ byteSize is a Function
+    ✔ Works for a single letter
+    ✔ Works for a common string
+    ✔ Works for emoji
+
+  Testing call
+
+    ✔ call is a Function
+    ✔ Calls function on given object
+
+  Testing capitalize
+
+    ✔ capitalize is a Function
+    ✔ Capitalizes the first letter of a string
+    ✔ Capitalizes the first letter of a string
+    ✔ Works with characters
+    ✔ Works with single character words
+
+  Testing capitalizeEveryWord
+
+    ✔ capitalizeEveryWord is a Function
+    ✔ Capitalizes the first letter of every word in a string
+    ✔ Works with characters
+    ✔ Works with one word string
+
+  Testing castArray
+
+    ✔ castArray is a Function
+    ✔ Works for single values
+    ✔ Works for arrays with one value
+    ✔ Works for arrays with multiple value
+    ✔ Works for strings
+    ✔ Works for objects
+
+  Testing chainAsync
+
+    ✔ chainAsync is a Function
+
+  Testing chunk
+
+    ✔ chunk is a Function
+    ✔ chunk([1, 2, 3, 4, 5], 2) returns [[1,2],[3,4],[5]] 
+    ✔ chunk([]) returns []
+    ✔ chunk(123) returns []
+    ✔ chunk({ a: 123}) returns []
+    ✔ chunk(string, 2) returns [ st, ri, ng ]
+    ✔ chunk() throws an error
+    ✔ chunk(undefined) throws an error
+    ✔ chunk(null) throws an error
+    ✔ chunk(This is a string, 2) takes less than 2s to run
+
+  Testing clampNumber
+
+    ✔ clampNumber is a Function
+    ✔ Clamps num within the inclusive range specified by the boundary values a and b
+
+  Testing cleanObj
+
+    ✔ cleanObj is a Function
+    ✔ Removes any properties except the ones specified from a JSON object
+
+  Testing cloneRegExp
+
+    ✔ cloneRegExp is a Function
+    ✔ Clones regular expressions properly
+
+  Testing coalesce
+
+    ✔ coalesce is a Function
+    ✔ Returns the first non-null/undefined argument
+
+  Testing coalesceFactory
+
+    ✔ coalesceFactory is a Function
+    ✔ Returns a customized coalesce function
+
+  Testing collatz
+
+    ✔ collatz is a Function
+    ✔ When n is even, divide by 2
+    ✔ When n is odd, times by 3 and add 1
+    ✔ Eventually reaches 1
+
+  Testing collectInto
+
+    ✔ collectInto is a Function
+
+  Testing colorize
+
+    ✔ colorize is a Function
+
+  Testing compact
+
+    ✔ compact is a Function
+    ✔ Removes falsey values from an array
+
+  Testing compose
+
+    ✔ compose is a Function
+    ✔ Performs right-to-left function composition
+
+  Testing composeRight
+
+    ✔ composeRight is a Function
+    ✔ Performs left-to-right function composition
+
+  Testing converge
+
+    ✔ converge is a Function
+    ✔ Produces the average of the array
+    ✔ Produces the strange concatenation
+
+  Testing copyToClipboard
+
+    ✔ copyToClipboard is a Function
+
+  Testing countBy
+
+    ✔ countBy is a Function
+    ✔ Works for functions
+    ✔ Works for property names
+
+  Testing countOccurrences
+
+    ✔ countOccurrences is a Function
+    ✔ Counts the occurrences of a value in an array
+
+  Testing countVowels
+
+    ✔ countVowels is a Function
+
+  Testing createElement
+
+    ✔ createElement is a Function
+
+  Testing createEventHub
+
+    ✔ createEventHub is a Function
+
+  Testing currentURL
+
+    ✔ currentURL is a Function
+
+  Testing curry
+
+    ✔ curry is a Function
+    ✔ curries a Math.pow
+    ✔ curries a Math.min
+
+  Testing debounce
+
+    ✔ debounce is a Function
+
+  Testing decapitalize
+
+    ✔ decapitalize is a Function
+    ✔ Works with default parameter
+    ✔ Works with second parameter set to true
+
+  Testing deepClone
+
+    ✔ deepClone is a Function
+    ✔ Shallow cloning works
+    ✔ Deep cloning works
+
+  Testing deepFlatten
+
+    ✔ deepFlatten is a Function
+    ✔ Deep flattens an array
+
+  Testing defaults
+
+    ✔ defaults is a Function
+
+  Testing defer
+
+    ✔ defer is a Function
+
+  Testing delay
+
+    ✔ delay is a Function
+
+  Testing detectDeviceType
+
+    ✔ detectDeviceType is a Function
+
+  Testing difference
+
+    ✔ difference is a Function
+    ✔ Returns the difference between two arrays
+
+  Testing differenceBy
+
+    ✔ differenceBy is a Function
+    ✔ Works using a native function and numbers
+    ✔ Works with arrow function and objects
+
+  Testing differenceWith
+
+    ✔ differenceWith is a Function
+    ✔ Filters out all values from an array
+
+  Testing digitize
+
+    ✔ digitize is a Function
+    ✔ Converts a number to an array of digits
+
+  Testing distance
+
+    ✔ distance is a Function
+    ✔ Calculates the distance between two points
+
+  Testing drop
+
+    ✔ drop is a Function
+    ✔ Works without the last argument
+    ✔ Removes appropriate element count as specified
+    ✔ Empties array given a count greater than length
+
+  Testing dropRight
+
+    ✔ dropRight is a Function
+    ✔ Returns a new array with n elements removed from the right
+    ✔ Returns a new array with n elements removed from the right
+    ✔ Returns a new array with n elements removed from the right
+
+  Testing dropRightWhile
+
+    ✔ dropRightWhile is a Function
+    ✔ Removes elements from the end of an array until the passed function returns true.
+
+  Testing dropWhile
+
+    ✔ dropWhile is a Function
+    ✔ Removes elements in an array until the passed function returns true.
+
+  Testing elementIsVisibleInViewport
+
+    ✔ elementIsVisibleInViewport is a Function
+
+  Testing elo
+
+    ✔ elo is a Function
+    ✔ Standard 1v1s
+    ✔ should be equivalent
+    ✔ 4 player FFA, all same rank
+
+  Testing equals
+
+    ✔ equals is a Function
+    ✔ { a: [2, {e: 3}], b: [4], c: 'foo' } is equal to { a: [2, {e: 3}], b: [4], c: 'foo' }
+    ✔ [1,2,3] is equal to [1,2,3]
+    ✔ { a: [2, 3], b: [4] } is not equal to { a: [2, 3], b: [6] }
+    ✔ [1,2,3] is not equal to [1,2,4]
+    ✔ [1, 2, 3] should be equal to { 0: 1, 1: 2, 2: 3 }) - type is different, but their enumerable properties match.
+
+  Testing escapeHTML
+
+    ✔ escapeHTML is a Function
+    ✔ Escapes a string for use in HTML
+
+  Testing escapeRegExp
+
+    ✔ escapeRegExp is a Function
+    ✔ Escapes a string to use in a regular expression
+
+  Testing everyNth
+
+    ✔ everyNth is a Function
+    ✔ Returns every nth element in an array
+
+  Testing extendHex
+
+    ✔ extendHex is a Function
+    ✔ Extends a 3-digit color code to a 6-digit color code
+    ✔ Extends a 3-digit color code to a 6-digit color code
+
+  Testing factorial
+
+    ✔ factorial is a Function
+    ✔ Calculates the factorial of 720
+    ✔ Calculates the factorial of 0
+    ✔ Calculates the factorial of 1
+    ✔ Calculates the factorial of 4
+    ✔ Calculates the factorial of 10
+
+  Testing factors
+
+    ✔ factors is a Function
+
+  Testing fibonacci
+
+    ✔ fibonacci is a Function
+    ✔ Generates an array, containing the Fibonacci sequence
+
+  Testing fibonacciCountUntilNum
+
+    ✔ fibonacciCountUntilNum is a Function
+
+  Testing fibonacciUntilNum
+
+    ✔ fibonacciUntilNum is a Function
+
+  Testing filterNonUnique
+
+    ✔ filterNonUnique is a Function
+    ✔ Filters out the non-unique values in an array
+
+  Testing findKey
+
+    ✔ findKey is a Function
+    ✔ Returns the appropriate key
+
+  Testing findLast
+
+    ✔ findLast is a Function
+    ✔ Finds last element for which the given function returns true
+
+  Testing findLastIndex
+
+    ✔ findLastIndex is a Function
+    ✔ Finds last index for which the given function returns true
+
+  Testing findLastKey
+
+    ✔ findLastKey is a Function
+    ✔ Returns the appropriate key
+
+  Testing flatten
+
+    ✔ flatten is a Function
+    ✔ Flattens an array
+    ✔ Flattens an array
+
+  Testing flattenObject
+
+    ✔ flattenObject is a Function
+    ✔ Flattens an object with the paths for keys
+    ✔ Works with arrays
+
+  Testing flip
+
+    ✔ flip is a Function
+    ✔ Flips argument order
+
+  Testing forEachRight
+
+    ✔ forEachRight is a Function
+    ✔ Iterates over the array in reverse
+
+  Testing forOwn
+
+    ✔ forOwn is a Function
+    ✔ Iterates over an element's key-value pairs
+
+  Testing forOwnRight
+
+    ✔ forOwnRight is a Function
+    ✔ Iterates over an element's key-value pairs in reverse
+
+  Testing formatDuration
+
+    ✔ formatDuration is a Function
+    ✔ Returns the human readable format of the given number of milliseconds
+    ✔ Returns the human readable format of the given number of milliseconds
+
+  Testing fromCamelCase
+
+    ✔ fromCamelCase is a Function
+    ✔ Converts a string from camelcase
+    ✔ Converts a string from camelcase
+    ✔ Converts a string from camelcase
+
+  Testing functionName
+
+    ✔ functionName is a Function
+    ✔ Works for native functions
+    ✔ Works for functions
+    ✔ Works for arrow functions
+
+  Testing functions
+
+    ✔ functions is a Function
+    ✔ Returns own methods
+    ✔ Returns own and inherited methods
+
+  Testing gcd
+
+    ✔ gcd is a Function
+    ✔ Calculates the greatest common divisor between two or more numbers/arrays
+    ✔ Calculates the greatest common divisor between two or more numbers/arrays
+
+  Testing geometricProgression
+
+    ✔ geometricProgression is a Function
+    ✔ Initializes an array containing the numbers in the specified range
+    ✔ Initializes an array containing the numbers in the specified range
+    ✔ Initializes an array containing the numbers in the specified range
+
+  Testing get
+
+    ✔ get is a Function
+    ✔ Retrieve a property indicated by the selector from an object.
+
+  Testing getColonTimeFromDate
+
+    ✔ getColonTimeFromDate is a Function
+
+  Testing getDaysDiffBetweenDates
+
+    ✔ getDaysDiffBetweenDates is a Function
+    ✔ Returns the difference in days between two dates
+
+  Testing getMeridiemSuffixOfInteger
+
+    ✔ getMeridiemSuffixOfInteger is a Function
+
+  Testing getScrollPosition
+
+    ✔ getScrollPosition is a Function
+
+  Testing getStyle
+
+    ✔ getStyle is a Function
+
+  Testing getType
+
+    ✔ getType is a Function
+    ✔ Returns the native type of a value
+
+  Testing getURLParameters
+
+    ✔ getURLParameters is a Function
+    ✔ Returns an object containing the parameters of the current URL
+
+  Testing groupBy
+
+    ✔ groupBy is a Function
+    ✔ Groups the elements of an array based on the given function
+    ✔ Groups the elements of an array based on the given function
+
+  Testing hammingDistance
+
+    ✔ hammingDistance is a Function
+    ✔ retuns hamming disance between 2 values
+
+  Testing hasClass
+
+    ✔ hasClass is a Function
+
+  Testing hasFlags
+
+    ✔ hasFlags is a Function
+
+  Testing hashBrowser
+
+    ✔ hashBrowser is a Function
+
+  Testing hashNode
+
+    ✔ hashNode is a Function
+
+  Testing head
+
+    ✔ head is a Function
+    ✔ head({ a: 1234}) returns undefined
+    ✔ head([1, 2, 3]) returns 1
+    ✔ head({ 0: false}) returns false
+    ✔ head(String) returns S
+    ✔ head(null) throws an Error
+    ✔ head(undefined) throws an Error
+    ✔ head() throws an Error
+    ✔ head([1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1122, 32124, 23232]) takes less than 2s to run
+
+  Testing hexToRGB
+
+    ✔ hexToRGB is a Function
+    ✔ Converts a color code to a rgb() or rgba() string
+    ✔ Converts a color code to a rgb() or rgba() string
+    ✔ Converts a color code to a rgb() or rgba() string
+
+  Testing hide
+
+    ✔ hide is a Function
+
+  Testing howManyTimes
+
+    ✔ howManyTimes is a Function
+
+  Testing httpDelete
+
+    ✔ httpDelete is a Function
+
+  Testing httpGet
+
+    ✔ httpGet is a Function
+
+  Testing httpPost
+
+    ✔ httpPost is a Function
+
+  Testing httpPut
+
+    ✔ httpPut is a Function
+
+  Testing httpsRedirect
+
+    ✔ httpsRedirect is a Function
+
+  Testing inRange
+
+    ✔ inRange is a Function
+    ✔ The given number falls within the given range
+    ✔ The given number falls within the given range
+    ✔ The given number does not falls within the given range
+    ✔ The given number does not falls within the given range
+
+  Testing indexOfAll
+
+    ✔ indexOfAll is a Function
+    ✔ Returns all indices of val in an array
+    ✔ Returns all indices of val in an array
+
+  Testing initial
+
+    ✔ initial is a Function
+    ✔ Returns all the elements of an array except the last one
+
+  Testing initialize2DArray
+
+    ✔ initialize2DArray is a Function
+    ✔ Initializes a 2D array of given width and height and value
+
+  Testing initializeArrayWithRange
+
+    ✔ initializeArrayWithRange is a Function
+    ✔ Initializes an array containing the numbers in the specified range
+
+  Testing initializeArrayWithRangeRight
+
+    ✔ initializeArrayWithRangeRight is a Function
+
+  Testing initializeArrayWithValues
+
+    ✔ initializeArrayWithValues is a Function
+    ✔ Initializes and fills an array with the specified values
+
+  Testing intersection
+
+    ✔ intersection is a Function
+    ✔ Returns a list of elements that exist in both arrays
+
+  Testing intersectionBy
+
+    ✔ intersectionBy is a Function
+    ✔ Returns a list of elements that exist in both arrays, after applying the provided function to each array element of both
+
+  Testing intersectionWith
+
+    ✔ intersectionWith is a Function
+    ✔ Returns a list of elements that exist in both arrays, using a provided comparator function
+
+  Testing invertKeyValues
+
+    ✔ invertKeyValues is a Function
+    ✔ invertKeyValues({ a: 1, b: 2, c: 1 }) returns { 1: [ 'a', 'c' ], 2: [ 'b' ] }
+    ✔ invertKeyValues({ a: 1, b: 2, c: 1 }, value => 'group' + value) returns { group1: [ 'a', 'c' ], group2: [ 'b' ] }
+
+  Testing is
+
+    ✔ is is a Function
+    ✔ Works for arrays with data
+    ✔ Works for empty arrays
+    ✔ Works for arrays, not objects
+    ✔ Works for objects
+    ✔ Works for maps
+    ✔ Works for regular expressions
+    ✔ Works for sets
+    ✔ Works for weak maps
+    ✔ Works for weak sets
+    ✔ Works for strings - returns false for primitive
+    ✔ Works for strings - returns true when using constructor
+    ✔ Works for numbers - returns false for primitive
+    ✔ Works for numbers - returns true when using constructor
+    ✔ Works for booleans - returns false for primitive
+    ✔ Works for booleans - returns true when using constructor
+    ✔ Works for functions
+
+  Testing isAbsoluteURL
+
+    ✔ isAbsoluteURL is a Function
+    ✔ Given string is an absolute URL
+    ✔ Given string is an absolute URL
+    ✔ Given string is not an absolute URL
+
+  Testing isArmstrongNumber
+
+    ✔ isArmstrongNumber is a Function
+
+  Testing isArray
+
+    ✔ isArray is a Function
+    ✔ passed value is an array
+    ✔ passed value is not an array
+
+  Testing isArrayBuffer
+
+    ✔ isArrayBuffer is a Function
+
+  Testing isArrayLike
+
+    ✔ isArrayLike is a Function
+    ✔ Returns true for a string
+    ✔ Returns true for an array
+    ✔ Returns false for null
+
+  Testing isBoolean
+
+    ✔ isBoolean is a Function
+    ✔ passed value is not a boolean
+    ✔ passed value is not a boolean
+
+  Testing isDivisible
+
+    ✔ isDivisible is a Function
+    ✔ The number 6 is divisible by 3
+
+  Testing isEmpty
+
+    ✔ isEmpty is a Function
+    ✔ Returns true for empty Map
+    ✔ Returns true for empty Set
+    ✔ Returns true for empty array
+    ✔ Returns true for empty object
+    ✔ Returns true for empty string
+    ✔ Returns false for non-empty array
+    ✔ Returns false for non-empty object
+    ✔ Returns false for non-empty string
+    ✔ Returns true - type is not considered a collection
+    ✔ Returns true - type is not considered a collection
+
+  Testing isEven
+
+    ✔ isEven is a Function
+    ✔ 4 is even number
+    ✔ undefined
+
+  Testing isFunction
+
+    ✔ isFunction is a Function
+    ✔ passed value is a function
+    ✔ passed value is not a function
+
+  Testing isLowerCase
+
+    ✔ isLowerCase is a Function
+    ✔ passed string is a lowercase
+    ✔ passed string is a lowercase
+    ✔ passed value is not a lowercase
+
+  Testing isMap
+
+    ✔ isMap is a Function
+
+  Testing isNil
+
+    ✔ isNil is a Function
+    ✔ Returns true for null
+    ✔ Returns true for undefined
+    ✔ Returns false for an empty string
+
+  Testing isNull
+
+    ✔ isNull is a Function
+    ✔ passed argument is a null
+    ✔ passed argument is a null
+
+  Testing isNumber
+
+    ✔ isNumber is a Function
+    ✔ passed argument is a number
+    ✔ passed argument is not a number
+
+  Testing isObject
+
+    ✔ isObject is a Function
+    ✔ isObject([1, 2, 3, 4]) is a object
+    ✔ isObject([]) is a object
+    ✔ isObject({ a:1 }) is a object
+    ✔ isObject(true) is not a object
+
+  Testing isObjectLike
+
+    ✔ isObjectLike is a Function
+    ✔ Returns true for an object
+    ✔ Returns true for an array
+    ✔ Returns false for a function
+    ✔ Returns false for null
+
+  Testing isPlainObject
+
+    ✔ isPlainObject is a Function
+    ✔ Returns true for a plain object
+    ✔ Returns false for a Map (example of non-plain object)
+
+  Testing isPrime
+
+    ✔ isPrime is a Function
+    ✔ passed number is a prime
+
+  Testing isPrimitive
+
+    ✔ isPrimitive is a Function
+    ✔ isPrimitive(null) is primitive
+    ✔ isPrimitive(undefined) is primitive
+    ✔ isPrimitive(string) is primitive
+    ✔ isPrimitive(true) is primitive
+    ✔ isPrimitive(50) is primitive
+    ✔ isPrimitive('Hello') is primitive
+    ✔ isPrimitive(false) is primitive
+    ✔ isPrimitive(Symbol()) is primitive
+    ✔ isPrimitive([1, 2, 3]) is not primitive
+    ✔ isPrimitive({ a: 123 }) is not primitive
+    ✔ isPrimitive({ a: 123 }) takes less than 2s to run
+
+  Testing isPromiseLike
+
+    ✔ isPromiseLike is a Function
+    ✔ Returns true for a promise-like object
+    ✔ Returns false for null
+    ✔ Returns false for an empty object
+
+  Testing isRegExp
+
+    ✔ isRegExp is a Function
+
+  Testing isSet
+
+    ✔ isSet is a Function
+
+  Testing isSorted
+
+    ✔ isSorted is a Function
+    ✔ Array is sorted in ascending order
+    ✔ Array is sorted in descending order
+    ✔ Array is not sorted, direction changed in array
+
+  Testing isString
+
+    ✔ isString is a Function
+    ✔ foo is a string
+    ✔ "10" is a string
+    ✔ Empty string is a string
+    ✔ 10 is not a string
+    ✔ true is not string
+
+  Testing isSymbol
+
+    ✔ isSymbol is a Function
+    ✔ Checks if the given argument is a symbol
+
+  Testing isTravisCI
+
+    ✔ isTravisCI is a Function
+    ✔ Running on Travis, correctly evaluates
+
+  Testing isTypedArray
+
+    ✔ isTypedArray is a Function
+
+  Testing isUndefined
+
+    ✔ isUndefined is a Function
+    ✔ Returns true for undefined
+
+  Testing isUpperCase
+
+    ✔ isUpperCase is a Function
+    ✔ ABC is all upper case
+    ✔ abc is not all upper case
+    ✔ A3@$ is all uppercase
+
+  Testing isValidJSON
+
+    ✔ isValidJSON is a Function
+    ✔ {"name":"Adam","age":20} is a valid JSON
+    ✔ {"name":"Adam",age:"20"} is not a valid JSON
+    ✔ null is a valid JSON
+
+  Testing isWeakMap
+
+    ✔ isWeakMap is a Function
+
+  Testing isWeakSet
+
+    ✔ isWeakSet is a Function
+
+  Testing join
+
+    ✔ join is a Function
+    ✔ Joins all elements of an array into a string and returns this string
+    ✔ Joins all elements of an array into a string and returns this string
+    ✔ Joins all elements of an array into a string and returns this string
+
+  Testing last
+
+    ✔ last is a Function
+    ✔ last({ a: 1234}) returns undefined
+    ✔ last([1, 2, 3]) returns 3
+    ✔ last({ 0: false}) returns undefined
+    ✔ last(String) returns g
+    ✔ last(null) throws an Error
+    ✔ last(undefined) throws an Error
+    ✔ last() throws an Error
+    ✔ last([1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1122, 32124, 23232]) takes less than 2s to run
+
+  Testing lcm
+
+    ✔ lcm is a Function
+    ✔ Returns the least common multiple of two or more numbers.
+    ✔ Returns the least common multiple of two or more numbers.
+
+  Testing longestItem
+
+    ✔ longestItem is a Function
+    ✔ Returns the longest object
+
+  Testing lowercaseKeys
+
+    ✔ lowercaseKeys is a Function
+    ✔ Lowercases object keys
+    ✔ Does not mutate original object
+
+  Testing luhnCheck
+
+    ✔ luhnCheck is a Function
+    ✔ validates identification number
+    ✔ validates identification number
+    ✔ validates identification number
+
+  Testing mapKeys
+
+    ✔ mapKeys is a Function
+    ✔ Maps keys
+
+  Testing mapObject
+
+    ✔ mapObject is a Function
+    ✔ mapObject([1, 2, 3], a => a * a) returns { 1: 1, 2: 4, 3: 9 }
+    ✔ mapObject([1, 2, 3, 4], (a, b) => b - a) returns { 1: -1, 2: -1, 3: -1, 4: -1 }
+    ✔ mapObject([1, 2, 3, 4], (a, b) => a - b) returns { 1: 1, 2: 1, 3: 1, 4: 1 }
+
+  Testing mapValues
+
+    ✔ mapValues is a Function
+    ✔ Maps values
+
+  Testing mask
+
+    ✔ mask is a Function
+    ✔ Replaces all but the last num of characters with the specified mask character
+    ✔ Replaces all but the last num of characters with the specified mask character
+    ✔ Replaces all but the last num of characters with the specified mask character
+
+  Testing matches
+
+    ✔ matches is a Function
+    ✔ Matches returns true for two similar objects
+    ✔ Matches returns false for two non-similar objects
+
+  Testing matchesWith
+
+    ✔ matchesWith is a Function
+    ✔ Returns true for two objects with similar values, based on the provided function
+
+  Testing maxBy
+
+    ✔ maxBy is a Function
+    ✔ Produces the right result with a function
+    ✔ Produces the right result with a property name
+
+  Testing maxN
+
+    ✔ maxN is a Function
+    ✔ Returns the n maximum elements from the provided array
+    ✔ Returns the n maximum elements from the provided array
+
+  Testing median
+
+    ✔ median is a Function
+    ✔ Returns the median of an array of numbers
+    ✔ Returns the median of an array of numbers
+
+  Testing memoize
+
+    ✔ memoize is a Function
+    ✔ Function works properly
+    ✔ Function works properly
+    ✔ Cache stores values
+
+  Testing merge
+
+    ✔ merge is a Function
+    ✔ Merges two objects
+
+  Testing minBy
+
+    ✔ minBy is a Function
+    ✔ Produces the right result with a function
+    ✔ Produces the right result with a property name
+
+  Testing minN
+
+    ✔ minN is a Function
+    ✔ Returns the n minimum elements from the provided array
+    ✔ Returns the n minimum elements from the provided array
+
+  Testing negate
+
+    ✔ negate is a Function
+    ✔ Negates a predicate function
+
+  Testing nthArg
+
+    ✔ nthArg is a Function
+    ✔ Returns the nth argument
+    ✔ Returns undefined if arguments too few
+    ✔ Works for negative values
+
+  Testing nthElement
+
+    ✔ nthElement is a Function
+    ✔ Returns the nth element of an array.
+    ✔ Returns the nth element of an array.
+
+  Testing objectFromPairs
+
+    ✔ objectFromPairs is a Function
+    ✔ Creates an object from the given key-value pairs.
+
+  Testing objectToPairs
+
+    ✔ objectToPairs is a Function
+    ✔ Creates an array of key-value pair arrays from an object.
+
+  Testing observeMutations
+
+    ✔ observeMutations is a Function
+
+  Testing off
+
+    ✔ off is a Function
+
+  Testing omit
+
+    ✔ omit is a Function
+    ✔ Omits the key-value pairs corresponding to the given keys from an object
+
+  Testing omitBy
+
+    ✔ omitBy is a Function
+    ✔ Creates an object composed of the properties the given function returns falsey for
+
+  Testing on
+
+    ✔ on is a Function
+
+  Testing onUserInputChange
+
+    ✔ onUserInputChange is a Function
+
+  Testing once
+
+    ✔ once is a Function
+
+  Testing orderBy
+
+    ✔ orderBy is a Function
+    ✔ Returns a sorted array of objects ordered by properties and orders.
+    ✔ Returns a sorted array of objects ordered by properties and orders.
+
+  Testing over
+
+    ✔ over is a Function
+    ✔ Applies given functions over multiple arguments
+
+  Testing overArgs
+
+    ✔ overArgs is a Function
+    ✔ Invokes the provided function with its arguments transformed
+
+  Testing palindrome
+
+    ✔ palindrome is a Function
+    ✔ Given string is a palindrome
+    ✔ Given string is not a palindrome
+
+  Testing parseCookie
+
+    ✔ parseCookie is a Function
+    ✔ Parses the cookie
+
+  Testing partial
+
+    ✔ partial is a Function
+    ✔ Prepends arguments
+
+  Testing partialRight
+
+    ✔ partialRight is a Function
+    ✔ Appends arguments
+
+  Testing partition
+
+    ✔ partition is a Function
+    ✔ Groups the elements into two arrays, depending on the provided function's truthiness for each element.
+
+  Testing percentile
+
+    ✔ percentile is a Function
+    ✔ Uses the percentile formula to calculate how many numbers in the given array are less or equal to the given value.
+
+  Testing pick
+
+    ✔ pick is a Function
+    ✔ Picks the key-value pairs corresponding to the given keys from an object.
+
+  Testing pickBy
+
+    ✔ pickBy is a Function
+    ✔ Creates an object composed of the properties the given function returns truthy for.
+
+  Testing pipeAsyncFunctions
+
+    ✔ pipeAsyncFunctions is a Function
+    ✔ Produces the appropriate hash
+    ✔ pipeAsyncFunctions result should be 15
+
+  Testing pipeFunctions
+
+    ✔ pipeFunctions is a Function
+    ✔ Performs left-to-right function composition
+
+  Testing pluralize
+
+    ✔ pluralize is a Function
+    ✔ Produces the plural of the word
+    ✔ Produces the singular of the word
+    ✔ Produces the plural of the word
+    ✔ Prodices the defined plural of the word
+    ✔ Works with a dictionary
+
+  Testing powerset
+
+    ✔ powerset is a Function
+    ✔ Returns the powerset of a given array of numbers.
+
+  Testing prettyBytes
+
+    ✔ prettyBytes is a Function
+    ✔ Converts a number in bytes to a human-readable string.
+    ✔ Converts a number in bytes to a human-readable string.
+    ✔ Converts a number in bytes to a human-readable string.
+
+  Testing primes
+
+    ✔ primes is a Function
+    ✔ Generates primes up to a given number, using the Sieve of Eratosthenes.
+
+  Testing promisify
+
+    ✔ promisify is a Function
+
+  Testing pull
+
+    ✔ pull is a Function
+    ✔ Pulls the specified values
+
+  Testing pullAtIndex
+
+    ✔ pullAtIndex is a Function
+    ✔ Pulls the given values
+    ✔ Pulls the given values
+
+  Testing pullAtValue
+
+    ✔ pullAtValue is a Function
+    ✔ Pulls the specified values
+    ✔ Pulls the specified values
+
+  Testing pullBy
+
+    ✔ pullBy is a Function
+    ✔ Pulls the specified values
+
+  Testing quickSort
+
+    ✔ quickSort is a Function
+    ✔ quickSort([5, 6, 4, 3, 1, 2]) returns [1, 2, 3, 4, 5, 6]
+    ✔ quickSort([-1, 0, -2]) returns [-2, -1, 0]
+    ✔ quickSort() throws an error
+    ✔ quickSort(123) throws an error
+    ✔ quickSort({ 234: string}) throws an error
+    ✔ quickSort(null) throws an error
+    ✔ quickSort(undefined) throws an error
+    ✔ quickSort([11, 1, 324, 23232, -1, 53, 2, 524, 32, 13, 156, 133, 62, 12, 4]) takes less than 2s to run
+
+  Testing randomHexColorCode
+
+    ✔ randomHexColorCode is a Function
+    ✔ should be equal
+
+  Testing randomIntArrayInRange
+
+    ✔ randomIntArrayInRange is a Function
+
+  Testing randomIntegerInRange
+
+    ✔ randomIntegerInRange is a Function
+    ✔ The returned value is a Integer
+    ✔ The returned value lies between provied lowerLimit and upperLimit (both inclusive).
+
+  Testing randomNumberInRange
+
+    ✔ randomNumberInRange is a Function
+
+  Testing readFileLines
+
+    ✔ readFileLines is a Function
+
+  Testing rearg
+
+    ✔ rearg is a Function
+    ✔ Reorders arguments in invoked function
+
+  Testing redirect
+
+    ✔ redirect is a Function
+
+  Testing reduceSuccessive
+
+    ✔ reduceSuccessive is a Function
+    ✔ Returns the array of successively reduced values
+
+  Testing reduceWhich
+
+    ✔ reduceWhich is a Function
+    ✔ Returns the minimum of an array
+    ✔ Returns the maximum of an array
+    ✔ Returns the object with the minimum specified value in an array
+
+  Testing reducedFilter
+
+    ✔ reducedFilter is a Function
+    ✔ Filter an array of objects based on a condition while also filtering out unspecified keys.
+
+  Testing remove
+
+    ✔ remove is a Function
+    ✔ Removes elements from an array for which the given function returns false
+
+  Testing removeNonASCII
+
+    ✔ removeNonASCII is a Function
+    ✔ Removes non-ASCII characters
+
+  Testing removeVowels
+
+    ✔ removeVowels is a Function
+
+  Testing reverseString
+
+    ✔ reverseString is a Function
+    ✔ Reverses a string.
 
   Testing round
 
-    √ round is a Function
-    √ round(1.005, 2) returns 1.01
-    √ round(123.3423345345345345344, 11) returns 123.34233453453
-    √ round(3.342, 11) returns 3.342
-    √ round(1.005) returns 1
-    √ round([1.005, 2]) returns NaN
-    √ round(string) returns NaN
-    √ round() returns NaN
-    √ round(132, 413, 4134) returns NaN
-    √ round({a: 132}, 413) returns NaN
-    √ round(123.3423345345345345344, 11) takes less than 2s to run
+    ✔ round is a Function
+    ✔ round(1.005, 2) returns 1.01
+    ✔ round(123.3423345345345345344, 11) returns 123.34233453453
+    ✔ round(3.342, 11) returns 3.342
+    ✔ round(1.005) returns 1
+    ✔ round([1.005, 2]) returns NaN
+    ✔ round(string) returns NaN
+    ✔ round() returns NaN
+    ✔ round(132, 413, 4134) returns NaN
+    ✔ round({a: 132}, 413) returns NaN
+    ✔ round(123.3423345345345345344, 11) takes less than 2s to run
 
   Testing runAsync
 
-    √ runAsync is a Function
+    ✔ runAsync is a Function
 
   Testing runPromisesInSeries
 
-    √ runPromisesInSeries is a Function
+    ✔ runPromisesInSeries is a Function
 
   Testing sample
 
+<<<<<<< HEAD
     √ sample is a Function
     √ Returns a random element from the array
     √ Works for single-element arrays
@@ -1308,470 +1331,473 @@ Test log for: Fri Feb 09 2018 13:05:56 GMT+0200 (GTB Standard Time)
     √ Returns all elements in an array if n >= length
     √ Returns an empty array if original array is empty
     √ Returns an empty array if n = 0
+=======
+    ✔ sample is a Function
+
+  Testing sampleSize
+
+    ✔ sampleSize is a Function
+>>>>>>> master
 
   Testing scrollToTop
 
-    √ scrollToTop is a Function
+    ✔ scrollToTop is a Function
 
   Testing sdbm
 
-    √ sdbm is a Function
-    √ Hashes the input string into a whole number.
+    ✔ sdbm is a Function
+    ✔ Hashes the input string into a whole number.
 
   Testing serializeCookie
 
-    √ serializeCookie is a Function
-    √ Serializes the cookie
+    ✔ serializeCookie is a Function
+    ✔ Serializes the cookie
 
   Testing setStyle
 
-    √ setStyle is a Function
+    ✔ setStyle is a Function
 
   Testing shallowClone
 
-    √ shallowClone is a Function
-    √ Shallow cloning works
-    √ Does not clone deeply
+    ✔ shallowClone is a Function
+    ✔ Shallow cloning works
+    ✔ Does not clone deeply
 
   Testing show
 
-    √ show is a Function
+    ✔ show is a Function
 
   Testing shuffle
 
+<<<<<<< HEAD
     √ shuffle is a Function
     √ Shuffles the array
     √ New array contains all original elements
     √ Works for empty arrays
     √ Works for single-element arrays
+=======
+    ✔ shuffle is a Function
+>>>>>>> master
 
   Testing similarity
 
-    √ similarity is a Function
-    √ Returns an array of elements that appear in both arrays.
+    ✔ similarity is a Function
+    ✔ Returns an array of elements that appear in both arrays.
 
   Testing size
 
-    √ size is a Function
-    √ Get size of arrays, objects or strings.
-    √ Get size of arrays, objects or strings.
+    ✔ size is a Function
+    ✔ Get size of arrays, objects or strings.
+    ✔ Get size of arrays, objects or strings.
 
   Testing sleep
 
-    √ sleep is a Function
+    ✔ sleep is a Function
 
   Testing solveRPN
 
-    √ solveRPN is a Function
+    ✔ solveRPN is a Function
 
   Testing sortCharactersInString
 
-    √ sortCharactersInString is a Function
-    √ Alphabetically sorts the characters in a string.
+    ✔ sortCharactersInString is a Function
+    ✔ Alphabetically sorts the characters in a string.
 
   Testing sortedIndex
 
-    √ sortedIndex is a Function
-    √ Returns the lowest index at which value should be inserted into array in order to maintain its sort order.
-    √ Returns the lowest index at which value should be inserted into array in order to maintain its sort order.
+    ✔ sortedIndex is a Function
+    ✔ Returns the lowest index at which value should be inserted into array in order to maintain its sort order.
+    ✔ Returns the lowest index at which value should be inserted into array in order to maintain its sort order.
 
   Testing sortedIndexBy
 
-    √ sortedIndexBy is a Function
-    √ Returns the lowest index to insert the element without messing up the list order
+    ✔ sortedIndexBy is a Function
+    ✔ Returns the lowest index to insert the element without messing up the list order
 
   Testing sortedLastIndex
 
-    √ sortedLastIndex is a Function
-    √ Returns the highest index to insert the element without messing up the list order
+    ✔ sortedLastIndex is a Function
+    ✔ Returns the highest index to insert the element without messing up the list order
 
   Testing sortedLastIndexBy
 
-    √ sortedLastIndexBy is a Function
-    √ Returns the highest index to insert the element without messing up the list order
+    ✔ sortedLastIndexBy is a Function
+    ✔ Returns the highest index to insert the element without messing up the list order
 
   Testing speechSynthesis
 
-    √ speechSynthesis is a Function
+    ✔ speechSynthesis is a Function
 
   Testing splitLines
 
-    √ splitLines is a Function
-    √ Splits a multiline string into an array of lines.
+    ✔ splitLines is a Function
+    ✔ Splits a multiline string into an array of lines.
 
   Testing spreadOver
 
-    √ spreadOver is a Function
-    √ Takes a variadic function and returns a closure that accepts an array of arguments to map to the inputs of the function.
+    ✔ spreadOver is a Function
+    ✔ Takes a variadic function and returns a closure that accepts an array of arguments to map to the inputs of the function.
 
   Testing standardDeviation
 
-    √ standardDeviation is a Function
-    √ Returns the standard deviation of an array of numbers
-    √ Returns the standard deviation of an array of numbers
+    ✔ standardDeviation is a Function
+    ✔ Returns the standard deviation of an array of numbers
+    ✔ Returns the standard deviation of an array of numbers
 
   Testing stripHTMLTags
 
-    √ stripHTMLTags is a Function
-    √ Removes HTML tags
+    ✔ stripHTMLTags is a Function
+    ✔ Removes HTML tags
 
   Testing sum
 
-    √ sum is a Function
-    √ Returns the sum of two or more numbers/arrays.
+    ✔ sum is a Function
+    ✔ Returns the sum of two or more numbers/arrays.
 
   Testing sumBy
 
-    √ sumBy is a Function
+    ✔ sumBy is a Function
 
   Testing sumPower
 
-    √ sumPower is a Function
-    √ Returns the sum of the powers of all the numbers from start to end
-    √ Returns the sum of the powers of all the numbers from start to end
-    √ Returns the sum of the powers of all the numbers from start to end
+    ✔ sumPower is a Function
+    ✔ Returns the sum of the powers of all the numbers from start to end
+    ✔ Returns the sum of the powers of all the numbers from start to end
+    ✔ Returns the sum of the powers of all the numbers from start to end
 
   Testing symmetricDifference
 
-    √ symmetricDifference is a Function
-    √ Returns the symmetric difference between two arrays.
+    ✔ symmetricDifference is a Function
+    ✔ Returns the symmetric difference between two arrays.
 
   Testing symmetricDifferenceBy
 
-    √ symmetricDifferenceBy is a Function
-    √ Returns the symmetric difference between two arrays, after applying the provided function to each array element of both
+    ✔ symmetricDifferenceBy is a Function
+    ✔ Returns the symmetric difference between two arrays, after applying the provided function to each array element of both
 
   Testing symmetricDifferenceWith
 
-    √ symmetricDifferenceWith is a Function
-    √ Returns the symmetric difference between two arrays, using a provided function as a comparator
+    ✔ symmetricDifferenceWith is a Function
+    ✔ Returns the symmetric difference between two arrays, using a provided function as a comparator
 
   Testing tail
 
-    √ tail is a Function
-    √ Returns tail
-    √ Returns tail
+    ✔ tail is a Function
+    ✔ Returns tail
+    ✔ Returns tail
 
   Testing take
 
-    √ take is a Function
-    √ Returns an array with n elements removed from the beginning.
-    √ Returns an array with n elements removed from the beginning.
+    ✔ take is a Function
+    ✔ Returns an array with n elements removed from the beginning.
+    ✔ Returns an array with n elements removed from the beginning.
 
   Testing takeRight
 
-    √ takeRight is a Function
-    √ Returns an array with n elements removed from the end
-    √ Returns an array with n elements removed from the end
+    ✔ takeRight is a Function
+    ✔ Returns an array with n elements removed from the end
+    ✔ Returns an array with n elements removed from the end
 
   Testing takeRightWhile
 
-    √ takeRightWhile is a Function
-    √ Removes elements until the function returns true
+    ✔ takeRightWhile is a Function
+    ✔ Removes elements until the function returns true
 
   Testing takeWhile
 
-    √ takeWhile is a Function
-    √ Removes elements until the function returns true
+    ✔ takeWhile is a Function
+    ✔ Removes elements until the function returns true
 
   Testing throttle
 
-    √ throttle is a Function
-
-  Testing times
-
-    √ times is a Function
-    √ Runs a function the specified amount of times
+    ✔ throttle is a Function
 
   Testing timeTaken
 
-    √ timeTaken is a Function
+    ✔ timeTaken is a Function
+
+  Testing times
+
+    ✔ times is a Function
+    ✔ Runs a function the specified amount of times
 
   Testing toCamelCase
 
-    √ toCamelCase is a Function
-    √ toCamelCase('some_database_field_name') returns someDatabaseFieldName
-    √ toCamelCase('Some label that needs to be camelized') returns someLabelThatNeedsToBeCamelized
-    √ toCamelCase('some-javascript-property') return someJavascriptProperty
-    √ toCamelCase('some-mixed_string with spaces_underscores-and-hyphens') returns someMixedStringWithSpacesUnderscoresAndHyphens
-    √ toCamelCase() throws a error
-    √ toCamelCase([]) throws a error
-    √ toCamelCase({}) throws a error
-    √ toCamelCase(123) throws a error
-    √ toCamelCase(some-mixed_string with spaces_underscores-and-hyphens) takes less than 2s to run
+    ✔ toCamelCase is a Function
+    ✔ toCamelCase('some_database_field_name') returns someDatabaseFieldName
+    ✔ toCamelCase('Some label that needs to be camelized') returns someLabelThatNeedsToBeCamelized
+    ✔ toCamelCase('some-javascript-property') return someJavascriptProperty
+    ✔ toCamelCase('some-mixed_string with spaces_underscores-and-hyphens') returns someMixedStringWithSpacesUnderscoresAndHyphens
+    ✔ toCamelCase() throws a error
+    ✔ toCamelCase([]) throws a error
+    ✔ toCamelCase({}) throws a error
+    ✔ toCamelCase(123) throws a error
+    ✔ toCamelCase(some-mixed_string with spaces_underscores-and-hyphens) takes less than 2s to run
 
   Testing toCurrency
 
-    √ toCurrency is a Function
-    √ currency: Euro | currencyLangFormat: Local
-    √ currency: US Dollar | currencyLangFormat: English (United States)
-    √ currency: Japanese Yen | currencyLangFormat: Local
+    ✔ toCurrency is a Function
+    ✔ currency: Euro | currencyLangFormat: Local
+    ✔ currency: US Dollar | currencyLangFormat: English (United States)
+    ✔ currency: Japanese Yen | currencyLangFormat: Local
 
   Testing toDecimalMark
 
-    √ toDecimalMark is a Function
-    √ convert a float-point arithmetic to the Decimal mark form
-
-  Testing toggleClass
-
-    √ toggleClass is a Function
+    ✔ toDecimalMark is a Function
+    ✔ convert a float-point arithmetic to the Decimal mark form
 
   Testing toKebabCase
 
-    √ toKebabCase is a Function
-    √ toKebabCase('camelCase') returns camel-case
-    √ toKebabCase('some text') returns some-text
-    √ toKebabCase('some-mixed-string With spaces-underscores-and-hyphens') returns some-mixed-string-with-spaces-underscores-and-hyphens
-    √ toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') returns i-am-listening-to-fm-while-loading-different-url-on-my-browser-and-also-editing-some-xml-and-html
-    √ toKebabCase() return undefined
-    √ toKebabCase([]) throws an error
-    √ toKebabCase({}) throws an error
-    √ toKebabCase(123) throws an error
-    √ toKebabCase(IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML) takes less than 2s to run
-
-  Testing tomorrow
-
-    √ tomorrow is a Function
+    ✔ toKebabCase is a Function
+    ✔ toKebabCase('camelCase') returns camel-case
+    ✔ toKebabCase('some text') returns some-text
+    ✔ toKebabCase('some-mixed-string With spaces-underscores-and-hyphens') returns some-mixed-string-with-spaces-underscores-and-hyphens
+    ✔ toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') returns i-am-listening-to-fm-while-loading-different-url-on-my-browser-and-also-editing-some-xml-and-html
+    ✔ toKebabCase() return undefined
+    ✔ toKebabCase([]) throws an error
+    ✔ toKebabCase({}) throws an error
+    ✔ toKebabCase(123) throws an error
+    ✔ toKebabCase(IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML) takes less than 2s to run
 
   Testing toOrdinalSuffix
 
-    √ toOrdinalSuffix is a Function
-    √ Adds an ordinal suffix to a number
-    √ Adds an ordinal suffix to a number
-    √ Adds an ordinal suffix to a number
-    √ Adds an ordinal suffix to a number
+    ✔ toOrdinalSuffix is a Function
+    ✔ Adds an ordinal suffix to a number
+    ✔ Adds an ordinal suffix to a number
+    ✔ Adds an ordinal suffix to a number
+    ✔ Adds an ordinal suffix to a number
 
   Testing toSafeInteger
 
-    √ toSafeInteger is a Function
-    √ Number(toSafeInteger(3.2)) is a number
-    √ Converts a value to a safe integer
-    √ toSafeInteger('4.2') returns 4
-    √ toSafeInteger(4.6) returns 5
-    √ toSafeInteger([]) returns 0
-    √ isNaN(toSafeInteger([1.5, 3124])) is true
-    √ isNaN(toSafeInteger('string')) is true
-    √ isNaN(toSafeInteger({})) is true
-    √ isNaN(toSafeInteger()) is true
-    √ toSafeInteger(Infinity) returns 9007199254740991
-    √ toSafeInteger(3.2) takes less than 2s to run
+    ✔ toSafeInteger is a Function
+    ✔ Number(toSafeInteger(3.2)) is a number
+    ✔ Converts a value to a safe integer
+    ✔ toSafeInteger('4.2') returns 4
+    ✔ toSafeInteger(4.6) returns 5
+    ✔ toSafeInteger([]) returns 0
+    ✔ isNaN(toSafeInteger([1.5, 3124])) is true
+    ✔ isNaN(toSafeInteger('string')) is true
+    ✔ isNaN(toSafeInteger({})) is true
+    ✔ isNaN(toSafeInteger()) is true
+    ✔ toSafeInteger(Infinity) returns 9007199254740991
+    ✔ toSafeInteger(3.2) takes less than 2s to run
 
   Testing toSnakeCase
 
-    √ toSnakeCase is a Function
-    √ toSnakeCase('camelCase') returns camel_case
-    √ toSnakeCase('some text') returns some_text
-    √ toSnakeCase('some-mixed_string With spaces_underscores-and-hyphens') returns some_mixed_string_with_spaces_underscores_and_hyphens
-    √ toSnakeCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') returns i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html
-    √ toSnakeCase() returns undefined
-    √ toSnakeCase([]) throws an error
-    √ toSnakeCase({}) throws an error
-    √ toSnakeCase(123) throws an error
-    √ toSnakeCase(IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML) takes less than 2s to run
+    ✔ toSnakeCase is a Function
+    ✔ toSnakeCase('camelCase') returns camel_case
+    ✔ toSnakeCase('some text') returns some_text
+    ✔ toSnakeCase('some-mixed_string With spaces_underscores-and-hyphens') returns some_mixed_string_with_spaces_underscores_and_hyphens
+    ✔ toSnakeCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') returns i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html
+    ✔ toSnakeCase() returns undefined
+    ✔ toSnakeCase([]) throws an error
+    ✔ toSnakeCase({}) throws an error
+    ✔ toSnakeCase(123) throws an error
+    ✔ toSnakeCase(IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML) takes less than 2s to run
+
+  Testing toggleClass
+
+    ✔ toggleClass is a Function
+
+  Testing tomorrow
+
+    ✔ tomorrow is a Function
 
   Testing transform
 
-    √ transform is a Function
-    √ Transforms an object
+    ✔ transform is a Function
+    ✔ Transforms an object
 
   Testing truncateString
 
-    √ truncateString is a Function
-    √ Truncates a "boomerang" up to a specified length.
+    ✔ truncateString is a Function
+    ✔ Truncates a "boomerang" up to a specified length.
 
   Testing truthCheckCollection
 
-    √ truthCheckCollection is a Function
-    √ second argument is truthy on all elements of a collection
+    ✔ truthCheckCollection is a Function
+    ✔ second argument is truthy on all elements of a collection
 
   Testing unary
 
-    √ unary is a Function
-    √ Discards arguments after the first one
+    ✔ unary is a Function
+    ✔ Discards arguments after the first one
 
   Testing unescapeHTML
 
-    √ unescapeHTML is a Function
-    √ Unescapes escaped HTML characters.
+    ✔ unescapeHTML is a Function
+    ✔ Unescapes escaped HTML characters.
 
   Testing unflattenObject
 
-    √ unflattenObject is a Function
-    √ Unflattens an object with the paths for keys
+    ✔ unflattenObject is a Function
+    ✔ Unflattens an object with the paths for keys
 
   Testing unfold
 
-    √ unfold is a Function
-    √ Works with a given function, producing an array
+    ✔ unfold is a Function
+    ✔ Works with a given function, producing an array
 
   Testing union
 
-    √ union is a Function
-    √ union([1, 2, 3], [4, 3, 2]) returns [1, 2, 3, 4]
-    √ union('str', 'asd') returns [ 's', 't', 'r', 'a', 'd' ]
-    √ union([[], {}], [1, 2, 3]) returns [[], {}, 1, 2, 3]
-    √ union([], []) returns []
-    √ union() throws an error
-    √ union(true, str) throws an error
-    √ union(false, true) throws an error
-    √ union(123, {}) throws an error
-    √ union([], {}) throws an error
-    √ union(undefined, null) throws an error
-    √ union([1, 2, 3], [4, 3, 2]) takes less than 2s to run
+    ✔ union is a Function
+    ✔ union([1, 2, 3], [4, 3, 2]) returns [1, 2, 3, 4]
+    ✔ union('str', 'asd') returns [ 's', 't', 'r', 'a', 'd' ]
+    ✔ union([[], {}], [1, 2, 3]) returns [[], {}, 1, 2, 3]
+    ✔ union([], []) returns []
+    ✔ union() throws an error
+    ✔ union(true, str) throws an error
+    ✔ union(false, true) throws an error
+    ✔ union(123, {}) throws an error
+    ✔ union([], {}) throws an error
+    ✔ union(undefined, null) throws an error
+    ✔ union([1, 2, 3], [4, 3, 2]) takes less than 2s to run
 
   Testing unionBy
 
-    √ unionBy is a Function
-    √ Produces the appropriate results
+    ✔ unionBy is a Function
+    ✔ Produces the appropriate results
 
   Testing unionWith
 
-    √ unionWith is a Function
-    √ Produces the appropriate results
+    ✔ unionWith is a Function
+    ✔ Produces the appropriate results
 
   Testing uniqueElements
 
-    √ uniqueElements is a Function
-    √ uniqueElements([1, 2, 2, 3, 4, 4, 5]) returns [1,2,3,4,5]
-    √ uniqueElements([1, 23, 53]) returns [1, 23, 53]
-    √ uniqueElements([true, 0, 1, false, false, undefined, null, '']) returns [true, 0, 1, false, false, undefined, null, '']
-    √ uniqueElements() returns []
-    √ uniqueElements(null) returns []
-    √ uniqueElements(undefined) returns []
-    √ uniqueElements('strt') returns ['s', 't', 'r']
-    √ uniqueElements(1, 1, 2543, 534, 5) throws an error
-    √ uniqueElements({}) throws an error
-    √ uniqueElements(true) throws an error
-    √ uniqueElements(false) throws an error
-    √ uniqueElements([true, 0, 1, false, false, undefined, null]) takes less than 2s to run
+    ✔ uniqueElements is a Function
+    ✔ uniqueElements([1, 2, 2, 3, 4, 4, 5]) returns [1,2,3,4,5]
+    ✔ uniqueElements([1, 23, 53]) returns [1, 23, 53]
+    ✔ uniqueElements([true, 0, 1, false, false, undefined, null, '']) returns [true, 0, 1, false, false, undefined, null, '']
+    ✔ uniqueElements() returns []
+    ✔ uniqueElements(null) returns []
+    ✔ uniqueElements(undefined) returns []
+    ✔ uniqueElements('strt') returns ['s', 't', 'r']
+    ✔ uniqueElements(1, 1, 2543, 534, 5) throws an error
+    ✔ uniqueElements({}) throws an error
+    ✔ uniqueElements(true) throws an error
+    ✔ uniqueElements(false) throws an error
+    ✔ uniqueElements([true, 0, 1, false, false, undefined, null]) takes less than 2s to run
 
   Testing untildify
 
-    √ untildify is a Function
+    ✔ untildify is a Function
 
   Testing unzip
 
-    √ unzip is a Function
-    √ unzip([['a', 1, true], ['b', 2, false]]) equals [['a', 'b'], [1, 2], [true, false]]
-    √ unzip([['a', 1, true], ['b', 2]]) equals [['a', 'b'], [1, 2], [true]]
+    ✔ unzip is a Function
+    ✔ unzip([['a', 1, true], ['b', 2, false]]) equals [['a', 'b'], [1, 2], [true, false]]
+    ✔ unzip([['a', 1, true], ['b', 2]]) equals [['a', 'b'], [1, 2], [true]]
 
   Testing unzipWith
 
-    √ unzipWith is a Function
-    √ unzipWith([[1, 10, 100], [2, 20, 200]], (...args) => args.reduce((acc, v) => acc + v, 0)) equals [3, 30, 300]
-
-  Testing URLJoin
-
-    √ URLJoin is a Function
-    √ Returns proper URL
-    √ Returns proper URL
-
-  Testing UUIDGeneratorBrowser
-
-    √ UUIDGeneratorBrowser is a Function
-
-  Testing UUIDGeneratorNode
-
-    √ UUIDGeneratorNode is a Function
+    ✔ unzipWith is a Function
+    ✔ unzipWith([[1, 10, 100], [2, 20, 200]], (...args) => args.reduce((acc, v) => acc + v, 0)) equals [3, 30, 300]
 
   Testing validateNumber
 
-    √ validateNumber is a Function
-    √ validateNumber(9) returns true
-    √ validateNumber(234asd.slice(0, 2)) returns true
-    √ validateNumber(1232) returns true
-    √ validateNumber(1232 + 13423) returns true
-    √ validateNumber(1232 * 2342 * 123) returns true
-    √ validateNumber(1232.23423536) returns true
-    √ validateNumber(234asd) returns false
-    √ validateNumber(e234d) returns false
-    √ validateNumber(false) returns false
-    √ validateNumber(true) returns false
-    √ validateNumber(null) returns false
-    √ validateNumber(123 * asd) returns false
+    ✔ validateNumber is a Function
+    ✔ validateNumber(9) returns true
+    ✔ validateNumber(234asd.slice(0, 2)) returns true
+    ✔ validateNumber(1232) returns true
+    ✔ validateNumber(1232 + 13423) returns true
+    ✔ validateNumber(1232 * 2342 * 123) returns true
+    ✔ validateNumber(1232.23423536) returns true
+    ✔ validateNumber(234asd) returns false
+    ✔ validateNumber(e234d) returns false
+    ✔ validateNumber(false) returns false
+    ✔ validateNumber(true) returns false
+    ✔ validateNumber(null) returns false
+    ✔ validateNumber(123 * asd) returns false
 
   Testing without
 
-    √ without is a Function
-    √ without([2, 1, 2, 3], 1, 2) returns [3]
-    √ without([]) returns []
-    √ without([3, 1, true, '3', true], '3', true) returns [3, 1]
-    √ without('string'.split(''), 's', 't', 'g') returns ['r', 'i', 'n']
-    √ without() throws an error
-    √ without(null) throws an error
-    √ without(undefined) throws an error
-    √ without() throws an error
-    √ without({}) throws an error
+    ✔ without is a Function
+    ✔ without([2, 1, 2, 3], 1, 2) returns [3]
+    ✔ without([]) returns []
+    ✔ without([3, 1, true, '3', true], '3', true) returns [3, 1]
+    ✔ without('string'.split(''), 's', 't', 'g') returns ['r', 'i', 'n']
+    ✔ without() throws an error
+    ✔ without(null) throws an error
+    ✔ without(undefined) throws an error
+    ✔ without() throws an error
+    ✔ without({}) throws an error
 
   Testing words
 
-    √ words is a Function
-    √ words('I love javaScript!!') returns [I, love, javaScript]
-    √ words('python, javaScript & coffee') returns [python, javaScript, coffee]
-    √ words(I love javaScript!!) returns an array
-    √ words() throws a error
-    √ words(null) throws a error
-    √ words(undefined) throws a error
-    √ words({}) throws a error
-    √ words([]) throws a error
-    √ words(1234) throws a error
+    ✔ words is a Function
+    ✔ words('I love javaScript!!') returns [I, love, javaScript]
+    ✔ words('python, javaScript & coffee') returns [python, javaScript, coffee]
+    ✔ words(I love javaScript!!) returns an array
+    ✔ words() throws a error
+    ✔ words(null) throws a error
+    ✔ words(undefined) throws a error
+    ✔ words({}) throws a error
+    ✔ words([]) throws a error
+    ✔ words(1234) throws a error
 
   Testing xProd
 
-    √ xProd is a Function
-    √ xProd([1, 2], ['a', 'b']) returns [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]
+    ✔ xProd is a Function
+    ✔ xProd([1, 2], ['a', 'b']) returns [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]
 
   Testing yesNo
 
-    √ yesNo is a Function
-    √ yesNo(Y) returns true
-    √ yesNo(yes) returns true
-    √ yesNo(foo, true) returns true
-    √ yesNo(No) returns false
-    √ yesNo() returns false
-    √ yesNo(null) returns false
-    √ yesNo(undefined) returns false
-    √ yesNo([123, null]) returns false
-    √ yesNo([Yes, No]) returns false
-    √ yesNo({ 2: Yes }) returns false
-    √ yesNo([Yes, No], true) returns true
-    √ yesNo({ 2: Yes }, true) returns true
+    ✔ yesNo is a Function
+    ✔ yesNo(Y) returns true
+    ✔ yesNo(yes) returns true
+    ✔ yesNo(foo, true) returns true
+    ✔ yesNo(No) returns false
+    ✔ yesNo() returns false
+    ✔ yesNo(null) returns false
+    ✔ yesNo(undefined) returns false
+    ✔ yesNo([123, null]) returns false
+    ✔ yesNo([Yes, No]) returns false
+    ✔ yesNo({ 2: Yes }) returns false
+    ✔ yesNo([Yes, No], true) returns true
+    ✔ yesNo({ 2: Yes }, true) returns true
 
   Testing zip
 
-    √ zip is a Function
-    √ zip([a, b], [1, 2], [true, false]) returns [[a, 1, true], [b, 2, false]]
-    √ zip([a], [1, 2], [true, false]) returns [[a, 1, true], [undefined, 2, false]]
-    √ zip([]) returns []
-    √ zip(123) returns []
-    √ zip([a, b], [1, 2], [true, false]) returns an Array
-    √ zip([a], [1, 2], [true, false]) returns an Array
-    √ zip(null) throws an error
-    √ zip(undefined) throws an error
+    ✔ zip is a Function
+    ✔ zip([a, b], [1, 2], [true, false]) returns [[a, 1, true], [b, 2, false]]
+    ✔ zip([a], [1, 2], [true, false]) returns [[a, 1, true], [undefined, 2, false]]
+    ✔ zip([]) returns []
+    ✔ zip(123) returns []
+    ✔ zip([a, b], [1, 2], [true, false]) returns an Array
+    ✔ zip([a], [1, 2], [true, false]) returns an Array
+    ✔ zip(null) throws an error
+    ✔ zip(undefined) throws an error
 
   Testing zipObject
 
-    √ zipObject is a Function
-    √ zipObject([a, b, c], [1, 2]) returns {a: 1, b: 2, c: undefined}
-    √ zipObject([a, b], [1, 2, 3]) returns {a: 1, b: 2}
-    √ zipObject([a, b, c], string) returns { a: s, b: t, c: r }
-    √ zipObject([a], string) returns { a: s }
-    √ zipObject() throws an error
-    √ zipObject([string], null) throws an error
-    √ zipObject(null, [1]) throws an error
-    √ zipObject(string) throws an error
-    √ zipObject(test, string) throws an error
+    ✔ zipObject is a Function
+    ✔ zipObject([a, b, c], [1, 2]) returns {a: 1, b: 2, c: undefined}
+    ✔ zipObject([a, b], [1, 2, 3]) returns {a: 1, b: 2}
+    ✔ zipObject([a, b, c], string) returns { a: s, b: t, c: r }
+    ✔ zipObject([a], string) returns { a: s }
+    ✔ zipObject() throws an error
+    ✔ zipObject([string], null) throws an error
+    ✔ zipObject(null, [1]) throws an error
+    ✔ zipObject(string) throws an error
+    ✔ zipObject(test, string) throws an error
 
   Testing zipWith
 
-    √ zipWith is a Function
-    √ Sends a GET request
-    √ Sends a POST request
-    √ Works with multiple promises
+    ✔ zipWith is a Function
+    ✔ Sends a GET request
+    ✔ Sends a POST request
+    ✔ Works with multiple promises
 
 
+<<<<<<< HEAD
   total:     868
   passing:   868
   duration:  2.4s
+=======
+  total:     860
+  passing:   860
+  duration:  2.3s
+>>>>>>> master