From 1860adceff8888321de3903ae83e9c3a1d843a37 Mon Sep 17 00:00:00 2001 From: ag Date: Sat, 21 Sep 2024 11:51:04 +0300 Subject: [PATCH] bugs fixed --- .gitignore | 3 +-- 2Q_cache.h | 60 ++++++++++++++++++++++++++++--------------------- cache_test | Bin 0 -> 78408 bytes cache_test.cpp | 6 ++++- makefile | 26 +++++++++------------ tests.txt | 8 ------- 6 files changed, 52 insertions(+), 51 deletions(-) create mode 100755 cache_test delete mode 100644 tests.txt diff --git a/.gitignore b/.gitignore index 14300ff..6aa4673 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ *.o -* -*.vscode \ No newline at end of file +*. \ No newline at end of file diff --git a/2Q_cache.h b/2Q_cache.h index b34eab3..77f6fae 100644 --- a/2Q_cache.h +++ b/2Q_cache.h @@ -18,68 +18,78 @@ private: std::list q2; //slow queue - if page asked at the first time put it to q2, if itasked from q2 it put it to q1, public: + int tic_number = 0; + TwoCache(size_t q1sz, size_t q2sz): cpct_q1(q1sz), cpct_q2(q2sz) {} //ctor void put_page(int id) { - std::cout << "id: " << id << std::endl; - //std::cout <<__LINE__ << " " << __FILE__<< std::endl; + //std::cout << "id: " << id << std::endl; if (umap1.find(id) != umap1.end()) { //page is found, nothing to do (fast case) - std::cout << "id ="<8#`Dn+Z&qD93tH~-_G8vb0ofdDB?Vl% z`L&egL(a}QGiT16IdkUB?Cjo82TSH9Cnb$D_!?(?%t*rhy7MHWi1DEd2`jH6qrf=H zC^FKGvyJgUrQm;&B#nT3lO;jH37n5Aq;gZaW;Z;O^C_rmCrIV|uBlTcML{D?rm0*i z-KNtYTN`MO~yXmly)E?39p+;FZeW++H?&{g(otma7SE9G+aD^m(aIz3Y71 zMgAil|J~QOefXF9@CSQOJ~Msr#Xfp?8Tq~X@uxodcRZrz+eUtu~{zt+AF!xS_ZjxIlGXxW$aMgrl+6;_6^2^U`tdJ{g0&9=D zs#jJ8SBg^p)s2u))*fvSHlSo#tlpEg%(R3=lp-{7lgrKWOfy)PZ;sZ;vK+H4*DMd1 z!Jv??slGKRnk3lH4IHV^&@DB$ES3{#tf}`@iNDBs=zHo#-;VLo6e?Ye1|3=9yl^u* zw$8E1a9)og-5+yT@trSq1QHIccj>m!ZJV|Coq@3b`#rNK5(sKYXqtW2}C zCE5@%TOxJg);hDfsXki0I*C#!V zi_JhrwocLSGqM7XWFQwoOET7YDdJx$R&*)&Pw8>u-*NamfiW^qig7&C#u+DwyHt^z zN+e@7N~t8{MDaIC(1|0Jl~)p|Q?U3~aboHDt4}nLeX?UW6i3qS2EK)S1J$ z?RR_u5%O`y$2i?KEqXkyM2oHRFV^)gnE?sNwW4zJEO;`c$Kp z)3FOahr1NxMozB~`NtWzaXKQ>$;OwErc3RsaMGweU*d~+-$dc3Uo7z<7e1ZyPvH1b z_v*?04q~SBP{KFbP zpy8*o{1h(F(C{i=hVsRpfg-8+n()~Q3D~|(CJ=7Jg6wOZhDS$R*9Hxb(A~OvG`zA& zB5v03RJXdeXn4}Ky6)BRB$K*&H9QQ{x^`&z6D+J@^l5ku1nb(Z;U`*H^sk1;z_6~p z8h(<6HH<+GpQhpC8vbMrKcwOHbGALwESB%`~@2RUJZYd zhVRwzv{qNw4h{cNg#_%=@R=I^*zGY59Mixt4II-+fk^0{?^i?y}Mp@E_cFhn1#4|KPrxtTY9;2luV8(zLKTxG!v_ zDbPQ-@8edQ0{nyfW?5+p><{h>SZNCA5AHk1N>diwu@Myo4robKTx6%}_qy1Kz0(G?CN>hN2_FHKR%+Y=;O#wODZ>1>^NBgZb1>k7E zm8QTO?YGhtaHIWJngVUK-%3+}jrLn<3ak(AOR~}wP#@g)mw%}Cr;GIOtTYACXup-F zz!~kg(iAYG{Z^U+WwhT)Q-F;2TWJc6(S9pU0WsQdrD-9H_FHKRjM09ThPD1_BU$TQ zL)a_Q-CfS~Ew1!hSGvuWZg8a|uJkfjy26!S=t>7&>C0W|Tvz&HSNc3x`a`btsjl=% zu5_v^{g2z6`uUqH{U=xYRag22SNfN(^wX~NW3KdruJnJq(%*BXzu`)M&6U2>mF{+> zZ*is9y3%c~bb~7$aiy2J(iN`sLRUJdrvrZ~?tJ#TQ0L2`j#q|C%Y%Wwz!RbF%U^|C zOq`mHoQG;NCZD|?Mh*wveR&j^PA|G(fng_^r6mYLY@8bGI%3KQ!)q1j-jOW zeX(5VqPUpyJ&wDL)Jo8&qj;$6)IV*Yl@fyzfk- zsuV#;bBHih=$0ws?(tCPuj4OS$f-8+N!)hHT-5_zw+L3%yHPMxHntGGb=Q^DJ=Aa8KSOu@@p=%UmoCu(pg=2R zUqV%>YdAZQbCIt@^i9&f=g?-bD7Tm`XJ%)QWOkXwEYD{4chRWSi!BD{GlLh2AbLq? zLdx@Pg-o4jv)C?>Rx=%{$wRzhwI5A-DPBvtyG~tvD>YiEZxdl`9liR$)I2h{qz<8q zBqECD^v7o)K0&gS^|=puq4^=AI{GS&2wiERj@PD!x=slt4UmGbM@8%VCf{U{#;rQ?;J-T9SNg-)q1bg@<9-Tik`&@$sG|>yfC(;sYc+nCX#9d2zkRshA$m$zeXL=Bt)*Kj zP#Q97ij{5oE^(4-=|yF(A}_q*QKa22Lh{8$+M!9TXwo{@zSY?_+_Cnpq_#_MqI{Ua zvS73SaSNGvfBfgfr8{+82PMgvs|4Y3%!V)BEVFzcwfETl^APcPm=-(n&to20W_4Vs zbL}uXZ79?g92$x3(NG-+(yh#$74cBV+PKknoY3BW3{qga77`n<6OR3Be{)DshK3b@ z!S2qsT`mjh3hsI&e)fjoOY7FYWWK7g77}Q0KEhrl(GnzrWq%v@lwIZ#j_V@P8IN>Tpq5u? zJpU{nMIAlJLgP?Q?y))hFSC1A)ciwYEBk#1)U2qY^8Wa%hb-!sL5<%@xrrvaS*$uK zm>^wtwjJsU9tv%?wJdwSEBMxl!C@OK^iG=XCtEf2UQyjgJ%TR$G0{VRZ;OXI2b|^q zI{9Q&1tx!;oEAKUltGD5e-Q-(#L^*|pmh~ZaPnY78Afjpg*rK zal*h8i>AF4|38^@m%EBuER|D4DsC3(3OK$~LWKj9Ki7wL7t5+ki?nvsa=DW3$|5G~ zikv0Hd9q7jFv-t?| zz<8=z2=Nyo&$xa6KzE7yESvhY;6V*uveatvVkuLPP_}IzE3Epq_;f?DUFD5j!F8%XZx(d3nX68Bq(>80|%=OL&S#rxx5 zkovLYm?HEZ+zfvBPm&0J#X!?K#FRc{ovmPcbpifB6Z|X4s|)@ogakqsDfkt(;B}pU*5?-X??pVc1M1 z>E|pvT_p5nrzcSQZG_R9i|<_fd}rI<{@?+ce!GHuCx5@MGdP4Bgf^4Ezq2!l$PCEf zq0T;Z=r9t6!RK33yMhPy&+7_4e`#>2bpjF{eM$TCMEVe?llPyGbf_>myi#TuxBpZi zRA4sT8GODYcpzo}_Z*>BytD0Fh3*H!#ImjYfeycl_)Kx)&UObevvlE+fsj+-)klvq?v>_S6Cb8eiRD_wK z?vpAcdBTR|j)p_Y9cu@xS9Rd;@hdMy9aI+@KMby-5GE_ZGhO33i~*P?(o<-Hj&DfY zKM6%U`Z8rr8`2zcA|lpN(|T{C-)_Z_8ZCMli@uVEBt;P5wO6}8UoMdB_|#SJi(1~P z2;oPQ;pbz>xKrcx1;2XbB8+2e;b%_7VAUgNmxMP9vWi(m#AorKju;AcVV8C1i1Bj8oxT8NO);rr1TV%c;)1tACFnVj_<4pS@D5T)5IL`h*;W)LSi;K z0Jg54Plu*4@7a65vb}L_*$2)Reddqu7WwjnP@fkIZCIpds zwqmpEelInI9gC?Jy}w9q80fX@wW<9DYz_)x#h5O2%d3}wd^fo1BioaSZrKZ#_)iuW z-(QXdG%RdS*e#Giq2v4G8RC%<*%hq<`{OgIwW|GMttc?Gry_C)gP22^C|MYcx82?2 z(63yYf>+zXh(S;>pfSl1HIXF33{gVxUMSJ1ZXuCSqK&KWk5{vB_Tuj@DGB_!a{xW~ z@?m*0_yMaAuac}#nUhtEV5KaMRt$Ae@MbiyM{l5b$cAXVGuR6bJ!ohzwp+rK7Hrx}rKfXrNu#{iB+lYM-Xlqsf8zOZtov`mF8W3H}WNqESd%3n> z3;M!uAzHr|er}++b2oM!5d}431QWI$C;AeagoHa1wSSy;FQju>DmOBO z?5wvYpwI^nx%_4jszQ$+vgLwh2&!;I2>F9=5(g<(= zpp9*Vq0S1lLXO>sM2G01i^Pc0Jq+QHTa2+QUKH*sZfUX-6NO_GvtK0-qTH02sr)=G zZx7CPPdKu@?2DH=scz3@)mfBg_deR14xNd%?!O2vMH@tW0Q=)ZqQw->iM?Co678dx z@iBA;jkagVIca($UeGyQN+)?8M;`=GYJFcDMjMeFj|+-G+Mndskb9*7>AdtKEZb4j zH^9y*mu45#x`jhOmPRh-gie`#ns zD%}e^>s*KdNdL*^V0&U(!5k~i!)&#Vd=sT80Y@B#22o!9~ET-aCA8QcLm(G1KmWZBEmDxjdr6Cg@) z=VM6rQF0$R%9sTO`{TQjEa}`Q;uL84rT9q{^^!t5XHV!sfKq?}W!5rnkI9PXg<23p z;5^AR))5LqRZAwY7AkOn!f6-H5FApq^+ND_A@~*uzFD7kWPHB^8x1h+{`fCN5J$VF z_}@wGL!-Le(*^7*ohl)O=vufL8>aDBe~V|kkKlPs=fXj9os;hm4q_)X19Tc5vb@~8 zDv=GnSFn)1Mkmcssuw71bcMhbLJBnsyX}!BwtyLBK|2Kc4uK~97fr=RC#~Hc7Mjf8j>R zs1p5p|dU&Qgy5yvYs@~0Ch-4UBf7Z|1|8|tU{kb%f&RS*|N9S zW3255Deed{SMx&(Q28 zrpZ1kb*4BqfVC!B&~u#s8L@F09I&FLHwA-beQK6(6m{=KRa!8R8qfU=bs|lww)b-M zSZSKjS&~nWrJ>1CBOD4OyBBqMY0mH)Z76fAqYPaN#S8g;h+@xZux^T12aeaKl? zso6IZg)M7G7xbceNcYG84@(0p2AwbLoBTa_ss4DKOp~hjVyb$W7S{2XU!ZY{{SO&& z_tO2v9NPU&FW&*|ARsrRJ?xy zg%VWDCx1bsLY9~#mNeud2RKecDDbm*0VIw;y2m2u(f3>6v?{8-&8lx~IQAe)K zHWdJ*{7yB;~e?v@Sh z(>z9Da7WwKsH&H`0J2UO_hczFm&g$h`w|20EMYK@?oX8`?|9J4A+-WgNh?SZ5QAqMo;=A}1)3AG zE;>ZEQh~f=>;m;5WujzP5k+h~4n#Bw19Z;#bDpKV&KY0x6xML3C8zGoMocI0g3!it zF%S_Yi*6mJ+F&CSbnm5c7khN*i?bmu@=`=9JhHx;x)fS;7I)2K(zCCiXQ7=?o?}Ye zj|Hb*SdAj8reB^`qAExAnWeA z^~X1m<3z*{A$8ZamUcfJbFr+G+J#c9N0CV8peI>iU`KhbHr0BH3g&I-X7nlbt5el; zM{;y`l(3MSpK;DRBWEfa;{`zPMQsCW1vp}iQ;cj`{OcI7nAhh6g;M?TzsUiNWFI9{ zAe$UDf8-&O#uzbqiG|?|V8FsL$GZp1X^`FNk07elyftf+w{zIw-yw^xY0Eaq)JKm3 zBp>;>S1tr-7gp={5w>ZcHiG#eW~TWGK@^suyQRANukkoeFz9^F9 zW0egM*?`LJs>B8 zwy3DGOP}AMFKd1qSqj?{a()t3${B@r2@vmEj~wWsxgfJI#NuE-&B7zOp&{hq(G~)p zbTJQuh%tnG9c%X*lW+NlJc%ZBRg9-~Ad}R6cx=gRtM5Yr|?2TtC`PC#y& zkA`BaC4zSDpe~XIugTDCJu%rvar}VBB`H7OEmVghRIx0Q1X<{rTN~bxA!cGGknPhL zqYL_}KRpj>ia|AU5TuF`WtpHg2rO^r6%`3XSulimKc+$+SoPx%gN+ft0)b-Z)E@U7 zXfbtE1A&}tDmnP6eX!T(U}p|P_n=xblHb!Kxe;lf8Fuy)&iRl#RP0k|^O*8WEL!uZ zqSbg)rB8#!VQ)eVA)JDC=H$xdlz<~I)V=X80|x~*;h=!sR@b^tcjoE|KPp)!COcX( zW63BYnJ8l@HkFufy+%VF6Cwsgckm5fS{90E-?_Am?so6yr<0EDDNJ_S{q$^sR{vkL zSO1s?riFHVM_wlob!BS&OZ^Dg4?Rx9jJ)tOFR%1(%?ngUv}u`h z?pCX=r4VihgzJSe@5Rs@v30mt9EAX>KYs8pVz6(a`(e88B&7{-1?^B;Nq55l`eHNX zh>P5K^3?gFd{L`pK+FIoov+hD$UkH2djE&W%xN37^F_iHAxB9kblx977it72tnbw! z_SE^MVf4lkr@2Rm{}*49hxG}J}0Stj`eagW`Z{ZoX_g)K|F zfXvSL$6YV_xj%l|;r8u=kD+g;;*V$F{uu=Sas32j(Wqo%5LCB*3uXBd)qWnGn|)aL z<-c`g{v8$aO4WRTvUaLPY;B%Gvw<#|?qj+u{_Kie0!}TfxNJ8~-TDw#Yc6PfFRey8 z$r^vn*0_>Z?=&gdsC4k z?Or-|%0#xaIU7n`OC9`)U4qSs-AzB;iEi}k1NxA? z@PkLF6F5eI9zF-8rbpMvpp#S@mD;jHGEGd@EZtQK!`@v=i~;OCgF-!oxODOYECfH>Errz(-K`?7fTN}wyuh_P>$72Z7o{z zghg!)RiHH0rVH-rm!}&ilv6#-N<&DN0s+0R!%O<|%FN6RWM*Y%XXa$)X69w)XBK1@ z1~TdQbpqLeoIq|MFOVN72oz>zW(Bgcva+*svU0QXvhuSEvI?^^vjf>#+1c4S*}2(y z+4;c>Z_yFJ`z~=#{;F|_- z0p%q05a3+EDQH&>U=H9P0LuZhuvOI#7{ku# z7QiO}(@r#u3hcaQ0?x*+Y$@Opz-GWIz#hPx0eb=O1{?r<4)74*csw0ZRcl18xJ{ z0XXTYL}D-CHGso_>j0`Z=K-e!z6F>A zcqYC-c{gAY;2ywAz(auR08@SjJprx<>;s&J4eUX{8bJDyhaJx*5;FjQ1sDP>#krh% zz%76q0iOii3K$1`3UEFiC>#K61e}QPTJ`|W1l$H#0{9SMJ>VX|jezNUP#&-z@F~C> z01p7(4mc6t!Q25j6EF@~3V0UI7c~Qx0`>rI0qg~Q5^w-84mbpO3eLw(!FMyi0C*YT z0AMBHpSz(asL0jJ=*rmq3!05-mcaR&H2U_0P=ye7XH@aKTL0O_s!R{-Z9 zNF-A5{nP&eoDTR)z`1~Nz#70e0oMag{S)j3@It^{fFZzF04o7g&Vv5|oDSFvI2UmJ z>(D#kR{=KyZUfv3_!Qt%fG+|b06g!{(EHi=JypP&fVF@nfbD?wfL{RI2-pj_6>!QB z$^&Kr9sryVI1%$f9pFqrn6S8#)+{lS+S8KGn0VZT9z13sJeq6td@qqWpK{DS4x=1? z2LE&Lf9k#HSK2S3m^V6bQrfM_b50t+5CS1d^sV^+3(zraZTfth{uI!UgI=W5SJ`wz zC#@+h5iLFLD+}`t;|$eaY8U;d@{`g2ln=m2l?=g-apRJb1S66o2lQ?K?Js9J==Y35 zkAePW&|$`Q9Ur&l+ywe2(1qTW49jf#b}oOhUcSbr?*aYZQR+Vg`qx2+IoS1IWtX3V zei@CP!}L78e1l!S9Q5s@@Q*S5BE5W-U49ejeWR4$J_dcy81zF--=No@{AnQo_3sos zyPt8tzkYJYpqGz9kBvd!GzNY981y|%zuD2g)uMgrz#RhpHneX6pk?D%ZXDN2U8S6X5vlBu#zJXp4>;(* zx9CHlzXm!&9=rTJK^8uS&bvJ~3Oy6_CqefcJEf!0(^2IH)KBH%dyJGKO&^W644c5? zMda}tAKO8vHu%Xv-xVObU-?6zzXAFMkipVnrCt9NtP_j}6A4T=Hod~8=Yak;%KQ1J za?n#y-j9C_^huzfqw`;C^WOw|8t5x@dUBn}K;v^e=v6-a(?LIg_SJ(<@~2Rcr)*AZ z!!UT%B2OXmSoCIFhN)QdtOI?qPEVGGLNd^q_+HSLIq2nB=hw$9iaj{*;4WOrk?q|neWxCf` zO$SR_pQfRF1MXAa!XiTTbF!QaNe24z*fq!#z`aG6rX*ydvvBZ*!K`U9Zf>7Z}4=<7hw!diB|gFZ{prvtYG@?T49UGj@(YHcJxJkR!v zyTNAzP7HXB*>v!UgMKUMYxH`+Be~x0kBL}6KaV_qHa`>ei97wrHGLWSG|;_dAYIgh zJ_Yo!E<>^$_(b0b`cu3l(dXOhq=b_m^+C;1oLH8RknV|0geX(9%^NXdR$3gd!k#x`u`a#gW zY$P4@dm-Ntmrt3C4Gq->ZYS9W?Yq2zJRP{V=*8XRHl}o>Ca#+@Ms7SYo|uixe0o+8j!g8l{KrDRR+7D7<@O3)90?q^f$ zKz|u@uRc#l`7NOD0sRTwTl{I<{>1LnUC6WMF@G6f0ewB_UOFckQ=sOXK}R%V*C9hV z;UlMm-tJRA9Yv^{R)T)DUY=xJV9QvCJX?{+%Py!-sh#(O{zKfSl%s={E{V@KY(Bl< zGaGw+erv!1&~ri0(q)O-<%d8If$pb^Gz^=0pqK0Axgn&hOwiYW{(^(PM^r%cQqT*q z_vpvJ8T35Rz4Sokdq6J&-OC<`-V1uxDD(l)r;kD(0{t}5z2@8*;6H=uAEEi?B{&q- z4-0M|*PXI4wPXCa576MCJ}XDwQ+6j3D{-Il3oS48nKsAPU<05M`LOL|^IIhQBps;r zpf3e|NT(Bzm+d_FBG2?E5{YVkoFdP-3NciLozi|}&6A15hjl*JNFJm++NZ1oo&15- zF3lHA#PoVI=vU};Ih70kGeN%#^viX6%;sML`a_`m%}@29_kr%$w;MtK!6@{tpx*=h5`E9rWiw zU#pLWaWQMo+5>vQ(}~14^zzAHwfgxG=nsPK*M=$Br28r8UTq-xazK9w^jSK8=(!a& z5WO7q!BNV`K>s=D5X0_AZ69wF=#PQ!*9Y4{e{>Z39?*A!4)xug^eLDK z?*`q^4s$^NHt1gdOtc^LEuj0!9|QgCqtG{j{#DTZ#_@L0zX`gReCcTN0km%$=oBBN zlwmQfe0cI2%LazQW70En?PSyKb<Mxjp! zy>S%&b3v~krF;$O*NswsJ?Phhj>jr?`{hzz%scmhUJm*>I$hf@*#-JlpnHvHny24F z`)fe|1@2R>8fVu*zVR`;pC&?pv;luPW`aHebU!_ofc_@x@#}|r(1$_yE58x+*Fe8g zZ|9A+d|N?38TEU$lkDgz(9a%4z5}42G76oZXQhDdCqF&sN(S9;-@XL&w;+FwE`PFI zz><9RpwkOOe*8Cr{xQ%Yrrk%H9c%?XZjdOPi8JP>zMf=UmHHb|?On;nH1|!AVqkUFvN~#(yQ@&PaUaLrJGz2y5(3`ryx!l3q?arz6?8lM2$r zO7v5cCVnI}BdI*~YU6qftyrG8Au08@+yi|asG zLJ_;-wm@tG;ed}s)6qt8iP#-?A*NH@OBb^@{`PjFiPF7TCecN4B3*kq10EZTYmn(D zaGJj1NEaSCh)cxqxD&BB;|OpuqjH->;&_F)hM0h*ySR>Hh^3vlW-vkF`@|y3mb;D> zhsS*4QuT|q1~969|Cf;MLw13Bo6|$s8>B12X(i_nr`Iw4e>tu6B1^q@e@nSv+#EC0 zC8mgBDZ@&J%?#Hu>|wZtVK2izh64--84fWt&N0N5#xR{>Cc`3zr3@<>HZxquu!rFm zhP@2?7!EKTWH`jo5SzzXhcirPn8~n+VJX8(hRqDuG3;Tug<&tlK8CWDNB(z0uPl4K z*vPc`TsddXCFwINs@fW3ZRvqPMovcN#ep`F4BVKNm64fq0i*3QUUx}ArWk)oxM^hH zNuX?G15M`)w3q0WpX@&wqrdk&&d4C0@q;dWHsh6l;_OB-Zj#_lntvcMBp+QB_@88) zZut{|#Gf1RpXyb9PvJM@=pr?E!=p?f4|6oijl&4R`otB@Mjn+T=EQZ{!~}~ zzcGHi3!e;zBT~!G!N&2&t6gEykPjI3D;!yk znBX(jaQgw;>rOI0X!%W5>hr*#3;EA9C5HC6=sGT0;xhv>EuKl>wuXkOo=D^ zplcf(Eb+N^kxVN;ekvv)!uPn^mBaYnQkj290%HLt49efa?Nxf9uaFY{{&FY(`xxKr z;!nR%sAOi=0)#M&5TA()oqYbl_~~<;_;WCTDS!DqiO-e5pz|wU{Ex!~OZhJh%8b~` z6xZJv-}Nz>=I$}(U;?K6leoS4od1G}5`W({5~1eRX$T-F|KnFn{4CDD9QZV2nvvei z2nLP7d&&82=JWGPnNj6=gYmDkT`B#~nk4H@`J~LR?CLv=ufI&<7fWC~&G^@^lZXt) zXTwlQ{u{59hz`boDNW*E=8V%A{~+TxvObmG22PgwPhopd@~>TJ80pZ1;nKsI$UyZr zUm+Q*b}eW8j7%r~myG{SiNt5IJk#J%h|fKXBm&vQRR{dZr0Hgv#xN1rD$YO5a;kdo zX1sg+zQXv*B3WLI>#2yRR9%uH|6UF}$y3FSP>s7P#>d&N6#ikxmwr^1SN1u?_}y%8 zD*sOq5E6g)c)tq;2~R&tPnWU>dbZ&u=kGZGr3=`R`Q79CY2dx&9OV4ZyXswq0F~r4$|ZMI_8!LH#{Plbknv?q zK$QQ*GMWEe7V2rnhpv?frMEva{wW?W=Wu@7<0d{Kmwh$>e+uyHFOnJQ95P)k0x$3N zzdvF=SMm5&KKY;E{BFBCZo1^NhsP1JiE9PpD~n`W+0{3IKL`4s+AHyxrp5IL=by)h#>2q) zE91AZ-juEuo+s;F&w5tNwpr*1m4{gia69nAu6UgOl!=#oMB*>RJVO^Z!+4qTDXf3h zt`E$R`Q7u~>I)=(aH-_;4GD}p;1HHq^cWqm2&WDgPwSuk7T; znG#>i{RJ}?*EZn2+WS+^f8cVNkHs?LjGu6g#H+HOyjb#|&VG-pF}?=8$|Fn2zXv$~ z#mq;Ii;4`%XAR?3zkiYOcT~#qNQ&$CjGyN6KS2mUdN`K_L3QG4WPCk$)O^Or8K1@q zQ~H?$KkFs`O5lmV+y8u@@ejAm zw#0uuED@N7#I>05_cLDUc@5*&UnldaHvSBFbBRUm z<1gcRN}QubiR1FU+cgb%YS){KBwspbNY@jLzn>YaemSl{=6Bmw731A;U^nA$WBZ32 z5!VZhzmEG|_0eq1(h1G#-y1U_P$_@1=)Jpm*XE;)&%6&cB}V?s@7Dj6avh?@G@9Ys_cF=PmYQYTOx^ zUkP8%{macWLX4ly^UfOPb2Ho-xD$9U`QHNmWb6|b^~(HdNfMp{1Mtdk0#EW} zenRHUlEC=6PySipcQV%FY0O{6Z)d~*5}#yl&@|>lewpy!yjUXW-DbM3V*EOe>sU?3 zPR8fLU(&Tv0%ITJZ=EF(+&#v#@FQOBnuZKi?=<)Wx+=wAoPT2chj~0IJNY8xXE9#! ze3tRr z_E-M_Jna{`_enNze)oFqX~q|E+@oM_t4CN7#N2aQ<&G z-o3x^B=9spM$eZS={;e(PQrXc{IB79)jW7Ldd~ZM^l-_nSzV>2?FXH@h;He+o{`nB+f1Ep9`NJH< zVbtC#_5o?gYz%Rl34MMH*Ozf{9PRH@vt;bs*wCA zRLcB{=W@oorIW{bAVSoWexK0 z*Es*LJ|@!}n0Ve&@BFpE6My%<>wP}?&xd{~zuSM#Vf?g8S)ppzXMy*U^GVL{-p_fP z@$UG?yhhgB2R+f%EP*lUlivI<0G{N$4StudFGyhIUMukrVE&;C!&Y1u!;UGxdmqDO z{MU13zFEl<-VD4~yYA-v?)}5vjIZT>IZv`NPP#Hu_C82<;CoL>Q+;>^nXWPTNA-pBdf z&jtR<`1$bbbbUkuBe%|5o*RKDdvNcQzvPqOD64LX1u~ip(+pQd%~*K30Yq!8t+qC! z+Ng=NM3zTeW04j!)?ilGH#J6Dk+Y`BTwdQ)6|OgHVofcrX1J~0sBUU#u8+hbH5r-S zIn3HHq+8P>GqllI=ku&DVS{<&giq~%BdemV5wp6fu{GAxRvnY10@I8(5fjdt9j>o$st!X~a9u8udC}#KO)U{5 zassB=8Vkpw)uQ5PxIVfDsisCV+*o7Qpi<&Y>C9-Zs;`g4T7wO;&Omk>G(vq|V>X1F zi@kZFsyYY+u8=aaq77CMYob(Gmm*-Iwz+}eO36CkG^^X&@j1s#DO**zH3I%&lFiO# zH99MxH9At&WY$IMnBtY-llFSR1nMGY8TEhKXeI!f1frdbxL zk5tD3tua?!cFPx)<(Yv3b751B*%EGC9x+KH(Z=QAlxJpTnseDG1hGa?6{)l(3Zrj{ zPzkfSsXki0T95+yT9acf;b^S2n0ihAMHWtnEtl_kZq=PX@nX5;KnAou;U2<|D-Q6`zJxjYgp zE@^;y1~3f8I2I^BOAansP;M?kPs^Sy%Qee0O>XMZ-1*AJbyF=g7g1lTfi5~#AB6s{ zU``+iqjC8V*oSZv&LNvq4`-srsx8IQtm~{SjErbwYosN{W6Z3=JlGg)kR#3EdEsqs zt&tB@K2A7hhkpy?G-Fm0v#A{5G;%dpKVk$21DRHdrr?sYES?>dJ9YHUTsgMNV)+}Y zQ%F)4Yp(Yn9{wXhj1n;b7MB&6r3)||q_;epRp$|)@%WZeDFquxGQJ(rqZL)Y^U+Qv z#*Ur}%`#JjtB7}(EI=6!GDQH5zylMhSY?Q)D<}qjp=mB}Y!i`dc4K6f3Y-yAkM#0| z))J&RI)BLm`2FC@(sFZd^J4f_!;I8~V_`Ox!x^Qd^ARIdlP3@BwR)^z5UN*Ut%lfG zMMS=V6Zyk%O-&2?Ls~>=4%;!OjS)7>3C{}L9sW@ZpR4PO?Lf^}tl-@8>iTRE1tPi+ zR@dj(Hnpq@x71)t3f4B$I%08I;b;?IuAH2CsWE!QKPON;e+k0f;C%2ci)95o){thb zES4KFW| zX2mMWXZZ?>!{SsFg>p1xxVuNh6V}B1ZxV>oimxWZyBBJ~*Xq0C6ASr&GB08Gl+~M~ zF7J@n3u8)*SwBPN1yu{-t*(Vl>1;_u1M2=BmX zHZkT*#?w7ogk?aiuBB-e7M3+~@*6QHiHR^20bN7^w2;T-CngAVJQT@u-g~{ZlpSfT zu{M2d!^$*0_E#wMqy0Suy(Eoex{~XZf2BAk7p;k`uog8(@qQOJDR@p-v$2S)Fon}l z7sFjz7$UT=4DJ!a#j5Lyu#YuscCi`A$fgeWH~z5(pz>V><*SB4bCK_L?Iy&@;0#vNF`h+sHj!xn-k8Z0_y6pwSR%sBUN;$<3Da zpI}+8bgK1=7R;gvh-a}a?2J}1W{>6-7M4?3or>Lf>^s#&+N~}5T#EC>vkQb{%`t@e zUN#jBmj&lGN>}R~D_IDh)vggXSj#D@HKTY`BlcY7LIpiyXR>X@CvtNIZily2kX!T( z;V21-l?uGK=lWaUnQC(GOyxPYsC^u{T*n>hg7jT(IF0N@vCiZWSWfIK!}V@YT#?wjU5*zhM}ckX1w3&c)lPG?XPI~iC+t=}P*P7wV8NJ1DVX=z z40gMecQ6)dvZ}@whKN_nVsbYFp|Ibk2l)l;z>7Tw6Hgl(@IbtHDRvsvCJy$D#4e*8 zq!2it0%_-iVK|LglS$kAt>lx1Q~wn0I#quPoXDj_m*XiSMFp*qm@_IcYg+M86_2;+ zd9}j>c+JImXddPs8I3`C>hXZ%@k1aRxy0h7x(QzqP@$XU+8VJ_P1|mG1ik18pIQa6 z=St#2cb<#8vBEj`QZL&q#pEb_@V{MvL49Fu&p75LwG|^Zt@_&aD9Gc^(jk0A_JQ$8Q6_)Z#Qucq_v6GO|jJ`-bNGdz*3{f@e;+6{G(iZAppe| zCpk~r4v)09zU!TEZ1nRMHT;Ox3ICE0NoaEcXL>M3$Tf}`z>@y88R2lfL{2M~z0M~b zJbvE4_(*#~gX#2e_p}iy2g`zLPg{Sa zD%bN3dLjf9{{QiO<7n2hI7Gu+;=Hvn_8}TJ*P~f4IoS29fp?{?aXJz!XRxEW#Rx_` zpJMSE)tWD{X7ky-$0Uu#6^z5Ik5*OFW#k_J&xQsZEg;-lI@yCJ746w0FDj;5wrwR;uq} z&z&DX9r+^9-UnHNI9Yg<_b;g6h*H;~w;3bMu9Y2XS)t#v@gs|{g}=3*WXdHSEqhAk z<^d`6y?zSEYX?l8Xq5J-P#p576EpRZ#^td($5X?MtU{>=|1FxVF}7%YONu=Rx#d$G z#`$fxhvA6)|7(zDTg<4wfmbrLYVltV%jcHv1M=_AfobFKD1NqxQ;?Cc+R^fN4`Z!} z@knJMCZcwn$fxxT&p|%VS!nT34+zE53R$(SdkR2DKe#m7F@t=2H(xwg#G~%^sB6d1 zxp(M3X>2Ww>s$SgMQW#po1D*PaB7%#G%bUEhsTChImdn?FA-U#p8I{e*X008xV{r)hODw!*M;x`fVj^4X(ze>`sFKzFpyKEVLTe3%UtIAcq_9iTz$P|pGWby7O^HD-EV7*u4s$MWo^S~NB1d4sHrb?OjFYC-lw@5 zGr#s4me}h$+%+hU6lwbrG`Cyl<^0{)h|n@<2T9t)qW3&JPzN~1-da?1oPQg}bjA8H zu2PQtFhJ-`R`Dn=HTdpi95Oe2qVVH;CEm!UJ@JPvI``6oDHA;O?my!uBkM%LiD z%b2H~$B2^0(!G~8xi#{ybjC`#Zu{JivSe*{_dPuyfoBE$^vpW7sJm;=19t9s;@vE| zXq%lP63qXwdDlxrm~^c7h1ASnjZuJO45bUIU5`>4S2egWdSu|WK`*xlu&k#TN?4-n zBm=s`KA>_m@08FHfa>r?WsM_%a#^-sRho*_W7WbAlVVl2n-jcGWGSl%w z*ZVs6DNnD3iyor#%5u>H{|VvUMt`2MyJz&2EBge?T$XgisRE%fdbQ5I@8X^w{2$DD zzS&Ge+&WmW$Z|&*5Nc;1!$Ciw<9^(U5bC7fpUEFEpdjRM*9SP3f%}vcXXhCa7eNwm1Iw*dQl`YOz!E52IVtiskt!?Oi zxRE>Dhp}{dw_aXNBuBR&B)2cWDM2qc3fBkEZ-?NR`Q6{Dz>a~MLp*ztSjvSoJs%bC zGeU+2tscyy!N4f}_twxVPNU)I#}iB--S;e-*4=S>mFvAFY+Ye9Ky|(9(!(9-IrM(2mx^fi8QJOfs8SUb z;y8_bG^IA8ywB*p+wrXJT+ntM&+@jV=V+%Q@${h>Cn9ki^55VotG%D7k9_ZkQNlwv zM(|33avBYeMO#Loz&Q>a{#~0CkPBmvk5M(%z843ns85KMI5~|wZ3#dyzt!~L_mwp4|si_vzVjV2FhZ)#U!6A z4>P#U*0I1J>jsDSMdN zsB83h_i)vkH^<%)$Fg&T`#Bs-K%fnyv<}H;)dEkumu-tCK)GMAJ z@h1xLZO>o>nww7_E?eG$uRV&*&oEwCsuJ%Z%CULaCS^Y=5(ms>=>n|V#QPjM#dtZw zJqJ)8Yi=o^19Q#c<&n{s86&$fsGa|gsueBUG_7IjD?JEiol)nzU9G@eIG%NIlH2dzhQs>M9jo77q`A8xV9K+ycIT5`F%f@Xluin%6P@9}R!;N=4N_BsZ{q!R{ zKckL(sR=+FpTly-^E)C!iAU|E@7SmHo$cj&3u5!*sD7?UpV$=773l#6_SCfpiii0u zPT9W|xdiYhZN1IW;@KYjngrCC&EYMNXYZ zWrWL5^p!Q+yFZTgh3zA)0Kns@f;e(W8+~GLYUJ^q_j)xKZO21iwUo0A=ObAg%9IR zLeGy%Vs>$CcvA#6V%83d1%=w?KHNsCcIcZMN4x<|F$e-o`-OTsMdW&)zPOyWhSYCI z;2Z+|azr@=tumIhOa;us^nm$rJ|Ig9$)%6=)1JKko#^-QJF?!7OGKSxeqmOuhQ;8d z4=z5eu&JN0uZHb&tx!4NX~sr!IjQKS}$M6 zl~=!yu3+>su8@JMS79G^l|K-c6a`OG85z3u_ZXMA#BAn_45QRI?Mm0~>Go;-r!1;` zJsC7E1#7I1m3VjkzXe(^Kd?&XQ*h=qnO1+5{iyV-xY5hMb%&%Vc!5iPcm01y_DT59 zW@;2{mE{Y_uyDEct?E~B9QaR0K2<)%CN2L{{-=QWIsq&>*cNAZQdfwr%Pb{Rpk`oEEFc3s=ugL zQqs3bSfC6;CXFJ73VfLB&r}G8s{BPRJjqIz4qa6Udg&GcjNNBTNWW`IK1<23{MYfo jDcNOC`FCocgyYD;YnQ55p~&5Ol|O?GZ>Fn&D{1^c?vJl? literal 0 HcmV?d00001 diff --git a/cache_test.cpp b/cache_test.cpp index cfe8a68..847bee8 100644 --- a/cache_test.cpp +++ b/cache_test.cpp @@ -18,7 +18,7 @@ int cache_test(std::string file_name) { std::string test_line, answer_line; - int fast_q_sz, slow_q_sz, num_of_calls, page_id, test_number = 0; + int fast_q_sz, slow_q_sz, num_of_calls, page_id, test_number = 0, test_passed = 0, test_failed = 0; while(std::getline(file, test_line)) { std::stringstream ss(test_line); @@ -35,9 +35,11 @@ int cache_test(std::string file_name) { if(cache.string_info() == answer_line) { //compare answers std::cout << "test - " << test_number << " passed\n"; + test_passed++; } else { std::cout << "test - " << test_number << " failed\n"; std::cout << "right answer - " << answer_line << "your answer - " << cache.string_info() << std::endl; + test_failed++; } test_number++; @@ -45,6 +47,8 @@ int cache_test(std::string file_name) { file.close(); + std::cout << "\nNumber of tests = "<< test_number << "\nTests passed = " << test_passed << "\nTests failed = " << test_failed << "\n"; + return 0; } diff --git a/makefile b/makefile index 18b2492..f97825f 100644 --- a/makefile +++ b/makefile @@ -1,33 +1,29 @@ TARGET = Q2 + CXX = g++ + CXXFLAGS = -Wall -Wextra -std=c++11 + SRCS = main.cpp TEST = cache_test.cpp -OBJS = $(SRCS:.cpp=.o) -ifeq ($(OS),Windows_NT) - RM = del - RUN = $(TARGET).exe -else - RM = rm -f - RUN = ./$(TARGET) -endif +OBJS = $(SRCS:.cpp=.o) all: $(TARGET) $(TARGET): $(OBJS) - $(CXX) -o $@ $^ + $(CXX) -o $@ $^ %.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ + $(CXX) $(CXXFLAGS) -c $< -o $@ test: - $(CXX) $(CXXFLAGS) $(TEST) -o cache_test + $(CXX) $(CXXFLAGS) $(TEST) -o cache_test + clean: - $(RM) $(OBJS) $(TARGET) cache_test - + rm -f $(OBJS) $(TARGET) run: $(TARGET) - $(RUN) + ./$(TARGET) -.PHONY: all clean run test \ No newline at end of file +.PHONY: all clean run \ No newline at end of file diff --git a/tests.txt b/tests.txt deleted file mode 100644 index 05bb524..0000000 --- a/tests.txt +++ /dev/null @@ -1,8 +0,0 @@ -1 1 10 1 1 1 1 1 2 2 2 2 3 -2 3 -3 4 16 1 2 3 4 5 6 1 2 3 1 4 5 3 4 6 7 -4 3 1 7 6 5 2 -3 10 10 1 2 3 1 2 3 6 8 9 11 -3 2 1 11 9 8 6 -10 10 20 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 -10 9 8 7 6 5 4 3 2 11 \ No newline at end of file