5708c3d85a
Removed generator-exercises folder as it breaks jest-codemods run jest-codemods on .spec.js files, move generator-exercises back in Change references from Jasmine to Jest in main readme Update README with Jest specific language. Update some spec files with new syntax update tests, multiple exercises .gitignore: Added package-lock.json, package.json that were used when I ran code-blocks over the tests. Standardised function declaration calls across exercises fix typo in caesar.spec.js Ignoring package-lock.json, package.json Backtrack on .gitignore modification, add instructions to readme move files from testing repo to this repo Typo fixes, remove duplicate exercise folder Remove solution from non-solution branch Minor grammatical fixes added trailing semicolon to all function and module exports Fix words caught by search/replace action. remove doubled semicolon. Correct words caught by search/replace action. Add missing semicolon. Add .DS_Store to .gitignore multiple files: Added a blank line at the end of each file Ignore generator-exercise when linting exercise files Update exercise number of each exercise Update exercise number
56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
const pigLatin = require('./pigLatin')
|
|
|
|
// Topics
|
|
|
|
// * modules
|
|
// * strings
|
|
|
|
// Pig Latin
|
|
|
|
// 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 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.)
|
|
|
|
// See https://en.wikipedia.org/wiki/Pig_Latin for more details.
|
|
|
|
describe('translate', () => {
|
|
test('translates a word beginning with a vowel', () => {
|
|
expect(pigLatin("apple")).toBe('appleay');
|
|
});
|
|
|
|
test.skip('translates a word beginning with a consonant', () => {
|
|
expect(pigLatin("banana")).toBe("ananabay");
|
|
});
|
|
|
|
test.skip('translates a word beginning with two consonants', () => {
|
|
expect(pigLatin("cherry")).toBe('errychay');
|
|
});
|
|
|
|
test.skip('translates two words', () => {
|
|
expect(pigLatin("eat pie")).toBe('eatay iepay');
|
|
});
|
|
|
|
test.skip('translates a word beginning with three consonants', () => {
|
|
expect(pigLatin("three")).toBe("eethray");
|
|
});
|
|
|
|
test.skip('counts "sch" as a single phoneme', () => {
|
|
expect(pigLatin("school")).toBe("oolschay");
|
|
});
|
|
|
|
test.skip('counts "qu" as a single phoneme', () => {
|
|
expect(pigLatin("quiet")).toBe("ietquay");
|
|
});
|
|
|
|
test.skip('counts "qu" as a consonant even when its preceded by a consonant', () => {
|
|
expect(pigLatin("square")).toBe("aresquay");
|
|
});
|
|
|
|
test.skip('translates many words', () => {
|
|
expect(pigLatin("the quick brown fox")).toBe("ethay ickquay ownbray oxfay");
|
|
});
|
|
});
|