diff --git a/src/_test_/demo6.test.js b/src/_test_/demo6.test.js index 8fc7006..484a660 100644 --- a/src/_test_/demo6.test.js +++ b/src/_test_/demo6.test.js @@ -1,4 +1,5 @@ -const { getMaxNumber, getMinNumber, getAverage } = require ('../demo6'); +const { getMaxNumber, getMinNumber, getAverage, fakerNumbers, average, max, min } = require ('../demo6'); +const fakeList = fakerNumbers(); describe('getMaxNumber', () => { @@ -6,6 +7,7 @@ describe('getMaxNumber', () => { expect(getMaxNumber([1,2,3,4,5,6,8,9])).toBe(9); expect(getMaxNumber([1,2,3,4,5,6,8,9,0,100])).toBe(100); expect(getMaxNumber([1,2,3,4,5,-66,8,9,0,34])).toBe(34); + expect(getMaxNumber(fakeList)).toBe(max(fakeList)); }); }); @@ -16,6 +18,7 @@ describe('getMinNumber', () => { expect(getMinNumber([1,2,3,4,5,6,8,9])).toBe(1); expect(getMinNumber([1,2,3,4,5,6,8,9,0,100])).toBe(0); expect(getMinNumber([1,2,3,4,5,-66,8,9,0,34])).toBe(-66); + expect(getMinNumber(fakeList)).toBe(min(fakeList)); }); }); @@ -26,6 +29,7 @@ describe('getAverage', () => { expect(getAverage([10, 10, 10])).toBe(10); expect(getAverage([1,2,3,4,5,6,7,8,9,10])).toBe(5.5); expect(getAverage([10,20,30])).toBe(20); + expect(getAverage(fakeList)).toBe(average(fakeList)); }); }); diff --git a/src/demo6.js b/src/demo6.js index 02f01df..9f81287 100644 --- a/src/demo6.js +++ b/src/demo6.js @@ -1,13 +1,66 @@ +const faker = require('faker') + const getMaxNumber = (numbersArray) => { // your code here + const result = numbersArray.reduce((a, b) => Math.max(a, b)) + return result } const getMinNumber = (numbersArray) => { // your code here + const result = numbersArray.reduce((a, b) => Math.min(a, b)) + return result } const getAverage = (numbersArray) => { // your code here + const result = numbersArray.reduce((accum, currentValue) => accum + currentValue) + const avg = result / numbersArray.length + return avg +} + + +const fakerNumbers = () => { + numbers = [] + for (let i = 0; i < 1000; i++) { + numbers.push(faker.random.number()) + } + return numbers +} + +const average = (numbersArray) => { + let total = 0; + for(let i = 0; i < numbersArray.length; i++) { + total += numbersArray[i]; + } + const avg = total / numbersArray.length; + return avg } -module.exports = { getMaxNumber, getMinNumber, getAverage }; \ No newline at end of file +const max = (numbersArray) => { + let maximum = numbersArray[0] + for (let i = 0; i < numbersArray.length; i++) { + if (maximum >= numbersArray[i]) { + continue + } else { + maximum = numbersArray[i] + } + } + return maximum +} + + +const min = (numbersArray) => { + let minimum = numbersArray[0] + for (let i = 0; i < numbersArray.length; i++) { + if (minimum <= numbersArray[i]) { + continue + } else { + minimum = numbersArray[i] + } + } + return minimum +} + + +module.exports = { getMaxNumber, getMinNumber, getAverage, fakerNumbers, average, max, min}; \ No newline at end of file