From 7c1478ce0772eb3738dd706569187f55c82493cf Mon Sep 17 00:00:00 2001 From: OmarFourati Date: Tue, 26 Dec 2023 09:07:08 +0100 Subject: [PATCH] Revert "revert master merge" This reverts commit a947b18bc9a719e26af785451ca3100353dc5068. --- .../test-A1:C16.xlsx | Bin 0 -> 5904 bytes .../test-A1:C16.xlsx.license | 3 +++ .../test-B1:C2.xlsx | Bin 0 -> 6085 bytes .../test-B1:C2.xlsx.license | 3 +++ .../valid-A1:A4.jv | 18 ++++++++++++++++++ .../valid-A1:C*.jv | 18 ++++++++++++++++++ .../valid-A1:E4.jv | 18 ++++++++++++++++++ .../cell-writer-executor/test-A1:C16.xlsx | Bin 0 -> 5904 bytes .../test-A1:C16.xlsx.license | 3 +++ .../column-deleter-executor/test-A1:B2.xlsx | Bin 0 -> 5963 bytes .../test-A1:B2.xlsx.license | 3 +++ .../column-deleter-executor/test-A1:C16.xlsx | Bin 0 -> 5904 bytes .../test-A1:C16.xlsx.license | 3 +++ .../row-deleter-executor/test-A1:B2.xlsx | Bin 0 -> 5963 bytes .../test-A1:B2.xlsx.license | 3 +++ .../row-deleter-executor/test-A1:C16.xlsx | Bin 0 -> 5904 bytes .../test-A1:C16.xlsx.license | 3 +++ .../sheet-picker-executor/test-A1:C16.xlsx | Bin 0 -> 5904 bytes .../test-A1:C16.xlsx.license | 3 +++ 19 files changed, 78 insertions(+) create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/test-A1:C16.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/test-A1:C16.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/test-B1:C2.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/test-B1:C2.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:A4.jv create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:C*.jv create mode 100644 libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:E4.jv create mode 100644 libs/extensions/tabular/exec/test/assets/cell-writer-executor/test-A1:C16.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/cell-writer-executor/test-A1:C16.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/column-deleter-executor/test-A1:B2.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/column-deleter-executor/test-A1:B2.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/column-deleter-executor/test-A1:C16.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/column-deleter-executor/test-A1:C16.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/row-deleter-executor/test-A1:B2.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/row-deleter-executor/test-A1:B2.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/row-deleter-executor/test-A1:C16.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/row-deleter-executor/test-A1:C16.xlsx.license create mode 100644 libs/extensions/tabular/exec/test/assets/sheet-picker-executor/test-A1:C16.xlsx create mode 100644 libs/extensions/tabular/exec/test/assets/sheet-picker-executor/test-A1:C16.xlsx.license diff --git a/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/test-A1:C16.xlsx b/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/test-A1:C16.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0544fa2814c07cf9c2736a400489785567ac1b4d GIT binary patch literal 5904 zcmaJ_WmJ^y)}~`dx{>ZqDQN_yK|-WMha4Cfy1To(q?GOs2?6OwK)OSalo0s9_ghDf z=N$K}_00UZ_kQNS_O(-44jus)1_cELCV^K&1LlDM?|$n;L10^Uw)VU$D_al zcR-HoYPCP-^EAD_tU9hnAG@=#vr^xFKrC+<0=MW5oW@q)$}+`j5Q7o${2Q0U1{_NAyszj z9W2+FxyIJ$Z9({1U_L)F;b?=IV1TVoO;!HX~?qCE8ADNa0TBe{$ILc2^^0Z*EQW{2Ab>XhVW%Bo^NP7mS| zVrLuRH$i1NWE6`w2ZY7DTT8&fz$pJuT!`;ZIDy&!fyNO6wJ?G}EZCeZ!T-RdB7O%G zX7eVV(Lv2#uAd6aCN`iUe;eMfxmF%5W6EcFbXBNeN`jJ&oY^&CZW3VFKWVe|iT?Rc zv#Ro20TjFL>2wP`x4nf7Jp=W@KGw68ae_)+if9KC#`1w>by+TaWQAmmt+Cugn~^jF zFlfZMOgrvaNWYJN%4_GjD%c#+MwNiVp}^~Q^h{x#NXONdaO98__}PpgHYS0N$Q;L`mIDpKM*7;=ZaH6msf`I! zZ};r&*(&gO1->R14V~iCy|&1N)zVIfFO<>JA(4@5$447#atA2gfD$A82>1=}K6}au zHseLI@zFGA{064_34oCUQoq%!gM<>^EBW1)7Z-iq#S&orR>(2H+^VM$Rw`O0HHA9a zcyq2Bh8>LPRdYfwj(NdD5ORtFJQgKvWRXIDoK9}8{Kc0riX^zDMDopyxh4Qr$^97_ zBxSgnZWc9B;8>%qx{a89_2OnE_vEQDZ6f~rQQ12E%7Z9s`>wpVdhJ-)x_oMsI4Vod zPFKhY&t*tv^(9A$zr-(|!LWGKPye#g9`%x@1x zD4f=uh`P@~D!cUT86d~4xJ0~XP6SvG^BNWg#u5H+5r*>*bL>n(mLT?DPtN=Jnvd6o z%u(P59Q3wymU5jY@mwZ?-tYxC7=p)6IvJc}=%y!&x(1i~A zy={%k4m_m2^^$m-)leg>=mq?Zz2!+3;@U8sNE8# zlZybu^~7kLR>v+s|g!lD>3dHW2VEjfr?vGs=9%7hVX zn8S%9>)JPmUV;3^!nfyri|FV6Ij%Q#8Xmk$+fW&H$1$G{YmpA6oFIEA3_PEr)vfR< zZg=rY6*tmPCRHf-fkb)6E39$BG=?BFP)NJHJ zNu}8o*`&fuVP`pZLo^|1%t)+*3Bv8G+_S!15atgT+_c-YYz;021@&}_v;Ie**l%9I ziaPrC{czD-Mnok?t1)D+J25$$=RTe*_%3pkSL!;Mm1?@zumEi%E5T@340)jDCdlTdwQe3%-+gOq%)>x-x+Ct$yvC1?qjxtO-ZEU!k}8vOZ(i$P&(}Co9R=M0F=P& z;Y9F|8Z1@C8k1KnK3uIpWDPF_;H}`uWW>5oz44j~kZ$7pJdb(rD=r+peHSpw+iaR{@IIf*wfi(>R8!X)MkBTW#NmX@_n zUUe7i*8b2)QFoFAgQWt|v%8}aaUC(kr!W)OQpvm1A5XQa%nIulB@3|Qa}GTMm3bQX z!=ozn<`mYkz!aD`ae#;|d$NxRqi~)0mlXTX@Bt#9g2#esWw^(gq6O)KReZJ;J2~?# zH)?bGUnGq&SG{bd+ns58y3OR=SnkX-ay4vP*2JqSEat4(-@qXgr?W!rr0;){MMTSJ za{hA39~bbVaCQ@q;%rv$0a7==V5m`LzW>!z~O~`nW{g+iz zp`NCXTw@1Wc_gO{XYW9k`DDcq_|D9G(ic9?-D|ufy$bH%NKg2?B-@&TKz6q5zrKED z*OsJ3+f;tcp2dSQ1E;O=Ns6C>HS?bZ5-m)|XmARqlU-xQ2^A3D#gxbXJgvhPm8TR= z8bWin9+2JJH_@nV+uK>S9Vn*8iaB~~nG^ih7TY;{bLn*LVW_RLO!F~}{;g#j zrkUs0pS4eI4r!<*;tF*=9Wv>E_?a!! zuP^W3PKz^^S%4)FgEq^0S6L@GC`|V`Dt!t-zrHY#N=p z#4V#xW0%mGLq1x1O;^b0pv+Rr_Ao=uOYZJA1T-sCiI0VnuL#M{&H88P8IaP(FFQmL z3SSW;2unt-prNX-t1MqfaI7$6PaHJ$|dz z!zT(&Qr7x$4w`AVE?g1)9Hy&1?Q?EE=JaKvoG#H_Oqol4r91riX9u@xf|0ss^;w#z zS?t;F4jU0bcM*3t(lFZJ(y*LNCSwpUuGzTvpk~c+Jf^6bTyfIx@~To`dSgVaE>ug5 zv~^TWDvF3$p-1&ey7PFU%1EM;qy}k13zplj8&cA6p4= ze62^^Cjqa`3h^dbHIyMOJ^}bF z?@L}Qt5#-N4f@Q!TQ@1NGoAFAtwiLp2kzjry|06cKa(Svm|}a+sHa@#BHpqNB-U!n zs`V0AK=f^-ePnKtM3=4VdMSsfFrjPSt@TQ>JfkO_o;L6}F4t@ZOMQryifxNo3D;OV zhJnf)qv{0}?&%y*QRMi-=aaXDfw3{;zG-WcQYdWyh05W?qele`&6mDA2Ms>Zwi@hY z*r6Hm-iAV5!O3Puxf0w0$-OOR&OWgzIwoUub#&U0esh4K_Uxy04jVWRSu*OFudu9k zI?7%=z8y8`&}@W!z!>O@XQR9i1WSF=v>$*_su1ng@gUj|nDEWM z$rvbep5Un%xN=>s{aypzNwd}*jOV+ByU&~F$gNvP2rw|I_bdW7%pvjX<*J~=`){{ zZU)E3V;@24(9xAJ4{=ek&)heN4jyalDv2)psP{K6A2l{Azq=2~T^s(thg__?6K^4J zl%Wu7TlO~)DCoXL3Rme@yq|54@uClck73lLWSGRagJq?0z3YiwQ;D&AD(lMHdSp`K zBrv2!_J+bt99xF+uNseP4T`~Piti|B$QTw-KJ=wEvuxh@IpHT`7n|d*t-&P7hZcqH z#_=I#$mg_YA?ylJgH%gxE1yp=<|UM68}nKN)_c|8msCGSSk)fMNA-Ocl7GT;aY-dD1l74vf~OmSl?hHG)-Rt%<+woB8NPmV zXlL8bExiqDWhKjOdg=aQwqQjpWbcb~9~uY3vVdksnL*hLGao$H!W1#ArWSCHS=z6a6KNmoHm@Y#aV%Y--kU} zT4C?~Q!!qQZFuLKxxWtAm=FD9Xl;G(p7baM$S*ct;i-4k$b`NQR3@%An?*Gfv@@+^ zlGEvpW2a?gy7hp4vLuwbH$C;{DsT7m)(Q+IlZm$4Dge*GKelgQ>tv=SUQVs6t7L6f z({vPzN~;R_5-Tk*3b%_22Mit+p>3n02@xhFv$2}{N~FUfw9d5`^cabDX)<`!OX01a zI+{15cRYohC*nJxjlJ}(zbw7tk5874C&@jg$lVqhUN50?f{FF}aj><$M>Sc)3l_9a zeG%p1m+0R;^u#l)eK+efEaONEZY*X_2H({`-Z}<~Qec}E&h)>pX0ednH>5v0GvX;C zw~1dB`d;u7Y8!w3E0AC2l!HGM4nyOwz9hQ^&F`=8ryP3 zbM+|kDSA|fQhzmdaXmVWZ5|>t*NeAiA8Ef7>4=*j45H;lOpkCSn!y8@^J-a-&&`?5 z2{S7JTc9>isfJf%aZ2t>6rDfOWqB>!plu&_(MTE08lAE&e1@o!)9DJXn5_=~qV^sX7i~6hIj?VU^%AVc}Rdhl$)+O|FqIguf*7 zeEnJ&ncg+%2{J;uKJU^HDPPQu;RM!_sgUCE)qGdL?FfRovAB?HC~$qx_shn@Cj8-> zqVP`jx64jA`fV;^1xUdkT^eqIVBF}-wF%6GP?$s2ro{33S<)S3+T>6y@>b8 z2Nn(&=J)RL;r8u*_xSJfU=#VL;=^^+{c`TN5Z=A&f3NEPwDWK|algF!En;`EcxUI~ zD(g?>hg0W0%YKW?U3s}v{&So0r-6qZ{QYqHTNaT1sXqT2RsU3dSj6sI{NFN;`maC! z9}WMXRvs3H`-1mdfOly8xAOO=g@>u@zJUCe>pKhoQBM9;e;C5|`R%u)-&y;Y`u}IU iKeZoH>)#zPf&E{DURe(D4pLNn%For00II6z-t*}W56XNMt^?@139@1 zU&mZ45}S2eMM$1(`bF~}NPJf$$SwMyrS^gC#~-#^4mgp_HR>Dk;J}fjdKeK zJbP3)spTR#DZ;I38D;b!3agRZ=5cXb&zYN#uw-vuKs%-MU45tuKkS*V#vXD;sk^`r z9Pw5zQ-09>?LvjyBzjDT4fd5N9bMlOUsSbIw4W`95LYamWTn6@)S!bP2h$yZ){ z)|fqs&9hTOE8o9Zx`B!m^n}P~67=|8&(vlz83T!knl@z`+rmcYm7%&gw$tRE<>$|- z-@jXcxjx#%>usP46S0T;X>&YQ)7p4J%Pjs-BgQoQSI+{qo+ds)c>0a>4KxUSSO9?D zzrw_b{)e}d@IOd-L1B$<{oBmMU0}MToH(I3ArHN|V+5mu8(vt;gYaezp211o+Mlh_ z8B7Eo)$_!3j^P9v5*_Tyt!-=s zKVl)VNM(G9^f;QKVrgd~05)cS&q|dzGtO>q(hL8Q zu{F|ez`s-O$GD1Y$#ZRG-}^*11GH|unKxyyMj%3tyxv0zs0V?*-K4{fPfg3+n)|ki^cmqfLGOg`kX1$Gdb+1KDT*Y&SPEq)y4TaCc%)8;Q^j2a`Q;&F?1xPy zlfV>aJ>1g5pkNALG*Z_eIu({sPheQun=5E*2&EJ~*$%jw$z8qN&+;lifkm~B`n=Ua zZhHuIqp+DP!#4Yj^MTAT?rCD&M^%-nPV8h9amD^Ob*FV++~ko{Sv#f5$Pr--XOJiX z!vi1y;DY_Py+!>GXW$MXXOQskt0-n?eNVA~qF8C3Y#sniM)0y&^?gSWLYAGa;3-r7u$KJEv_m$d$Qv$O4>2x+@p=ZD=>WQXDTerI*Y z0g}_pFm++C!H^bL`4-*$NDpsv+K`uXOR?4BkCoo&`!j#GuO_$>f!Cy8Fe0y1=~Rp` zeatyiIxLHSIQw45s56^C73lGer&r0!&`mRjS?#*cb=9X1zzLDn=m$_z0X(7J)LYGS z;uE1_P=V4Tajs>q>+gJvi|e^{Cc<|>N$WwxRdqbg8?g!ne7L$^E`#{jKGdih)wAu# zrKM1K+&=#nO!AD&P)fOyFuSArcqIo0Wi&REN;XQj%7;Bw{IQX*Sh3%04z{VYijEJN z;xkl(^}u%n^f!kPd%_VQhWvdx@v;62+@yh#Ci0{zB-zo%`P$T3v)Uq56OUzo7rDTL z;TXZ4%n=T>CXEsNjbo($aLgU<;{1l?84y0}#aYI-^j;N~h|9tmOTdTmWvq;{>6vKM5@$i|61`K@GZ zF0OKuqK0*|oiAYJtU+)u#@hGi_zk0Px_Jh{-2>j0DkY2-2k9{;mHS0I1dp` zdu0SxAti0E!zZ_8M}u;8-SXg%lm?MC(R6X@c{E=$#iolY`R`rFO6?frSVZTPkc^^NH!GBo ztacRQkqm84?Cq%UMGrNgHAapN75d_n+!7JzCQpZMeMGhTFEVX9`#ych{Vc`n=dYr@ zMbDzj^AG1>)LEs1@=xt{tBFd)zOm#|wN!6u6FloAX8)yBFf+~bj2u9~4JpT(In>V( zJ=N#TGS3KkUa5HVvUk^sAD~)yPT#Ha#`=UIrfnClMZy&N&I$IF z<;%h-)&T%xajAiuANJ&Exj8>OvWm4>b6pYp%y@l%)BwRL{YI(~xf{_MmG-FnJJyW; zM_iRQQPQqjg56|Siy*a@*LcVLxrnm<>^!L%RjN%T$Ir#8+wVOsSM)gQN+rC4qLOFF_F&W8|}BSR-$w$QyPRd?@ZMMOZJWQGNL)0Dq@QUHy6E zP^ZhXHb9o2@`Q^5$#9=GoAgWw3|El}E=l!aXrMa@w|bFFzm@rx?u<>ZmY;Q55*RJT zIVw@mo*`k)In3!eRo5*M%DJlYp0XS-QthdG5h<=3k1g#Ka1POs`iFL34Z+_+28&7yUKNyc-_Fx+tn@lRBhgU7&IAgNX>d_ZFjAD_fy=ZUXHbM6SgS zc+Wmt)lhmUPi^2~vX3vqo1M#IRInDrtMORHGpsqFr-V6_BwTqDH`oUNGTI-ac|N0s zxRRP<{i;Sy(+(tWCvdfgyCimSv+Gna4RJk#B9foVkMbSTr3 zt?s#;$(#@C=gEZBhY9aWw36OmKcy!01-$Tyjh2k^r-_nb)(DG$jFNsl~3S~I5&^o^M zvIO!f?<2mzN_u(8=0Nm&JAoCy`n;s&m0BG&M1gsw800h)=Ns^AZM(M9RUS7cpr%3A zIyKvJ^)zEO?x8xn8NR&8=kzDV#FjHLA0NFdjDP;1Nt8+JOYz)b*o`z-t-2!LHQiN( zlEFI;ygd+sCP9&uMJh6Kp5)*9SMXw16N)WcO+cs1$$Dt%;1jSqX( zB01rVfF5yH0!^E#_$_yFw%Rrtx%MYBTielh6{yM}CyPNIE;1DqBpu2H?I{8_snVi8 zg@f(0-xiji&_s-zC(OGY*3*tLgcn_9Ga^q{;}z3bV)|%y?Agf_L$AQATfk2E(>2qWXTxO_YCADVqP3YX@r> z$kqT31H0J&uG+EBdWl*@D8e@7Rlk1FK2^G%=uP1tatz3|aLySYUc0}y9_zc!c`f3| z?uqD$AJZ_Yc*N~1SByxBO0_L=V!{pFGoeaV-YdW2354Y0tvBtSJTQ!+GFwt@&l>%< zPk+l8e4D>dW`3!#(|a!VdOcUs2jPEjFwt-T zY@s%KFsQ4$uniOj!W>d!^?T6WI7P!QZNg^MZi!x1qG8A&bxJ%hmYev#q(oaB=!4Ly zUuJB{)~cO5Bp?pZM#Wsb&%U@?En zd*G8Iu5Ds7J#d5ZDYX?gv_R1Mz2eoy8_i$ekg7RyRO)4$OWo05G%&E%9_Oh56ubGy za!GfW=GRM*{9KBROU;Z;^@XhT1&NbLsOk01a%ya;uYOYV+g9$#0lm7lQB8a{Y2JvQHJAmzwwcw$JRhhVwNh6H$g!iFjy!?1S~zxNsw8y2~xhpRIc zjq_(GMk$P&#RYzclAhFyf_k#4SlnMD3D$p+`R(9O@1~bIuCg@zpy=C_?INgsSzhX) z*|b*+2=LpwM)x|G!>8>`W{^}}ERoBegA~sKge^O8)(9J@f=PD*g)Gi_OAas6Ee{F6tjmkxiJlx?>XH1r|`l`^RqzRw-UQ95KGQ>|9 ztcj79H9Ux)d<%4kc525w_TvcIh>Kv6*BQEXs!~odPU-kgSbz^8L`udZ1U)U3R&VZ_ zwz?LUGmj_u!E?-<12?h@7$e9EktwEeEd1IxO`0ZSbDcvKs-NwqeF< z7ZtA!ZNUtJPH2tVYSm**BJ>z*z!QXES-3+TzovO-vM?7P|9JrL#E3u_il$*(Tg8uw2Mz<2?55TD$CQ~7@icAh)J{$V@?1^q zoYA-FuerIPzA>1K$jytbMP9|@njVQ72-3E-G$IY=3r=Cx48+YNcJoj>57*$)Ir!}C zwTI|%z;B0S2i=2d%BIzCBm>`e?$qXdnS^k8cgMYsJto@8kF?E zZdnW+%v7K*aF7f9p`ni}$lU^iTw}`bO{;ov8r^A@Tn`GS(3rqQH$r*k2~j*z;9v3U zsr#D@Jh&Q!LPq?ORkH}cFUU67V3)?|0984)DabaNL>-5J%)CU5L$~_FVWL)hDEzJD zG&|DhI!DUELbQIGF)Ko|1{j{8Y}O_BaUzj1^~(doJ%8zjoOk!HB|m$-#X7f#NA$Mj zG5kZzdTI=e%A(E(m_li%B?Ma#)ly0JToD|0dFEPrsN=C+^adwIJMLwen|%}YQ+_Xi z@{_)nfV$Zc#kvB*oCRQqGj4=KcX^XN74?$)QW!VSMsZ9{nbd13=S5-DFVtFRJX?}G z(&^WU60paPl=C><+Og(dVQrcCS92#4dIW85e^NeS`uQriN(KNAun3j)_z=6ya_2h% zlXL3XX@KzT(0M-&zg@6`Zwy^`7k<@xVX#8mbROC|f~ z0sgG>e@3{h&zMSiVUcJ&FEsf-b@Na6%QE=i5DKEBUAX_Rr2iS TestBlock -> TestLoader; +} diff --git a/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:C*.jv b/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:C*.jv new file mode 100644 index 00000000..0ed56a14 --- /dev/null +++ b/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:C*.jv @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: 2023 Friedrich-Alexander-Universitat Erlangen-Nurnberg +// +// SPDX-License-Identifier: AGPL-3.0-only + +pipeline TestPipeline { + + block TestExtractor oftype TestSheetExtractor { + } + + block TestBlock oftype CellRangeSelector { + select: range A1:C*; + } + + block TestLoader oftype TestSheetLoader { + } + + TestExtractor -> TestBlock -> TestLoader; +} diff --git a/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:E4.jv b/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:E4.jv new file mode 100644 index 00000000..e004eb92 --- /dev/null +++ b/libs/extensions/tabular/exec/test/assets/cell-range-selector-executor/valid-A1:E4.jv @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: 2023 Friedrich-Alexander-Universitat Erlangen-Nurnberg +// +// SPDX-License-Identifier: AGPL-3.0-only + +pipeline TestPipeline { + + block TestExtractor oftype TestSheetExtractor { + } + + block TestBlock oftype CellRangeSelector { + select: range A1:E4; + } + + block TestLoader oftype TestSheetLoader { + } + + TestExtractor -> TestBlock -> TestLoader; +} diff --git a/libs/extensions/tabular/exec/test/assets/cell-writer-executor/test-A1:C16.xlsx b/libs/extensions/tabular/exec/test/assets/cell-writer-executor/test-A1:C16.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0544fa2814c07cf9c2736a400489785567ac1b4d GIT binary patch literal 5904 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 iKeZoH>)#zPf&E{DURe(D4p