first commit
This commit is contained in:
parent
157972d135
commit
50238a402c
|
@ -1,5 +1,5 @@
|
||||||
const helloWorld = function () {
|
const helloWorld = function () {
|
||||||
return ''
|
return "Hello, World!";
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = helloWorld;
|
module.exports = helloWorld;
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
const repeatString = function() {
|
const repeatString = function (word, times) {
|
||||||
|
if (times < 0) return "ERROR";
|
||||||
|
let myWord = "";
|
||||||
|
if (times > 0) {
|
||||||
|
for (let i = 0; i < times; i++) {
|
||||||
|
myWord += word;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return myWord;
|
||||||
};
|
};
|
||||||
|
repeatString("hey", 0);
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
module.exports = repeatString;
|
module.exports = repeatString;
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
const repeatString = require('./repeatString')
|
const repeatString = require("./repeatString");
|
||||||
|
|
||||||
describe('repeatString', () => {
|
describe("repeatString", () => {
|
||||||
test('repeats the string', () => {
|
test("repeats the string", () => {
|
||||||
expect(repeatString('hey', 3)).toEqual('heyheyhey');
|
expect(repeatString("hey", 3)).toEqual("heyheyhey");
|
||||||
});
|
});
|
||||||
test.skip('repeats the string many times', () => {
|
test("repeats the string many times", () => {
|
||||||
expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey');
|
expect(repeatString("hey", 10)).toEqual("heyheyheyheyheyheyheyheyheyhey");
|
||||||
});
|
});
|
||||||
test.skip('repeats the string 1 times', () => {
|
test("repeats the string 1 times", () => {
|
||||||
expect(repeatString('hey', 1)).toEqual('hey');
|
expect(repeatString("hey", 1)).toEqual("hey");
|
||||||
});
|
});
|
||||||
test.skip('repeats the string 0 times', () => {
|
test("repeats the string 0 times", () => {
|
||||||
expect(repeatString('hey', 0)).toEqual('');
|
expect(repeatString("hey", 0)).toEqual("");
|
||||||
});
|
});
|
||||||
test.skip('returns ERROR with negative numbers', () => {
|
test("returns ERROR with negative numbers", () => {
|
||||||
expect(repeatString('hey', -1)).toEqual('ERROR');
|
expect(repeatString("hey", -1)).toEqual("ERROR");
|
||||||
});
|
});
|
||||||
test.skip('repeats the string a random amount of times', function () {
|
test("repeats the string a random amount of times", function () {
|
||||||
/*The number is generated by using Math.random to get a value from between
|
/*The number is generated by using Math.random to get a value from between
|
||||||
0 to 1, when this is multiplied by 1000 and rounded down with Math.floor it
|
0 to 1, when this is multiplied by 1000 and rounded down with Math.floor it
|
||||||
equals a number between 0 to 999 (this number will change everytime you run
|
equals a number between 0 to 999 (this number will change everytime you run
|
||||||
|
@ -25,13 +25,15 @@ describe('repeatString', () => {
|
||||||
// DO NOT use Math.floor(Math.random() * 1000) in your code,
|
// DO NOT use Math.floor(Math.random() * 1000) in your code,
|
||||||
// this test generates a random number, then passes it into your code with a function parameter.
|
// this test generates a random number, then passes it into your code with a function parameter.
|
||||||
// If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3
|
// If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3
|
||||||
const number = Math.floor(Math.random() * 1000)
|
const number = Math.floor(Math.random() * 1000);
|
||||||
/*The .match(/((hey))/g).length is a regex that will count the number of heys
|
/*The .match(/((hey))/g).length is a regex that will count the number of heys
|
||||||
in the result, which if your function works correctly will equal the number that
|
in the result, which if your function works correctly will equal the number that
|
||||||
was randomly generated. */
|
was randomly generated. */
|
||||||
expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number);
|
expect(repeatString("hey", number).match(/((hey))/g).length).toEqual(
|
||||||
|
number
|
||||||
|
);
|
||||||
});
|
});
|
||||||
test.skip('works with blank strings', () => {
|
test("works with blank strings", () => {
|
||||||
expect(repeatString('', 10)).toEqual('');
|
expect(repeatString("", 10)).toEqual("");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
const reverseString = function() {
|
const reverseString = function (word) {
|
||||||
|
const string = word.split("").reverse().join("");
|
||||||
|
return string;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
const reverseString = require('./reverseString')
|
const reverseString = require("./reverseString");
|
||||||
|
|
||||||
describe('reverseString', () => {
|
describe("reverseString", () => {
|
||||||
test('reverses single word', () => {
|
test("reverses single word", () => {
|
||||||
expect(reverseString('hello')).toEqual('olleh');
|
expect(reverseString("hello")).toEqual("olleh");
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('reverses multiple words', () => {
|
test("reverses multiple words", () => {
|
||||||
expect(reverseString('hello there')).toEqual('ereht olleh')
|
expect(reverseString("hello there")).toEqual("ereht olleh");
|
||||||
})
|
});
|
||||||
|
|
||||||
test.skip('works with numbers and punctuation', () => {
|
test("works with numbers and punctuation", () => {
|
||||||
expect(reverseString('123! abc!')).toEqual('!cba !321')
|
expect(reverseString("123! abc!")).toEqual("!cba !321");
|
||||||
})
|
});
|
||||||
test.skip('works with blank strings', () => {
|
test("works with blank strings", () => {
|
||||||
expect(reverseString('')).toEqual('')
|
expect(reverseString("")).toEqual("");
|
||||||
})
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
const removeFromArray = function() {
|
const removeFromArray = function (array, ...members) {
|
||||||
|
let result = array;
|
||||||
|
members.map((member) => {
|
||||||
|
result = result.filter((i) => {
|
||||||
|
return member !== i;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
const removeFromArray = require('./removeFromArray')
|
const removeFromArray = require("./removeFromArray");
|
||||||
|
|
||||||
describe('removeFromArray', () => {
|
describe("removeFromArray", () => {
|
||||||
test('removes a single value', () => {
|
test("removes a single value", () => {
|
||||||
expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]);
|
expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]);
|
||||||
});
|
});
|
||||||
test.skip('removes multiple values', () => {
|
test("removes multiple values", () => {
|
||||||
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
|
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
|
||||||
});
|
});
|
||||||
test.skip('ignores non present values', () => {
|
test("ignores non present values", () => {
|
||||||
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
|
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
|
||||||
});
|
});
|
||||||
test.skip('ignores non present values, but still works', () => {
|
test("ignores non present values, but still works", () => {
|
||||||
expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
|
expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
|
||||||
});
|
});
|
||||||
test.skip('can remove all values', () => {
|
test("can remove all values", () => {
|
||||||
expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
|
expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
|
||||||
});
|
});
|
||||||
test.skip('works with strings', () => {
|
test("works with strings", () => {
|
||||||
expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
|
expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
|
||||||
});
|
});
|
||||||
test.skip('only removes same type', () => {
|
test("only removes same type", () => {
|
||||||
expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]);
|
expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,21 @@
|
||||||
const sumAll = function() {
|
const sumAll = function (num1, num2) {
|
||||||
|
let result = 0;
|
||||||
|
// if (num1.typeof !== "number" || num2.typeof !== "number") return "ERROR";
|
||||||
|
if (!Number.isInteger(num1) || !Number.isInteger(num2)) return "ERROR";
|
||||||
|
|
||||||
|
if (num1 < 0 || num2 < 0) {
|
||||||
|
result = "ERROR";
|
||||||
|
} else if (num1 > num2) {
|
||||||
|
for (let i = num2; i <= num1; i++) {
|
||||||
|
result += i;
|
||||||
|
}
|
||||||
|
} else if (num1 < num2) {
|
||||||
|
for (let i = num1; i <= num2; i++) {
|
||||||
|
result += i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
const sumAll = require('./sumAll')
|
const sumAll = require("./sumAll");
|
||||||
|
|
||||||
describe('sumAll', () => {
|
describe("sumAll", () => {
|
||||||
test('sums numbers within the range', () => {
|
test("sums numbers within the range", () => {
|
||||||
expect(sumAll(1, 4)).toEqual(10);
|
expect(sumAll(1, 4)).toEqual(10);
|
||||||
});
|
});
|
||||||
test.skip('works with large numbers', () => {
|
test("works with large numbers", () => {
|
||||||
expect(sumAll(1, 4000)).toEqual(8002000);
|
expect(sumAll(1, 4000)).toEqual(8002000);
|
||||||
});
|
});
|
||||||
test.skip('works with larger number first', () => {
|
test("works with larger number first", () => {
|
||||||
expect(sumAll(123, 1)).toEqual(7626);
|
expect(sumAll(123, 1)).toEqual(7626);
|
||||||
});
|
});
|
||||||
test.skip('returns ERROR with negative numbers', () => {
|
test("returns ERROR with negative numbers", () => {
|
||||||
expect(sumAll(-10, 4)).toEqual('ERROR');
|
expect(sumAll(-10, 4)).toEqual("ERROR");
|
||||||
});
|
});
|
||||||
test.skip('returns ERROR with non-number parameters', () => {
|
test("returns ERROR with non-number parameters", () => {
|
||||||
expect(sumAll(10, "90")).toEqual('ERROR');
|
expect(sumAll(10, "90")).toEqual("ERROR");
|
||||||
});
|
});
|
||||||
test.skip('returns ERROR with non-number parameters', () => {
|
test("returns ERROR with non-number parameters", () => {
|
||||||
expect(sumAll(10, [90, 1])).toEqual('ERROR');
|
expect(sumAll(10, [90, 1])).toEqual("ERROR");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,12 @@
|
||||||
const leapYears = function() {
|
const leapYears = function (year) {
|
||||||
|
if (year % 4 === 0 || year % 400 === 0) {
|
||||||
|
if (year % 100 === 0 && year % 400 !== 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
const leapYears = require('./leapYears')
|
const leapYears = require("./leapYears");
|
||||||
|
|
||||||
describe('leapYears', () => {
|
describe("leapYears", () => {
|
||||||
test('works with non century years', () => {
|
test("works with non century years", () => {
|
||||||
expect(leapYears(1996)).toBe(true);
|
expect(leapYears(1996)).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with non century years', () => {
|
test("works with non century years", () => {
|
||||||
expect(leapYears(1997)).toBe(false);
|
expect(leapYears(1997)).toBe(false);
|
||||||
});
|
});
|
||||||
test.skip('works with ridiculously futuristic non century years', () => {
|
test("works with ridiculously futuristic non century years", () => {
|
||||||
expect(leapYears(34992)).toBe(true);
|
expect(leapYears(34992)).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with century years', () => {
|
test("works with century years", () => {
|
||||||
expect(leapYears(1900)).toBe(false);
|
expect(leapYears(1900)).toBe(false);
|
||||||
});
|
});
|
||||||
test.skip('works with century years', () => {
|
test("works with century years", () => {
|
||||||
expect(leapYears(1600)).toBe(true);
|
expect(leapYears(1600)).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with century years', () => {
|
test("works with century years", () => {
|
||||||
expect(leapYears(700)).toBe(false);
|
expect(leapYears(700)).toBe(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
const convertToCelsius = function() {
|
const convertToCelsius = function (fahrenheit) {
|
||||||
|
let result = (fahrenheit - 32) * (5 / 9);
|
||||||
|
result = Math.round(result * 10) / 10;
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
const convertToFahrenheit = function() {
|
const convertToFahrenheit = function (celsius) {
|
||||||
|
let result = celsius * (9 / 5) + 32;
|
||||||
|
result = Math.round(result * 10) / 10;
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
module.exports = {
|
module.exports = {
|
||||||
convertToCelsius,
|
convertToCelsius,
|
||||||
convertToFahrenheit
|
convertToFahrenheit,
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
const {convertToCelsius, convertToFahrenheit} = require('./tempConversion')
|
const { convertToCelsius, convertToFahrenheit } = require("./tempConversion");
|
||||||
|
|
||||||
describe('convertToCelsius', () => {
|
describe("convertToCelsius", () => {
|
||||||
test('works', () => {
|
test("works", () => {
|
||||||
expect(convertToCelsius(32)).toEqual(0);
|
expect(convertToCelsius(32)).toEqual(0);
|
||||||
});
|
});
|
||||||
test.skip('rounds to 1 decimal', () => {
|
test("rounds to 1 decimal", () => {
|
||||||
expect(convertToCelsius(100)).toEqual(37.8);
|
expect(convertToCelsius(100)).toEqual(37.8);
|
||||||
});
|
});
|
||||||
test.skip('works with negatives', () => {
|
test("works with negatives", () => {
|
||||||
expect(convertToCelsius(-100)).toEqual(-73.3);
|
expect(convertToCelsius(-100)).toEqual(-73.3);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('convertToFahrenheit', () => {
|
describe("convertToFahrenheit", () => {
|
||||||
test.skip('works', () => {
|
test("works", () => {
|
||||||
expect(convertToFahrenheit(0)).toEqual(32);
|
expect(convertToFahrenheit(0)).toEqual(32);
|
||||||
});
|
});
|
||||||
test.skip('rounds to 1 decimal', () => {
|
test("rounds to 1 decimal", () => {
|
||||||
expect(convertToFahrenheit(73.2)).toEqual(163.8);
|
expect(convertToFahrenheit(73.2)).toEqual(163.8);
|
||||||
});
|
});
|
||||||
test.skip('works with negatives', () => {
|
test("works with negatives", () => {
|
||||||
expect(convertToFahrenheit(-10)).toEqual(14);
|
expect(convertToFahrenheit(-10)).toEqual(14);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,25 +1,39 @@
|
||||||
const add = function() {
|
const add = function (num1, num2) {
|
||||||
|
return num1 + num2;
|
||||||
};
|
};
|
||||||
|
|
||||||
const subtract = function() {
|
const subtract = function (num1, num2) {
|
||||||
|
return num1 - num2;
|
||||||
};
|
};
|
||||||
|
|
||||||
const sum = function() {
|
const sum = function (array) {
|
||||||
|
let result = 0;
|
||||||
|
array.map((i) => {
|
||||||
|
result += i;
|
||||||
|
});
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
const multiply = function() {
|
const multiply = function (array) {
|
||||||
|
let result = 0;
|
||||||
|
array.reduce((acc, val) => {
|
||||||
|
return (result = acc * val);
|
||||||
|
});
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
const power = function() {
|
const power = function (num1, num2) {
|
||||||
|
return Math.pow(num1, num2);
|
||||||
};
|
};
|
||||||
|
|
||||||
const factorial = function() {
|
const factorial = function (number) {
|
||||||
|
if (number === 0) {
|
||||||
|
return 1;
|
||||||
|
} else if (number === 1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return number * factorial(number - 1);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
@ -29,5 +43,5 @@ module.exports = {
|
||||||
sum,
|
sum,
|
||||||
multiply,
|
multiply,
|
||||||
power,
|
power,
|
||||||
factorial
|
factorial,
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,77 +1,77 @@
|
||||||
const calculator = require('./calculator');
|
const calculator = require("./calculator");
|
||||||
|
|
||||||
describe('add', () => {
|
describe("add", () => {
|
||||||
test('adds 0 and 0', () => {
|
test("adds 0 and 0", () => {
|
||||||
expect(calculator.add(0, 0)).toBe(0);
|
expect(calculator.add(0, 0)).toBe(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('adds 2 and 2', () => {
|
test("adds 2 and 2", () => {
|
||||||
expect(calculator.add(2, 2)).toBe(4);
|
expect(calculator.add(2, 2)).toBe(4);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('adds positive numbers', () => {
|
test("adds positive numbers", () => {
|
||||||
expect(calculator.add(2, 6)).toBe(8);
|
expect(calculator.add(2, 6)).toBe(8);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('subtract', () => {
|
describe("subtract", () => {
|
||||||
test.skip('subtracts numbers', () => {
|
test("subtracts numbers", () => {
|
||||||
expect(calculator.subtract(10, 4)).toBe(6);
|
expect(calculator.subtract(10, 4)).toBe(6);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('sum', () => {
|
describe("sum", () => {
|
||||||
test.skip('computes the sum of an empty array', () => {
|
test("computes the sum of an empty array", () => {
|
||||||
expect(calculator.sum([])).toBe(0);
|
expect(calculator.sum([])).toBe(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the sum of an array of one number', () => {
|
test("computes the sum of an array of one number", () => {
|
||||||
expect(calculator.sum([7])).toBe(7);
|
expect(calculator.sum([7])).toBe(7);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the sum of an array of two numbers', () => {
|
test("computes the sum of an array of two numbers", () => {
|
||||||
expect(calculator.sum([7, 11])).toBe(18);
|
expect(calculator.sum([7, 11])).toBe(18);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the sum of an array of many numbers', () => {
|
test("computes the sum of an array of many numbers", () => {
|
||||||
expect(calculator.sum([1, 3, 5, 7, 9])).toBe(25);
|
expect(calculator.sum([1, 3, 5, 7, 9])).toBe(25);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('multiply', () => {
|
describe("multiply", () => {
|
||||||
test.skip('multiplies two numbers', () => {
|
test("multiplies two numbers", () => {
|
||||||
expect(calculator.multiply([2, 4])).toBe(8);
|
expect(calculator.multiply([2, 4])).toBe(8);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('multiplies several numbers', () => {
|
test("multiplies several numbers", () => {
|
||||||
expect(calculator.multiply([2, 4, 6, 8, 10, 12, 14])).toBe(645120);
|
expect(calculator.multiply([2, 4, 6, 8, 10, 12, 14])).toBe(645120);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('power', () => {
|
describe("power", () => {
|
||||||
test.skip('raises one number to the power of another number', () => {
|
test("raises one number to the power of another number", () => {
|
||||||
expect(calculator.power(4, 3)).toBe(64); // 4 to third power is 64
|
expect(calculator.power(4, 3)).toBe(64); // 4 to third power is 64
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('factorial', () => {
|
describe("factorial", () => {
|
||||||
test.skip('computes the factorial of 0', () => {
|
test("computes the factorial of 0", () => {
|
||||||
expect(calculator.factorial(0)).toBe(1); // 0! = 1
|
expect(calculator.factorial(0)).toBe(1); // 0! = 1
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the factorial of 1', () => {
|
test("computes the factorial of 1", () => {
|
||||||
expect(calculator.factorial(1)).toBe(1);
|
expect(calculator.factorial(1)).toBe(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the factorial of 2', () => {
|
test("computes the factorial of 2", () => {
|
||||||
expect(calculator.factorial(2)).toBe(2);
|
expect(calculator.factorial(2)).toBe(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the factorial of 5', () => {
|
test("computes the factorial of 5", () => {
|
||||||
expect(calculator.factorial(5)).toBe(120);
|
expect(calculator.factorial(5)).toBe(120);
|
||||||
});
|
});
|
||||||
|
|
||||||
test.skip('computes the factorial of 10', () => {
|
test("computes the factorial of 10", () => {
|
||||||
expect(calculator.factorial(10)).toBe(3628800);
|
expect(calculator.factorial(10)).toBe(3628800);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,24 @@
|
||||||
const palindromes = function () {
|
const palindromes = function (string) {
|
||||||
|
let result = string
|
||||||
|
.toUpperCase()
|
||||||
|
.replace(/[_\W]+/g, "")
|
||||||
|
.split(" ")
|
||||||
|
.join("")
|
||||||
|
.split("")
|
||||||
|
.join("");
|
||||||
|
let reverseResult = string
|
||||||
|
.toUpperCase()
|
||||||
|
.replace(/[_\W]+/g, "")
|
||||||
|
.split(" ")
|
||||||
|
.join("")
|
||||||
|
.split("")
|
||||||
|
.reverse()
|
||||||
|
.join("");
|
||||||
|
if (result === reverseResult) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,28 +1,30 @@
|
||||||
const palindromes = require('./palindromes')
|
const palindromes = require("./palindromes");
|
||||||
|
|
||||||
describe('palindromes', () => {
|
describe("palindromes", () => {
|
||||||
test('works with single words', () => {
|
test("works with single words", () => {
|
||||||
expect(palindromes('racecar')).toBe(true);
|
expect(palindromes("racecar")).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with punctuation ', () => {
|
test("works with punctuation ", () => {
|
||||||
expect(palindromes('racecar!')).toBe(true);
|
expect(palindromes("racecar!")).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with upper-case letters ', () => {
|
test("works with upper-case letters ", () => {
|
||||||
expect(palindromes('Racecar!')).toBe(true);
|
expect(palindromes("Racecar!")).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with multiple words', () => {
|
test("works with multiple words", () => {
|
||||||
expect(palindromes('A car, a man, a maraca.')).toBe(true);
|
expect(palindromes("A car, a man, a maraca.")).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with multiple words', () => {
|
test("works with multiple words", () => {
|
||||||
expect(palindromes('Animal loots foliated detail of stool lamina.')).toBe(true);
|
expect(palindromes("Animal loots foliated detail of stool lamina.")).toBe(
|
||||||
|
true
|
||||||
|
);
|
||||||
});
|
});
|
||||||
test.skip('doesn\'t just always return true', () => {
|
test("doesn't just always return true", () => {
|
||||||
expect(palindromes('ZZZZ car, a man, a maracaz.')).toBe(false);
|
expect(palindromes("ZZZZ car, a man, a maracaz.")).toBe(false);
|
||||||
});
|
});
|
||||||
test.skip('works with numbers in a string', () => {
|
test("works with numbers in a string", () => {
|
||||||
expect(palindromes('rac3e3car')).toBe(true);
|
expect(palindromes("rac3e3car")).toBe(true);
|
||||||
});
|
});
|
||||||
test.skip('works with unevenly spaced numbers in a string', () => {
|
test("works with unevenly spaced numbers in a string", () => {
|
||||||
expect(palindromes('r3ace3car')).toBe(false);
|
expect(palindromes("r3ace3car")).toBe(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
const getTheTitles = function() {
|
const getTheTitles = function (array) {
|
||||||
|
let result = [];
|
||||||
|
array.map((obj) => {
|
||||||
|
result.push(obj.title);
|
||||||
|
});
|
||||||
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
const getTheTitles = require('./getTheTitles')
|
const getTheTitles = require("./getTheTitles");
|
||||||
|
|
||||||
describe('getTheTitles', () => {
|
describe("getTheTitles", () => {
|
||||||
const books = [
|
const books = [
|
||||||
{
|
{
|
||||||
title: 'Book',
|
title: "Book",
|
||||||
author: 'Name'
|
author: "Name",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Book2',
|
title: "Book2",
|
||||||
author: 'Name2'
|
author: "Name2",
|
||||||
}
|
},
|
||||||
]
|
];
|
||||||
|
|
||||||
test('gets titles', () => {
|
test("gets titles", () => {
|
||||||
expect(getTheTitles(books)).toEqual(['Book','Book2']);
|
expect(getTheTitles(books)).toEqual(["Book", "Book2"]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,16 @@
|
||||||
const findTheOldest = function() {
|
const findTheOldest = function (array) {
|
||||||
|
return array.reduce((prev, curr) => {
|
||||||
|
const prevAge = getAge(prev.yearOfBirth, prev.yearOfDeath);
|
||||||
|
const currentAge = getAge(curr.yearOfBirth, curr.yearOfDeath);
|
||||||
|
return prevAge < currentAge ? curr : prev;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const getAge = function (birth, death) {
|
||||||
|
if (!death) {
|
||||||
|
death = new Date().getFullYear();
|
||||||
|
}
|
||||||
|
return death - birth;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Do not edit below this line
|
// Do not edit below this line
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const findTheOldest = require('./findTheOldest')
|
const findTheOldest = require("./findTheOldest");
|
||||||
|
|
||||||
describe('findTheOldest', () => {
|
describe("findTheOldest", () => {
|
||||||
test('finds the person with the greatest age!', () => {
|
test("finds the person with the greatest age!", () => {
|
||||||
const people = [
|
const people = [
|
||||||
{
|
{
|
||||||
name: "Carly",
|
name: "Carly",
|
||||||
|
@ -18,10 +18,10 @@ describe('findTheOldest', () => {
|
||||||
yearOfBirth: 1912,
|
yearOfBirth: 1912,
|
||||||
yearOfDeath: 1941,
|
yearOfDeath: 1941,
|
||||||
},
|
},
|
||||||
]
|
];
|
||||||
expect(findTheOldest(people).name).toBe('Ray');
|
expect(findTheOldest(people).name).toBe("Ray");
|
||||||
});
|
});
|
||||||
test.skip('finds the person with the greatest age if someone is still living', () => {
|
test("finds the person with the greatest age if someone is still living", () => {
|
||||||
const people = [
|
const people = [
|
||||||
{
|
{
|
||||||
name: "Carly",
|
name: "Carly",
|
||||||
|
@ -37,10 +37,10 @@ describe('findTheOldest', () => {
|
||||||
yearOfBirth: 1912,
|
yearOfBirth: 1912,
|
||||||
yearOfDeath: 1941,
|
yearOfDeath: 1941,
|
||||||
},
|
},
|
||||||
]
|
];
|
||||||
expect(findTheOldest(people).name).toBe('Ray');
|
expect(findTheOldest(people).name).toBe("Ray");
|
||||||
});
|
});
|
||||||
test.skip('finds the person with the greatest age if the OLDEST is still living', () => {
|
test("finds the person with the greatest age if the OLDEST is still living", () => {
|
||||||
const people = [
|
const people = [
|
||||||
{
|
{
|
||||||
name: "Carly",
|
name: "Carly",
|
||||||
|
@ -56,7 +56,7 @@ describe('findTheOldest', () => {
|
||||||
yearOfBirth: 1912,
|
yearOfBirth: 1912,
|
||||||
yearOfDeath: 1941,
|
yearOfDeath: 1941,
|
||||||
},
|
},
|
||||||
]
|
];
|
||||||
expect(findTheOldest(people).name).toBe('Carly');
|
expect(findTheOldest(people).name).toBe("Carly");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue