export function containsRetainingPath(snapshot, retainingPath, options) {
  let root = snapshot.filter((node) => node.name === retainingPath[0] && node.type !== 'string');
  for (let i = 1; i < retainingPath.length; i++) {
    const needle = retainingPath[i];
    const newRoot = [];
    for (const node of root) {
      for (let j = 0; j < node.outgoingEdges.length; j++) {
        const child = node.outgoingEdges[j].to;
        if (child.type === 'string') continue;
        if (child.name === needle) {
          newRoot.push(child);
        }
      }
    }
    if (!newRoot.length) {
      console.log(`No retaining path found for ${needle}`);
      return false;
    }
    root = newRoot;
  }
  return options?.occurrences ? root.length === options.occurrences : true;
}
