remove class based exercises

This commit is contained in:
Cody Loyd 2017-11-20 13:51:01 -06:00
parent f0bf584e59
commit 290e7f1da4
18 changed files with 67 additions and 164 deletions

View File

@ -1,3 +0,0 @@
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

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

View File

@ -1,64 +0,0 @@
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 ''
return 'Hello, World!'
}
module.exports = helloWorld
module.exports = helloWorld

View File

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

View File

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

View File

@ -1,5 +1,13 @@
var removeFromArray = function() {
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
}
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]);
});
xit('removes multiple values', function() {
it('removes multiple values', function() {
expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]);
});
xit('ignores non present values', function() {
it('ignores non present values', function() {
expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]);
});
xit('ignores non present values, but still works', function() {
it('ignores non present values, but still works', function() {
expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]);
});
xit('can remove all values', function() {
it('can remove all values', function() {
expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]);
});
xit('works with strings', function() {
it('works with strings', function() {
expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]);
});
});

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,20 @@
var sumAll = function() {
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
}
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);
});
xit('works with large numbers', function() {
it('works with large numbers', function() {
expect(sumAll(1, 4000)).toEqual(8002000);
});
xit('works with larger number first', function() {
it('works with larger number first', function() {
expect(sumAll(123, 1)).toEqual(7626);
});
xit('returns ERROR with negative numbers', function() {
it('returns ERROR with negative numbers', function() {
expect(sumAll(-10, 4)).toEqual('ERROR');
});
xit('returns ERROR with non-number parameters', function() {
it('returns ERROR with non-number parameters', function() {
expect(sumAll(10, "90")).toEqual('ERROR');
});
xit('returns ERROR with non-number parameters', function() {
it('returns ERROR with non-number parameters', function() {
expect(sumAll(10, [90, 1])).toEqual('ERROR');
});
});

View File

@ -1,11 +0,0 @@
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

View File

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

View File

@ -1,35 +0,0 @@
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");
});
});
});