-
-
Notifications
You must be signed in to change notification settings - Fork 286
London | 26-ITP-Jan | Maryanne Mosonik | Sprint 2 | Module Data Groups #1101
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
Closed
Closed
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
6393ef5
Corrected the console.log syntax error
Maryanne-K e6bacd4
Changed to for...in loop
Maryanne-K c2ab2f1
Corrected the console log to output the ingredients.
Maryanne-K 109bcc2
Added other tests to test different scenarios.
Maryanne-K af85892
Completed the contains code
Maryanne-K bfb9753
Completed the lookup code.
Maryanne-K 9b83c73
Corrected the querystring code
Maryanne-K 51b68eb
Added edge test cases
Maryanne-K 6e8e4ce
Added more test cases
Maryanne-K 20f1d05
Completed tally implementation
Maryanne-K 5596d68
Corrected the code and added jest tests.
Maryanne-K 16b8b68
Added jest test cases
Maryanne-K 81f932b
Remove workspace file from repo
Maryanne-K d46240f
Rectified the issue.
Maryanne-K 07ed455
Refactor contains function to use Object.hasOwn for key existence check
Maryanne-K 437c7ad
Refactor tally function to use Object.create for counts initialisation
Maryanne-K d5fc0d6
Completed the todo tests
Maryanne-K f15a043
Completed the test todo
Maryanne-K ecb88c2
Completed todo test
Maryanne-K 5dccf8a
Modified the tests.
Maryanne-K ebe456e
Refactor contains tests for clarity and consistency
Maryanne-K 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
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
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
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 |
|---|---|---|
| @@ -1,3 +1,8 @@ | ||
| function contains() {} | ||
| function contains(obj, key) { | ||
| if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) { | ||
| return false; | ||
| } | ||
| return Object.hasOwn(obj, key); | ||
| } | ||
|
|
||
| module.exports = contains; |
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
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 |
|---|---|---|
| @@ -1,5 +1,10 @@ | ||
| function createLookup() { | ||
| function createLookup(pairs) { | ||
| // implementation here | ||
| const lookup = {}; | ||
| for (const [country, currency] of pairs) { | ||
| lookup[country] = currency; | ||
| } | ||
| return lookup; | ||
| } | ||
|
|
||
| module.exports = createLookup; |
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
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
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
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 |
|---|---|---|
| @@ -1,3 +1,16 @@ | ||
| function tally() {} | ||
| function tally(arr) { | ||
| if (!Array.isArray(arr)) { | ||
| throw new Error("Input must be an array"); | ||
| } | ||
| const counts = Object.create(null); | ||
| for (const item of arr) { | ||
| if (counts[item] === undefined) { | ||
| counts[item] = 1; | ||
| } else { | ||
| counts[item] = counts[item] + 1; | ||
| } | ||
| } | ||
| return counts; | ||
| } | ||
|
|
||
| module.exports = tally; |
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
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
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.
Your function is correct, but we should prepare the tests not only to verify our current implementation, but also to ensure that future changes do not alter the function's expected behavior.
This test
expect(contains([], 'a')).toBe(false)cannot confirm that the function correctly returnsfalse when the first argument is an array. This is becausecontains([], "a")could also returnfalse` simply because "a" is not a key of the array.Arrays are objects, with their indices acting as keys. A proper test should use a non-empty array along with a valid key to ensure the function returns
falsespecifically because the input is an array, not because the key is missing.Note: Strings are not objects but their indices also act as their keys.