Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b1ad456
Remove QuickSelect doctest
defaude Oct 5, 2021
4b1799e
Remove AverageMedian doctest
defaude Oct 5, 2021
852e16f
Migrate doctest for BinaryExponentiationRecursive.js
defaude Oct 5, 2021
25c29b6
Migrate doctest for EulersTotient.js
defaude Oct 5, 2021
7b8ec07
Migrate doctest for PrimeFactors.js
defaude Oct 5, 2021
e7836e4
Migrate doctest for BogoSort.js
defaude Oct 5, 2021
402ab5c
Migrate doctest for BeadSort.js
defaude Oct 5, 2021
3eff8fd
Migrate doctest for BucketSort.js
defaude Oct 5, 2021
9627cfb
Migrate doctest for CocktailShakerSort.js
defaude Oct 5, 2021
e0e3c19
Migrate doctest for MergeSort.js
defaude Oct 5, 2021
942f9fb
Migrate doctest for QuickSort.js
defaude Oct 5, 2021
3d48cbf
Migrate doctest for ReverseString.js
defaude Oct 5, 2021
dd619c9
Migrate doctest for ReverseString.js
defaude Oct 5, 2021
6b820f3
Migrate doctest for ValidateEmail.js
defaude Oct 5, 2021
db7f626
Migrate doctest for ConwaysGameOfLife.js
defaude Oct 5, 2021
f2aa40c
Remove TernarySearch doctest
defaude Oct 5, 2021
7f5d7fe
Migrate doctest for BubbleSort.js
defaude Oct 5, 2021
c3747e9
Remove doctest from CI and from dependencies
defaude Oct 5, 2021
8274f40
Migrate doctest for RgbHsvConversion.js
defaude Oct 6, 2021
a383356
Add --fix option to "standard" npm script
defaude Oct 6, 2021
bbeeefb
Migrate doctest for BreadthFirstSearch.js
defaude Oct 6, 2021
1244f3c
Migrate doctest for BreadthFirstShortestPath.js
defaude Oct 6, 2021
d019e85
Migrate doctest for EulerMethod.js
defaude Oct 6, 2021
bf68fdd
Migrate doctest for Mandelbrot.js
defaude Oct 6, 2021
cbece80
Migrate doctest for FloodFill.js
defaude Oct 6, 2021
59796a2
Migrate doctest for KochSnowflake.js
defaude Oct 6, 2021
a8ad3a3
Update npm lockfile
defaude Oct 6, 2021
78f5dc4
Update README and COMMITTING with a few bits & bobs regarding testing…
defaude Oct 6, 2021
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
Prev Previous commit
Next Next commit
Migrate doctest for CocktailShakerSort.js
(also remove inline test driver code)
  • Loading branch information
defaude committed Oct 6, 2021
commit 9627cfbe3777ba2c36be3bda11424b97265bf994
34 changes: 5 additions & 29 deletions Sorts/CocktailShakerSort.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,14 @@
/*
/**
* Cocktail Shaker Sort is an algorithm that is a Bidirectional Bubble Sort.
*
* The algorithm extends bubble sort by operating in two directions.
* While it improves on bubble sort by more quickly moving items to the beginning of the list,
* it provides only marginal performance improvements.
* While it improves on bubble sort by more quickly moving items to the beginning of the list, it provides only marginal
* performance improvements.
*
* Wikipedia (Cocktail Shaker Sort): https://en.wikipedia.org/wiki/Cocktail_shaker_sort
* Wikipedia (Bubble Sort): https://en.wikipedia.org/wiki/Bubble_sort
*
*/

/**
* Doctests
*
* > cocktailShakerSort([5, 4, 1, 2, 3])
* [1, 2, 3, 4, 5]
* > cocktailShakerSort([])
* []
* > cocktailShakerSort([1, 2, 3])
* [1, 2, 3]
*/

function cocktailShakerSort (items) {
export function cocktailShakerSort (items) {
for (let i = items.length - 1; i > 0; i--) {
let j

Expand All @@ -41,15 +29,3 @@ function cocktailShakerSort (items) {

return items
}

/**
* Implementation of Cocktail Shaker Sort
*/
const array = [5, 6, 7, 8, 1, 2, 12, 14]
// Before Sort
console.log('\n- Before Sort | Implementation of Cocktail Shaker Sort -')
console.log(array)
// After Sort
console.log('- After Sort | Implementation of Cocktail Shaker Sort -')
console.log(cocktailShakerSort(array))
console.log('\n')
13 changes: 13 additions & 0 deletions Sorts/test/CocktailShakerSort.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { cocktailShakerSort } from '../CocktailShakerSort'

describe('CocktailShakerSort', () => {
it('should sort arrays correctly', () => {
expect(cocktailShakerSort([5, 4, 1, 2, 3])).toEqual([1, 2, 3, 4, 5])
expect(cocktailShakerSort([1, 2, 3])).toEqual([1, 2, 3])
expect(cocktailShakerSort([5, 6, 7, 8, 1, 2, 12, 14])).toEqual([1, 2, 5, 6, 7, 8, 12, 14])
})

it('should work for empty arrays, too', () => {
expect(cocktailShakerSort([])).toEqual([])
})
})