From 7b14abc2304003fea9c6fb21c6622bcc6741e98b Mon Sep 17 00:00:00 2001 From: sigristarisa Date: Fri, 1 Jul 2022 22:19:54 +0200 Subject: [PATCH 1/5] solved 1-reading-writing-files --- .../1-reading-writing-files/src/index.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/requirement-sets/1-reading-writing-files/src/index.js b/requirement-sets/1-reading-writing-files/src/index.js index ed849f4..77be20b 100644 --- a/requirement-sets/1-reading-writing-files/src/index.js +++ b/requirement-sets/1-reading-writing-files/src/index.js @@ -1 +1,34 @@ // run the program +const path = require('path'); +const fs = require('fs'); + +const input = fs + .readFileSync(path.join(__dirname, '../input.txt'), 'utf8') + .trim() + .split('\n') + + +const countDirections = (line) => { + let directionCounter = {} + for(let i = 0; i < line.length; i++) { + const direction = line[i] + if (!directionCounter[direction]) { + directionCounter[direction] = 1 + } else { + directionCounter[direction]++ + } + } + return directionCounter +} + +const countSamePositions = () => { + let counter = 0 + for(let i = 0; i < input.length; i++) { + const directionObj = countDirections(input[i]) + if (directionObj.N === directionObj.S && directionObj.W === directionObj.E) counter++ + } + + return counter +} + +console.log(countSamePositions()) \ No newline at end of file From cfc6178eb003e6e77fa5db7aefac4498ad099672 Mon Sep 17 00:00:00 2001 From: sigristarisa Date: Fri, 1 Jul 2022 22:21:56 +0200 Subject: [PATCH 2/5] changed variable names --- .../1-reading-writing-files/src/index.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/requirement-sets/1-reading-writing-files/src/index.js b/requirement-sets/1-reading-writing-files/src/index.js index 77be20b..b5bebc8 100644 --- a/requirement-sets/1-reading-writing-files/src/index.js +++ b/requirement-sets/1-reading-writing-files/src/index.js @@ -8,23 +8,23 @@ const input = fs .split('\n') -const countDirections = (line) => { - let directionCounter = {} +const createDirectionObj = (line) => { + let directionObj = {} for(let i = 0; i < line.length; i++) { const direction = line[i] - if (!directionCounter[direction]) { - directionCounter[direction] = 1 + if (!directionObj[direction]) { + directionObj[direction] = 1 } else { - directionCounter[direction]++ + directionObj[direction]++ } } - return directionCounter + return directionObj } const countSamePositions = () => { let counter = 0 for(let i = 0; i < input.length; i++) { - const directionObj = countDirections(input[i]) + const directionObj = createDirectionObj(input[i]); if (directionObj.N === directionObj.S && directionObj.W === directionObj.E) counter++ } From 7d6f0bc975e117680dce3707a6ea7c1ce8cff4c3 Mon Sep 17 00:00:00 2001 From: sigristarisa Date: Tue, 5 Jul 2022 16:34:36 +0200 Subject: [PATCH 3/5] finished session 1 --- .../1-reading-writing-files/answer.txt | 1 + .../src/createDirectionObj.js | 16 ++++++++ .../1-reading-writing-files/src/index.js | 37 ++++++------------- .../1-reading-writing-files/src/input.js | 10 +++++ 4 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 requirement-sets/1-reading-writing-files/answer.txt create mode 100644 requirement-sets/1-reading-writing-files/src/createDirectionObj.js create mode 100644 requirement-sets/1-reading-writing-files/src/input.js diff --git a/requirement-sets/1-reading-writing-files/answer.txt b/requirement-sets/1-reading-writing-files/answer.txt new file mode 100644 index 0000000..dc34aa9 --- /dev/null +++ b/requirement-sets/1-reading-writing-files/answer.txt @@ -0,0 +1 @@ +count: 3 \ No newline at end of file diff --git a/requirement-sets/1-reading-writing-files/src/createDirectionObj.js b/requirement-sets/1-reading-writing-files/src/createDirectionObj.js new file mode 100644 index 0000000..94c7a32 --- /dev/null +++ b/requirement-sets/1-reading-writing-files/src/createDirectionObj.js @@ -0,0 +1,16 @@ +const createDirectionObj = (line) => { + let directionObj = {}; + for (let i = 0; i < line.length; i++) { + const direction = line[i]; + if (!directionObj[direction]) { + directionObj[direction] = 1; + } else { + directionObj[direction]++; + } + } + return directionObj; +}; + +module.exports = { + createDirectionObj +} \ No newline at end of file diff --git a/requirement-sets/1-reading-writing-files/src/index.js b/requirement-sets/1-reading-writing-files/src/index.js index b5bebc8..558b866 100644 --- a/requirement-sets/1-reading-writing-files/src/index.js +++ b/requirement-sets/1-reading-writing-files/src/index.js @@ -1,34 +1,21 @@ -// run the program -const path = require('path'); -const fs = require('fs'); - -const input = fs - .readFileSync(path.join(__dirname, '../input.txt'), 'utf8') - .trim() - .split('\n') - - -const createDirectionObj = (line) => { - let directionObj = {} - for(let i = 0; i < line.length; i++) { - const direction = line[i] - if (!directionObj[direction]) { - directionObj[direction] = 1 - } else { - directionObj[direction]++ - } - } - return directionObj -} +const { createDirectionObj } = require("./createDirectionObj.js") +const { input } = require("./input.js") +const fs = require("fs") +// run the program const countSamePositions = () => { let counter = 0 for(let i = 0; i < input.length; i++) { const directionObj = createDirectionObj(input[i]); if (directionObj.N === directionObj.S && directionObj.W === directionObj.E) counter++ } - - return counter + return `count: ${counter}` } -console.log(countSamePositions()) \ No newline at end of file + +fs.writeFile("answer.txt", countSamePositions(), (err) => { + if (err) throw err + console.log("YaaY!") +}); + + diff --git a/requirement-sets/1-reading-writing-files/src/input.js b/requirement-sets/1-reading-writing-files/src/input.js new file mode 100644 index 0000000..4497446 --- /dev/null +++ b/requirement-sets/1-reading-writing-files/src/input.js @@ -0,0 +1,10 @@ +const path = require("path"); +const fs = require("fs"); +const input = fs + .readFileSync(path.join(__dirname, "../input.txt"), "utf8") + .trim() + .split("\n"); + + module.exports = { + input +} \ No newline at end of file From 274e26e5ad73cf2094f1e4769cdb2a9410516b94 Mon Sep 17 00:00:00 2001 From: sigristarisa Date: Fri, 15 Jul 2022 16:40:39 +0200 Subject: [PATCH 4/5] finished first requirement --- .../01-count-major-versions-above-10/index.js | 19 +++++++++++++- .../index.test.js | 26 ++++++++++--------- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.js b/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.js index c6de991..5d80eb5 100644 --- a/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.js +++ b/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.js @@ -11,9 +11,26 @@ GET https://api.npms.io/v2/search/suggestions?q=react * greater than 10.x.x */ +const fetch = require("node-fetch"); + +const doCountMajorVersionsAbove10 = (data) => { + let number = 0; + for (const dataInfo of data) { + const version = Number(dataInfo.package.version.substring(0, 2)); + if (version >= 10) number++; + } + return number; +}; module.exports = async function countMajorVersionsAbove10() { // TODO + let number = 0; + const url = "https://api.npms.io/v2/search/suggestions?q=react"; - return number + await fetch(url) + .then((res) => res.json()) + .then((data) => { + number = doCountMajorVersionsAbove10(data); + }); + return number; }; diff --git a/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.test.js b/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.test.js index c762d92..bd5ddc1 100644 --- a/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.test.js +++ b/requirement-sets/3-test-js-grad/src/01-count-major-versions-above-10/index.test.js @@ -1,20 +1,22 @@ -jest.mock('node-fetch'); -jest.mock('axios'); +jest.mock("node-fetch"); +jest.mock("axios"); -const fetch = require('node-fetch') -const axios = require('axios') +const fetch = require("node-fetch"); +const axios = require("axios"); -const dependencies = require('../__mocks__/dependencies.json') -const countMajorVersionsAbove10 = require('.'); +const dependencies = require("../__mocks__/dependencies.json"); +const countMajorVersionsAbove10 = require("."); -describe('countMajorVersionsAbove10', () => { +describe("countMajorVersionsAbove10", () => { beforeEach(() => { - fetch.mockReturnValue(Promise.resolve({json: () => Promise.resolve(dependencies)})) - axios.get.mockReturnValue(Promise.resolve({ data: dependencies })) - }) + fetch.mockReturnValue( + Promise.resolve({ json: () => Promise.resolve(dependencies) }) + ); + axios.get.mockReturnValue(Promise.resolve({ data: dependencies })); + }); - it('returns the correct count of packages above version 10.x.x', async () => { - const answer = await countMajorVersionsAbove10() + it("returns the correct count of packages above version 10.x.x", async () => { + const answer = await countMajorVersionsAbove10(); expect(answer).toEqual(4); }); From 9875149ac0b65cd927e4c0d3c58722d2de233aa7 Mon Sep 17 00:00:00 2001 From: sigristarisa Date: Fri, 15 Jul 2022 17:11:12 +0200 Subject: [PATCH 5/5] finished requirement 2 --- .../src/02-oldest-package-name/index.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/requirement-sets/3-test-js-grad/src/02-oldest-package-name/index.js b/requirement-sets/3-test-js-grad/src/02-oldest-package-name/index.js index 93d773f..9a7d3e5 100644 --- a/requirement-sets/3-test-js-grad/src/02-oldest-package-name/index.js +++ b/requirement-sets/3-test-js-grad/src/02-oldest-package-name/index.js @@ -10,9 +10,23 @@ GET https://api.npms.io/v2/search/suggestions?q=react * the "name" of the package that has the oldest "date" value */ +const fetch = require("node-fetch"); module.exports = async function oldestPackageName() { // TODO - - return name + let name; + const url = "https://api.npms.io/v2/search/suggestions?q=react"; + await fetch(url) + .then((res) => res.json()) + .then((data) => { + const dataSortByDate = data.sort((a, b) => { + const indexA = data.indexOf(a); + const dateA = new Date(data[indexA].package.date); + const indexB = data.indexOf(b); + const dateB = new Date(data[indexB].package.date); + return dateA - dateB; + }); + name = dataSortByDate[0].package.name; + }); + return name; };