From c43c832f730b6c49b94a1cf6512552c29ac889b4 Mon Sep 17 00:00:00 2001 From: Shelley McIntyre <73217296+SLMcIntyre@users.noreply.github.com> Date: Wed, 16 Dec 2020 21:54:23 -0500 Subject: [PATCH 1/4] added code for first 3 tests --- StringsAndTings.js | 84 +++++++++++++++++++++++++++++++++++------ StringsAndTings.test.js | 36 +++++++++--------- 2 files changed, 90 insertions(+), 30 deletions(-) diff --git a/StringsAndTings.js b/StringsAndTings.js index 4fdca47..a2a3659 100644 --- a/StringsAndTings.js +++ b/StringsAndTings.js @@ -1,29 +1,89 @@ class StringsAndTings { // @return string with identical content, and the first character capitalized + // camelCase(str){ + // let input = "she sells sea shells"; + // let string = input.split(" "); + // for (let i = 0; i = 0; i--){ + rString += str[i]; + } + return rString; } - // @return string with identical contents, in reverse order, with first character capitalized - reverseThenCamelCase(str){ - return null; - } - // @return string with identical contents excluding first and last character - removeFirstAndLastCharacter(str){ - return null; + + //reverse each word in a string + reverseWords(str){ + let rWordString = ""; + let rWords = ""; + for(let i = str.length-1; i >=0; i--){ + if (str[i] === " "){ + rWordString = " " + rWords + rWordString; + rWords = ""; + }else {rWords += str[i]} + + } + return rWords + rWordString; } - // @return string with identical characters, each with opposite casing - invertCasing(str){ - return null; + + // @return string with identical contents, in reverse order, with first character capitalized + // reverseThenCamelCase(str){ + // let rCamelString = str.split(" "); + // for (let i = rCamelString.length-1; i >= 0; i--){ + // // rCamelString[i] = rCamelString[i][rCamelString.length - 1].toUpperCase() + rCamelString[i].substring(1); + + // } + // return rCamelString.join(" "); + // } + + reverseThenCamelCase(str){ + let rString = ""; + let whiteSpace = str.indexOf (" "); + for (let i = str.length-1; i >= 0; i--){ + rString += str[i]; + } + //rString = rString.split(); + //rString = rString..toUpperCase() + rString.substring(1); + + rString = rString.toUpperCase(rString.length-1); + + + return rString; } + + + // // @return string with identical contents excluding first and last character + // removeFirstAndLastCharacter(str){ + // return null; + // } + + // // @return string with identical characters, each with opposite casing + // invertCasing(str){ + // return null; + // } } module.exports = StringsAndTings; \ No newline at end of file diff --git a/StringsAndTings.test.js b/StringsAndTings.test.js index 689b63d..e4de97c 100644 --- a/StringsAndTings.test.js +++ b/StringsAndTings.test.js @@ -8,7 +8,7 @@ test("camelCaseTest", () => { let input = "she sells sea shells"; let expected = "She Sells Sea Shells"; - let actual = stringsAndTings.camelCase(15); + let actual = stringsAndTings.camelCase(input); expect(actual).toEqual(expected); }); @@ -19,7 +19,7 @@ test("reverseTest", () => { let input = "she sells sea shells"; let expected = "sllehs aes slles ehs"; - let actual = stringsAndTings.camelCase(15); + let actual = stringsAndTings.reverseString(input); expect(actual).toEqual(expected); }); @@ -30,7 +30,7 @@ test("reverseWordsTest", () => { let input = "she sells sea shells"; let expected = "ehs slles aes sllehs"; - let actual = stringsAndTings.camelCase(15); + let actual = stringsAndTings.reverseWords(input); expect(actual).toEqual(expected); }); @@ -41,31 +41,31 @@ test("reverseThenCamelCaseTest", () => { let input = "she sells sea shells"; let expected = "Sllehs Aes Slles Ehs"; - let actual = stringsAndTings.camelCase(15); + let actual = stringsAndTings.reverseThenCamelCase(input); expect(actual).toEqual(expected); }); -test("removeFirstAndLastCharacterTest", () => { +// test("removeFirstAndLastCharacterTest", () => { - let stringsAndTings = new StringsAndTings(); - let input = "she sells sea shells"; - let expected = "he sells sea shell"; +// let stringsAndTings = new StringsAndTings(); +// let input = "she sells sea shells"; +// let expected = "he sells sea shell"; - let actual = stringsAndTings.camelCase(15); +// let actual = stringsAndTings.camelCase(15); - expect(actual).toEqual(expected); -}); +// expect(actual).toEqual(expected); +// }); -test("invertCasingTest1", () => { +// test("invertCasingTest1", () => { - let stringsAndTings = new StringsAndTings(); - let input = "shE sells SEA sHeLlS"; - let expected = "SHe SELLS sea ShElLs"; +// let stringsAndTings = new StringsAndTings(); +// let input = "shE sells SEA sHeLlS"; +// let expected = "SHe SELLS sea ShElLs"; - let actual = stringsAndTings.camelCase(15); +// let actual = stringsAndTings.camelCase(15); - expect(actual).toEqual(expected); -}); +// expect(actual).toEqual(expected); +// }); From 32ed8786b833e1aeaf5fbd2da5b4c0eea6902a9f Mon Sep 17 00:00:00 2001 From: Shelley McIntyre <73217296+SLMcIntyre@users.noreply.github.com> Date: Thu, 17 Dec 2020 09:19:13 -0500 Subject: [PATCH 2/4] added code for (removeFirstAndLastCharacterTest and invertCasingTest1) --- StringsAndTings.js | 41 ++++++++++++++++++++++++++++++----------- StringsAndTings.test.js | 28 ++++++++++++++-------------- 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/StringsAndTings.js b/StringsAndTings.js index a2a3659..c065b44 100644 --- a/StringsAndTings.js +++ b/StringsAndTings.js @@ -65,25 +65,44 @@ class StringsAndTings { for (let i = str.length-1; i >= 0; i--){ rString += str[i]; } - //rString = rString.split(); + //rString = rString.split(" "); //rString = rString..toUpperCase() + rString.substring(1); - rString = rString.toUpperCase(rString.length-1); - + rString = rString.toUpperCase(); + // string[i] = string[i][0].toUpperCase() + string[i].substring(1); + return rString; } - // // @return string with identical contents excluding first and last character - // removeFirstAndLastCharacter(str){ - // return null; - // } - // // @return string with identical characters, each with opposite casing - // invertCasing(str){ - // return null; - // } + + // @return string with identical contents excluding first and last character + removeFirstAndLastCharacter(str){ + let newString = ""; + for (let i=1; i { expect(actual).toEqual(expected); }); -// test("removeFirstAndLastCharacterTest", () => { +test("removeFirstAndLastCharacterTest", () => { -// let stringsAndTings = new StringsAndTings(); -// let input = "she sells sea shells"; -// let expected = "he sells sea shell"; + let stringsAndTings = new StringsAndTings(); + let input = "she sells sea shells"; + let expected = "he sells sea shell"; -// let actual = stringsAndTings.camelCase(15); + let actual = stringsAndTings.removeFirstAndLastCharacter(input); -// expect(actual).toEqual(expected); -// }); + expect(actual).toEqual(expected); +}); -// test("invertCasingTest1", () => { +test("invertCasingTest1", () => { -// let stringsAndTings = new StringsAndTings(); -// let input = "shE sells SEA sHeLlS"; -// let expected = "SHe SELLS sea ShElLs"; + let stringsAndTings = new StringsAndTings(); + let input = "shE sells SEA sHeLlS"; + let expected = "SHe SELLS sea ShElLs"; -// let actual = stringsAndTings.camelCase(15); + let actual = stringsAndTings.invertCasing(input); -// expect(actual).toEqual(expected); -// }); + expect(actual).toEqual(expected); +}); From 0f424083e592e337cfc1cbdd697c56583e16d573 Mon Sep 17 00:00:00 2001 From: Shelley McIntyre <73217296+SLMcIntyre@users.noreply.github.com> Date: Sat, 19 Dec 2020 15:24:45 -0500 Subject: [PATCH 3/4] added correct code for reverse then camel case --- StringsAndTings.js | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/StringsAndTings.js b/StringsAndTings.js index c065b44..7dd251a 100644 --- a/StringsAndTings.js +++ b/StringsAndTings.js @@ -49,34 +49,18 @@ class StringsAndTings { } - // @return string with identical contents, in reverse order, with first character capitalized - // reverseThenCamelCase(str){ - // let rCamelString = str.split(" "); - // for (let i = rCamelString.length-1; i >= 0; i--){ - // // rCamelString[i] = rCamelString[i][rCamelString.length - 1].toUpperCase() + rCamelString[i].substring(1); - - // } - // return rCamelString.join(" "); - // } +//@return string with identical contents, in reverse order, with first character capitalized reverseThenCamelCase(str){ - let rString = ""; - let whiteSpace = str.indexOf (" "); - for (let i = str.length-1; i >= 0; i--){ - rString += str[i]; - } - //rString = rString.split(" "); - //rString = rString..toUpperCase() + rString.substring(1); - - rString = rString.toUpperCase(); - // string[i] = string[i][0].toUpperCase() + string[i].substring(1); + let rString = this.reverseString(str); + let reverseString = rString; + reverseString = this.camelCase(rString); - - return rString; + + return reverseString; } - // @return string with identical contents excluding first and last character removeFirstAndLastCharacter(str){ @@ -93,13 +77,10 @@ class StringsAndTings { let inverseString = ""; for(let i=0; i<=str.length-1;i++){ charCase += str[i]; - - // charCase = charCase.split(""); if(charCase[i] === charCase[i].toUpperCase()){ inverseString += charCase[i].toLowerCase(); }else {inverseString += charCase[i].toUpperCase(); } - } return inverseString; } From 085395bd783f8cf4ca783604656c3d5389be8465 Mon Sep 17 00:00:00 2001 From: Shelley McIntyre <73217296+SLMcIntyre@users.noreply.github.com> Date: Sat, 19 Dec 2020 15:25:56 -0500 Subject: [PATCH 4/4] added code for reverse then camelcase --- StringsAndTings.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/StringsAndTings.js b/StringsAndTings.js index 7dd251a..ee049a6 100644 --- a/StringsAndTings.js +++ b/StringsAndTings.js @@ -55,12 +55,9 @@ class StringsAndTings { let rString = this.reverseString(str); let reverseString = rString; reverseString = this.camelCase(rString); - return reverseString; } - - // @return string with identical contents excluding first and last character removeFirstAndLastCharacter(str){