From d479668213029c3b175a85f59a160ce31ded7233 Mon Sep 17 00:00:00 2001 From: Mateusz Masiarz Date: Wed, 29 Nov 2023 15:16:59 +0100 Subject: [PATCH] Change naming of model solutions (#291) * Change naming of long names for model solutions * Fix test --- oioioi/sinolpack/files/test_full_package.tgz | Bin 8151 -> 8149 bytes oioioi/sinolpack/package.py | 2 +- oioioi/sinolpack/tests.py | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/oioioi/sinolpack/files/test_full_package.tgz b/oioioi/sinolpack/files/test_full_package.tgz index f07113f2f977e6ee5eb39c1d95274485fc008e82..0996111e846cf0408a046fde96e6795742653747 100644 GIT binary patch delta 6304 zcmV;R7+>etKh;05SqFc{f0=wPQz+zl{Fhx)=ReK_dj0>_-v1Bm|1F^X&+3`Hvi~!J z5&M6yTpx`(asMyQCE~k(JVDOZn3mSUH(zB1QvmF{Pqcv5notLS)X9H%vHA-965s1R!2Qa9 z4Pehp?6OvaHUd7B(HtR>pGRnZSJGITqg6qI&KSC1oW^l{I5WPg7+AHO|||4nZP@T7nDzp?$l;{9JHr@sH34XFLUml`7a?^@~FRLYp7|Kj{d{{2_hDCEWd zKlT29Ht=qr|CVF-DKlt(`24rkCrkPDLP1|xU%!8EA!n@JTezRUXDsCJ7w)fR^)
    Ck81n=NDF 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 delta 6306 zcmV;T7+vSpKi5C7SqFc|e}dMQU|e6RNa_bdN3 zfITm<%UTWE2>4J&bA&{G9-;YNNn>e_Rs{(YKZ8+Yo%*bDPxlUi}N4(_g`6~kQe*^ z)cgP0z`K3^TaMkQ%%J(<^WRpVEale=1$|+C{r!CxWAUw*9=2n zSLeS?goysbt#72u&E}gfW0L-7ma+rqKW5eb-&w&$^uK?t3H|@Y#aKr4A1VGG{(dlk zGS^T4-8KZFjUhX$hNSzg8@PiR&dkeU{+uK-*euQp@9yz3k%F&H*%x_+{!;5;s3J zZ>Gp+w4X1tQ37q z4E}4?z`!Q-h%|dVk69V){R1fc5jkFol-7U4UH=j!3H2-2Kz%B%TfB9PzRJ8_>9xm) z_Q-T7nWItYm@caRTG{7!0DAU+YO6n!?0+`DR4@kDe+;$$GaFdE^9df(iM>x2z(uQD zECBz_sh5xNXj38%N~Pe-dF_f-M=#KA;hCR)nSgbMWH3>r)#lITT0P0xyJqTums&4ojrzHrl=o4-O@v z&6@rxa}XJ-RmL>Q$qG*%R~yu_(-2L5GS3-*$q#+C=rVsY(gsw(ZF;m-r^I8_+ycv* zkf*1HN37wnWLlzTmdV!*ivoX#p0>ewJo^KtqFS?GiWSi~Qz~YU-Q))v}cg-*%mbbvqHAQl_DjdG1CEKmLEiA0=I)31V zbv(`%9-3Bo^dEm&W)bWSm-m?qV#Rvx*TPE09*clNu*hixYvl44LVHPr1+IVDZ5T+Q zL_Lr(JHpw>3d`*y2N~X3L`mPWDh|vEWOu8$y|q?^%a_GZdecNa6|tSN9YQM~P`e7f z6Vw`yVyQlapFz47ODvaha*rp81Lfms5K0UX;<3Q)P?BwxVrgQwdxZ51eaopr7nsY- zB6TH})}SZx1iwX_D@eGw2%~?VKpzDd5FJB6L_#0K9kK8wC7i5UjJEkU* z9qge>(}R>s0(djeOOcx!yE_Nu`TizH!uU(DDEgvXe{|?P_i;2XFU#KI=QyViotw!O zWXMjeAYq7mk3m@G5FH-Qu*%WVOgfmtoUlQ*DKw7PW^)H7Y(0gy&$fTz)&N4@SY8O( z10`Z!Bw-(>ei-qb7}Plc0Wy=TA4mYAJdEQYp5$$2)ZPgjB`_4**pt9Lqpt|fyQnj68AIbbSjYos_JRl5=_veqHF` z0o4%d+AbD|KY|+SlOlg(az8t!HdrXvwaI6QkX(uJ-QHMBa9q<3!Hjj8MUzHxK!HJ~ zRp!!?a*Q<&gW;4AO%Y`S0>g*I=1x*nVLVY!T$PK<>q136+1lQ`L-^U?-yQ#r*XpO; zVq%>=0H9T_H&|Ym0Caf2ZZ&;EZ5zGgK&XcgV!~PG<|Gu)uYYgfh z*W)Pr?d{#2FGPRk2aqD=NTi{LL`s}sSjM$ze3{QXW*Fc39KvQ3*D(W^_~(t~ZQzp-rob127o&gZNLe@mfl9(0=Haw2bnzTL z>?>}%#{nl^pRa;Ce9}XrUfo5_NdnBAZ0~VVeyY9wkev)*~;=ajvUp(r- z2$!i7pM8HtYNG2uH6b1R6PX$_Lq21soO@zKyuCgP_91^XMR#CG4_k~0zSIr=9XO2- z^mID&6HdeLz=(B%$035@(21X76+0^}IQVJcByDW_5OSv@E3WpQOx6d_}Ve&ItALkUI) z^Y(wi&S4~?>-tJ>!dT;3ulg9TSGx7D@i`%&mfcGder4CE>6Hgn#XU7#`WuMKCD-En2I=?cX_s3uEYn zJ3gL{jG;pp{hVqBW61ie3g?zdzWJulDe};7J)fDGV{Wht1$XMgD@CF>xte-&b8l~V zFM(*w-HF-Ub+hN6q8XBQmA(&?Ol)*r;YnSy9}S-73p0x0QA z=JBs`@SO#?COqP#B{VWtu*@-PLC{=YTog`p8uTyim#S%6PSao!t&1J_i*@SRi$3#? znYZY;CM%?CLBk&Jz$KPa5QXx_ufEb>bC0W#E#!=QnG~etL`p7qPal8h9^!(okt^ix zW%Ieh3Xe-fKw}^Q`q}uFp0&>NlBHuzR(qoFil`fIiEi%u=_7E4{ony2(sP-+UUH1h zPvd2o%w_@W1`20Goj2b77W7EC@MvU-y)P_QcQ%R#fBtMUfp!Q6HW>Kip$HE!1xA98 zOGqm+4XiE^UrO*)xIBO0G~!bR(mCu#7D#vZAxUt)Nl}w%2#_QX9snnDhZy-}m;0H# zO4S7(Ju?{eS}j7;u3!Vy9Q;hd4qC+mXUgRz@uy3P_0$6+KNtYDoQMB8DH9x2J@l~6!`z&-m&(yaRfhOiT|)rk=)q^&NdIJjx8C2C`v;jpi0#g zS?31?Ts}TNsXJ+4bd)x&AY1-Ql*xtR}ncdrY?(Bcy5x-=b*8L7mtIVgDoHepI zJ{N(~!E)1mGmA5p#T_=nhb9N*McSL=A0(?pO*7x}JQ6Aa(ddDC1<4K!!Io z?dMc$$l5K|GbL}xUh$ecg&hK(o(}unus8MK`?Uf08njDoLVJr)fl|rGzfN-+`dfdi zi*YcK6^;=l)>Vjc9j*c>#$rFzs&MxY3<8Z!$)o5!gx8*$g&GQ2oUT+uLM_F_>3BLE z5S1S>C{BIOGvAnVXai#mu(=c?0`*8a&#c!j9&qAhY#&;4pGP)}0J6k+19Is@-+J$O z5vAN>i`I)#8p1{V%~0Tw{cbLv@a2C<7_o)d$mg5roQ(;5$-hu?NkXM_Vo1bR=T|T- z-fjp+#3PujmC70GWHSkB_09OCdpU)0`de`G$4A+qd2@c)=Ba~Cybp=2df>K+20d%r zU|=iK^bwFrWKo@{xrdq!iU=cvCfpkcg&lra7^ZJ3I*H5LRr?2fJG#4G8Hb{7ABkJcevC?BsYl|w^GGQ~DD9<~A}KTlwv62A7;xF+ZpR-iRe9s;OEp&UhGsP~3A!B6gqBw)EeKK!zCu(kibv$?gO)Pz;+ zoCZF3A9OnRSI`}*wGN>(MofQOEqmZ-Y|qO%At(AWuup@0fI=zkX7>`@#%R=vJutAo zQ%YwNQ4uz1t;@b!dpF_m0ECCE48K~B4T{*Q0%f^jV%t%N{AgYL{ocES zt<8h2*KVw(vLNp&z}LjJ0uBqmDyl@bD!+>cd88bhag1-f_5v~&itvBYM33&SFnY}c z6Jl)VW$+R`K5-@^HVqA=yf11HRpYj95J8SY8+|kCC0Suf_Rfp*@(wZv^^K*?6PgmdjWg@MOM zZ?(+fZ>0{6578R2Wte|8$P!fgazRh@Z7G4zD;M~HxV3#SZ5A198b9CIcWTAB-GGOf z0hmQ%6#M01dz%Fan6^)jts`l{)knv!#kFI#m=*^S5o%c?g6c#V$y#vcp46nng6*V^MBM=YPEHw|J7QN z|M6LhgZ^_;r=-LNAd>X4jgh)!Bb!eB2Gk(<>`}gq5veh*n^S zL$m__wlpKz%!j>qyW4+`d8j@`=5uEwhUN!8a-1~2#mZ%qZ&65Vm5rL(P6NKxpn7w1!N{@t5G2tA~j{2zblcQ}3m36RPE*Vd%{x7MKipCAPa z`|nxGav6z6ht6Zd-^mqbe!B?=l=2?Erc_?ek{Bo- z+RnUR$qZbjxHvKd&F~ylQ!`y@r&Hb7&}l+D9ZWvj>Adow7Q?wa9XkyvJzw42w7T$z zu@`?dBzkR{KvarRsMOg**~Ui8tY|{T9IsLNL}3Iq=Kdep#ypCU;zRMMf8S0zN)H+1 zR+%0%EAOaIIa*2)%SOVmy=^I`Z^F})>5V0zu^$S786Mks)Z&rgSPk6&3VH5~%vp8> zH47*S$THvCUQ+iyPz==^Rn(iuVjsmsI3j-}rH{aC9#~X;=|ou@Ms>qoU7PfQq4B1f zLN2(9&Hq6#KR^EuRszNU8!Iby${Qtky3jg2p6s=&LOh8u~hM<ALm?zt_W z6X%GbXU`Bsc+%pqG?GAIK6KUr)R_I<6Zn$U_nzz0~GuL zYFhL|n4=c`*Qb-HdpSJ&yNmC!iyLO(TX2Ld`mfhO{;#YCjbOb|C;M-0y&e?w{~X0Z z|2hq_%>iWispJ8(HWQe25d5q~At9@P@RrmuYm*0^qJQtzC`wU^Qk0?;r6@%yN>PeZ Yl%f=+C`BnsQT|)yA9+upe*hQ(0QSiir~m)} diff --git a/oioioi/sinolpack/package.py b/oioioi/sinolpack/package.py index 445c91e3f..5f4e29b8f 100644 --- a/oioioi/sinolpack/package.py +++ b/oioioi/sinolpack/package.py @@ -1248,7 +1248,7 @@ def _get_model_solutions_sources(self): """ lang_exts_list = getattr(settings, 'SUBMITTABLE_EXTENSIONS', {}).values() extensions = [ext for lang_exts in lang_exts_list for ext in lang_exts] - regex = r'^%s[0-9]*([bs]?)[0-9]*(sol.*)?\.(' + '|'.join(extensions) + ')' + regex = r'^%s[0-9]*([bs]?)[0-9]*(_.*)?\.(' + '|'.join(extensions) + ')' names_re = re.compile(regex % (re.escape(self.short_name),)) progdir = os.path.join(self.rootdir, 'prog') progs = [ diff --git a/oioioi/sinolpack/tests.py b/oioioi/sinolpack/tests.py index 470e1b418..1a242148b 100644 --- a/oioioi/sinolpack/tests.py +++ b/oioioi/sinolpack/tests.py @@ -457,7 +457,7 @@ def _check_full_package(self, problem, doc=True): self.assertEqual(sol1.kind, 'SLOW') solb0 = model_solutions.get(name='sumb0.c') self.assertEqual(solb0.kind, 'INCORRECT') - sol_long_name = model_solutions.get(name='sums2sol_very_long_name.cpp') + sol_long_name = model_solutions.get(name='sums2_very_long_name.cpp') self.assertEqual(sol_long_name.kind, 'SLOW') self.assertEqual(model_solutions.count(), 4) self.assertEqual(list(model_solutions), [sol, sol1, sol_long_name, solb0])