-
Notifications
You must be signed in to change notification settings - Fork 13
catherine-looper #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ccloops
wants to merge
13
commits into
codefellows-seattle-javascript-401d19:master
Choose a base branch
from
ccloops:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
catherine-looper #11
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
56daf42
Set up file tree
ccloops 6cdfb76
Ran npm init and jest install
ccloops f709531
Added functioning tests for .map function
ccloops 15360a8
Added in functioning tests for .filter method
ccloops 77c7b39
Added functioning tests for .reduce
ccloops b250bb9
Refactored .map to include the TypeError in the fp.js file
ccloops 5a80e2b
Refactored .filter method to include TypeError in the fp.js file
ccloops 37ae699
Finished functionality for reduce tests
ccloops 31355d7
Created functioning tests for .slice method
ccloops 1f00c0e
Update to README
ccloops ee47542
Merge pull request #1 from ccloops/catherine-looper
ccloops 9bced11
Added eslint as a dev dependency
ccloops f5cb53b
Merge pull request #2 from ccloops/catherine-looper
ccloops File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| **/node_modules/* | ||
| **/vendor/* | ||
| **/*.min.js | ||
| **/coverage/* | ||
| **/build/* |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| { | ||
| "env": { | ||
| "browser": true, | ||
| "node": true, | ||
| "commonjs": true, | ||
| "jest": true, | ||
| "es6": true | ||
| }, | ||
| "globals": { | ||
| "err": true, | ||
| "req": true, | ||
| "res": true, | ||
| "next": true | ||
| }, | ||
| "extends": "eslint:recommended", | ||
| "parserOptions": { | ||
| "sourceType": "module" | ||
| }, | ||
| "rules": { | ||
| "no-console": "off", | ||
| "indent": [ "error", 2 ], | ||
| "quotes": ["error", "single", { "allowTemplateLiterals": true }], | ||
| "comma-dangle": ["error", "always-multiline"], | ||
| "semi": [ "error", "always" ] | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,91 @@ | ||
| # Created by https://www.gitignore.io/api/osx,node | ||
|
|
||
| ### Node ### | ||
| # Logs | ||
| logs | ||
| *.log | ||
| npm-debug.log* | ||
| yarn-debug.log* | ||
| yarn-error.log* | ||
|
|
||
| # Runtime data | ||
| pids | ||
| *.pid | ||
| *.seed | ||
| *.pid.lock | ||
|
|
||
| # Directory for instrumented libs generated by jscoverage/JSCover | ||
| lib-cov | ||
|
|
||
| # Coverage directory used by tools like istanbul | ||
| coverage | ||
|
|
||
| # nyc test coverage | ||
| .nyc_output | ||
|
|
||
| # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
| .grunt | ||
|
|
||
| # Bower dependency directory (https://bower.io/) | ||
| bower_components | ||
|
|
||
| # node-waf configuration | ||
| .lock-wscript | ||
|
|
||
| # Compiled binary addons (http://nodejs.org/api/addons.html) | ||
| build/Release | ||
|
|
||
| # Dependency directories | ||
| node_modules/ | ||
| jspm_packages/ | ||
|
|
||
| # Typescript v1 declaration files | ||
| typings/ | ||
|
|
||
| # Optional npm cache directory | ||
| .npm | ||
|
|
||
| # Optional eslint cache | ||
| .eslintcache | ||
|
|
||
| # Optional REPL history | ||
| .node_repl_history | ||
|
|
||
| # Output of 'npm pack' | ||
| *.tgz | ||
|
|
||
| # Yarn Integrity file | ||
| .yarn-integrity | ||
|
|
||
| # dotenv environment variables file | ||
| .env | ||
|
|
||
|
|
||
| ### OSX ### | ||
| *.DS_Store | ||
| .AppleDouble | ||
| .LSOverride | ||
|
|
||
| # Icon must end with two \r | ||
| Icon | ||
|
|
||
| # Thumbnails | ||
| ._* | ||
|
|
||
| # Files that might appear in the root of a volume | ||
| .DocumentRevisions-V100 | ||
| .fseventsd | ||
| .Spotlight-V100 | ||
| .TemporaryItems | ||
| .Trashes | ||
| .VolumeIcon.icns | ||
| .com.apple.timemachine.donotpresent | ||
|
|
||
| # Directories potentially created on remote AFP share | ||
| .AppleDB | ||
| .AppleDesktop | ||
| Network Trash Folder | ||
| Temporary Items | ||
| .apdisk | ||
|
|
||
| # End of https://www.gitignore.io/api/osx,node |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # Lab 02: Tools and Context | ||
|
|
||
| In fp.js the exported module is an object with the following methods attached: fp.map, fp.filter, fp.reduce, and fp.slice. The fp.map function has an arity of two (callback and collection), the callback being a callback function that is tested in fp.test.js and collection being an array. The fp.filter function also has an arity of two (callback and collection), which are the callback function and the array. For both of these functions the arrays will only accept numbers as values and will otherwise return an error. The fp.reduce function has an arity of three (callback, collection, and initialState), which are the callback function, an array, and the starting value. In this case, the fp.reduce function only accepts numbers as values in the array. It will otherwise return an error. I also added an if statement so that initialState must also be a number. The fp.slice function has an arity of three (collection, begin, and end), which is the array, and the begin and end integers as are pertinent to the .slice functionality. If the array is empty, it will throw an error. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,225 @@ | ||
| 'use strict'; | ||
|
|
||
| const fp = require('../lib/fp'); | ||
|
|
||
| //++++++++++++++++++++++++++++++++++++ | ||
| // catherine - fp.map test functions | ||
| //++++++++++++++++++++++++++++++++++++ | ||
|
|
||
| describe('fp.test.js', () => { | ||
|
|
||
| describe(('testing to see if fp.map is functioning as expected'), () => { | ||
|
|
||
| test('testing that .map is functioning properly', () => { | ||
| expect(fp.map(a => a * 3, | ||
| [1, 2, 3] | ||
| )).toEqual([3, 6, 9]); | ||
| }); | ||
| }); | ||
|
|
||
| describe(('testing to see if fp.map contains invalid input'), () => { | ||
|
|
||
| test('will an error be thrown with an invalid callback', () => { | ||
| expect(() => { | ||
| fp.map('a', | ||
| [1, 2, 3] | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .map collection must be an object', () => { | ||
| expect(() => { | ||
| fp.map(a => a * 3, | ||
| 'hello' | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .map will throw an error if empty', () => { | ||
| expect(() => { | ||
| fp.map(a => a * 3, | ||
| [] | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .map will throw an error if passed a value that is not a number', () => { | ||
| expect(() => { | ||
| fp.map(a => { | ||
| a * 3; | ||
| }, | ||
| [1, null, 3] | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
| }); | ||
|
|
||
| //++++++++++++++++++++++++++++++++++++ | ||
| // catherine - fp.filter test functions | ||
| //++++++++++++++++++++++++++++++++++++ | ||
|
|
||
| describe(('testing to see if fp.filter is functioning as expected'), () => { | ||
| test('testing that .filter is functioning properly', () => { | ||
| expect(fp.filter(a => a < 3, | ||
| [1, 2, 3] | ||
| )).toEqual([1, 2]); | ||
| }); | ||
| }); | ||
|
|
||
| describe(('testing to see if fp.filter contains invalid input'), () => { | ||
|
|
||
| test('testing that .filter callback must be a function', () => { | ||
| expect(() => { | ||
| fp.filter('a', | ||
| [1, 2, 3] | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .filter collection must be an object', () => { | ||
| expect(() => { | ||
| fp.filter(a => a * 3, | ||
| 'hello' | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .filter will throw an error if empty', () => { | ||
| expect(() => { | ||
| fp.filter(a => a * 3, | ||
| [] | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .filter will throw an error if passed a value that is not a number', () => { | ||
| expect(() => { | ||
| fp.filter(a => { | ||
| a * 3; | ||
| }, | ||
| [null, null, 3] | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
| }); | ||
|
|
||
| //++++++++++++++++++++++++++++++++++++ | ||
| // catherine - fp.reduce test functions | ||
| //++++++++++++++++++++++++++++++++++++ | ||
|
|
||
| describe(('testing to see if fp.reduce is functioning as expected'), () => { | ||
|
|
||
| test('testing that .reduce is functioning properly', () => { | ||
| expect(fp.reduce( | ||
| (a,b) => (a + b), | ||
| [0, 1, 2], | ||
| 0 | ||
| )).toEqual(3); | ||
| }); | ||
| }); | ||
|
|
||
| describe(('testing to see if fp.reduce contains invalid input'), () => { | ||
|
|
||
| test('testing that .reduce callback must be a function', () => { | ||
| expect(() => { | ||
| fp.reduce('a,b', | ||
| [0, 1, 2], | ||
| 0 | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that initialState is a number', () => { | ||
| expect(() => { | ||
| fp.reduce( | ||
| (a,b) => a + b, | ||
| [0, 1, 2], | ||
| 'a' | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .reduce collection must be an object', () => { | ||
| expect(() => { | ||
| fp.reduce( | ||
| (a,b) => (a + b), | ||
| 'hello', | ||
| 0 | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .reduce will throw an error if empty', () => { | ||
| expect(() => { | ||
| fp.reduce( | ||
| (a,b) => a + b, | ||
| [], | ||
| 0 | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .reduce will throw an error if passed a value that is not a number', () => { | ||
| expect(() => { | ||
| fp.reduce( | ||
| (a,b) => a + b, | ||
| [null, null, 3], | ||
| 0 | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
| }); | ||
| }); | ||
|
|
||
| //++++++++++++++++++++++++++++++++++++ | ||
| // catherine - fp.slice test functions | ||
| //++++++++++++++++++++++++++++++++++++ | ||
|
|
||
| describe(('testing to see if fp.slice is functioning as expected'), () => { | ||
|
|
||
| test('testing that .slice is functioning properly', () => { | ||
| expect(fp.slice( | ||
| [0, 1, 2, 3, 4, 5], | ||
| 0, | ||
| 2 | ||
| )).toEqual([0, 1]); | ||
| }); | ||
|
|
||
| describe(('testing to see if fp.slice contains invalid input'), () => { | ||
|
|
||
| test('testing that .slice collection must be an object', () => { | ||
| expect(() => { | ||
| fp.slice( | ||
| 'hello', | ||
| 0, | ||
| 2 | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
|
|
||
| test('testing that .slice will throw an error if empty', () => { | ||
| expect(() => { | ||
| fp.slice( | ||
| [], | ||
| 0, | ||
| 2 | ||
| ); | ||
| } | ||
| ).toThrow(); | ||
| }); | ||
| }); | ||
| }); | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
always delete uneccessary comments before submission