Updated file paths

This commit is contained in:
thatblindgeye
2023-02-01 18:53:54 -05:00
parent a092bf0559
commit 2ec0f4344d
24 changed files with 207 additions and 204 deletions
+10
View File
@@ -0,0 +1,10 @@
This exercise is tricky and was removed from our recommendations because it mostly leverages regular expressions for the solution, and those aren't really taught at this point in our curriculum.
Leaving it here for posterity, or a good challenge for anyone that wants to give it a shot.
Pig Latin is a children's language that is intended to be confusing when spoken quickly. Your job for this exercise is to create a solution that takes the words given and
turns them into pig latin. Please see the following wikipedia page for details regarding the rules of Pig Latin:
https://en.wikipedia.org/wiki/Pig_Latin
The rules section will give the rules and the examples that are required to complete this exercise.
+6
View File
@@ -0,0 +1,6 @@
function pigLatin(string) {
};
// Do not edit below this line
module.exports = pigLatin;
+56
View File
@@ -0,0 +1,56 @@
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");
});
});
@@ -0,0 +1,21 @@
const pigLatin = function (string) {
return string
.split(" ")
.map((word) => {
const index = firstVowelIndex(word);
const beginning = word.slice(0, index);
const ending = word.slice(index);
return `${ending}${beginning}ay`;
})
.join(" ");
};
const firstVowelIndex = function (string) {
const vowels = string.match(/[aeiou]/g);
if (vowels[0] == "u" && string[string.indexOf(vowels[0]) - 1] == "q") {
return string.indexOf(vowels[1]);
}
return string.indexOf(vowels[0]);
};
module.exports = pigLatin;
@@ -0,0 +1,56 @@
const pigLatin = require('./pigLatin-solution');
// 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');
});
});