Revert "remove class based exercises"

This reverts commit 290e7f1da4.
This commit is contained in:
Cody Loyd 2017-11-24 14:23:16 -06:00
parent 4d1f419b41
commit 829730fb79
18 changed files with 164 additions and 67 deletions

3
book_titles/README.md Normal file
View File

@ -0,0 +1,3 @@
The goal of this exercise is to introduce you to the concept of objects and classes. These are fundamental building blocks for OOP (Object Oriented Programming). You shouldn't need to write a ton of new code, in fact you can re-use your solution from the Simon Says exercise!
The key here will be rewriting certain bits of it to work within the class given to you.

View File

@ -0,0 +1,8 @@
class bookTitle {
}
module.exports = {
bookTitle
}

View File

@ -0,0 +1,64 @@
var bookTitles = require ('./bookTitles.js');
describe('bookTitle', function() {
var book; // note the scope here, if you declare this inside beforeEach then the scope won't allow it to access the other specs
beforeEach(function() {
book = new bookTitles.bookTitle(); // creates a new book instance before each test is run
});
describe('title', function() {
it('should capitalize the first letter', function() {
book.title = 'inferno';
expect(book.title).toEqual('Inferno');
});
it('should capitalize every word', function() {
book.title = 'stuart little';
expect(book.title).toEqual('Stuart Little');
});
describe('should capitalize every word except...', function() {
describe('articles', function() {
it('does not capitalize "the"', function() {
book.title = 'alexander the great';
expect(book.title).toEqual('Alexander the Great');
});
it('does not capitalize "a"', function() {
book.title = 'to kill a mockingbird';
expect(book.title).toEqual('To Kill a Mockingbird');
});
it('does not capitalize "an"', function() {
book.title = 'to eat an apple a day';
expect(book.title).toEqual('To Eat an Apple a Day');
});
});
it('conjunctions', function() {
book.title = 'war and peace';
expect(book.title).toEqual('War and Peace');
});
it('prepositions', function() {
book.title = 'love in the time of cholera';
expect(book.title).toEqual('Love in the Time of Cholera');
});
});
describe('should always capitalize...', function() {
it('I', function() {
book.title = 'what i wish i knew when i was 20';
expect(book.title).toEqual('What I Wish I Knew When I Was 20');
});
it('the first word', function() {
book.title = 'the man in the iron mask';
expect(book.title).toEqual('The Man in the Iron Mask');
});
});
});
});

View File

@ -1,5 +1,5 @@
var helloWorld = function() {
return 'Hello, World!'
return ''
}
module.exports = helloWorld
module.exports = helloWorld

View File

