From 08cc315a81ce9d3e1bc50bc098f11bbca7559ac9 Mon Sep 17 00:00:00 2001 From: Du Qirong <3577669408@qq.com> Date: Mon, 11 Mar 2024 23:55:21 +0800 Subject: [PATCH] Add files via upload --- .gitignore | 5 +++++ Makefile | 27 +++++++++++++++++++++++++++ casegen.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ runbin | Bin 0 -> 15728 bytes 4 files changed, 80 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 casegen.c create mode 100644 runbin diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4bc5db --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.o +calc +case_* +casegen +out \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e46d5d3 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +.PHONY: clean + +out: calc case_all + ./calc < case_all > out + +case_all: case_add case_sub case_mul case_div + cat case_add case_sub case_mul case_div > case_all + +case_add: casegen + ./casegen "add" 100 > case_add + +case_sub: casegen + ./casegen "sub" 100 > case_sub + +case_mul: casegen + ./casegen "mul" 100 > case_mul + +case_div: casegen + ./casegen "div" 100 > case_div + +calc: calc.c + gcc -o calc calc.c + +casegen: casegen.c + gcc -o casegen casegen.c +clean: + rm -f out calc casegen case_* *.o diff --git a/casegen.c b/casegen.c new file mode 100644 index 0000000..6c736c8 --- /dev/null +++ b/casegen.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include + +const char *ops[] = {"add", "sub", "mul", "div"}; + +uint32_t xrand() { + /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */ + static uint32_t x = 2024; + x ^= x << 13; + x ^= x >> 17; + x ^= x << 5; + return x; +} + +void help() { + printf("Usage: ./casegen \n" + "Available s: add, sub, mul, div.\n" + ": The number of test cases generated (a positive integer).\n"); +} + +int is_op_legal(char *op) { + size_t sz = sizeof(ops) / sizeof(ops[0]); + for (int i = 0; i < sz; i++) { + if (strcmp(op, ops[i]) == 0) { + return 1; + } + } + return 0; +} + +int get_num(char *str_num, int *num) { + *num = strtol(str_num, NULL, 10); + return *num > 0; +} + +int main(int argc, char **argv) { + int num; + if (argc != 3 || !is_op_legal(argv[1]) || !get_num(argv[2], &num)) { + help(); + return 1; + } + while (num--) { + printf("%s %u %u\n", argv[1], xrand() % 10000 + 1, xrand() % 10000 + 1); + } + return 0; +} diff --git a/runbin b/runbin new file mode 100644 index 0000000000000000000000000000000000000000..04824052f70099cac8b989ce5673a8444c3adb03 GIT binary patch literal 15728 zcmeHOZE#fAc|Lb{&uZCSE&2jhfbGRdLB>c3Nyb2NkcCoXn>MtL8#ne0tfbXPt&fd% zmEx4ZMgo_1m`Y5N#%(n=)8LGMkjj&|4HnpDjMHHnI%THJ)HC%Y{2)_i;%SK?4U;-m zpXYpNkM;@^r=7{4?r`^>^FHr+-jDO1bMM|O4t;9(Z+f05>?a^1g1z=gpwNc%iETo7 z6=F}DNQsbW5LKd51ck^(l0xiS5h(CLQ}77kh~U5{dwqov&A@oLICaQ>4u=qd0*_Z~ zh2T*JNd=DI`BAFFR3NLrb}k5x$qMntx`?=f@PsJktr6b?$J^w94Iyg4=ZUVm8pTaJ zopsuNcR`4qCurk8e+3&!@%Qs~mY6v1WD7pPuZ}`kw5zz2=+DjVtV@dXGuMp|+V^(& zwRpU@kjIe8V+47OBVOcN@kKC(dBhoV-Nt!_a@s93c6EPefjX4`WUgy|Jo;1h$#!9| zskN8~<{dUCBTn8I^P>VeL3ub_MH@@R0viR#Mu9dk$Tg2q`##Tq6?pILKu&Tlw1hE;ol{x4R~ z?_z%I#9K2dGsg{>;|-YOX5_XRV=xZ=cP2#vQ^YtiSCrq697>Zj7pHy$aQb57Tg*Qj zUlQvQ#A+@!2)%YTV5}a~iI}){_1a1no0c#5IYyCL8Wh zM~MZsU}|W2Km>7wM3>qRSi^SRv2AOFZO)fnPq(XsYshnr$#D`ftwxR+55^wDT+X+_ zhj_6c3B3=I?>^(-YRE&tt4$wmjJGw>QHUB}b&cpX?Fp`TrFV+HE_cQ<2J&g1j>3r{W3Ejw1ar3%v?;_{Y%UB9%(V|U**m?J6FW*oVt0tX6DY;X6ZGJ>)PF4>njS# z#oONyrvuw>1v}az;`~?iwQKP`&K=7!zrYyO$doW^XijuA!>{Iu*)J@wt7G?4>tpHu ze+BDjHTJ2bSwrHjz;+=!+ByW5IqD=(2yEZCq67Q$+cS2ZvQAj5^{IAo@ymMuqKrAB zp2dG^@-sK5_aWv(>?^dl7w+1g9M|J+e%ao_C{&#O?>E+UdT-6Nd-@)O_Amc0?UQ3q zZD*Zu_SzN^sM~C=WyG(+25M(MM!n}PjFB?NNIi?&7|C%R9H@_Z4%SL(o+u*+^(^jk zh-60{*3~=**H|eBW#piq#VrT&sjesV=Ws3WAv%t6o^0%!O|96NvF_$=aSfK*qKvkv zXK`!G#$4xcpzY(Jj2zUnxXV$2m>V1pw0#_uk%M{`w;XQF&9ys^H6!j2;(k}0pLq}Z zS8y%7isKp%`kaEj(~!R_-d=ZFd~cHZ`D;@fXCbFfL-JE~XR&Ynu927Kjn`7U9?GICJQ;+Dha4S8B;W3Er_6Ss?b zi(?CIpDoI0i+UEfwrtGX9S*d89F&oRdKPy%b|L0=hXZXN2W8}-p2aPPjhX(qwer5e zy*u=8qDF4v_|VkKQ?Pdq^7m0IVG%}K*ULYA%zEi`d`8>nGiCIddKR}n+uZGPIMDWS zP(}{wS={9qL@c`<4zzt7l#zpa7PlNWcgWQ*RWExSTWI@iQAS(Tv$(ZoWB!c8fwqr> zGICJQ;x5Ml#Qc=Qfwqr>GICJQ;+Dh4Tv{)}J3kZh@SDuTJr9lw9Ms|7@(y@}_x8FA zsF!zs#d>+h@fmHO&y>+;>RH_SY;(8I;XvERK^ZxyXK|O~7-H#hIMDWSP(}{wS=@5i z+#y%LRK4^&w$S$3qKvkvXK`!G#yse7pzY(Jj2zUnxXUq(n6nNC+CC1-$U!}eTMip@ zX}#2-UXrMn)u@vcjyk7aE`X;7^-_;J^9#4Bms5AR9_1aM(f0XF8GWXn#jVdacl#X< zw0#_uk%M{`cR5}|?hZH{X!|%QBM0>?ZaHl3kSkR$jQOLkM+L_g+CE#9(H8YAZf)6^ z4?7%a`#2~g2lXuOa=e3>k2)M^`#2~g2lXs&Ic&@gsD}+WnsKz@*n)#TUIza~jB7xB z#Ic`TyiI*vzC(Q+b9_YG=ObnGk$M)lKH6MOIUH#FI4C0r^(^jkTtzHjbvV%WaZpAM z>RH@!6mzBPgE4OEL8ZcA~TR=0zSwpv>kj%jTx>2F=wZ);}X_~6)Xd!R&b^SoZsRY(7Uk{BOQG2Y*} zej`&`^l!7Wr*o(Blgg%ZInIss!Aynkr045?H7)ly+L_v@`s?+Hv$fvL)y9pmd;;%y zUcvDyj@O*_IkYbtIWZpkosVe$a1Kvl%!dz!@5XTtj;925ZjYb61HQ}ikLNon%YW$( z_|brWyz5^>P~qoX{~H|sWXM0>wLi58&i7;1zoXJW-nD;o5!@YL2!HhW<}yF-`Zst7 z{F25O#Gi8f--q{x=q|u_;f0@#?~$E5x1}1M>>3-+kEJ#>H?=l3H*OkJ-A(ryfp~Z+ zDEfxSgonq*A|#&<>6eT6_I?OS{7rm4h=bL%fjVsQ94K4938!GF>}8xnc;YX-Bk~2D zn3z-SPO~R-n*bzVLNjn2y%zKubT1@_(P^z$P$Zm%;`1xNse0LP7K+c;>0Vxxh2+3+ zUPMAPwj>hz4o*QY@_RT%X)E-P`0@^vwIBhUxMS>2vnNN!@<3|XrUL`8d7$2L;6Sr+ zAodsseJR$aGzVj^vwP5Vv+>mkYd1vU0pT60)MNUEC=W$K+b|;Nh4%uDvK>0Yp?T#E z%WRO{>8}BiImqXI=|*Q2lN30va*?k$u7tC~8>``f!0{}iRv|)9c%Lhyd#vqSiZm7w zBJr$3ma&Zx6NglHeWmJ#VmWr7HgWXFF0=d0d{~!3m4_(yBIW5?JqjL2LbMbKJ&f|?QxTH9Z+Z7%v1ao@a~2NCuUcLR?5O><>V%1ntRO&Wx5*g zoVDpqH498{s$Y<=7Mmau`W^?aRi({6?X=?gEO}VkYfZ+`L&dJW&k0~{n|3B5Lf__~ zRf>cA=268l1&+j56_T|1`wP{zb0v&lHiQiA zLo=*bU)k@Y9XZGGkuclbWOaB;E>Ic@)6#Yz-gLCPAA)MCVbut6FB{^UPz!lmkzxK} z##1;hK|&wjB|%|jm?6w6tsg=f-wu}vb3eX_ZSeCL8qm99kcN1Km?FG*&|XT4!fN3J z!yC|+!9BHsLhujJjCAa8El@##A8ug~xi@r}JSyqO2 z@c7iBXqsbd6C@2DzkU!a$6Fa$q0pNLqYFnTZh>lGe2zB{^;-TMt(I27H;ezSr1MIUE(lYtK(isspW(0Fs~P_&=@Eirl* zIG&IGg3fHM)UF>r6n&cTHav)BDDNGNXOV7}!#AK8LrGKzwCaT~iTGuMy=Aav2D=C> zxkQiq*Ana!uxAYRvl8qwunPvOh99)I+;F}NEFRUIjM&BA1GdLt4By4B0247iuFqhr z4Chr~od%mI!L9*2YOt3|u=j!8G}sw~tu~z3fo+Lvd;d~`-2`^PU^hyzTfmyj^|+-d zZN{+1aDE6ZZ?OAIu);wRKW(r_O0dJg>Jpl>+hF$^&ZEHk4R)vmI|l5O!TzcQn*z3P zspkBy!PXhhuL3)1uzxPWUI2E@VE<8qO#}N(h31T5dt~elhVull7Yv5K=UITA1ooc6 zc9vkT0Gq1RoO=z{XgE&+yKJyOD#2a_maNj_zFva82JEoGzGJW^!+9Fm1%v%l33e7( zyjpYqxCA=~>{Wx6NgZFS;d}?!O@pm1!7c#XQlmL{lwcQuoiy0f25U2%mw;U}*dLZ) zmw|0qra8Y-g1rmuvcYBywq0$d!Q)qeC70`Q-!H+g0(-__|5k!sJ1EL88jN$k!}$3A zL0qu)ov7N{xmT&px*D4`H+5W@ut8SGf{9g$O0Ozhu>zafauG~yi~UAyYwXc#Y+iLD z7W*VLFto|rQERbvwU1VFNPF_@9km`5r4+%49T!OAiqTdgC^J;}RS{VVR?;u|1iXlT zLa-gffO*Sgh{xbx6`U@oI%0u|1qw?S_vp{HM-_{s@b@;6FVxr38LpspB~%)fw4sEH znJUu(MViEI5{AGRGp1aNmL?LjBr3vi$KyOX)780Wag&G;ZA)}8^$oT6r`hkoek>2BSedLoe z7I|nwuEhP7_n55YX;v=Rry4CR*Qc01#Se4f18U&dgj_x$%V%ZPtgLuU#vhfjak-3o z$btvoba-%YP>0pLRl$Q8+dsV+eNqh^(BDOEC(;pOLZeLL_54aQ8F004ostH*?A@3fSt0&}& zv$8t)MdTTI{ZqL#_=Q=S085ZbKq4n(1!iTpY=G^W$e4^xK%!L2F(tERvRmz(AsfYz zIJ*c*1vsl_4I!l#gcJuYreib4uLOG?jH=|8OiJvmti(hhKv+DA5rG<1>T@WI#%9m(DU7K-yYR14svw7(Rn~+b-oeCuT|HZ|F=loC(~J_2V)yL1)8} z?aY7Vs*La)z7fEmf_r#&3*&rz<2Rnmr$_TmPtY=K2e>9{AAfv8jXRIKmY}!`fPb8R zVyj2RF_4QjSn0u=1%8BYDnBAuaSAEt0;(-PfFPm-VI^2XL0k!Khmm?3!@{w(CaW;%t_$7TAz@dA?wii32KSyMmM)$L28~9>oZ(a;#hPsEccnOmp zO?T%rqXO`7clJ4+yZcAQNOmwY+?Vec8~aCwG8_8_@*7)PS|4m}-P|I&`78~3&=6z8 zxq-f6yul%p8mu|+swXS*8JHj;Uhni|1_y>{HkZj$HcTPToA}j2IFrv5>G(93Bk3cb zPsFq?%KWLzzK*4UaUYy9T<`gM&Hr z_V?kfmlF04>~9=xYi_1u8c{#g_G~wrz1jWyae_8`7(BSYdsAZ$U+4~GbFD2}oI}J2 z9Amo%9-^=h|N45mQjNKM&qH|V4R0EIF+Mv0qTb%o3|?=ghkKA3El02W*~aYXNIuh@ z9~srcuCal^JRTw!F9$<=`MypJ?d{9t@knWCZ+47lyJa)*ho4BbG_`IKxskEa?hLb; z14lYPFhU}*sq7D6o^vj?K(WMOOOKAG zpA-3!XHg^gVSod#iRL^!8^5RgE_IKnE*iKOdkT%tL`CO|UT68;2g>i-^@D`ELK3%6 z59jf~F0BA8MFo89W6PpW)~92iiFPI;+D>55r(>VJ7Imh5I`%nl(bi#~j(rT>nP}Mc zlJ{Z&Q3WoR-?jS(KP<*&pK%v$J>%oC&)_=~N#pZ-J{|k;zv#~%pN@T9QRMOG$G%c2 z@=VS1EH-y%aW`!rbk4`HPY+3PPJr7-qw}~kcf8-H&L!O7@DXfhB4u;stCc$78*tZd ze+P6XE(EM{@RfwgER+`g1PT-f)$PCje{8z1f5Gtoyy-sfaq!tU-`BrA_}G;4V9D$B zARiMtpP>35Z$&{+@J(Ft6BPK1Ugr}OQKv_K{Ni&yL6wD~Ajtnc;CzB2VItDPkod`* zYmxmbN1uKEh_>sg3Zql#+c{#t0exF5?DIu59|!XRawX#5jI*6{;-5s{t_Su%g}$9n z_IIPt`$(MdNBW-N&81yq#Ggjru3h%|W6jnf`+VGL*An}q=-YZ{pZC(XCfLWb6Jggm z`$y2XYl!`0=yN_>ab`SIIP8aWym-N3~%?W;E4B8!y2i;RTlfuFs+=_uNoE-Gy_0 zRG<58E1%h)7fqx5+l$^2(ezu7?s=jK*QnmXbYBkgk)CuuEt>Rqwr5l{b&m`UWpKf5 z!bPhooyQfmYYf3cC(||7w^!5XcDk!;H1h?E;O1etuc$bPzb~;6oUzT`(ex00lK+yQ zRnSBB&58;X&Y|6m=UnzvVH#_2#wyHmCG-EL^8cy2&k?wS*D=51PU`bD=viA7SX<0Ae&l79624xBUc0lsSiR4e==})qU=QkT zQ4O_veB0~t^&_DLrJ=v