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
4 changes: 3 additions & 1 deletion I.pass-tests/01-add-one/add-one.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
module.exports = function(numbers) {};
module.exports = function(numbers) {
return numbers.map(num => num +1);
};
6 changes: 5 additions & 1 deletion I.pass-tests/02-get-word-lengths/get-word-lengths.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
var getWordLengths = function(someWords) {};
var getWordLengths = function(someWords) {
return someWords.map((word) => { return word.length;})
};

module.exports = getWordLengths;

console.log(getWordLengths(["sun", "potato", "roundabout", "pizza"]))
4 changes: 3 additions & 1 deletion I.pass-tests/03-sum-numbers/add-numbers.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
function addNumbers(numbers) {}
function addNumbers(numbers) {
return numbers.reduce((a,b) => {return a+b},0)
}
module.exports = addNumbers;
5 changes: 4 additions & 1 deletion I.pass-tests/04-find-needle/find-needle.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
function findNeedle(words) {}
function findNeedle(words, str="") {
return words.indexOf(str);
}


module.exports = findNeedle;
12 changes: 11 additions & 1 deletion I.pass-tests/05-factorial/factorial.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@
// calculate and return the factorial of int
// note: factorial of 0 is 1

function factorial(int) {}
function factorial(int) {
let num =1;
let total=1;
if(int==0){return 1}
if(int==1){return 1}
while(num<=int){
total *=num
num++
}
return total
}

module.exports = factorial;
4 changes: 4 additions & 0 deletions I.pass-tests/06-remove-middle/remove-middle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
function removeMiddle(words){
return words.splice(Math.floor(words.length/2),1)
}
module.exports=removeMiddle;
8 changes: 8 additions & 0 deletions I.pass-tests/07-second-largest/second-largest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
function secondLargest(numbers){
return numbers.sort((a,b) => {return a-b})[numbers.length - 2]
}


module.exports=secondLargest;

console.log(secondLargest([2, 0, 23, 0, 57, 1, 230]))
7 changes: 7 additions & 0 deletions I.pass-tests/08-get-average/get-average.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
// the input is an array of numbers and strings
// return the average of all the numbers
// be sure to exclude the strings
function average(numbers) {
let arr = numbers.filter((num) => typeof num !== "string")
return arr.reduce((a, b) => a + b) / arr.length
}


module.exports = average;
9 changes: 9 additions & 0 deletions I.pass-tests/09-car-sales/car-sales.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function sales(cars) {
const hash = {}
cars.forEach(car => {
return hash[car.make] ? hash[car.make] += car.price : hash[car.make] = car.price;
});
return hash;
}

module.exports = sales;
11 changes: 11 additions & 0 deletions I.pass-tests/10-paint-ford/paint-cars.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function paintShop(cars) {
let copy = JSON.parse(JSON.stringify(cars));
copy.forEach(a => {
if (a.make === "Ford") {
return (a.colour = "Pink");
}
});
return copy;
}

module.exports = paintShop;
10 changes: 10 additions & 0 deletions I.pass-tests/11-cities-formatter/cities.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
function formatCities(capitals) {
let arr =[]
capitals.forEach(capital => {
const {city, country} = capital
arr.push(`${city} is the capital of ${country}`)
});
return arr;
}

module.exports = formatCities;
2 changes: 1 addition & 1 deletion I.pass-tests/ES-6-practice/es6.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const {
combineArrays,
destructuring,
templateString
} = require("./index");
} = require("./es6");

