Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

37 changes: 37 additions & 0 deletions problem1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
var assert = require('assert');

// we need 5 test cases. I provided 1 input
let inputs = [
"",
"ab",
"abc",
"de",
"fa"
]

let outputs = [
undefined,
"a",
"a",
"d",
"f"
]

// Make this function return the first letter of the string that is passed to it. If the string does not have a first letter, return undefined
function f(str) {

return str[0];

}

function runTest(i) {
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);
52 changes: 52 additions & 0 deletions problem10.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
"helo world",
"ALL YOUR BASE ARE BELONG",
"MaMa sita",
"Noé provost",
"b a d de"

]

let outputs = [
"Helo World",
"All Your Base Are Belong",
"Mama Sita",
"Noé Provost",
"B A D De"
]

/*
Make this function return the input string, capitalized. You must use a for loop. For example:

f("hello world"); // Hello World
f("ALL YOUR BASE ARE BELONG"); // All Your Base Are Belong

*/


function f(str) {
var words = str.split(" ")
var ret = "";
for(var i = 0; i < words.length; i++) {
ret = ret + words[i].charAt(0).toUpperCase() + words[i].slice(1).toLowerCase()+" "

}
return ret;
}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

50 changes: 50 additions & 0 deletions problem11.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
[1,2,3],
[2,2],
[1,1,1],
[1,"a",1,2],
[1]
]

let outputs = [
6,
4,
3,
4,
1

]

/*
Make this function return the sum of all the numbers in the input array. If any element in the array is not a number, skip it. If the array is empty, return zero.
*/
function f(arr) {
var x = 0;
for (i=0; i<= arr.length-1; i++) {

if (isNaN(arr[i]) === true) {
x= x+0;
}
else {
x = x + arr[i];
}
}
return x;
}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

77 changes: 77 additions & 0 deletions problem12.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
[[],"allo"],
[[1],[1]],
[[1],[2]],
[[1,2,3],[2,3,5]],
[[1,4,2],[2,3,2]],

]

let outputs = [
undefined,
[],
[1,2],
[1,5],
[1,4,3]

]

/*
Make this function return the elements that are unique to array1 and array2.
If there are no unique elements return an empty array.
If the inputs are anything other than arrays, return undefined.
For example:

uniqueElements([0,1,2,3], [1,3,4,5]); // [0,4,5]
uniqueElements([1,2,3], [1,2,3]); // []
uniqueElements(2,3); // undefined, not arrays
*/
function f(arr1, arr2) {
var arr3 = [];
var count = 0;
if( Array.isArray(arr1) === false || Array.isArray(arr2) === false ){
return undefined;
}
for (i=0; i<= arr1.length-1 ;i++){
count = 0;
for (y=0; y<= arr2.length-1; y++){
if(arr1[i]===arr2[y]){
count = count + 1;
}
else if(count === 0 && y === arr2.length-1){
arr3= arr3 + arr1[i];
}

}
}
for (a=0; a<= arr2.length-1 ;a++){
count = 0;
for (b=0; b<= arr1.length-1; b++){
if(arr2[a] ===arr1[b]){
count = count + 1;
}
else if(count === 0 && b === arr1.length-1){
arr3= arr3 + arr2[a];
}

}
}
return arr3;
}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

59 changes: 59 additions & 0 deletions problem13.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [
"radar",
"alla",
"non",
"fafrea",
"abc"
]

let outputs = [
true,
true,
true,
false,
false
]

/*
Make this function return true if the input string is a palindrome, and false otherwise. A palindrome is simply a string that is the same if you reverse it.

RADAR -> Yes
JAVASCRIPT -> No
*/
function f(str) {

var characters = str.split('');

var firstLetter = characters.shift();

var lastLetter = characters.pop();

if (firstLetter !== lastLetter) {
return false;
}

if (characters.length < 2) {
return true;
}

return f(characters.join(''));

}


function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

49 changes: 49 additions & 0 deletions problem14.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [

]

let outputs = [

]

/*
Make this function return the input string wrapped to 40 characters per line.
This means you'll have to insert a newline \n character after every 40 characters in the input string.
If the next character after a cut is a space, then do not display it.

For example with the input:

Lorem ipsumos dolor sit amet consectetur adipisicing elit. Magni quisquam

the output would be:

Lorem ipsumos dolor sit amet consectetur
adipisicing elit. Magni quisquam

instead of:

Lorem ipsumos dolor sit amet consectetur
adipisicing elit. Magni quisquam

even though there is a space before the a in adipisicing
*/
function f(str) {

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

49 changes: 49 additions & 0 deletions problem15.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
var assert = require('assert');

// we need 5 test cases.
let inputs = [

]

let outputs = [

]

/*
Make this function return the input string wrapped to 40 characters per line.
This means you'll have to insert a newline \n character after every 40 characters in the input string.
If the next character after a cut is a space, then do not display it.

For example with the input:

Lorem ipsumos dolor sit amet consectetur adipisicing elit. Magni quisquam

the output would be:

Lorem ipsumos dolor sit amet consectetur
adipisicing elit. Magni quisquam

instead of:

Lorem ipsumos dolor sit amet consectetur
adipisicing elit. Magni quisquam

even though there is a space before the a in adipisicing
*/
function f(str) {

}

function runTest(i) {
if(i > inputs.length) throw new Error("You do not have enough test cases");
var expected = outputs[i];
var actual = f(inputs[i]);
assert.deepEqual(actual, expected);
}

runTest(0);
runTest(1);
runTest(2);
runTest(3);
runTest(4);

1 change: 1 addition & 0 deletions problem16.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Loading