@ -1,8 +1,5 @@
var leapYears = function(year) {
if (year % 4 !== 0 || (year % 100 == 0 && year % 400 != 0)) {
return false
}
return true
var leapYears = function() {
}
module.exports = leapYears

View File

@ -4,19 +4,19 @@ describe('leapYears', function() {
it('works with non century years', function() {
expect(leapYears(1996)).toEqual(true);
});
it('works with non century years', function() {
xit('works with non century years', function() {
expect(leapYears(1997)).toEqual(false);
});
it('works with ridiculously futuristic non century years', function() {
xit('works with ridiculously futuristic non century years', function() {
expect(leapYears(34992)).toEqual(true);
});
it('works with century years', function() {
xit('works with century years', function() {
expect(leapYears(1900)).toEqual(false);
});
it('works with century years', function() {
xit('works with century years', function() {
expect(leapYears(1600)).toEqual(true);
});
it('works with century years', function() {
xit('works with century years', function() {
expect(leapYears(700)).toEqual(false);
});
});

View File

@ -1,13 +1,5 @@
var removeFromArray = function(array) {
elementsToRemove = [...arguments]
elementsToRemove.splice(0,1)
elementsToRemove.forEach(element => {
let index = array.indexOf(element)
if (index > -1) {
array.splice(index, 1)
}
})
return array
var removeFromArray = function() {
}
module.exports = removeFromArray

View File

@ -4,19 +4,19 @@ describe('removeFromArray', function() {
it('removes a single value', function() {
expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]);
});
it('removes multiple values', function() {
xit('removes multiple values', function() {
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
});
it('ignores non present values', function() {
xit('ignores non present values', function() {
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
});
it('ignores non present values, but still works', function() {
xit('ignores non present values, but still works', function() {
expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
});
it('can remove all values', function() {
xit('can remove all values', function() {
expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
});
it('works with strings', function() {
xit('works with strings', function() {
expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
});
});

View File

@ -1,4 +1,4 @@
# Exercis 02 - repeatString
# Exercise 02 - repeatString
Write a function that simply repeats the string a given number of times:

View File

@ -1,10 +1,5 @@
var repeatString = function(string, num) {
if (num < 0) return 'ERROR'
let returnValue = ''
for(let i = 0; i < num; i++) {
returnValue = returnValue + string
}
return returnValue
var repeatString = function() {
}
module.exports = repeatString

View File

@ -4,16 +4,16 @@ describe('repeatString', function() {
it('repeats the string', function() {
expect(repeatString('hey', 3)).toEqual('heyheyhey');
});
it('repeats the string many times', function() {
xit('repeats the string many times', function() {
expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey');
});
it('repeats the string 1 times', function() {
xit('repeats the string 1 times', function() {
expect(repeatString('hey', 1)).toEqual('hey');
});
it('repeats the string 0 times', function() {
xit('repeats the string 0 times', function() {
expect(repeatString('hey', 0)).toEqual('');
});
it('returns ERROR with negative numbers', function() {
xit('returns ERROR with negative numbers', function() {
expect(repeatString('hey', -1)).toEqual('ERROR');
});
});

View File

@ -1,5 +1,5 @@
var reverseString = function(string) {
return string.split('').reverse().join('')
var reverseString = function() {
}
module.exports = reverseString
module.exports = reverseString

View File

@ -5,11 +5,11 @@ describe('Hello World', function() {
expect(reverseString('hello')).toEqual('olleh');
});
it('reverses multiple words', function() {
xit('reverses multiple words', function() {
expect(reverseString('hello there')).toEqual('ereht olleh')
})
it('works with numbers and punctuation', function() {
xit('works with numbers and punctuation', function() {
expect(reverseString('123! abc!')).toEqual('!cba !321')
})
});
});

View File

@ -1,20 +1,5 @@
var sumAll = function(a, b) {
if (a > b) {
let temp = a
a = b
b = temp
}
if (
a < 0 || b < 0 ||
typeof a != 'number' || typeof b != 'number'
) {
return 'ERROR'
}
let sum = 0
for(let i = a; i < b + 1; i++) {
sum += i
}
return sum
var sumAll = function() {
}
module.exports = sumAll

View File

@ -4,19 +4,19 @@ describe('sumAll', function() {
it('sums numbers within the range', function() {
expect(sumAll(1, 4)).toEqual(10);
});
it('works with large numbers', function() {
xit('works with large numbers', function() {
expect(sumAll(1, 4000)).toEqual(8002000);
});
it('works with larger number first', function() {
xit('works with larger number first', function() {
expect(sumAll(123, 1)).toEqual(7626);
});
it('returns ERROR with negative numbers', function() {
xit('returns ERROR with negative numbers', function() {
expect(sumAll(-10, 4)).toEqual('ERROR');
});
it('returns ERROR with non-number parameters', function() {
xit('returns ERROR with non-number parameters', function() {
expect(sumAll(10, "90")).toEqual('ERROR');
});
it('returns ERROR with non-number parameters', function() {
xit('returns ERROR with non-number parameters', function() {
expect(sumAll(10, [90, 1])).toEqual('ERROR');
});
});

11
timer/README.md Normal file
View File

@ -0,0 +1,11 @@
The goal of this exercise is for you to create a timer. The timer will operate with the following format:
00:00:00
You will be given an object with the value of seconds already added. Your job is to use the class to add a string containing the timer result to this original object.
Example:
12 seconds given
00:00:12 should be the output

7
timer/timer.js Normal file
View File

@ -0,0 +1,7 @@
class timeFormat {
}
module.exports = {
timeFormat
}

35
timer/timer.spec.js Normal file
View File

@ -0,0 +1,35 @@
var Timer = require ('./timer.js');
describe('Timer', function() {
var timer; // undefined, here for scope purposes
beforeEach(function () {
timer = new Timer.timeFormat();
});
it('should initialize to 0 seconds', function() {
expect(timer.seconds).toEqual(0); // makes sure timer starts with 0 seconds
});
describe('time_string', function() {
it('should display 0 seconds as 00:00:00', function() {
timer.seconds = 0;
expect(timer.time_string()).toEqual("00:00:00");
});
it('should display 12 seconds as 00:00:12', function() {
timer.seconds = 12;
expect(timer.time_string()).toEqual("00:00:12");
});
it('should display 66 seconds as 00:01:06', function() {
timer.seconds = 66;
expect(timer.time_string()).toEqual("00:01:06");
});
it('should display 4000 seconds as 01:06:40', function() {
timer.seconds = 4000;
expect(timer.time_string()).toEqual("01:06:40");
});
});
});