Update GeneratePermutations.test.js

Leverage package's existing factorial function.

Created at 2 months ago

Update GeneratePermutations.test.js

Factorials are now explicit in the last set of tests.

Created at 2 months ago
pull request opened
Tweak and flesh out tests for GeneratePermutations

Open in Gitpod know more

Describe your change:

The original test was very limited and enforced a strict ordering of the results which the algorithm doesn't guarantee. I've loosened that restriction, and added two extra "complete" tests containing elements besides numbers.

For tests where we don't want to hardcode every possible result I've added a sanity check that will at least verify whether the number of results is accurate.

  • [ ] Add an algorithm?
  • [ ] Fix a bug or typo in an existing algorithm?
  • [x] Documentation change?


  • [x] I have read
  • [x] This pull request is all my own work -- I have not plagiarized.
  • [x] I know that pull requests will not be merged if they fail the automated tests.
  • [x] This PR only changes one algorithm file. To ease review, please open separate PRs for separate algorithms.
  • [ ] All new JavaScript files are placed inside an existing directory.
  • [ ] All filenames should use the UpperCamelCase (PascalCase) style. There should be no spaces in filenames. Example:UserProfile.js is allowed but userprofile.js,Userprofile.js,user-Profile.js,userProfile.js are not
  • [ ] All new algorithms have a URL in its comments that points to Wikipedia or other similar explanation.
  • [ ] If this pull request resolves one or more open issues then the commit message contains Fixes: #{$ISSUE_NO}.
Created at 2 months ago

Update GeneratePermutations.test.js

Original test was very limited and also (unnecessarily) strict in that the order of results mattered.

I've tweaked the original test so that results can come in any order. Also added additional tests for smaller arrays of strings/booleans. Finally added some sanity testing for larger input arrays.

Created at 2 months ago

refactor: BFS tree algorithms (#1108)

  • Bugfix AVLTree comparator

The original insertBalance function was doing raw value comparisons as opposed to using the tree's comparator. This is clearly unintentional, and would (ultimately) cause the structure to segfault when constructed with the stringData included in the updated test.

I've added the fix, scanned the rest of the code for similar issues, and added the appropriate test case which passes successfully with the fix. The jest code coverage increases slightly as well with the changes.

  • 100% jest code coverage

Added a couple of extra elements to the original test tree, and then removed elements in an order such that all previously uncovered branches of code are now covered.

Also added an emptyTree structure to test some additional (trivial) base cases.

  • standard style fix

missed this from my previous commit

  • Iterative & in-place BFS

An iterative analog to the traditional recursive breadth-first-search algorithm for binary trees.

This in-place solution uses the pre-existing "traversal" array for both tracking the algorithm as well as storing the result.

Also tweaked old code by resetting the traversal array each time the tree is traversed (otherwise you're only allowed to traverse a tree once which doesn't seem correct even with a single traversal function).

  • Update BreadthFirstTreeTraversal.js

got rid of unnecessary currentSize added currentNode for clarity

  • refactor out traversal member var

.. per earlier discussion w mods also tweaked the tests to achieve 100% coverage

Added testcases for Zero One Knapsack (#1109)

tests: Levenshtein Distance (dynamic programming solution) (#1114)

Adding testcases for Boyer Moore Algorithm (#1135)

algorithm: Minesweeper (#1129)

chore: add instruction for installing dependencies (#1120)

Fix grammar mistakes in JSDoc (#1127)

added check for Integer (#1137)

algorithm: find length of an arc and area of the sector formed by an arc of a circle (#1119)

  • Add an algorithm to find length and area of an arc of a circle

  • Updated to follow Javascript Standard Style

  • Update CircularArc.js

  • Update CircularArc.js

  • Add tests

  • Followed Javascript standard style

solution: ProjectEuler-007 (#1142)

  • 📦 NEW: Added solution for ProjectEuler-007

  • 🐛 FIX: Spelling mistake fixes

  • 👌 IMPROVE: changed variable name from inc to candidateValue and thrown error in case of invalid input

  • 👌 IMPROVE: Modified the code

Co-authored-by: Omkarnath Parida

Rename to CaesarCipher (#1144)

Upgrade actions in Ci.yml workflow (#1153)

algorithm: Log2 using bitwise operations (#1132)

algorithm: catalan numbers (#1149)

Rename palindrome test to Palindrome to follow standard (#1159)

fix: DateToDay (#1125)

feat: added Project Euler Problem 13 (#1150)

Add an algorithm to find mean absolute deviation (#1165)

feat: Project Euler Problem 17 (#1168)

Renamed NQueen file, variables to NQueens, raised RangeError exception (#1162)

Created at 2 months ago