test("function arrow is instance of a function", () => {
expect(arrow).toBeInstanceOf(Function);
Expand Down
5 changes: 3 additions & 2 deletions II.write-tests/01-greet-people/greet-people.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ module.exports = greetPeople;

/*
Let's trace this piece of code - what is the value of result with this input
*/

var mentors = ['Irina', 'Ashleigh', 'Etza'];
var mentors = ['Irina', 'Ashleigh', 'Etza'];
var result = greetPeople(mentors)
*/
console.log(result)
5 changes: 5 additions & 0 deletions II.write-tests/01-greet-people/greet-people.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
var greetPeople = require("./greet-people")
test("print list of names prefixed with Hello", function() {
// Arrange
var listOfNames = ['Irina', 'Ashleigh', 'Etza'];
var result = "Hello IrinaAshleighEtza"
// Act
var output = greetPeople(listOfNames)
// Assert
expect(output).toEqual(result);
});
6 changes: 3 additions & 3 deletions II.write-tests/02-remove-vowels/remove-vowels.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ module.exports = removeVowels;

/*
Let's trace this piece of code - what is the value of result with this input

var result = removeVowels('samuel');

what is the value of result?
*/

var result = removeVowels('samuel');
console.log(removeVowels(result))
4 changes: 4 additions & 0 deletions II.write-tests/02-remove-vowels/remove-vowels.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
var removeVowels = require("./remove-vowels")
test("remove vowels from word", function() {
// Arrange
var input = removeVowels("samuel")
// Act
var output = "_a_ue_";
// Assert
expect(input).toEqual(output)
});
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
var removeVowels = require("../02-remove-vowels/remove-vowels");

function removeVowelsForWords(words) {
var result = words.map(function(word) {
return removeVowels(word);
return word.replace(/[aeiou]/gi, '')
});

return result;
Expand All @@ -14,3 +12,5 @@ module.exports = removeVowelsForWords;
input: ["Irina", "Etza", "Daniel"]
expected output: ["rn", "tz", "Dnl"]
*/

console.log("sdsdsd",removeVowelsForWords(["Irina", "Etza", "Daniel"]))
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
var removeVowels = require("./remove-vowels-in-array")
test("remove vowels from all words in array", function() {
// Arrange
var arr = ["Irina", "Etza", "Daniel"];
var input = removeVowels(arr)
var output = ["rn", "tz", "Dnl"]
// Act
// Assert
expect(input).toEqual(output)
});

// example
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
var largerThanTen = require("./numbersGreaterThan10");

test("Get numbers greater than 10", function() {});
test("Get numbers greater than 10", function() {
var input = [4, 10, 32, 9, 21];
let output = [32, 21];


expect(largerThanTen(input)).toEqual(output)
});


// input: [4, 10, 32, 9, 21];
// expected output: [32, 21];
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
// example
// input = [90, 5, 11, 8, 6];
// expected output = [6, 8];
var secondThird = require("./get-second-third");

test("second third", () => {
let input = [90, 5, 11, 8, 6];
let output = [6, 8];

expect(secondThird(input)).toEqual(output)
})

// also test that the original array has not changed
12 changes: 9 additions & 3 deletions II.write-tests/06-largest-number/largest-number.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
// example
// input: [3, 21, 88, 4, 36];
// expected: 88;
var getLargestNumber = require("./largest-number")

test("obtain second largest number", () => {
let input = [3, 21, 88, 4, 36];
let output = 88;

expect(getLargestNumber(input)).toEqual(output)
})


// also test that the original array hasn't changed
12 changes: 9 additions & 3 deletions II.write-tests/07-get-even-numbers/get-even-numbers.test.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
// example
// input: [22, 13, 73, 82, 4];
// expected: [22, 82, 4];
let getEven = require("./get-even-numbers")

test("get even numbers", () => {
let input = [22, 13, 73, 82, 4];
let output = [22, 82, 4];

expect(getEven(input)).toEqual(output)
})

2 changes: 2 additions & 0 deletions II.write-tests/09-test-async/async-1.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ const getRepos = function(repoName) {
};

module.exports = getRepos;

console.log(getRepos("https://api.github.com/users/kabaros/repos"))
13 changes: 9 additions & 4 deletions II.write-tests/09-test-async/async-1.test.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
const getRepos = require("./async-1");

test("gets a list of repositories names", function() {
test("gets a list of repositories names", function () {
// arrange
var url = "https://api.github.com/users/kabaros/repos";
// act
return getRepos(url).then(function(result) {
getRepos(url).then(function (result) {
// assert
expect(result).toContain("js-exercises");
expect(result).toContain("dom-ajax-repo");
try {
expect(result).toContain("js-exercises");
expect(result).toContain("dom-ajax-repo");
} catch (error) {
if(error) throw error;
}

});
});
18 changes: 18 additions & 0 deletions III.tdd-katas/calculator-tdd/calculator.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
function calculator(str) {
if (str === "") return 0
if (str.includes("\n")) {
let arr = str.split(",").join("").split("\n").join("").split("")
return arr.reduce((a, b) => parseInt(a) + parseInt(b), 0)
} else {
let split = str.split(",")
if (split.every((num) => num > 0)) {
return split.reduce((a, b) => b < 1000 ? parseInt(a) + parseInt(b) : parseInt(a) + 0, 0)
} else {
let negativeNumbers = split.filter(num => num < 0).join(" ")
return `negatives not allowed:${negativeNumbers}`
}
}
}
module.exports = calculator;

console.log(calculator("999,2"))
16 changes: 16 additions & 0 deletions III.tdd-katas/calculator-tdd/calculator.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
let calculator = require("./calculator")

test("calculator",() =>{
var input ="";
let input1="1,2"
let input2= "1\n2,3";
let output = calculator(input);
let output1 = calculator(input1);
let output2 = calculator(input2)

expect(output).toEqual(0)
expect(output1).toEqual(3)
expect(output2).toEqual(6)
expect(calculator("-1,2,3")).toEqual("negatives not allowed:-1")
expect(calculator("10001,2")).toEqual(2)
})
22 changes: 22 additions & 0 deletions III.tdd-katas/fizz-buzz/fizz-buzz.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function fizzbuzz(num) {
let start = 1;
let arr = []
while (start <= num) {
if (start % 5 === 0 && start % 3 === 0) {
arr.push("FizzBuzz")
} else if (start % 3 == 0) {
arr.push("Fizz")
} else if (start % 5 == 0) {
arr.push("Buzz")
} else {
arr.push(start)
}
start++;
}

return arr.join(", ").trim()
}

module.exports = fizzbuzz;

console.log(fizzbuzz(15))
9 changes: 7 additions & 2 deletions III.tdd-katas/fizz-buzz/fizz-buzz.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
var fizzbuzz = require("./fizz-buzz");

test("prints 1", function() {
test("prints 1", function () {
var result = fizzbuzz(1);
expect(result).toEqual("1");
});

test("prints 1,2", function() {
test("prints 1,2", function () {
var result = fizzbuzz(2);
expect(result).toEqual("1, 2");
});

test("print FizzBuzz", () => {
var result = fizzbuzz(15)
expect(result).toEqual("1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz")
})
30 changes: 30 additions & 0 deletions III.tdd-katas/password-verifier/password-verifier.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
function passwordVerifier(password) {
// let regexForDigits = /^.*(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*\d).*$/
let num = 0;
let regexForCapital = /^.*(?=.*[A-Z]).*$/
let regexForlower = /^.*(?=.*[a-z]).*$/
let regexForatleast = /^.*(?=.{8,}).*$/
let regexForDigits = /^.*(?=.*\d).*$/
if(password==="") return false
if (regexForCapital.test(password)) { num++; return true }
if (regexForlower.test(password)) { num++; return true }
if (regexForatleast.test(password)) {
num += 2;
return true
}
if (regexForDigits.test(password)) { num++; return true }

if (!regexForlower.test(password)) {
return "password is never OK"
}
if (num >= 3) {
return "password is OK"
} else {
return "Password is not our standart"
}

}

module.exports = passwordVerifier;

console.log(passwordVerifier("12aaA"))
Loading