From c19d082099a9265649a5bf8efd1a16e2674c401e Mon Sep 17 00:00:00 2001 From: Steffen Becker Date: Sat, 29 Aug 2026 21:46:33 +0000 Subject: [PATCH] test: grow the corpus by marks, footnotes, images and formulas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four new themed documents (11–14), authored by the docx lib with LibreOffice ODT twins like the rest; make-fixtures takes a regex to regenerate a subset without rewriting the committed files. The twins need libreoffice-math — without it soffice drops every formula silently. --- tests/corpus/11-marks.docx | Bin 0 -> 9038 bytes tests/corpus/11-marks.odt | Bin 0 -> 14930 bytes tests/corpus/12-notes.docx | Bin 0 -> 8908 bytes tests/corpus/12-notes.odt | Bin 0 -> 13841 bytes tests/corpus/13-images.docx | Bin 0 -> 9549 bytes tests/corpus/13-images.odt | Bin 0 -> 13956 bytes tests/corpus/14-formulas.docx | Bin 0 -> 8883 bytes tests/corpus/14-formulas.odt | Bin 0 -> 17300 bytes tests/render-parity/make-fixtures.mjs | 89 +++++++++++++++++++++++++- 9 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 tests/corpus/11-marks.docx create mode 100644 tests/corpus/11-marks.odt create mode 100644 tests/corpus/12-notes.docx create mode 100644 tests/corpus/12-notes.odt create mode 100644 tests/corpus/13-images.docx create mode 100644 tests/corpus/13-images.odt create mode 100644 tests/corpus/14-formulas.docx create mode 100644 tests/corpus/14-formulas.odt diff --git a/tests/corpus/11-marks.docx b/tests/corpus/11-marks.docx new file mode 100644 index 0000000000000000000000000000000000000000..265caee4fdfcb9551c19278ee49497ae3056fca4 GIT binary patch literal 9038 zcmc&(bySpHw;wvB89JrAQ$kw08%gPo0YpF$q)S@58$=orkRFkclvcU~De1a{1@gV` zUHAU=owXjGnZ^0-+2`zi_TImJl;vPxkpWkOq>M!W$A@2k;2>{z2WL}O<$s-W=l2vt zXER%uKNAsu$dcr{NMnHl0LEYe0OG$VnmRmkwKKB^u{^f3Wx0Zu#q}t*vtda3Q17Pm zAt^JAR1=A;`=KJ+EKELdu}@Nvl6I{uDz}3}3i3 zpiwX;0isSAtmbDXSxNJq-=L7JmjFXet9sQRZ)a+7C?g;pMwO@`H%Q zSnHI$Y7>c~{heF{35av(Lu@jz;#KKzBEgQ~`Be5^vc60{{3zXVZDnKn014j19UkHs z`hX;*0I?8nt6VlJHRK9<*PKl3Mo+okgT3=epGDys!Ur6U@iW~vQ8kfwgs_v_c`XZt zONO|gZeWI+`sjW<|Mt2ge2KVAz$-X#aIlKZ`WWuFL4NM@6L00#B^Ur;4-Ejo{JqaN zcQ`N6&SCN%5d1DQevFw$gkC&vcx3IH=48IijDaD+6o%oM`hAg!f-g>Dh?GRAKqRal z;dguYYd^L&dtPQ!>AI{03|291?Q?c;bIY$TF`e$5XMB|j^de8jwBpJz)B9F+c<7!& z&&kE`3Pu%lQa{oa{pR_Fg0NW18N8jX@CS^RnhblUG&4y=x6q0LIIWJuxXk{?Rfs~? zK%TIGOk#)dM~??So-U=h20CwvcEb$X%-f_|4~H)i-oxvn$I4tw(8jC_Js@07fMv&1 zea`&)bb;`Zxen+_gZRTOIO)p zct>*W?>`1k&$>Szf=6Wmi2C|BMi8b)5H92v!>!jRMu}t=ORm=!MalRe+ItaL4baRO zNDfq{J_Q%q`=+_j&qlfx;IAi*0i%agw{#ofe^Pv z<4Ul&P+|x_;4!YY6Rw%^n0czL3_09R=iQw~XZT~?g<9lgIufttK)d1Ld@`*IFGey< zyL=l83mpc%7>lC|v@HSgA-4SlWo09h!|5^)H!|)8MdUsLS$}aeXZeHH5S*x4;AxrgcrF9(z|6px0!aS@_b&cR3zoaP1N z_ScRe5#2kc17CKx8g^0g5oFL?K21nHc5rN*ay#JGCySKC(bKc9#*r=A@ORSV`)2W8 zL9O!bgM{`Bd*dV7?ol6@x{Kq>GOu(C@J@Zf>-a{r@>&kMU;PMVc&BGx6kRw()onQbf0YujdZu3YRZV?9svl#~zbQ1-I zb>Qs2MkjbqksWjo1uG8jQC1cJ8Fx+-2oqz9_P9elU|Bjkk0w}phgb&v9MN$Y3wc~R z&g%JIl=&%{)55gx_PIK~Aw z#GNa+*o(0hTgf%^tupgHo9FGZKg~-CV4ur;6P{&zVB>C>bAmPnv&E8;k!pm5RI`_Y z2!urkyOI=%x4YJK^?C1K;QbvFkb;r59z$Y+F%AHL{yQePfIMu?T&`m7lJ=D10vpD8 zJl)m{IaU!#(HSu~EECK-lNMu6gkc^1lW5P*PinAf?Od|*P?;vZt%W%GlU&U6YdxP_ zUnh>jT@T7@PabY|gX*Xr(AtN(K0Oz;Dk&`0Qi$2=JaoRiE;39F_A*8UEa0E4x z$363)YbqM%Rkbi8#ERcmfd!kBO9)mnp}_#5o=QKG$Q>?Vf)-<$XbS~+%Fe?`=inm> zg74y%C)iB2LkHUVi+PiYgG7z7?ow2)Fb9f-NF$*;_TH%m5mm==u$luY`tz_HK4&1l$gokrM&_hfwu!zA;~NwxN&7k>IrC+`!*e%PXS@ zsQrl65FLYe#=TmiOUIdIBRmPAx~WJ+KU+%qh9QA72MOd69Ym@sUmY>Sq>J+L%se$t z+I3CI!>%s20xvN{6+8CcQxpps)2`J;!PjQPKw!x0b=@q=l?di|h8V28^LaWsj}w8| zVuovp-q~hP3SqRy(f4Nzyf^>EWpz;;Hkc9 z#{{&}n|&#T!(0x_JdUI1fzzDF#x}d{N|rVHv6px8sl#;FC#Q`+?-4V8&Cri+YJE5z zpKjg%!G>uj#o2IqJRKf|iWnGNhWGG9JGfh|X+E!DZSx5yvzj{CUy!ZU9Yu`>-9U1q zJLKR6z;o5Y_kB)>wH>S{+lIn^R~%5v74+e7rq7R;Gfjm75oeY3IJn!z%G>79^?B=u z7q1FkfOCu+9>KQCVx$?JR2^Zvc7oAnvoGefH#mvlP7x-SHah}#?X7u6u>-tu+!)Nh z7zSx)gqi?Gw;}``Pby<78G$6n*15IG&Q2MHCD78aqw}j^8wK0$!tg#!a%ul5~SV9gDsa4i)#7#8~^#y4316 zlyjT+mF2(9W9YWVt{Hn%^uq8m`x3{Y#g0(Go=3!GQ7wOkKCB=_S=@DxIH4fDteD+c zyV+nY^C43_tAg&9mz@TBnT^(N;Hh~8ys=PAImlD`g2&s4^@M47e zneyFfOU5Gf2X8wAD;*l(QVZ6Aa@%ogN=~%leMS-%)E53jXXE*Jj)7TFNFM}JsR^1Z zNlQWQWZ%1k!~dv61`4 zps5aBzP(zhXC$6x7^vU?yIrsle464~AJDYgjMe?bgimuNOUZs#g-$PB>Ma#n>`LM& zbhKb!fs<~>v2DD?lDMugZg=VXcMaCOktOQsa%WTbNOV}ShIrqdJH5YEu#(cR={iC- z*%So;!1^6D?Op9m%$%+4Ev|ODFHz2ZiVY*MoWgNS*?AG+Ii2Vfc|cgRZ$3gM^(0Lj zp0sS}#{o(A&034EGWX(`j#bECo55~(Rr7IvIRo;GuP%Sn+0M-E;-FRo>Icwea;Wjg z_5i(oyzu2!j7XyS=VXU~Wkr(ib-WrBci0Qyr=g>%tMb$Xd-?g)RfyFG=?X!>9Kh-j zO?K<9zXTz&Q?eJMjid@bf&FDuNv*(v7W`MrbL&o7VznYZzeJ+P@B=bV|D z07)w-Ne3l~DUI)2lt^IE)P;C9C8s44MJU3cphG?J_`KZ6TRfmgC=kUHt3=X+caBur zN3+G!mrlDp6>1sk)pOV7D@ynDiWsb?QWdc--mV=jJFp>sCsx7zNtNSBBX^u&9$hJY z_H3kgF7;BBjRKT978>%HOZ%?U=dLDHV5hqrL^)+2?b&< zFv6fh|DFD#ufb8@-*BFvpI4<^zNo26W#RdDQnCXR%Rhbw3Z)S*r_#ZEQ=0O9pYMC~ zEU{hafYW5s-w zg<;1CGNkTp5}4AI$hBfsT~){x7Lhi0_wOU4Q7dzBpbOPppA?TuI$Q4H6~`?RA1~6H zpH~}Uv(r@u+Bpj!5T@6C?ItNr2&0`OC<@^?dZ=y}BH2zJvxON(LichgSH9viD8xVd z$s%c01#3QSYRx9|t`dAI$7q+;Y($FRWV1!X^R$M3y(iLcWON^rXrEFuOgJiK&oNhs zAL`gM;BGheZ8)dAqwN$iNyYT%VOQW7v&U6h(kpBb{N&6})Af9L>>)bI^K44qSEkOS zoDFaCqi67B<}z?dI1ObV@3JS7{ob;l+$b|LGA|htJNXa+0Bp#1=!rYngCNAyP~F4P z%tim|OxI}spq^*(bXp_zjv|OPODzkC#IrCDJ!1(?%FP^*&xF2yzYCYFn)${|h*JQ2 zOX|bo`pl;ZEHSRt{9`NjeojZ^8mCb%pQjB(`iojs-NQjaFWE;st(wVq6U8KI0E~~G zkrGoUlqYW;tD2uM+2VdiOj8f889rjil-fVV^*u> zQPf8w_)Qpw;ONAuPo20GL-nJ5f*(W^~8!>hV1|0bNcNyei~W{2-ym{x7c1KD+T4GS|ZnGN(gaO+q} z-FH_0*XNC~7Vm;KiVjf!Uc&rY+GH$5^{WGladQdAj*frp|9r!)_)hdtHIdV1b_05M zH7Xb9U2Hi|Pf9-o$K#{9g_?6*+zK%hrNX6(;ygh0qM)L#aNyJ&1)PO{KhyKfB{Zhf zS535`FDemm;Y2<;_w)0}R;1m3$P*e zZj-Ajl&+)#zpuzN#*8;$fiEIpv%;1(%i&#Yhe88WF|v?T$UF0=dl^aNU#Hy5Vl??! zTY*%1`Ba#J;`Dv5$bFvPXL=glfnYA1-xBP%5kOm);+m)hXcfT_7WLclu<#IF$FNl_ zTB#Z6Wvy966I3_u7F8=`=!V;Di3i1-ud!93)o+uw&#(`3C{ZY0D#0+KkZR6y-Khr& z6eoGwY(TFiz#TKhqj;JY@FJi9bDe0Sf;*`S-Mb%%I`KWOcbSi5IcyV5W3BROZ@e9RE0R2X{WTjjFgJjt)&o54if(YxaZiV>jrk6| zb^85H6uyIEWz1Tp)?(Uo2ZhLt)ZCu-&)ETZ3H-P%nA0(4qPP=AmO&q@z9KjffDtWQ zipjU#3Yscny!%T^tagUJ-_^nP9q3C|{I)>bUuRr?vdXLm=MijeAVE#soJ4U?YQb7K z@)X-XMu=oUlrybKSRv6LX^5+xvFiNglM`%?OD=yk4L;qYKEuD=cgX#$&JN7KptG#8GOV=5Cqu3@^2pFh}J;GvQJGSSvZP!_ueHzlSkhG)5!#C|mAnmR)ddHE2> zKD%Cv?1jR!9n(#MsY`^}U6{Z1ye}IW(F*a>7>JktX^5HGoBnaqzPKs-1#*l)!_Il( z*2sp@523?hq?%17$ukI<_~618@|J_;O?NNE{#uPV9^NMQf+UBFB=%B=3+wpmHV>qH z@(B*=5H@02D>t~~y;I|z*lF8O`YiHR>q@~*9Xlq z6KTC{K=f9m!A!JSn!25IVr?G^2F@zAo3?`jd0l^3Wq^xVaGKxgL88EH1TGB?de_PNf`ff3S*P(? z@=BBdOk@+C`g3Nv*XuHuda*fpv}?Ps>nvvj%p&0&Ve3qFUP$tcPt5Htp0w(9u>%NS zGaxojTRD`PX6&vru%xF5Q`kUbH0TVk3O~(1=Go97YceY)Kg@Y)p@I~&mGkn9Mh{b| zU=uMcdjX0BIK28@rI=X$MLq%P%gw3k;jN7Qpc5r^qx93h`+wW}reEG_G~cxPf7>k; zGCq9Bg1Ds%q_O_TEnUn&APBkm(Ur-In}M(klmNrd0dI=8+F`AQdLYJ6`zGU(bqGe( z6Sx#AepFLEQ&Eu%_4h@hxwK+LcLW~fc7C1m`DEIJtRhgVUD2am)6sl&6vr_`PoVT-0>|~o41w%D;f^AA99S29Pm{XTty{b|6 zaunSSYkco6K$fb^j^Es zm(;P;pxJxx2EKb#KbR)gUU)0~tj1xtr=)YQSFmPw4Ng}@m}eDQkjPnrxuDeYPMoOUdGv~xE@QZbv&sk^8OGAynM*^^Ag=KdoV_Elhmv6aUSRj8#C&ZpzklON(Js&yPU0rPawCBi- z^E^2|{H&f6pH_^v8t-s5ZQADd$5VGQecQOsP%;PK8mdyuB&I3)Jy@su5}P>I(mpK1 z6-LROz^LQz75@w_UK^9;ko&REY16b{fU7jt2%U_LV?M5+kZ?7QrkL{DMjOnK=8-zg za_TGc>X$0dHe?-b<1_^7b`QmBrkv#OvKQ|2FjbzRnFNOC&<+qC+nU1owA!KIAStJ} zQbZN)+ZI39FGg&T^Ybc}p3IfG)OnahgHr*@pecJ~l|my~9@~PM%N2hyuSoDL_0sA< znS9S;-(vhzTc;SmLU~ZKlSOijTvX$iW%7PC$kF^3mgt%^?QyhUUt0 zhe!ch%e4aC1%ncxbO5kfVrwtfk!>~cnqq6ut+?Vl}wXZhqj4#-7>3ySop#IOH=BDNU+o9&srokr? zh-->NTEI8zG<%S`v5D=Eo>AK1jC~t95Mf*E?lfafQiN6MXC^tfcR~Q@8VR(5x!I9A zva(v6`G^@DjNQv6FWW;c#|CxdB*rc66a;*lms?g~Wc=WWc zDUSO@nki2xK9k{d$9RI+3u_cW>l(;750 zi;KuLXGr#tEPL<`ekNQbKI1`@DCxtPp-(!x#9xiwG9J3WKIIr6fW~|K|0#QJZ0Uc) z=upr=z`x(#LTWU~xMCVtc=IOm z#}?g|bo>7DT2eK{g@34UQ^sxh?W>M!_8Pj@S7A)EZLb{u)o|U+m>J{$_P~#d@v>3Gf&G-#E~1QMZZ7wW!YDqHY$fx8XN6 zxvF!oM-A>@n%orfk2bwsie5{4i1$m<&BFAyBDX7_Yd90ZFZj)DcpLuj>mVokYaKU* z{Np-q=ecV|z`rG#LmGa6vflru$=|jGLcad+jo-GtA?24Ua6gV7E&vzc1qn2bKk)wp D!`Z1# literal 0 HcmV?d00001 diff --git a/tests/corpus/11-marks.odt b/tests/corpus/11-marks.odt new file mode 100644 index 0000000000000000000000000000000000000000..949953d484645cb0e974681f1259ecdcc01a8ec1 GIT binary patch literal 14930 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 literal 0 HcmV?d00001 diff --git a/tests/corpus/12-notes.odt b/tests/corpus/12-notes.odt new file mode 100644 index 0000000000000000000000000000000000000000..b59106bda5adf42c01d7a7d7ef65e2e02ff1b93d GIT binary patch literal 13841 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 literal 0 HcmV?d00001 diff --git a/tests/corpus/13-images.docx b/tests/corpus/13-images.docx new file mode 100644 index 0000000000000000000000000000000000000000..bdcd54e198be05a01ce1f4ef469972b5316d56c7 GIT binary patch literal 9549 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 M=YvCx^=I#Y0T*^Go&W#< literal 0 HcmV?d00001 diff --git a/tests/corpus/14-formulas.docx b/tests/corpus/14-formulas.docx new file mode 100644 index 0000000000000000000000000000000000000000..0ee68ade7c9a5c6782986ddeda105c56db0a70ba GIT binary patch literal 8883 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 ({ }); async function write(name, sections, defaultRun = { font: 'Times New Roman', size: 24 }, extra = {}) { + if (only && !only.test(name)) return; const doc = new Document({ styles: { default: { document: { run: defaultRun } }, @@ -45,6 +53,7 @@ async function write(name, sections, defaultRun = { font: 'Times New Roman', siz sections, }); writeFileSync(join(OUT, name), await Packer.toBuffer(doc)); + written.push(name); console.log('wrote', name); } @@ -197,10 +206,88 @@ await write('04-table.docx', [{ ], }]); +// 11. Run formatting beyond bold/italic, plus a link — the marks the import maps. +await write('11-marks.docx', [{ + properties: { page }, + children: [ + new Paragraph({ children: [ + new TextRun({ text: 'underlined ', underline: { type: UnderlineType.SINGLE } }), + new TextRun({ text: 'struck ', strike: true }), + new TextRun({ text: 'highlighted ', highlight: 'yellow' }), + new TextRun({ text: 'colored ', color: 'C00000' }), + new TextRun({ text: 'super', superScript: true }), + new TextRun({ text: ' and ' }), + new TextRun({ text: 'sub', subScript: true }), + ] }), + new Paragraph({ children: [ + new TextRun('A '), + new ExternalHyperlink({ link: 'https://example.org/', children: [ + new TextRun({ text: 'link to example.org', style: 'Hyperlink' }), + ] }), + new TextRun(' in running text.'), + ] }), + para(LOREM), + ], +}]); + +// 12. Footnotes: two anchors in flowing text, each with its own body. +await write('12-notes.docx', [{ + properties: { page }, + children: [ + new Paragraph({ children: [ + new TextRun('A claim'), new FootnoteReferenceRun(1), + new TextRun(' and another'), new FootnoteReferenceRun(2), + new TextRun(' in one paragraph.'), + ] }), + para(LOREM), + ], +}], undefined, { + footnotes: { + 1: { children: [para('The first footnote body.')] }, + 2: { children: [para('The second footnote body.')] }, + }, +}); + +// 13. Images: an inline picture in the line, sized in EMU by the lib. +const PNG = Buffer.from( + 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==', + 'base64'); +await write('13-images.docx', [{ + properties: { page }, + children: [ + new Paragraph({ children: [ + new TextRun('Before '), + new ImageRun({ type: 'png', data: PNG, transformation: { width: 96, height: 48 } }), + new TextRun(' after.'), + ] }), + para(LOREM), + ], +}]); + +// 14. OMML formulas: one inline in the sentence, one alone on its line. +const frac = () => new MathFraction({ + numerator: [new MathNumerator([new MathRun('a')])], + denominator: [new MathDenominator([new MathRun('b')])], +}); +await write('14-formulas.docx', [{ + properties: { page }, + children: [ + new Paragraph({ children: [ + new TextRun('Inline '), + new DocxMath({ children: [frac()] }), + new TextRun(' in the sentence.'), + ] }), + new Paragraph({ children: [new DocxMath({ children: [ + new MathRadical({ children: [new MathRun('x')], degree: [] }), new MathRun('+1'), + ] })] }), + para(LOREM), + ], +}]); + // ODT twins, written by LibreOffice itself — the dominant ODT producer, so they carry // its own conventions (percentage font sizes, Text Body, list styles) and exercise the // foreign-document path our own exporter never produces. -const docxFiles = readdirSync(OUT).filter((f) => f.endsWith('.docx')); +const docxFiles = written; // Its own profile, in a temp dir: LibreOffice writes a whole user installation into // it, and this one's parent is committed. const profile = mkdtempSync(join(tmpdir(), 'corpus-lo-'));