All files / dicomImageLoader/src/imageLoader/wadors findIndexOfString.ts

90.9% Statements 20/22
90% Branches 9/10
100% Functions 3/3
88.88% Lines 16/18

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 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48  6601408x       6601408x   6601408x 13750510x 6582500x       18908x       18908x   18908x 482154x     18908x               18908x   18908x   18908x 1666892516x   6601408x 18908x                
function checkToken(token, data, dataOffset): boolean {
  Iif (dataOffset + token.length > data.length) {
    return false;
  }
 
  let endIndex = dataOffset;
 
  for (let i = 0; i < token.length; i++) {
    if (token[i] !== data[endIndex++]) {
      return false;
    }
  }
 
  return true;
}
 
function stringToUint8Array(str: string): Uint8Array {
  const uint = new Uint8Array(str.length);
 
  for (let i = 0, j = str.length; i < j; i++) {
    uint[i] = str.charCodeAt(i);
  }
 
  return uint;
}
 
function findIndexOfString(
  data: Uint8Array,
  str: string,
  offset?: number
): number {
  offset = offset || 0;
 
  const token = stringToUint8Array(str);
 
  for (let i = offset; i < data.length; i++) {
    if (token[0] === data[i]) {
      // console.log('match @', i);
      if (checkToken(token, data, i)) {
        return i;
      }
    }
  }
 
  return -1;
}
export default findIndexOfString;