All files / algorithms/sort/src insertion.ts

100% Statements 13/13
100% Branches 2/2
100% Functions 1/1
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  5x 5x 5x 1x   8x 8x   8x   35x 35x   8x   1x   5x
export const sortInsertion = <Element>(array: Element[]): Element[] => {
    for (let index = 1; index < array.length; index++) {
        // eslint-disable-next-line security/detect-object-injection
        const currentItem: Element = array[index];
        let currentLeftIndex: number = index - 1;
 
        // eslint-disable-next-line security/detect-object-injection
        while (currentLeftIndex >= 0 && array[currentLeftIndex] > currentItem) {
            // eslint-disable-next-line security/detect-object-injection
            array[currentLeftIndex + 1] = array[currentLeftIndex];
            currentLeftIndex -= 1;
        }
 
        array[currentLeftIndex + 1] = currentItem;
    }
 
    return array;
};