diff --git a/chapter01/1.1 - Is Unique/index.js b/chapter01/1.1 - Is Unique/index.js new file mode 100644 index 0000000..09b20d9 --- /dev/null +++ b/chapter01/1.1 - Is Unique/index.js @@ -0,0 +1,41 @@ +const { test, assert } = require('../../test/TestHelper'); + +// Write your code here... +function isUnique(str) {} + +/* TESTS */ +test('All unique characters should be true', () => { + const result = isUnique('abcd'); + const expected = true; + assert(result).toBe(expected); +}); + +test('Duplicate character should be false', () => { + const result = isUnique('abccd'); + const expected = false; + assert(result).toBe(expected); +}); + +test('Multiple duplicate characters should be false', () => { + const result = isUnique('bhjjb'); + const expected = false; + assert(result).toBe(expected); +}); + +test('All unique characters should be true', () => { + const result = isUnique('mdjq'); + const expected = true; + assert(result).toBe(expected); +}); + +test('When first and last character are the same, should be false', () => { + const result = isUnique('bob'); + const expected = true; + assert(result).toBe(expected); +}); + +test('Single character should be true', () => { + const result = isUnique('a'); + const expected = true; + assert(result).toBe(expected); +}); diff --git a/test/TestHelper.js b/test/TestHelper.js new file mode 100644 index 0000000..1d3fbd6 --- /dev/null +++ b/test/TestHelper.js @@ -0,0 +1,41 @@ +// @params: { String: title, Function: callback } +function test(title, callback) { + try { + callback(); + console.log(`✅ ${title}`); + } catch (error) { + console.log(`❌ ${title}`); + console.log('Error', error); + } +} + +function assert(result) { + return { + toBe: function (expected) { + if (result !== expected) { + throw new Error(`Expected ${expected}. Received ${result}`); + } + }, + }; +} + +module.exports = { test, assert }; + +// NOTE: The only assertion right now is: +// * toBe + +// HOW TO USE: +// 1. Define your assertions. +/* + const result = add(10, 1); + const expected = 11; +*/ + +// 2. Call the test function: +/* +test('Should be able to add two positive integers', function addTwoPositiveInt() { + const result = add(10, 1); + const expected = 11; + assert(result).toBe(expected); +}); +*/