From 4c851df431e7d7b76f87dbd9243a6e566844df8d Mon Sep 17 00:00:00 2001 From: Brice F Date: Sat, 3 Dec 2022 11:58:57 +0100 Subject: [PATCH 01/12] #4 Create test and function in order to make US ready --- src/js/aoc.js | 3 +++ src/test.html | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/js/aoc.js b/src/js/aoc.js index 1fb977b..d52ce30 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -23,3 +23,6 @@ /** * Day 3 */ +function getRucksackSumOfPriorities(data) { + return 0; +} \ No newline at end of file diff --git a/src/test.html b/src/test.html index 15a2ab1..ed9c578 100644 --- a/src/test.html +++ b/src/test.html @@ -28,6 +28,18 @@ }); suite('Day Three of Advent of Code', () => { + var input = ` +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw + `; + + test('the sum of priorities from the input will return 157', () => { + chai.assert.equal(157, getRucksackSumOfPriorities(input)); + }); }); mocha.run(); From 70cfa1ca4e2341f58af7e1c58eed1913891e3b2a Mon Sep 17 00:00:00 2001 From: Brice F Date: Sat, 3 Dec 2022 17:45:16 +0100 Subject: [PATCH 02/12] fix #4 Get The First star for this issue --- src/js/aoc.js | 37 ++++++++++++++++++++++++++++++++++++- src/run.html | 16 +++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/js/aoc.js b/src/js/aoc.js index d52ce30..8041d31 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -24,5 +24,40 @@ * Day 3 */ function getRucksackSumOfPriorities(data) { - return 0; + var lines = data.split("\n"); + var sum = 0; + var codeA = 'A'.charCodeAt(0); + var codeZ = 'Z'.charCodeAt(0); + + var codea = 'a'.charCodeAt(0); + var codez = 'z'.charCodeAt(0); + + lines.forEach(rucksack => { + var currentCode = 0; + rucksack = rucksack.trim(); + if (rucksack.length == 0) { + return; + } + var middle = Math.floor(rucksack.length / 2); + + var compartment1 = rucksack.substr(0, middle).split(''); + var compartment2 = rucksack.substr(middle).split(''); + + compartment1.forEach(item => { + if (currentCode != 0) { + return; + } + if (compartment2.includes(item)) { + var charcode = item.charCodeAt(0); + if (charcode >= codeA && charcode <= codeZ) { + currentCode = 26 + charcode - codeA + 1; + } else if (charcode >= codea && charcode <= codez) { + currentCode = charcode - codea + 1; + } + } + }) + sum += currentCode; + }); + + return sum; } \ No newline at end of file diff --git a/src/run.html b/src/run.html index 78a3dd5..1a8c9b0 100644 --- a/src/run.html +++ b/src/run.html @@ -6,13 +6,27 @@ This is a simple program runner - +
+
+ +
+
+ +
+ \ No newline at end of file From 38a9c53a965b08d6ae1737b946810f3d3b0ea749 Mon Sep 17 00:00:00 2001 From: Brice F Date: Sat, 3 Dec 2022 17:46:03 +0100 Subject: [PATCH 03/12] #4 Add several test in order to avoid bug --- src/test.html | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test.html b/src/test.html index ed9c578..c9a2297 100644 --- a/src/test.html +++ b/src/test.html @@ -40,6 +40,22 @@ test('the sum of priorities from the input will return 157', () => { chai.assert.equal(157, getRucksackSumOfPriorities(input)); }); + + test('Every kind of lowercase item', () => { + for (i = 0 ; i <= 25 ; i++ ) { + var chr = String.fromCharCode(97 + i); + chai.assert.equal(i+1, getRucksackSumOfPriorities(chr+chr)); + } + + }); + + test('Every kind of uppercase item', () => { + for (i = 1 ; i <= 26 ; i++ ) { + var chr = String.fromCharCode(65 + i); + chai.assert.equal(26+i, getRucksackSumOfPriorities(chr+chr)); + } + + }); }); mocha.run(); From 099b3efb499cedab2c0c63d430a8462bb59f4d7e Mon Sep 17 00:00:00 2001 From: Brice F Date: Sat, 3 Dec 2022 18:20:50 +0100 Subject: [PATCH 04/12] Test related to issue #6 --- src/test.html | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/test.html b/src/test.html index c9a2297..e1c7cf7 100644 --- a/src/test.html +++ b/src/test.html @@ -28,14 +28,12 @@ }); suite('Day Three of Advent of Code', () => { - var input = ` -vJrwpWtwJgWrhcsFMMfFFhFp + var input = `vJrwpWtwJgWrhcsFMMfFFhFp jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL PmmdzqPrVvPwwTWBwg wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn ttgJtRGJQctTZtZT -CrZsJsPPZsGzwwsLwLmpwMDw - `; +CrZsJsPPZsGzwwsLwLmpwMDw`; test('the sum of priorities from the input will return 157', () => { chai.assert.equal(157, getRucksackSumOfPriorities(input)); @@ -45,17 +43,24 @@ for (i = 0 ; i <= 25 ; i++ ) { var chr = String.fromCharCode(97 + i); chai.assert.equal(i+1, getRucksackSumOfPriorities(chr+chr)); + chai.assert.equal(i+1, getCurrentCode(chr)); } }); test('Every kind of uppercase item', () => { - for (i = 1 ; i <= 26 ; i++ ) { + for (i = 0 ; i <= 25 ; i++ ) { var chr = String.fromCharCode(65 + i); - chai.assert.equal(26+i, getRucksackSumOfPriorities(chr+chr)); + chai.assert.equal(27+i, getRucksackSumOfPriorities(chr+chr)); + chai.assert.equal(27+i, getCurrentCode(chr)); } + }); + test('the sum of badge\'s priorities from the input will return 70', () => { + chai.assert.equal(70, getBadgeSum(input)); }); + + }); mocha.run(); From c3bd41c28ee0947f43b6c2e94ac24d449ea8642e Mon Sep 17 00:00:00 2001 From: Brice F Date: Sun, 4 Dec 2022 09:32:01 +0100 Subject: [PATCH 05/12] Info #6 Add unit test and change data --- src/js/aoc.js | 53 +++++++++++++++++++++++++++++++++++++- src/js/test.js | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/run.html | 5 ++++ src/test.html | 45 +------------------------------- 4 files changed, 127 insertions(+), 45 deletions(-) create mode 100644 src/js/test.js diff --git a/src/js/aoc.js b/src/js/aoc.js index 8041d31..bf5d79e 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -60,4 +60,55 @@ function getRucksackSumOfPriorities(data) { }); return sum; -} \ No newline at end of file +} + +function getBadgeSum(input) { + var lines = input.split("\n"); + var sum = 0; + + for (i = 0 ; i < lines.length - 2; i+=3) { + var currentCode = 0; + var firstElf = lines[i].split(''); + var secondElf = lines[i+1].split(''); + var thirdElf = lines[i+2].split(''); + + firstElf.forEach(item => { + if (currentCode != 0) { + return; + } + if (secondElf.includes(item) && thirdElf.includes(item)) { + currentCode = getCurrentCode(item); + } + }) + sum += currentCode; + } + + + return sum; +} + +function getCurrentCode(item) { + var currentCode; + var charcode = item.charCodeAt(0); + var codeA = 'A'.charCodeAt(0); + var codeZ = 'Z'.charCodeAt(0); + + var codea = 'a'.charCodeAt(0); + var codez = 'z'.charCodeAt(0); + + if (charcode >= codeA && charcode <= codeZ) { + currentCode = 26 + charcode - codeA + 1; + } else if (charcode >= codea && charcode <= codez) { + currentCode = charcode - codea + 1; + } + + return currentCode; +} + +/** + * --- Day 4: Camp Cleanup --- + */ + +function findNumberOfOverlap(input) { + return 0; +} diff --git a/src/js/test.js b/src/js/test.js new file mode 100644 index 0000000..5a64ae6 --- /dev/null +++ b/src/js/test.js @@ -0,0 +1,69 @@ +mocha.setup('tdd'); + +suite('Day One of Advent of Code', () => { +}); + +suite('Day Two of Advent of Code', () => { +}); + +suite('Day Three of Advent of Code', () => { + var input = `vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw`; + + test('the sum of priorities from the input will return 157', () => { + chai.assert.equal(157, getRucksackSumOfPriorities(input)); + }); + + test('Every kind of lowercase item', () => { + for (i = 0; i <= 25; i++) { + var chr = String.fromCharCode(97 + i); + chai.assert.equal(i + 1, getRucksackSumOfPriorities(chr + chr)); + chai.assert.equal(i + 1, getCurrentCode(chr)); + } + + }); + + test('Every kind of uppercase item', () => { + for (i = 0; i <= 25; i++) { + var chr = String.fromCharCode(65 + i); + chai.assert.equal(27 + i, getRucksackSumOfPriorities(chr + chr)); + chai.assert.equal(27 + i, getCurrentCode(chr)); + } + }); + + test('the sum of badge\'s priorities from the input will return 70', () => { + chai.assert.equal(70, getBadgeSum(input)); + }); + + +}); + + +suite('Day Four of Advent of Code', () => { + var input = `2-4,6-8 + 2-3,4-5 + 5-7,7-9 + 2-8,3-7 + 6-6,4-6 + 2-6,4-8`; + + test('the total overlap counted will be 2', () => { + chai.assert.equal(2, findNumberOfOverlap(input)); + }); + + test('ho no there\s an overlap', () => { + chai.assert.equal(1, findNumberOfOverlap('1-2,1-8')); + chai.assert.equal(1, findNumberOfOverlap('7-8,1-8')); + }); + + test('yeah there\s no overlap', () => { + chai.assert.equal(0, findNumberOfOverlap('1-2,7-8')); + chai.assert.equal(0, findNumberOfOverlap('7-8,1-2')); + }); + + +}); \ No newline at end of file diff --git a/src/run.html b/src/run.html index 1a8c9b0..27a5c37 100644 --- a/src/run.html +++ b/src/run.html @@ -23,7 +23,12 @@ diff --git a/src/test.html b/src/test.html index e1c7cf7..7f04861 100644 --- a/src/test.html +++ b/src/test.html @@ -16,52 +16,9 @@ + From 2bfe5e2dc406f469ed2b917854576d76d198da9c Mon Sep 17 00:00:00 2001 From: Brice F Date: Sun, 4 Dec 2022 09:51:32 +0100 Subject: [PATCH 06/12] Info #7 Add new function and test --- src/js/aoc.js | 4 ++++ src/js/test.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/js/aoc.js b/src/js/aoc.js index bf5d79e..4c20beb 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -112,3 +112,7 @@ function getCurrentCode(item) { function findNumberOfOverlap(input) { return 0; } + +function fillTheBlank(start, end) { + return ''; +} diff --git a/src/js/test.js b/src/js/test.js index 5a64ae6..1bec083 100644 --- a/src/js/test.js +++ b/src/js/test.js @@ -64,6 +64,11 @@ suite('Day Four of Advent of Code', () => { chai.assert.equal(0, findNumberOfOverlap('1-2,7-8')); chai.assert.equal(0, findNumberOfOverlap('7-8,1-2')); }); + + test('check if blank are correctly filled', () => { + chai.assert.equal('123456', fillTheBlank(1, 6)); + chai.assert.equal('343536', fillTheBlank(34,36)); + }); }); \ No newline at end of file From 459d6fc6adf46fc8d1ff037c396448c60e99b33c Mon Sep 17 00:00:00 2001 From: Brice F Date: Sun, 4 Dec 2022 10:25:35 +0100 Subject: [PATCH 07/12] Change the behavior of a function in #7 --- src/js/aoc.js | 3 ++- src/js/test.js | 7 +++++-- src/run.html | 9 +++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/js/aoc.js b/src/js/aoc.js index 4c20beb..ee115c0 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -110,7 +110,8 @@ function getCurrentCode(item) { */ function findNumberOfOverlap(input) { - return 0; + var count = 0; + return count; } function fillTheBlank(start, end) { diff --git a/src/js/test.js b/src/js/test.js index 1bec083..3a3184b 100644 --- a/src/js/test.js +++ b/src/js/test.js @@ -63,11 +63,14 @@ suite('Day Four of Advent of Code', () => { test('yeah there\s no overlap', () => { chai.assert.equal(0, findNumberOfOverlap('1-2,7-8')); chai.assert.equal(0, findNumberOfOverlap('7-8,1-2')); + chai.assert.equal(0, findNumberOfOverlap('7-26,27-27')); + chai.assert.equal(0, findNumberOfOverlap('36,60-70')); }); test('check if blank are correctly filled', () => { - chai.assert.equal('123456', fillTheBlank(1, 6)); - chai.assert.equal('343536', fillTheBlank(34,36)); + chai.assert.equal('-1-2-3-4-5-6-', fillTheBlank(1, 6)); + chai.assert.equal('-34-35-36-', fillTheBlank(34,36)); + chai.assert.equal('-42-', fillTheBlank(42)); }); diff --git a/src/run.html b/src/run.html index 27a5c37..2642fdd 100644 --- a/src/run.html +++ b/src/run.html @@ -23,14 +23,15 @@ From 4791258f038b97bb3352c8a184d13edaf3e03206 Mon Sep 17 00:00:00 2001 From: Brice F Date: Sun, 4 Dec 2022 13:26:50 +0100 Subject: [PATCH 08/12] Test for #8 before coding the new bahavior --- src/js/aoc.js | 9 +++++++++ src/js/test.js | 23 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/js/aoc.js b/src/js/aoc.js index ee115c0..c47dc30 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -114,6 +114,15 @@ function findNumberOfOverlap(input) { return count; } +function findNumberOfFullOverlap(input) { + var count = 0; + return count; +} + function fillTheBlank(start, end) { return ''; } + +function getArrayInterval(start, end) { + return []; +} diff --git a/src/js/test.js b/src/js/test.js index 3a3184b..9a0945f 100644 --- a/src/js/test.js +++ b/src/js/test.js @@ -55,11 +55,20 @@ suite('Day Four of Advent of Code', () => { chai.assert.equal(2, findNumberOfOverlap(input)); }); + test('the total overlap counted will be 4 with the new system', () => { + chai.assert.equal(4, findNumberOfFullOverlap(input)); + }); + test('ho no there\s an overlap', () => { chai.assert.equal(1, findNumberOfOverlap('1-2,1-8')); chai.assert.equal(1, findNumberOfOverlap('7-8,1-8')); }); + test('ho no there\s an overlap on the new system', () => { + chai.assert.equal(1, findNumberOfFullOverlap('1-2,2-8')); + chai.assert.equal(1, findNumberOfFullOverlap('7-8,8-9')); + }); + test('yeah there\s no overlap', () => { chai.assert.equal(0, findNumberOfOverlap('1-2,7-8')); chai.assert.equal(0, findNumberOfOverlap('7-8,1-2')); @@ -67,11 +76,23 @@ suite('Day Four of Advent of Code', () => { chai.assert.equal(0, findNumberOfOverlap('36,60-70')); }); + test('yeah there\s no overlap on the new system', () => { + chai.assert.equal(0, findNumberOfFullOverlap('1-2,7-8')); + chai.assert.equal(0, findNumberOfFullOverlap('7-8,1-2')); + chai.assert.equal(0, findNumberOfFullOverlap('7-26,27-27')); + chai.assert.equal(0, findNumberOfFullOverlap('36,60-70')); + }); + test('check if blank are correctly filled', () => { chai.assert.equal('-1-2-3-4-5-6-', fillTheBlank(1, 6)); chai.assert.equal('-34-35-36-', fillTheBlank(34,36)); chai.assert.equal('-42-', fillTheBlank(42)); }); - + + test('check if the array meet what we need', () => { + chai.assert.equal([1,2,3,4,5,6], getArrayInterval(1, 6)); + chai.assert.equal([34,35,36], getArrayInterval(34,36)); + chai.assert.equal([42], getArrayInterval(42)); + }); }); \ No newline at end of file From 785a1df7054761853d8943a1bed8357c417aec21 Mon Sep 17 00:00:00 2001 From: Brice F Date: Sun, 4 Dec 2022 13:59:25 +0100 Subject: [PATCH 09/12] Commit a change in test in order to test array related to #8 --- src/js/test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/test.js b/src/js/test.js index 9a0945f..454e599 100644 --- a/src/js/test.js +++ b/src/js/test.js @@ -91,8 +91,8 @@ suite('Day Four of Advent of Code', () => { test('check if the array meet what we need', () => { - chai.assert.equal([1,2,3,4,5,6], getArrayInterval(1, 6)); - chai.assert.equal([34,35,36], getArrayInterval(34,36)); - chai.assert.equal([42], getArrayInterval(42)); + chai.assert.deepEqual([1,2,3,4,5,6], getArrayInterval(1, 6)); + chai.assert.deepEqual([34,35,36], getArrayInterval(34,36)); + chai.assert.deepEqual([42], getArrayInterval(42)); }); }); \ No newline at end of file From 031d63c83a8279a6155f7375298921963a2227d5 Mon Sep 17 00:00:00 2001 From: Brice Favre Date: Tue, 6 Dec 2022 09:59:44 +0100 Subject: [PATCH 10/12] Reintroduce code from previous days (#10) * Reintroduce code from previous days * Create function stub --- src/js/aoc.js | 21 +++++++++++++++++ src/js/test.js | 64 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 82 insertions(+), 3 deletions(-) diff --git a/src/js/aoc.js b/src/js/aoc.js index c47dc30..bfee05a 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -15,10 +15,31 @@ /** * Day 1 */ +function computeResult(contents) { + return getSumOfTopElves(contents, 1); +} + +function getSumOfTopElves(contents, n) { + var globalResult = 0; + return globalResult; +} /** * Day 2 */ +function getScore(strategy)} { + var score = 0; + return score; +} + +function getWeaponValue(score, opponent) { + return 1; +} + +function getItemValue(item) { + var value = 0; + return value; +} /** * Day 3 diff --git a/src/js/test.js b/src/js/test.js index 454e599..e0b405b 100644 --- a/src/js/test.js +++ b/src/js/test.js @@ -1,9 +1,67 @@ mocha.setup('tdd'); -suite('Day One of Advent of Code', () => { +suite('Day one of Advent of Code', () => { + var contentTestInput = ` +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000`; + + test('The elf with the most calories carry 24000 calories', () => { + chai.expect(getSumOfTopElves(contentTestInput, 1)).to.eql(24000); + }); + + test('The sum of the Calories carried by the top three elves is 45000', () => { + chai.expect(getSumOfTopElves(contentTestInput, 3)).to.eql(45000); + }); }); -suite('Day Two of Advent of Code', () => { +suite('Day two of Advent of Code', () => { + var strategy = `A Y +B X +C Z +`; + + test('the rock scissor paper score based on the strategy will return 15', () => { + chai.assert.equal(12, getScore(strategy)); + }); + + test('the detailed score should work', () => { + chai.assert.equal(7, getScore('C Z')); + chai.assert.equal(4, getScore('A Y')); + chai.assert.equal(1, getScore('B X')); + chai.assert.equal(3, getScore('A X')); + }); + + test('the rock is valued to 1', () => { + chai.assert.equal(1, getItemValue('A')); + }); + test('the paper is valued to 2', () => { + chai.assert.equal(2, getItemValue('B')); + }); + test('the scissor is valued to 3', () => { + chai.assert.equal(3, getItemValue('C')); + }); + + test('ho no, i lose', () => { + chai.assert.equal(0, getResultScore('X')); + }); + test('this was close', () => { + chai.assert.equal(3, getResultScore('Y')); + }); + test('yeah I win', () => { + chai.assert.equal(6, getResultScore('Z')); + }); }); suite('Day Three of Advent of Code', () => { @@ -95,4 +153,4 @@ suite('Day Four of Advent of Code', () => { chai.assert.deepEqual([34,35,36], getArrayInterval(34,36)); chai.assert.deepEqual([42], getArrayInterval(42)); }); -}); \ No newline at end of file +}); From df58269fab81838d1aac717cea728977882e8398 Mon Sep 17 00:00:00 2001 From: Brice Favre Date: Thu, 8 Dec 2022 14:29:08 +0100 Subject: [PATCH 11/12] Create test for Day 8 (#14) Create a test and a stub function --- src/js/aoc.js | 8 ++++++++ src/js/test/day_8.js | 13 +++++++++++++ src/test.html | 3 ++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/js/test/day_8.js diff --git a/src/js/aoc.js b/src/js/aoc.js index bfee05a..558a79a 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -147,3 +147,11 @@ function fillTheBlank(start, end) { function getArrayInterval(start, end) { return []; } + +/** + * --- Day 8: Get Visible trees --- + */ +function getVisibleTrees(forest) { + visibleTrees = 0; + return visibleTrees +}; diff --git a/src/js/test/day_8.js b/src/js/test/day_8.js new file mode 100644 index 0000000..b9e4d26 --- /dev/null +++ b/src/js/test/day_8.js @@ -0,0 +1,13 @@ +mocha.setup('tdd'); + +suite('Day eight of Advent of Code', () => { + const testData = `30373 +25512 +65332 +33549 +35390`; + + test('There\'s 21 tree visible from outside the grid', () => { + chai.assert.equal(21, getVisibleTrees(testData)); + }); +}); diff --git a/src/test.html b/src/test.html index 7f04861..fad16cd 100644 --- a/src/test.html +++ b/src/test.html @@ -17,6 +17,7 @@ + - \ No newline at end of file + From eb30d6ed7afe85e3788239cf3b19251b6ea00c9d Mon Sep 17 00:00:00 2001 From: Brice F Date: Fri, 9 Dec 2022 10:27:34 +0100 Subject: [PATCH 12/12] In order to initiate #15 i will initiate code --- src/js/aoc.js | 8 ++++++++ src/js/test/day_9.js | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/js/test/day_9.js diff --git a/src/js/aoc.js b/src/js/aoc.js index 558a79a..d34a794 100644 --- a/src/js/aoc.js +++ b/src/js/aoc.js @@ -155,3 +155,11 @@ function getVisibleTrees(forest) { visibleTrees = 0; return visibleTrees }; + +/** + * --- Day 9: Get tail position --- + */ +function getNumberTailPositions() { + var count = 0; + return count; +} \ No newline at end of file diff --git a/src/js/test/day_9.js b/src/js/test/day_9.js new file mode 100644 index 0000000..ded4784 --- /dev/null +++ b/src/js/test/day_9.js @@ -0,0 +1,16 @@ +mocha.setup('tdd'); + +suite('Day nine of Advent of Code', () => { + const testData = `R 4 +U 4 +L 3 +D 1 +R 4 +D 1 +L 5 +R 2`; + + test('The tail covered 13 positions', () => { + chai.assert.equal(13, getNumberTailPositions(testData)); + }); +});