update tests, multiple exercises

This commit is contained in:
Michael Frank 2021-03-10 00:12:25 +13:00
parent e73c68fc01
commit 2eb02ea212
11 changed files with 161 additions and 172 deletions

View file

@ -1,26 +1,23 @@
const expect = require('expect');
const caesar = require('./caesar')
describe('caesar', function() {
test('works with single letters', function() {
expect(caesar('A', 1)).toBe('B');
});
test.skip('works with words', function() {
expect(caesar('Aaa', 1)).toBe('Bbb');
});
test.skip('works with phrases', function() {
expect(caesar('Hello, World!', 5)).toBe('Mjqqt, Btwqi!');
});
test.skip('works with negative shift', function() {
expect(caesar('Mjqqt, Btwqi!', -5)).toBe('Hello, World!');
});
test.skip('wraps', function() {
expect(caesar('Z', 1)).toBe('A');
});
test.skip('works with large shift factors', function() {
expect(caesar('Hello, World!', 75)).toBe('Ebiil, Tloia!');
});
test.skip('works with large negative shift factors', function() {
expect(caesar('Hello, World!', -29)).toBe('Ebiil, Tloia!');
});
test('works with single letters', () => {
expect(caesar('A', 1)).toBe('B');
});
test.skip('works with words', () => {
expect(caesar('Aaa', 1)).toBe('Bbb');
});
test.skip('works with phrases', () => {
expect(caesar('Hello, World!', 5)).toBe('Mjqqt, Btwqi!');
});
test.skip('works with negative shift', () => {
expect(caesar('Mjqqt, Btwqi!', -5)).toBe('Hello, World!');
});
test.skip('wraps', () => {
expect(caesar('Z', 1)).toBe('A');
});
test.skip('works with large shift factors', () => {
expect(caesar('Hello, World!', 75)).toBe('Ebiil, Tloia!');
});
test.skip('works with large negative shift factors', () => {
expect(caesar('Hello, World!', -29)).toBe('Ebiil, Tloia!');
});

View file

@ -1,77 +1,77 @@
const expect = require('expect');const calculator = require ('./calculator.js');
const calculator = require ('./calculator.js');
describe('add', function() {
it('adds 0 and 0', function() {
expect(calculator.add(0,0)).toEqual(0);
describe('add', () => {
test('adds 0 and 0', () => {
expect(calculator.add(0,0)).toBe(0);
});
xit('adds 2 and 2', function() {
expect(calculator.add(2,2)).toEqual(4);
test.skip('adds 2 and 2', () => {
expect(calculator.add(2,2)).toBe(4);
});
xit('adds positive numbers', function() {
expect(calculator.add(2,6)).toEqual(8);
test.skip('adds positive numbers', () => {
expect(calculator.add(2,6)).toBe(8);
});
});
describe('subtract', function() {
xit('subtracts numbers', function() {
expect(calculator.subtract(10,4)).toEqual(6);
describe('subtract', () => {
test.skip('subtracts numbers', () => {
expect(calculator.subtract(10,4)).toBe(6);
});
});
describe('sum', function() {
xit('computes the sum of an empty array', function() {
expect(calculator.sum([])).toEqual(0);
describe('sum', () => {
test.skip('computes the sum of an empty array', () => {
expect(calculator.sum([])).toBe(0);
});
xit('computes the sum of an array of one number', function() {
expect(calculator.sum([7])).toEqual(7);
test.skip('computes the sum of an array of one number', () => {
expect(calculator.sum([7])).toBe(7);
});
xit('computes the sum of an array of two numbers', function() {
expect(calculator.sum([7,11])).toEqual(18);
test.skip('computes the sum of an array of two numbers', () => {
expect(calculator.sum([7,11])).toBe(18);
});
xit('computes the sum of an array of many numbers', function() {
expect(calculator.sum([1,3,5,7,9])).toEqual(25);
test.skip('computes the sum of an array of many numbers', () => {
expect(calculator.sum([1,3,5,7,9])).toBe(25);
});
});
describe('multiply', function() {
xit('multiplies two numbers', function() {
expect(calculator.multiply([2,4])).toEqual(8);
describe('multiply', () => {
test.skip('multiplies two numbers', () => {
expect(calculator.multiply([2,4])).toBe(8);
});
xit('multiplies several numbers', function() {
expect(calculator.multiply([2,4,6,8,10,12,14])).toEqual(645120);
test.skip('multiplies several numbers', () => {
expect(calculator.multiply([2,4,6,8,10,12,14])).toBe(645120);
});
});
describe('power', function() {
xit('raises one number to the power of another number', function() {
expect(calculator.power(4,3)).toEqual(64); // 4 to third power is 64
describe('power', () => {
test.skip('raises one number to the power of another number', () => {
expect(calculator.power(4,3)).toBe(64); // 4 to third power is 64
});
});
describe('factorial', function() {
xit('computes the factorial of 0', function() {
expect(calculator.factorial(0)).toEqual(1); // 0! = 1
describe('factorial', () => {
test.skip('computes the factorial of 0', () => {
expect(calculator.factorial(0)).toBe(1); // 0! = 1
});
xit('computes the factorial of 1', function() {
expect(calculator.factorial(1)).toEqual(1);
test.skip('computes the factorial of 1', () => {
expect(calculator.factorial(1)).toBe(1);
});
xit('computes the factorial of 2', function() {
expect(calculator.factorial(2)).toEqual(2);
test.skip('computes the factorial of 2', () => {
expect(calculator.factorial(2)).toBe(2);
});
xit('computes the factorial of 5', function() {
expect(calculator.factorial(5)).toEqual(120);
test.skip('computes the factorial of 5', () => {
expect(calculator.factorial(5)).toBe(120);
});
xit('computes the factorial of 10', function() {
expect(calculator.factorial(10)).toEqual(3628800);
test.skip('computes the factorial of 10', () => {
expect(calculator.factorial(10)).toBe(3628800);
});
});

View file

@ -1,31 +1,31 @@
const expect = require('expect');const fibonacci = require('./fibonacci')
const fibonacci = require('./fibonacci')
describe('fibonacci', function() {
it('works', function() {
expect(fibonacci(4)).toEqual(3);
describe('fibonacci', () => {
test('4th fibonacci number is 3', () => {
expect(fibonacci(4)).toBe(3);
});
xit('works', function() {
expect(fibonacci(6)).toEqual(8);
test.skip('6th fibonacci number is 8', () => {
expect(fibonacci(6)).toBe(8);
});
xit('works', function() {
expect(fibonacci(10)).toEqual(55);
test.skip('10th fibonacci number is 55', () => {
expect(fibonacci(10)).toBe(55);
});
xit('works', function() {
expect(fibonacci(15)).toEqual(610);
test.skip('15th fibonacci number is 610', () => {
expect(fibonacci(15)).toBe(610);
});
xit('works', function() {
expect(fibonacci(25)).toEqual(75025);
test.skip('25th fibonacci number is 75025', () => {
expect(fibonacci(25)).toBe(75025);
});
xit('doesn\'t accept negatives', function() {
expect(fibonacci(-25)).toEqual("OOPS");
test.skip('doesn\'t accept negatives', () => {
expect(fibonacci(-25)).toBe("OOPS");
});
xit('DOES accept strings', function() {
expect(fibonacci("1")).toEqual(1);
test.skip('DOES accept strings', () => {
expect(fibonacci("1")).toBe(1);
});
xit('DOES accept strings', function() {
expect(fibonacci("2")).toEqual(1);
test.skip('DOES accept strings', () => {
expect(fibonacci("2")).toBe(1);
});
xit('DOES accept strings', function() {
expect(fibonacci("8")).toEqual(21);
test.skip('DOES accept strings', () => {
expect(fibonacci("8")).toBe(21);
});
});

View file

@ -1,7 +1,7 @@
const expect = require('expect');let findTheOldest = require('./findTheOldest')
const findTheOldest = require('./findTheOldest')
describe('findTheOldest', function() {
it('finds the oldest person!', function() {
describe('findTheOldest', () => {
test('finds the oldest person!', () => {
const people = [
{
name: 'Carly',
@ -19,9 +19,9 @@ describe('findTheOldest', function() {
yearOfDeath: 1941
},
]
expect(findTheOldest(people).name).toEqual('Ray');
expect(findTheOldest(people).name).toBe('Ray');
});
xit('finds the oldest person if someone is still living', function() {
test.skip('finds the oldest person if someone is still living', () => {
const people = [
{
name: 'Carly',
@ -38,9 +38,9 @@ describe('findTheOldest', function() {
yearOfDeath: 1941
},
]
expect(findTheOldest(people).name).toEqual('Ray');
expect(findTheOldest(people).name).toBe('Ray');
});
xit('finds the oldest person if the OLDEST is still living', function() {
test.skip('finds the oldest person if the OLDEST is still living', () => {
const people = [
{
name: 'Carly',
@ -57,7 +57,7 @@ describe('findTheOldest', function() {
yearOfDeath: 1941
},
]
expect(findTheOldest(people).name).toEqual('Carly');
expect(findTheOldest(people).name).toBe('Carly');
});
});

View file

@ -1,6 +1,6 @@
const expect = require('expect');let getTheTitles = require('./getTheTitles')
const getTheTitles = require('./getTheTitles')
describe('getTheTitles', function() {
describe('getTheTitles', () => {
const books = [
{
title: 'Book',
@ -12,8 +12,8 @@ describe('getTheTitles', function() {
}
]
it('gets titles', function() {
expect(getTheTitles(books)).toEqual(['Book','Book2']);
test('gets titles', () => {
expect(getTheTitles(books)).toBe(['Book','Book2']);
});
});

View file

@ -1,5 +1,5 @@
const helloWorld = function() {
return 'Yello Wold!'
return ''
}
module.exports = helloWorld;

View file

@ -1,14 +1,5 @@
const expect = require('expect');
const helloWorld = require('./helloWorld');
// describe('Hello World', function() {
// it('says hello world', function() {
// expect(helloWorld()).toEqual('Hello, World!');
// });
// });
describe('helloWorld', function() {
test('says "Hello, World!"', function() {
expect(helloWorld()).toBe("Hello, World!");
})
test('says "Hello, World!"', function() {
expect(helloWorld()).toBe("Hello, World!");
});

View file

@ -1,23 +1,22 @@
const expect = require('expect');
const leapYears = require('./leapYears')
describe('leapYears', function() {
it('works with non century years', function() {
expect(leapYears(1996)).toEqual(true);
describe('leapYears', () => {
test('works with non century years', () => {
expect(leapYears(1996)).toBe(true);
});
xit('works with non century years', function() {
expect(leapYears(1997)).toEqual(false);
test.skip('works with non century years', () => {
expect(leapYears(1997)).toBe(false);
});
xit('works with ridiculously futuristic non century years', function() {
expect(leapYears(34992)).toEqual(true);
test.skip('works with ridiculously futuristic non century years', () => {
expect(leapYears(34992)).toBe(true);
});
xit('works with century years', function() {
expect(leapYears(1900)).toEqual(false);
test.skip('works with century years', () => {
expect(leapYears(1900)).toBe(false);
});
xit('works with century years', function() {
expect(leapYears(1600)).toEqual(true);
test.skip('works with century years', () => {
expect(leapYears(1600)).toBe(true);
});
xit('works with century years', function() {
expect(leapYears(700)).toEqual(false);
test.skip('works with century years', () => {
expect(leapYears(700)).toBe(false);
});
});

View file

@ -1,23 +1,23 @@
const expect = require('expect');const palindromes = require('./palindromes')
const palindromes = require('./palindromes')
describe('palindromes', function() {
it('works with single words', function() {
expect(palindromes('racecar')).toEqual(true);
describe('palindromes', () => {
test('works with single words', () => {
expect(palindromes('racecar')).toBe(true);
});
xit('works with punctuation ', function() {
expect(palindromes('racecar!')).toEqual(true);
test.skip('works with punctuation ', () => {
expect(palindromes('racecar!')).toBe(true);
});
xit('works with upper-case letters ', function() {
expect(palindromes('Racecar!')).toEqual(true);
test.skip('works with upper-case letters ', () => {
expect(palindromes('Racecar!')).toBe(true);
});
xit('works with multiple words', function() {
expect(palindromes('A car, a man, a maraca.')).toEqual(true);
test.skip('works with multiple words', () => {
expect(palindromes('A car, a man, a maraca.')).toBe(true);
});
xit('works with multiple words', function() {
expect(palindromes('Animal loots foliated detail of stool lamina.')).toEqual(true);
test.skip('works with multiple words', () => {
expect(palindromes('Animal loots foliated detail of stool lamina.')).toBe(true);
});
xit('doesn\'t just always return true', function() {
expect(palindromes('ZZZZ car, a man, a maraca.')).toEqual(false);
test.skip('doesn\'t just always return true', () => {
expect(palindromes('ZZZZ car, a man, a maraca.')).toBe(false);
});
});

View file

@ -1,15 +1,17 @@
const expect = require("expect");// Topics
const expect = require("expect");
// Topics
// * modules
// * strings
// Pig Latin
// Pig Latin is a made-up children's language that's intended to be confusing. It obeys a few simple rules (below) but when it's spoken quickly it's really difficult for non-children (and non-native speakers) to understand.
// Pig Latin is a made-up children's language that's intended to be confusing. test obeys a few simple rules (below) but when test's spoken quickly test's really difficult for non-children (and non-native speakers) to understand.
// Rule 1: If a word begins with a vowel sound, add an "ay" sound to the end of the word.
// Rule 2: If a word begins with a consonant sound, move it to the end of the word, and then add an "ay" sound to the end of the word.
// Rule 2: If a word begins with a consonant sound, move test to the end of the word, and then add an "ay" sound to the end of the word.
// (There are a few more rules for edge cases, and there are regional variants too, but that should be enough to understand the tests.)
@ -17,48 +19,48 @@ const expect = require("expect");// Topics
const pigLatin = require("./pigLatin.js");
describe('#translate', function() {
it('translates a word beginning with a vowel', function() {
describe('translate', () => {
test('translates a word beginning with a vowel', () => {
s = pigLatin.translate("apple");
expect(s).toEqual('appleay');
expect(s).toBe('appleay');
});
xit('translates a word beginning with a consonant', function() {
test.skip('translates a word beginning with a consonant', () => {
s = pigLatin.translate("banana");
expect(s).toEqual("ananabay");
expect(s).toBe("ananabay");
});
xit('translates a word beginning with two consonants', function() {
test.skip('translates a word beginning with two consonants', () => {
s = pigLatin.translate("cherry");
expect(s).toEqual('errychay');
expect(s).toBe('errychay');
});
xit('translates two words', function() {
test.skip('translates two words', () => {
s = pigLatin.translate("eat pie");
expect(s).toEqual('eatay iepay');
expect(s).toBe('eatay iepay');
});
xit('translates a word beginning with three consonants', function() {
expect(pigLatin.translate("three")).toEqual("eethray");
test.skip('translates a word beginning with three consonants', () => {
expect(pigLatin.translate("three")).toBe("eethray");
});
xit('counts "sch" as a single phoneme', function() {
test.skip('counts "sch" as a single phoneme', () => {
s = pigLatin.translate("school");
expect(s).toEqual("oolschay");
expect(s).toBe("oolschay");
});
xit('counts "qu" as a single phoneme', function() {
test.skip('counts "qu" as a single phoneme', () => {
s = pigLatin.translate("quiet");
expect(s).toEqual("ietquay");
expect(s).toBe("ietquay");
});
xit('counts "qu" as a consonant even when its preceded by a consonant', function() {
test.skip('counts "qu" as a consonant even when its preceded by a consonant', () => {
s = pigLatin.translate("square");
expect(s).toEqual("aresquay");
expect(s).toBe("aresquay");
});
xit('translates many words', function() {
test.skip('translates many words', () => {
s = pigLatin.translate("the quick brown fox");
expect(s).toEqual("ethay ickquay ownbray oxfay");
expect(s).toBe("ethay ickquay ownbray oxfay");
});
});

View file

@ -1,25 +1,25 @@
const expect = require('expect');const removeFromArray = require('./removeFromArray')
const removeFromArray = require('./removeFromArray')
describe('removeFromArray', function() {
it('removes a single value', function() {
expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]);
describe('removeFromArray', () => {
test('removes a single value', () => {
expect(removeFromArray([1, 2, 3, 4], 3)).toBe([1, 2, 4]);
});
xit('removes multiple values', function() {
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
test.skip('removes multiple values', () => {
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toBe([1, 4]);
});
xit('ignores non present values', function() {
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
test.skip('ignores non present values', () => {
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toBe([1, 2, 3, 4]);
});
xit('ignores non present values, but still works', function() {
expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
test.skip('ignores non present values, but still works', () => {
expect(removeFromArray([1, 2, 3, 4], 7, 2)).toBe([1, 3, 4]);
});
xit('can remove all values', function() {
expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
test.skip('can remove all values', () => {
expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toBe([]);
});
xit('works with strings', function() {
expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
test.skip('works with strings', () => {
expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toBe([2, "ho"]);
});
xit('only removes same type', function() {
expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]);
test.skip('only removes same type', () => {
expect(removeFromArray([1, 2, 3], "1", 3)).toBe([1, 2]);
});
});