December-software-project/sort-algo

View on GitHub
src/visualizer/sortingvisualizer/util/GeneralUtil.js

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
/**
 * Returns true if the algorithm input is counting sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is counting sort.
 */
export const isCountingSort = (visualizerAlgorithm) => visualizerAlgorithm === 'Counting Sort';

/**
 * Returns true if the algorithm input is radix sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is radix sort.
 */
export const isRadixSort = (visualizerAlgorithm) => visualizerAlgorithm === 'Radix Sort';

/**
 * Returns true if the algorithm input is bucket sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is bucket sort.
 */
export const isBucketSort = (visualizerAlgorithm) => visualizerAlgorithm === 'Bucket Sort';

/**
 * Returns true if the algorithm input is radix or bucket sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is radix or bucket sort.
 */
export const isRadixOrBucket = (visualizerAlgorithm) =>
  isRadixSort(visualizerAlgorithm) || isBucketSort(visualizerAlgorithm);

/**
 * Returns true if the algorithm input is merge sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is merge sort.
 */
export const isMergeSort = (visualizerAlgorithm) => visualizerAlgorithm === 'Merge Sort';

/**
 * Returns true if the algorithm input is selection sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is selection sort.
 */
export const isSelectionSort = (visualizerAlgorithm) => visualizerAlgorithm === 'Selection Sort';

/**
 * Returns true if the algorithm input is quick sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is quick sort.
 */
export const isQuickSort = (visualizerAlgorithm) => visualizerAlgorithm === 'Quick Sort';

/**
 * Returns true if the algorithm input is any sort aside from bucket, radix and counting sort.
 *
 * @method
 * @category GeneralUtil
 * @param {string} visualizerAlgorithm Input algorithm.
 * @returns {boolean} True if the algorithm is any sort aside from bucket, radix and counting sort.
 */
export const hasLegend = (visualizerAlgorithm) =>
  visualizerAlgorithm === 'Bubble Sort' ||
  visualizerAlgorithm === 'Insertion Sort' ||
  visualizerAlgorithm === 'Selection Sort' ||
  visualizerAlgorithm === 'Quick Sort' ||
  visualizerAlgorithm === 'Heap Sort' ||
  visualizerAlgorithm === 'Merge Sort' ||
  visualizerAlgorithm === 'Shell Sort';