        quote=output.get('quote','');doc=pdfium.PdfDocument(str(f/'source.pdf'));hits=[]
        for i in range(len(doc)):
            page=doc[i];tp=page.get_textpage();search=tp.search(quote,match_case=True)
            while True:
                hit=search.get_next()
                if hit is None:break
                index,count=hit;tp.count_rects(index,count);rect=tp.get_rect(0);hits.append({'page':i,'rect':list(rect)})
            search.close();tp.close();page.close()
        doc.close();ck('模型原句恰好唯一定位',quote==case['expected'][0]['equals'] and len(hits)==1)
        if len(hits)!=1:raise ValueError('Quote must have a unique actual PDF match')
        h=hits[0];x0,y0,x1,y1=h['rect'];quads=ArrayObject([FloatObject(v) for v in [x0,y1,x1,y1,x0,y0,x1,y0]])
        w=PdfWriter(clone_from=f/'source.pdf');w.add_annotation(h['page'],Highlight(rect=(x0,y0,x1,y1),quad_points=quads,highlight_color='fff36a',printing=True));w.write(f/'highlighted.pdf')
        ann=PdfReader(f/'highlighted.pdf').pages[h['page']]['/Annots'];ck('PDF确有Highlight注释',ann[0].get_object()['/Subtype']=='/Highlight');negative=PdfWriter(clone_from=f/'source.pdf');negative.add_page(PdfReader(f/'source.pdf').pages[0]);negative.write(f/'duplicate-quote-negative.pdf');ck('真实重复原句PDF负例不唯一',len(locate_quote(f/'duplicate-quote-negative.pdf',quote))==2);result={'quote':quote,'anchors':hits};add_native(f/'highlighted.pdf')
