Merge branch 'master' of https://github.com/FreeCodeCamp/freecodecamp
This commit is contained in:
@ -136,7 +136,7 @@
|
||||
"name": "Sum All Numbers in a Range",
|
||||
"difficulty": "2.00",
|
||||
"description": [
|
||||
"We'll pass you an array of two numbers. Return the sum those two numbers and all numbers between them.",
|
||||
"We'll pass you an array of two numbers. Return the sum of those two numbers and all numbers between them.",
|
||||
"The lowest number will not always come first."
|
||||
],
|
||||
"challengeEntryPoint": "sumAll([1, 4]);",
|
||||
@ -149,9 +149,29 @@
|
||||
"expect(sumAll([10, 5])).to.equal(45);"
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": "d5de63ebea8dbee56860f4f2",
|
||||
"name": "Diff Two Arrays",
|
||||
"difficulty": "2.01",
|
||||
"description": [
|
||||
"Compare two arrays and return a new array with any items not found in both of the original arrays."
|
||||
],
|
||||
"challengeEntryPoint": "diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);",
|
||||
"challengeSeed": "function diff(arr1, arr2) {\n var newArr = [];\r\n // Same, same; but different.\r\n return newArr;\r\n}",
|
||||
"tests": [
|
||||
"expect(diff([1, 2, 3, 5], [1, 2, 3, 4, 5])).to.be.a('array');",
|
||||
"assert.deepEqual(diff(['diorite', 'andesite', 'grass', 'dirt', 'pink wool', 'dead shrub'], ['diorite', 'andesite', 'grass', 'dirt', 'dead shrub']), ['pink wool'], 'arrays with only one difference');",
|
||||
"assert.includeMembers(diff(['andesite', 'grass', 'dirt', 'pink wool', 'dead shrub'], ['diorite', 'andesite', 'grass', 'dirt', 'dead shrub']), ['diorite', 'pink wool'], 'arrays with more than one difference');",
|
||||
"assert.deepEqual(diff(['andesite', 'grass', 'dirt', 'dead shrub'], ['andesite', 'grass', 'dirt', 'dead shrub']), [], 'arrays with no difference');",
|
||||
"assert.deepEqual(diff([1, 2, 3, 5], [1, 2, 3, 4, 5]), [4], 'arrays with numbers');",
|
||||
"assert.includeMembers(diff([1, 'calf', 3, 'piglet'], [1, 'calf', 3, 4]), ['piglet', 4], 'arrays with numbers and strings');",
|
||||
"assert.deepEqual(diff([], ['snuffleupagus', 'cookie monster', 'elmo']), ['snuffleupagus', 'cookie monster', 'elmo'], 'empty array');"
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": "a5229172f011153519423690",
|
||||
"name": "Sum All Odd Fibonacci Numbers",
|
||||
"difficulty": "2.09",
|
||||
"description": [
|
||||
"Return the sum of all odd fibonacci numbers up to and including the passed number if it is a fibonacci number.",
|
||||
"The first few numbers of the Fibonacci sequence are 1, 1, 2, 3, 5 and 8, and each subsequent number is the sum of the previous two numbers.",
|
||||
@ -202,10 +222,38 @@
|
||||
"(smallestCommons([1,13])).should.equal(360360);"
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": "a2f1d72d9b908d0bd72bb9f6",
|
||||
"name": "Make a Person",
|
||||
"difficulty": "3.12",
|
||||
"description": [
|
||||
"Fill in the object constructor with the methods specified in the tests.",
|
||||
"Those methods are getFirstName(), getLastName(), getFullName(), setFirstName(), setLastName(), and setFullName().",
|
||||
"These methods must be the only available means for interacting with the object.",
|
||||
"There will be some linting errors on the tests, you may safely ignore them. You should see undefined in the console output."
|
||||
],
|
||||
"challengeEntryPoint": "var bob = new Person('Bob Ross');",
|
||||
"challengeSeed": "var Person = function(firstAndLast) {\n return firstAndLast;\r\n};",
|
||||
"tests": [
|
||||
"expect(Object.keys(bob).length).to.eql(6);",
|
||||
"expect(bob instanceof Person).to.be.true;",
|
||||
"expect(bob.firstName).to.be.undefined();",
|
||||
"expect(bob.lastName).to.be.undefined();",
|
||||
"expect(bob.getFirstName()).to.eql('Bob');",
|
||||
"expect(bob.getLastName()).to.eql('Ross');",
|
||||
"expect(bob.getFullName()).to.eql('Bob Ross');",
|
||||
"bob.setFirstName('Happy');",
|
||||
"expect(bob.getFirstName()).to.eql('Happy');",
|
||||
"bob.setLastName('Trees');",
|
||||
"expect(bob.getLastName()).to.eql('Trees');",
|
||||
"bob.setFullName('George Carlin');",
|
||||
"expect(bob.getFullName()).to.eql('George Carlin');"
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id" : "aff0395860f5d3034dc0bfc9",
|
||||
"name": "Validate US Telephone Numbers",
|
||||
"difficulty": "3.10",
|
||||
"difficulty": "4.01",
|
||||
"description": [
|
||||
"Return true if the passed string is a valid US phone number",
|
||||
"The user may fill out the form field any way they choose as long as it is a valid US number. The following are all valid formats for US numbers:",
|
||||
@ -239,10 +287,29 @@
|
||||
"challengeSeed": "function telephoneCheck(str) {\n // Good luck!\n return true;\n}\n\n",
|
||||
"challengeEntryPoint": "telephoneCheck(\"555-555-5555\");"
|
||||
},
|
||||
{
|
||||
"_id": "ca2e6f85cab2ab736c9a9b24",
|
||||
"name": "Cash Register",
|
||||
"difficulty": "4.02",
|
||||
"description": [
|
||||
"Design a cash register drawer function that accepts purchase price as the first argument, payment as the second argument, and cash-in-drawer (cid) as the third argument. cid is a 2d array listing available currency. Return the string \"Insufficient Funds\" if change due is less than the cash-in-drawer. Return the string \"Closed\" if cash-in-drawer is equal to the change due. Otherwise, return change in coin and bills, sorted in highest to lowest order."
|
||||
],
|
||||
"challengeEntryPoint": "drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]);",
|
||||
"challengeSeed": "function drawer(price, cash, cid) {\n var change;\r\n // Here is your change, ma'am.\r\n return change;\r\n}\r\n\r\n// Example cash-in-drawer array:\r\n// [['PENNY', 1.01],\r\n// ['NICKEL', 2.05],\r\n// ['DIME', 3.10],\r\n// ['QUARTER', 4.25],\r\n// ['ONE', 90.00],\r\n// ['FIVE', 55.00],\r\n// ['TEN', 20.00],\r\n// ['TWENTY', 60.00],\r\n// ['ONE HUNDRED', 100.00]]",
|
||||
"tests": [
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]])).to.be.a('array');",
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 0.01], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]])).to.be.a('string');",
|
||||
"expect(drawer(19.50, 20.00, [['PENNY', 0.50], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]])).to.be.a('string');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]), [['QUARTER', 0.50]], 'return correct change');",
|
||||
"assert.deepEqual(drawer(3.26, 100.00, [['PENNY', 1.01], ['NICKEL', 2.05], ['DIME', 3.10], ['QUARTER', 4.25], ['ONE', 90.00], ['FIVE', 55.00], ['TEN', 20.00], ['TWENTY', 60.00], ['ONE HUNDRED', 100.00]]), [['TWENTY', 80.00], ['TEN', 10.00], ['FIVE', 5], ['ONE', 1], ['QUARTER', 0.50], ['DIME', 0.20], ['PENNY', 0.04] ], 'return correct change with multiple coins and bills');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 0.01], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]]), 'Insufficient Funds', 'insufficient funds');",
|
||||
"assert.deepEqual(drawer(19.50, 20.00, [['PENNY', 0.50], ['NICKEL', 0], ['DIME', 0], ['QUARTER', 0], ['ONE', 0], ['FIVE', 0], ['TEN', 0], ['TWENTY', 0], ['ONE HUNDRED', 0]]), \"Closed\", 'cash-in-drawer equals change');"
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": "556138aff60341a09ed6c480",
|
||||
"name": "Inventory Update",
|
||||
"difficulty": "3.11",
|
||||
"difficulty": "4.03",
|
||||
"description": [
|
||||
"Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical order."
|
||||
],
|
||||
@ -256,34 +323,6 @@
|
||||
"assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]);",
|
||||
"assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [1, 'Dirty Sock'], [1, 'Hair pin'], [1, 'Half-Eaten Apple'], [1, 'Microphone'], [1, 'Toothpaste']]);"
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": "a2f1d72d9b908d0bd72bb9f6",
|
||||
"name": "Make a Person",
|
||||
"difficulty": "3.12",
|
||||
"description": [
|
||||
"Fill in the object constructor with the methods specified in the tests.",
|
||||
"Those methods are getFirstName(), getLastName(), getFullName(), setFirstName(), setLastName(), and setFullName().",
|
||||
"These methods must be the only available means for interacting with the object.",
|
||||
"There will be some linting errors on the tests, you may safely ignore them. You should see undefined in the console output."
|
||||
],
|
||||
"challengeEntryPoint": "var bob = new Person('Bob Ross');",
|
||||
"challengeSeed": "var Person = function(firstAndLast) {\n return firstAndLast;\r\n};",
|
||||
"tests": [
|
||||
"expect(Object.keys(bob).length).to.eql(6);",
|
||||
"expect(bob instanceof Person).to.be.true;",
|
||||
"expect(bob.firstName).to.be.undefined();",
|
||||
"expect(bob.lastName).to.be.undefined();",
|
||||
"expect(bob.getFirstName()).to.eql('Bob');",
|
||||
"expect(bob.getLastName()).to.eql('Ross');",
|
||||
"expect(bob.getFullName()).to.eql('Bob Ross');",
|
||||
"bob.setFirstName('Happy');",
|
||||
"expect(bob.getFirstName()).to.eql('Happy');",
|
||||
"bob.setLastName('Trees');",
|
||||
"expect(bob.getLastName()).to.eql('Trees');",
|
||||
"bob.setFullName('George Carlin');",
|
||||
"expect(bob.getFullName()).to.eql('George Carlin');"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
|
Reference in New Issue
Block a user