From f4553247e1f6104c6fa5c9c74a65685796f8f5be Mon Sep 17 00:00:00 2001 From: aymanpopje Date: Fri, 14 Jun 2024 13:47:00 +0200 Subject: [PATCH 01/34] Improved test_unix.py by adding new test cases for "test_simplify_path" --- README.md | 8 ++++---- tests/test_unix.py | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fd8293229..20bc8d423 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,13 @@ ## Project chosen -Name: +Name: algorithms -URL: +URL: (https://github.com/keon/algorithms) -Number of lines of code and the tool used to count it: +Number of lines of code and the tool used to count it: (TODO), counted using lizard -Programming language: +Programming language: Python ## Coverage measurement diff --git a/tests/test_unix.py b/tests/test_unix.py index 3cafba98f..70163de9c 100644 --- a/tests/test_unix.py +++ b/tests/test_unix.py @@ -42,7 +42,23 @@ def test_split(self): self.assertEqual("test.py", expect_result[1]) def test_simplify_path(self): - self.assertEqual("/", simplify_path_v1("/../")) - self.assertEqual("/home/foo", simplify_path_v1("/home//foo/")) + root = None + pathsep = None + drive = None + if os.name == 'nt': + root = "" # Assumed to be ran on the C drive + pathsep = "\\" + drive = "C:\\" + elif os.name == 'posix': + root = "/" + pathsep = "/" + drive = "" + + self.assertEqual(drive + root, simplify_path_v1("/../")) + self.assertEqual(drive + root + pathsep.join(["home", "foo"]), simplify_path_v1("/home//foo/")) + + self.assertEqual("/", simplify_path_v2(".")) self.assertEqual("/", simplify_path_v2("/../")) self.assertEqual("/home/foo", simplify_path_v2("/home//foo/")) + self.assertEqual("/", simplify_path_v2("")) + self.assertEqual("/", simplify_path_v2("/home/../")) From 22ee6fa1df4785596c603af61a725c558973eb0b Mon Sep 17 00:00:00 2001 From: aymanpopje Date: Sat, 15 Jun 2024 13:58:36 +0200 Subject: [PATCH 02/34] Instrumented "simplify_path_v2" Reported changes into README.md Enhanced test "test_simplify_path" to imrpove branch coverage for "simplify_path_v2" (24% -> 100%) --- README.md | 18 ++++++++++++++++++ algorithms/unix/path/simplify_path.py | 15 +++++++++++++++ image-1.png | Bin 0 -> 33780 bytes image-2.png | Bin 0 -> 35717 bytes image.png | Bin 0 -> 93217 bytes tests/test_unix.py | 6 ++++++ 6 files changed, 39 insertions(+) create mode 100644 image-1.png create mode 100644 image-2.png create mode 100644 image.png diff --git a/README.md b/README.md index 20bc8d423..f68ccbe5b 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,24 @@ Programming language: Python + + + + +Old coverage:
+![old coverage result (24%)](image-2.png) + +Diff (LHS = new code, RHS = old code):
+![LHS: new code, RHS: old code (i had pushed the code before screenshotting it, oops)](image.png) + +New coverage:
+![new coverage result (100%)](image-1.png) + +The coverage was improved because certain cases that could happen in file paths (e.g. the "." directory, empty path) were not tested for. +By added additional tests that use such cases, the coverage improved. + +The test was also faulty on windows (i guess linux was assumed), so i added support for that in the test. (It now passes on Windows 10 too) + ### Overall diff --git a/algorithms/unix/path/simplify_path.py b/algorithms/unix/path/simplify_path.py index 8880fc0c6..7cf773cb0 100644 --- a/algorithms/unix/path/simplify_path.py +++ b/algorithms/unix/path/simplify_path.py @@ -15,6 +15,12 @@ Reference: https://leetcode.com/problems/simplify-path/description/ """ +branch_coverage = { + "for": False, + "if": False, + "elif": False, +} + import os def simplify_path_v1(path): return os.path.abspath(path) @@ -22,8 +28,17 @@ def simplify_path_v1(path): def simplify_path_v2(path): stack, tokens = [], path.split("/") for token in tokens: + branch_coverage["for"] = True if token == ".." and stack: + branch_coverage["if"] = True stack.pop() elif token != ".." and token != "." and token: + branch_coverage["elif"] = True stack.append(token) + return "/" + "/".join(stack) + +def print_coverage(): + print("branch coverage for `simplify_path_v2`:") + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") \ No newline at end of file diff --git a/image-1.png b/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7071337a21501605dd2bc0a3ed3294694c123ec7 GIT binary patch literal 33780 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�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 literal 0 HcmV?d00001 diff --git a/image-2.png b/image-2.png new file mode 100644 index 0000000000000000000000000000000000000000..77702129e06a1e381b624257425f49ac0ef01669 GIT binary patch literal 35717 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 z zghlYXQ@$N*zmT(kCnJ3P6!a$q+Bsn_!Xv9NO?JN#IY0AvV~8{$3OK+Q#2&aceOX<= zc7S2yoO#Qgd`>*P)yy`<%@T8jUwkp?sq=R^8+ct50cNY7`O8~a67^R0k)NKd&p+{m z$dQNrgsR!1lMG$&2Y{PmNM($5*!_CMG}qeua{H60-@Ee+T0RjwRqn?b%xDv2k>gEw zF^%V?PMd6?>=lt-d|%2P`H-{{7-CQx7fwC5g101H#Fir{{1@{j9YD+4GrT2cPQ7$Y z+V&)+cz;&2u=_<@cAJBU2ll9`Dhc=@tGg*y1xebB8x^K5f$-nKK)or4WXqVsq zu&&oAsZ;Z51t z^+BI~-41m!AB`i=NE3Op%=hr=EArH|V~6A{h5OaCaPoTIC8bNF_WW@jMgN(-;Vqei z)ev|mcgk0y**#mNvB7y49ae`aAzZ3MlhmV&TbH;qC|7JqYi(91%y)l;3^jQdhrb+R zp<(#=gxpxnYks}%Y}#>YzvmXo-ZdW$TK_$amUi)ElbXuktFAluXZa{#+eOwLOBl@N znq~{X!8?f^ctAA7`%sFEp75G1IAZ7sZk_Pz1Mit3i9*ffC)iV=Z$B?o7ugeTu0%~= z{k1pNI_#I5vb`4}5Bfxt;-}y6XJo9eXO!mMiP_ZYP%@#{MjA86Ki@fV=rbbL@!81*v!zeJq+}%Ip#T40wlU$y(d(xr$e>2sn=y3 zc_e0PxY<3Dco92-S&y{x*~MG?!URn4k z`fSTJujNSCQ_A)kW7l(Wp=Y5sbb1>_pQ zo~oAm=r9Ug`m+4_J+f?U5m$p>LM@X`5YZ%95WvR2y!Dhm(jt5tMppGr>{#uxTwBe< zz~+=CGuut3*w{dXyS&4upz36DFMykHF1+8=ImW~vIblI;@N}Vty;OAZz*W~g^<&~8 zuH&^v*LZ72Zf{lg9V4OugL+PMsIG~bwmG||$|sS7?^ zNXoq3Q76nPEOjG)FpgD-O*ZP-)SvPjUeDS7#DUhxUxlTf@n7yk=N2k-OPhZz9n{~C z^*i&;dYz!aX-=s6;g)x!DNz8g<=dzjq!-*Q@0c!S=zTuho?(fX7Ot=K+m)|b_c_x@ ze_1-}{8IWEHdp@Td%EY4UZ?H4~>0kt@}P&-v5?4%g$Wn0X@&f?HFvhnrk~$ zxV!Cm=3&r7Cwwc`P-;p+=lj^N&q$601~`2kNRTG}Tj$-Mkv2>C2;l40MQMFwC0|N- z(&G&dtEK%~hMpUUq;mu{q--a?UliO38dEw>3A~%|9C@3aU_h0y$BE@TKl%#4;e8(y zEQq&CYtdPO7s<;8S#;ys4iflJy0YSCx{7;UiN2R^TLatD6M?}E_Es9Ug4P2e20X79 zWz`>2)ZD9!lS1`s@Qp6riw6r0doMnm(LJs7)jj=Kd&bJ_O=6RI{$Tz5EWtp8pYrYP zhP2|9PN?*j?wPN^DiV`j=AONe01b9z=~+?agFCT(boB~^v4y8bFDK>TqfBpDcY9#v z7n1$VB_OlFV;pNPVfo->F#q|>iI-pX>gMC%5}pIEhWm!vm?veYHm$pr>hnT+%J_G7 zAI*}{GO7o27Lr&v*0T%xEq3V!+Zs=FJRGbp$t+>D4{*=AI$Brxmlv1y8Kloa6Kb8>G_9$FO;eE2|mlWcggHlt5`L!xC0j&gaFED9sN)_rr;l#VRT zp1G65GQMRh_g*2v5U;Pz6+(d@!DJ$bbn>R5$2)+AtTFJ&iOHO)kM8jsa`j-lv$1xJ z1AR3=Ns|fw2d-Z|*tm)+G`71j8KJ|zK5W!p$BIgX@T`YCiV-Tj?H{Wt4BwP~-_Unw zK05HADuC&ccC^w&xaOx-Yf!)fk!0l73)T@_Ultg2qR|Si*+hOE>bia<&$b*_K8$?UI zO?0vdb7u~0EIou?SEES})b-J>RF_&aaSePk0P(t4<5h-4Nvd~DvCf;QL2`=SV{5yL zN#~@*~oGHjk-?|H3?fT@xl_G%r%!YyMfIH{G zdH=I-bmk2uMQ7pU9c`ymuigvoE!%%_6U^Snpp4nA!^m$Oe=Kv-Gq6BY@=j4l&WQ7a z-xKDdjyjmR zcjNw;X~h|@-cOSDTQ@}-?OO8Rhcy*dr_dpTXIWkg*KjdPeZ4N>AT0%NePZH~e0vO% zY~h{O$4Kl4afR#qj)c?D>;ioYKO;{4Bdd6iWvTPi!Es2TI51f5$EB- zyfjz*w0AMhTGo_+iD=CA0R6HtU2p?jud`DA_ZqeHepmb;~*O30T#Wd8QkCcb(wf@&v@6$)& z)Zi)KvmpwFd+#?gv4@$}rW5+62*#BzlXO{&m2Bkvcv)G!rAG;i`kc)#UVhIuA|2&8 z330_*#$)c2h1OHgb&#DJQ*g-Liuwe8tpE9Il?hzQM9zS~we6oi;NZ|?C%2EZc~LjG zWRhf1KkRgIE6jV1sgLGL`2?THG(R;rf$ z5n+$r5n1V*^l5g?NN;wT6so20(7OJP?Ohb(;5>CD(}lT&Sq4ngb|Lj3{QlG^+9y$& zkJ~dOtK>^t+04-T<)?yJZKF_EA3CtN3qoxL+&bDywbR3X3Kn0IK*M6i+XV}ETbjwC z249#sPP&NdC!uerpU6D1>6APzx6lAjdLF+k?hiBaA78lPfh2D|7WRUoDi|Jc`(#%Q zpZ-88Jw48uvvl^AL18nz<`B5>cT5&2Y((QfMrPS@TvZVJT%bx7ElhfFHq%qu-2H=g z-E$1D^ha(vX~XVu+Wz|4y-C4~dz#(fUYzM@MGf6g7s1OmG9GgFthEj=7@&u@5O|(c zH}34xGop&cGyOD@u|ZC|;3uCtbTRI{h{lQR2*l~=R1$O?UaI!#@v&QyOIU1olCgvH zCv*o8FP^y0?5{4?9VAtTca&9}4Zj=oAu!rqHM1LRH3I@V_TAK{B)27twb!awlhh$| zU!Nz|+3)w=KYLqBy3a_+S!FEYy9KK6ic%yW32U7LI-!BK>niCq0|vNcSe zkQ*H(xFC=GAy|65!->StgS!}{$ylGTKQ_25C=Y7Yy-I-YMYdLkP4hY6ng{uP+xhW; z$X$-&Wf!q;E@rOoTx~^k+}&q)2C}>$Oze#ZW?|J(ylJ_qRE3|rQxu%<(q`qS5`}vv zhtsKWCb3I5Q5smA7N<9D2h=InM}*dDU;~Py5ZRR2@VN{W7PyES28*{R*J^_YD+{?Z z>+FRc*Dl2q5+>P3r-!q|1x@50M^10t95Zz>9zR-J$nfZE!7t4nJQ6KPIY7VsVx6$` zKtl)5Cb!!4#r8U_l z?U~dy@T6s+R9g9vGa84xKJ8#+B$$tb#ll+d)#Bvn1eJ`AA!iA$*1_(Lp9as`db$*~ zScWu0ut%G4cAL~4?bn>=-NA*zS=^_%3`wUWi@^skrxS|8t+U>;v&~AG{k3?Q%Sw7<9gAT3@GrgNJ*nqDnx3V3OdauvBhoa-b;x7npdM`3Ac8%*9m z*DCc4sWx+Ui7n9fM=jm{QRy>d*XECZrVVQhwjMIo(BnVeJ0Pxq+`|Wp=GJN~XM=8` zKHavb+jZ0^tGl!7$xA%g#M;qP8gP*MCBkccMC(hqsG z@E^^DMeRLD++RgU6VEv>oEU$qACph6UW<*Ucd0A|y4beP_zYDA>bacvXh`<9$s9l0 zvng+?B#c`uB7bq#pTT8m9lKIUgE87hs1FT}Gpm^(t#`-1W-AxuWLeIm!J*p+k0b=Mnv za20PCp=Ju^3y5iX$G(l~n}bTXLHVk={7+4bExv+w>Yuij*HI#!MP5W|_clnWf#cyf zGWI)M{bww$Fa8>$q3O`)Hw;!_f9wfefD!+yMQ?1$A6m9HKWOH5)BZ%4S@vr=b#Grg zQ;wG$+q|AjjyKzCcu0t;<-N1W5JvKq02TB(R|dsu?yb%IBiG&jF-{|N(%aXBAL&dc zklmu1zN4nTt>e&9!&RVM@uv+UX^^+YOK!#**7I#SJnsaaQ*+psjP6y$HE-W5g`VGThPKZzcfwVYukLS^m*nYI1fHZ!k9RA> zryVxLs-1t{3ghBZ=KJEk4vQ$;nM5aZsa3Llh5oW5`8o=A>W5W60mWavsFFzSi%=ph zViHec+I&iW^kh$GBxZIoPQdZD(C=BFM`>Q^lc{O7%T!j|MtcpH&qMCMlJQ~gsc5@) zr5`kSIJ6^SFK+SbGJ>+eGn?y{}tmL zD(mfEf9ne+lu?80j813<`uFPr6O7- z-h*f(Iz#Vtn(len+QEMMbqK3*1EbLZjRm(*kCQO{k>#t3 zD}CpFOm;R;egfuCCS7e29-1e8E{?VqX%`7bjib)Ix^?G#g){a(N_Ep6LW^zQ`#LRh z@S$e0*DBi=-iOQF7dhUNUgx{6pM&h64ep$h0@E+`tYSXW6T$K2*0ehZL5BXDEF3Oi z@GQ)F`lRLlAfGH(YMVAM7FlS*`puxx8E4vml+pOgdXav=w%_hUN9HVt+(2d;#@iV@ zb&DAE+0#LdBgveEt8#x)GZGZsKf|{a>yQqU$#TZ~ji+vs$;13`wP{bi$D<^$frH=2 z7(2B{w(Hh#O_D&}XXeFjo}1)fYcN;5pWqDKPjO6V&;2ILGw`DygGWFVUNJhWJ`^%_ zbkcc8I~LhWYvN@*Ho54(XN+4YuWHw?EZwKJoy?tsNwIX)rW381o)p^lX>+286Q6F~na=F7Yw{C`t2qht-$xi{pa1 z(q!?2TAjE1OSFl#H!FPq7h!J!RaMuu4TE$@mmna5bSd3k0>Ysik!}!akd`h9=~BA8 z>(JeK=2fYt1e7X9_tyBke71j@v2OMbi?G ztDOw``{$6t?Tsg z^9 zFD5WG$C=v7c8Sk9jSP~EeogjVZhd&*AY${@IneJB>#H>^(L1En%qx%+)AD7U#>4bF z7jQkIk@&HqkLFDA3!t0?T4CyoDWi?5F5iB|OzUA8qin_)3~k-f;0{@0iJ-Ln(rJtK zfVeOt`@8!ROkTC@cS|HfhaE2za@jba>1Th?4i^=2sj(~8=?i)6TYlq->$NSp19yIR zjC5)J!;{^2N82Lv5mKjgA#)#oE`0Sfow8OJbK9t$R3NI#@~1q!KZD`;yn%C#C6)iR zdp=3SukBBT#wX3x%M*A8_j942H(NfnmP!8#a*JG6?&}Rz?uy(qnW2UG@z^Kw=-xm{ zRm4Ya0e2@!&VOOsW_+WFY$&zijkTz*p^UjWjzXsi83Msnl6Q)`E^c8E1qJ5pOwljL zZc=hv!^CF3Kx#bq>r9`atmt&1!Lw#L2no5g1Tk8^^#4YgC90t*i@PC*FHY=J<(o-z zm-54>Dpp)7u_lz6TU|&}EaQ4}NAEGQ@Xov= zWVE9QlBzy9+xs1l)3Aww$0PhURzL@^p<0)5plk|Z8*Y7Xa%?(9;*Ne)PY1kd)^o>Y zZ^cvz>7&mQCj%SegSnl3yMFZ<&gpt|v*?j2u@!nZ0v8XGFsWZ5I}9(D#%m!~)$8I%gz+SO9;%5SK$^=^30t+5i@PWjaair$~7Vxyn*41FC(y^l`qIQg`5AiO;cP<&+c_#K>0Rx2>EL2*6{~BnlJI!7g?UCL_3#D zc`|%?KprBz& zvj)$rw#$E$0qBEP^WTxqTkW$;_jV}n2M+yqhUu^He$sm;0G&>xs3eR|T~nabd2WEM z_(opw7Ljp+8uJlT=q3uTGgjZ#-{l?0tfp^)6Q%X}y6N^N<*yOXlC)HI?@Tx8f*wjI z&xnAt)i}gB57|S*bPU>JFT#(9&(aZPRTk20MfhodA@_^lcII#`h%s$e?+yLhKXY>)%NI>d;5%7 zlrT!*9j$$#T?xjb8&Wd*mJp2qC1+P2Vq zZvDQr*T3xSN8hu&6L({7i4Vr*#|&wdl9^F!A^S7_6;qN&&~|8~G3ranqq}(Pb7RT$ zrj;76oFLA#-`ChA*JL*(50Eg(4xeO<@7l4CV7tk$<+IV&3u*s6xZk$c&T>jSohx&&2D5c}h~@$P zvMWcWTle=#1L|QcJLcZg^EtODsQ9g^D1B|$ZuA+d5Ye%FUwC=SC^gnE9rNk$qMM!5 zf675>g?=+ej>Gh_NJxOO04;=xvsWADR{BMlxPYH{sK?|x8u3P4jy`pTF- zU&?HS6+UyZWE_dI+Q)Nl-NUhyZg(bUXAr9XFpr3EZ72hj3 z<~&X4^!ui;PIm*oJK*BDR71OzE@HuDMcuYXyMnoK(1rQ@i!ExWU_)(7U2dzIQtCL2 z(Ary_`>#R8UQJf406Z2D8@%VXJ6yiE_4?(hPjHCq$%c5TKY2|`g75p@7`*b3ex3P_ zAIA`Yoao2Fdd7Rs5Ot@Yoo^6gj1(NW=t=-e(n7LB4ykIBMMKW-@)&tl!S5lb&wKIT z#`ubPT?uB2-vJsv*T`n%nnZy+TwMgB=%f!thwRxl+1;yP-WO%Er&QTP%DjHU>$@Hb zxcw~}fhM}UInX{rtCe`>Hh|!bsTLw+ z;hJ176#;oUI3QxKLF9Y!+OX`NVlcD)F1t;YebzP!z1M#0^4d^%*_OEpbNwBl!O+k2 z2)cOJ;tmT42*{`UV0ME&uOn>k+J5oAh$H>o|UA_ zmtBw-PdOq2ktFl&`7M8yM|4>Si~r~v+>fw5S-K8rkb3B~nRo6xKK7n(jaD$!7zet> zdKUgW`+M&^pZQVGhggm~3!NkYPdj&=x_fWm{`37;FHFB<*!}dLU}W20uPan3uIA<8 zs{}&I#`T+*tDFF0e{hktT=8jEVFd=lKgAiK1cU^BB)YBptW_R=JRekcJa!75{jjw-pjDMQ1p>M$x-$qtOZy1B;>Rm}Uf%Kc-PdC)f&J=az%TJEJA2 zjp{Q-ol}IpF+zU@5Uc&fa{P@~rHl$*^1H`6rD88XS={h#gU{k-<#CCeFNAN@mhT0* z+zFK?JY-CBKmK^^ro22A$d-ns1-(UeoNFz@QOS1xTm&bKi%Hj?^z7P*%D~oSh=8z# zn;&B;`|1OHzC9ACY9xs_syr9RT@3)XcQpj=QGt%#&)VXQY2~Hu(LW-*p`y&ndWK}2 zSe_w|=;5=lg4}6=|EKM$$>@UEEmf_6?XKAyXqmiubU(g?${>)~74+Y?ep)9i2EJ}_ z%mIjysuC<*vIIqhmj+~h+(x-CkV(xGkdJ0zza$%Aud}_1;EdqdXfI^MU5AQKOf=p+ zez{52cDF-SI=j9Tyh+oJ=)PG zY{Ug*oY#M=MROG;sUM-UpdecezhH=E5E!$Ohvk!8i^E4dxqbO3UD^Cy8z7v($bda6 zTNwH(_5CL7h8ZvP-XWzg%eroyrVP1zKkg}k{#3sJD$o687u z`^9@Vx_rXN;99~h$o9$gGgmQRC3N%qd^Gw7Oc8+SAWwDOrAr-cd7hGFlw8klSCI=xvAnHf( zL$DufcVL(@M=lm-Q#DGoow`Ox*Z#KA!EQ#WG%m>aLG2lUBNY-W67>7gk2m;J?+!n*^_6i0s-m@lhJ9<7 z)98TS$);_K1FUmm?veSnsw9l&0woNVa&0h%YR~q&J=5gKd?R)vM9=45YoJ2i z;`?I`Sxc^sz{!4{7lZn$-*Jasz(GeR8pFx0Mq*14HQEB>`vagWsEWBVBfv?x`lsM+ znHV=`Gvk2VVcz_=Rig4HqBO)+TdV)A}urye53XUq$s=>m~2VPJhQ9UW9RF54mpAi__&h%Z2VQ zO^Tfoq=o*V{ZX%r;l*O+I!V_RRg>QEu{4564 ze(~fHqHpNwqMwKn#A&=b(Y~D}wW+p{OgA8S(iys(*&D5w$CAb6MNf(L{-j3&f^EGa z(pnDm1-v#4?||0{Ms0-3`P!n!5adr;e}L$|2!Luwn)8{1_O)ZZ*;J==&09akN4NC& z9frFvCf+aCA_VL>l_-VPm_D}J@bTB`DmyRrn^E= z%msgFOJ`QahXg7i(>m@eIVRPp?PCmi0=yTyEx$Kvj85&8FP`Hqv&(RNrAa!Neg|}u z^XbBgyPWRiTbx!)^Yd>!wmCHm^gpffX0R?dsPQ^b3&Uy5tg4dFyvTcDn9k6tzXl$) z^gt`-f5$_R81dV8a90@Ur()G)Gh8(Ywx^8}O1HYlR>T zr27_J_x~wF$jwduh==dwf7!Yl#h{1KNv-b2jB3g8J%FNwZ8ZnNOO|@z- zj)aN~lX3ApAnJ#(C||Fgc_q=neusSfG@$@1ol3p)RgZ5$U`^-at-P=GWb7bf1^-weHr1CNJy(ITNy=4*#cH*41s%jftDr+2|uS9!thJ zD|6-~_Qors3$+ zngOI0iUPByk}~tHMc+W)R)CSxY4N}@l;n#K+C#lC#7J9XX8R4ZW%#H>P`lmQH?Lh2sk#^j?Ule zr3CJ0uq$tm{*s-ST)3&;7sus6SzzpZY`gbVKYa^V|3@UgWf&T7&96RR6%A zHM%sUtG~MMVU-&)|0~hC&Ts`JI+TD!N8(v*+(BISo$(32So!bsY(VIdX1@GZr{yd% zm9KxJ@UBbw&$Fq(&R>e`wo63v$(-O)*gLr=k;*|Za)|h@NT$4p(bSp8@&qhXuUTYA zAiWWw-kGCk1k^i!?~+}v;OA>>orC+1^8}_jeiX$(cAEv{)cNeSn^W8y4hTQbXqCD0 z7iszKF~goRONEl6Df6)=o^fRy`<-6wgWVbkE5F{$pXtErM);?t^Dyc>IzCM4zA$`GIgNzp!8#2Vt zN=!l;+l9eX%WtPs&5u}9Iv7$W}HAzfPMu%N} zF>5W#I}3vHjWo4~=KP73FfdjKGU6gC^GudsW}U3~@M}mR9|EjPL8IH zX^XrWcfIzlR@*aFZGn81z(S%#zL(Urk9ays0#!^c;>Kb{`nhf)xhQxj>e1mLC_I}) z_{Pd-zxE63i@QJ87P%C!Q71ghF43T6>7Pv1M$-G7Jhz# zn1%`^JOv5~PkJ-m0;oT6e~YZnjDQ!U8!>dJ?8V{Q*9#JDkK49L8U%6Y#>-Bzt9N%&-Q` z7|vgbL0*n;VjaLrIl{Ac9=^j^g`)zow4dFY1yaFeAM$es0T&;SsB<-DkZ~-&9jp38Wb)-_*0YdDOjbcKUGzfNrEjJIMqP% z)>H+%Nm>#d)zL82+P{;m38p5eHD|ZE&I%l`r=X95`|tL$opd>ENDS9FJU!RVr^bpi z)K)7~Xc+oO>6Op*Wu&Mk$uz!k)Cv{WnJ@_$`2(VOHIz9A?CY1CGOV<#%sIS*7TZ=H zb_kXUew?Z(<6NN0k9c)dp9AzE>gN(*Mr!(JUD=zW2|QwzG9P!rMI5Lh?*mvJzL_X% zr(l_^8f0=SDl+;fvau)6=aFYph$IP9vAlz``1y#0R6XgR4Lq5&+W^53hlmCK6qQjj zhh+hZW?`NUONm1abvOsCTn%dmCu%(n?S|feo2(TdoW*&U)BUUy2GpeC>@5T#!xnJ1 zHI;yH@ZT^siPpgCu$?$1j%yN|9M_rlK6Gn{J=*0a$bF>9&nZn)>E>oaCbbqWq=m{2Jl6_}#(+&kG3NIYl)_>8b$zH>?3Fn2i%k`gR^FF*N_j0 z&41O9fHO7=g9n>U)j~){7;#Kwl1vGhUgwS%7^BH2%(y26Yv;SU;rHu83PjHhNt_>8 zt-tyFt3J%BnRPdbWBk!neA+_-@(l!nkb9E<|<7yyy|5^ z`50c3t`8jWKn9}TyP0#qwo00DR+A`_ps;DBgo{?noV-vZVOo%UpfFI&46?xK2^Lj} zxlRntBUt0s46;Dg&P{2g1~I|gX;T1>r8K-qDWwWpB-&lm8gGqt_+e#`5o}=qmzl${ z>M>4VFafCm;sY^sqhPDcflI{6ZeXWglpQ`Z3rmzlRD1TBgqZ(raQ538zF0=vokh3OI&8)~t@-2>Zt zatu6KhM+a!%Slw4ua>^lLt3vH`9&dGQsS@a=ukkQx7o+z!> ztdQkaTK6OJB}lv)YdC++ZS1kp;oR;ZfxaO5l`gW4@8=^W3|%;RmE1R$t}f;xf=_$p z{q%IZfYF-rX&J>gHO@KlntngLaaX^tv7Bo{;k0&$m~gKom5;Zh0*>(iji<08m_r{* zvQ6WgSqrbAzF7d|IalpsaM-jYCG<)j2#%$B$WZH4wZS$C=P-~AZ5b1E%Hn0Dk_N~Y z5UDjofeiOVmU~rM8sLB6L~+M+lcB08_sTq*tYC|~naaE+Q=BPz36g*X<;9XklY3|~ zMl^wtnm}a!A{X67NCd(6&1Jq+wjrnAMM~E-g=$tSp@&5$|K~<8eYXd@ctr%ECcH4KWJE5?4y-5)ZIU(?pPXQz1bJ z0`Z_R|kiT;`ld>|%&Hl_ws|EXjN zM_l`*@j{#BuP@caIf4!Q>mkxF-D|Px3-WR}ai(I`)d{DDC9b8pYbV4nQHBIB$l#!U z(>CR_)edzXASOa>Zf-8Z>lnF4cg6aDWNJe85k`tLkITW=2GdHYY=EolCCs^+1V|f5 zipIeg`asds7va;v*T;o+@(IzVYS~?Eh2>ju_%EUBF6tDiL}V zfQUrd+WUIY-!3PmF&2^tpQWk7g`LGjz@%L@dUs4;u+9#W_no9KQ1;Ku8ChiTXGAf8 z!x_#ORl%jI8_H^+0{|#EIEIGf9`Gx{K;YIXp*vKQiUIhJX&dk$sdWD<8B?A8J{^1q z-3~AQO6dfU&2)c(#liU$Td2P#5lW?9Eb6K8<>0t~;#Q(6GiM<**a@&VRt+)^nyuDg zy-3p4Gr%@^OEswVsTC_SPE`#=N-6H>Z~)QI2vz`Y4G7la70d;xp+_Ly_n(@!j3s9V zBve8z>F_GC+U~1fHXu@^Oa!b5eqE!gxJqc=%L^AhnuFdl)Z24A{zmaxr`&O;aFVG( zC&d5Gwky-XO(w1-O5}kDQ=vD;H^L~EkPl>0PN>ztfvaRK6!*c>L~LM1o8Ua_ulQyn zRS1^59K>0Z#Wl$iqPiGN)0BS+4!Z;GuBqmRTI_jUQdH)Bz{_e##OkA}(-n90#hS`e zsM<*bwqZ(~qtCd%-u-u-rb;dfNIuPpDncPmMclD6N2^zWH1zM?LbK1mq1M!n-imOE zchVM;|2O}fhpt~>Hi#<_?v!+si#2E$jnY|Yc7U^@m8neODb0KoiS|xIa4#r zpWF!?sag4jB}@|uH{^F&Q;FP9D(m|JZHU14Ls#$6`^>o`{z@~DxHC^Q9lJKvA_=Gi zGy||??&Z@oMa5CBKOk>+-e_1G2;lq*#3;;a$aj*@Q`jh$oSF3YXA4-E z(0xDiouHrX)oMySqxfZCjFJi;;o{E`8QWyqC9h|VI!$}fg(0$AK);o*4@wjFAH@-nJRhVc4#|R@AG-)oN0P&)N1b8~hPd%wn zSPua9ELY7bxrBgO@i*Y>p#1)K8}m<=kSk{sq~U8VvNx@Z6$28n092q| zNWfIpRIEx3TEq)pTaZRR=2Ohm1>|{CfLq(j8;=RdtAySsA1RgXK0Z-p~814%epDhWA_V_x{lyhqw3k+mWPDYf2eXG`ljOfN|C) zFlF<9fzs1_Ke#r41>{AE)lEbo0FN-D%5niaN1PRCqOPL0F6`65ovfSynypbykl+Ru z!-Ot#PV}QWSnfa;trpY>8(f;uYp0ulukD|RrC+r}=4vu#ni!y|OhM*oAZY*r%0h!} zstg%BZ3&Km1ulY5(eU}IDm20S5>Y)rWB@}f3f_yMsos}coA(yIpZJbjbsgiW^RyB) zP-s4k3L!Oqa*^L$m8)~ZsL%rlMqiRn5tuU$Pq(qDELDANbn_n_LiUU!WJW|SO zMt`IYg$Y{ao~DbD2~;iwn%wV0tGDaH&(DXb?Iplr@G31pkwXo{F8?1>Y_iB~6th5; zROj!X2-HmeFE-ttKS!w{Gy#Q}#$$y5se{fVg$GG(s=g-@3|v|B(V4ycgTasin8ryv94x3j9DHVywEeb3|9+hl@!5qrYM4f4B#b zcJO!b*Xe%*`Q^CWg^P=a(SpS_pJJ*h zLrIz@Q#LCfJSqZL87iAIwCI#}A&z22dn)DLp#csZ5)B@lW@7+{L$hjm=~3b){h(-5 z(4Oz7O6b3wkx`CWFccWd09o;=2IVHn;#ELaiUHuGCgD`8`HU<;8>G-}q&4k+z9MA} zwHQM>tK*|yYL%K@`SltI3*){Xcxodx6Hu<}-*t!D{DuWMmb=q6xi@NKGEQGmC7e2>cMo~Ebu%$*Mg3^aZ8A`ScD$8=j-+VB zR^!<*T0;A0xmJT>fc_q>&>lEy!#IU^UGsUnzEt<;?%ieMReRtU_xH9g^QL8a4zpu4 zrJmK8oHLi>RQ@WlU_9hsiwysz>=!V2DO-Eb5hO|606CF|gKie=i7HXcvT6{<%jZy* zf&JANgXwNrvl@2;N#AaIfI(pR0My_96+jiKzL985l2q(!QVsB!z~@O5_S$XI1)OI=yaa0j2vlYs~bDh_^XDNe|gI(HowPUvw)qO7*3wGX23{im96b;0NUCa*?L z;ByUiv_j(8U%f9ajp$1I(X-lEsv9ZdSB285(L80Y=z=rBo? zJ)3OAgHbkJd<~re*rXXjUA9HUcKu{)Lt7TGTXVh#Fal!+5pOYb z87XIdR?l6%cY5hA*Kmd~*r>04CJw)LM#8(r}{;7(cK_= zZi54{72Qa|d%d$^pPAwdU`2SbgxxgFEAXH`l&1iIqO=acNO4e<7PE>=C_>F?Yl)3P z8j>4!gci&^_!r6JW8OL&QV zDN7|wR#G$N0Pw4jym%l#9`q}3zFx)Yfp624|Njq3(m=XCR2+v_wdo{aB8{@eg-MdC zTz%o`m{f#s^kdC#o}=dW^!%DIV-q1pN1(IEG(n(vY8`t{p9fKtt~hL4L=Emgqmhir z1}|Z2x3v|}Q^w(ny>!&QaAEwBv|Y1yEO};2X1i9(*5^w^rXwu;tMYfX(BCIzhmaeG zyxjJ_iPx{d_Kf&S9xY!OCg|F3{ikZ@nYsRtJ|xVb7EhYv;cGp60^9D`uw8T0(2|-(9q;Ilg=4UT)Z?2WfI~M8Z?p)@J!4ntskuZvSoHV%9N) zMtcet1iIWo;5Nm+5;x9ZxT6rT;CrXrblbdspf7YmTIznWf4%&P`;XkTfVSW*HU%KX zla~&<8yk0i(WTTh+tXKaM@34Ji9q}1@wqcA`zk920cXq`DE{E#qZs>64-~xw6KhtV z&@86jBe%OyXqnk_RsuM%h*R__az?#~VpVpi{H~tl0}ZtUz{}C`Orn!a)#|B#q4(a0 z_-ndoPYgz6Nt-N@va$bl{;>n$ZmcBy3i}b9N{U6h$UPUez(DDd=*SR*7Nd z7!`LcB2#PCM;;doEY9MUbZe?3q68*62MA#I3ZZ^K}!@UL2-J#m}tPq@c$n1GkI(rAOhRZ!Ls>v z$2~vXw28B=iAcf#+b*#+vk&I%B;x%zQtGx*7Oiy@cf|A_*P~0a<^LJ*gH!+=@MCj{ zcnuvc)78x+tR=Kfj+9OW!8mnyx+O)3Ivw^pnT`LmA}N~@pw2&6(7oXAUuCi3)hHRi zPkgo!DFOC-z}9JMK*W_Sc_^GOZH;iZi;|}jX4INFdHk|!Ii?Tjqtbn%NVi&?ffhH+ zY_{3mYc3M&@4q>i?K&oE*EZ|L?EM(;<;-wi)61^@ru+PzNI7_%e@3Vu%7{5|ity-S zYVlVFtz@Vr%@zu}jCMg;0vZ6_yI&n7s&00(G02^lC$#~2uJ7wM`olND$g@CH74 zij9GnUgw;Z0S9oq!UzD@S5eIaeIkcbvVKTGhy`jYz)L6P5o~XLP}w%mnok7S4FKDx z^V=)oRsejpei|62PO}el!Mcd6W1pbfQ_94);)7C3jQ_e3+ehe@?HU1F_8I5Z zPIo{=fEV4S!uj)bo~HOvy+?E@_oXf9%oH;w82aVEBOw`@Ihkk=X!L~wNarN)(t@!N z=03_KS9&WYaVsAy4u6q?EN(N<=>XtD0d@4s#?3BBItT5Ol!n!^?BTT6@8z~3 z%+xZe&u{V+I-N;FN5;po-RFRmhSc1s^R@~-rbqSl%lHx$xVu=9gH1|M-TrsQ1C0jV zcuyL($VWSP%Br7wSKnA_J~KD{PE&|s*J_|~<@Z>VTV8*3iM`kJYNdP=3(TXrUAB?x zMMzaV>=F0#{4*WoRY{5_cirVAOV!rc`x|!nzAtIG-xg3S9jW&u(a3Zw%#>i#O2kY{ zmFLgAX2HG3MKX}fW1L|VYe>P|D3Q!ziF#J=2# z44{TWC$DPVrlRvA2(yxg1HgOoSz0ecOM(?!II|i8s0;cGnXiRgwnR*Y!94ZyDe;)` zC2X!sFBEt9gDv_C8=cb&)k$3!{)1vaKuI@Xa{(xueMnoZC~svtng_C?*;cKxn`TBI zoTOvNvT4<@UtFDeU0@ivwpr3>cdh@B4&Nppx&C$Ckde%;5-*9HGv>O;r_SLs3>I_`3ltR8@8BZh`uo&1 zpjtwqpk#*tc0CUk?PFtjk1GmI{7`-pWagBQ1%&}20jvyfQ7Usp6RM{JG|dySObDO= zLGweuzhc-t~LqlfF4dg4X9Z`XL~&)k9t+kI#!*_S!i>?5q}Cv;t%aheQ4kC zX`TKX6(B<{cg8WgHdVjQmE=~ivI63VYHCHe4qW}Y5DcN2<+k0ZH?pH#&BU!~{~3Lv z5Xv^;+n!TRN&7VSWG=M4!sYMWlO(BDw7FUK&jrh&O4@xpzsX8)woeag?sy}U?d~04 z^gf!=w*a*%d!{4l+S^n64+xz={GbQsoG2r?>PKf3W{p~fn#NNM(n42J!ulyG1ei3Q z4+0+m4Ikixrg@;<7eL*HJ_s(-L1qKUU0?~Zl@j8R4X6bt+87IDIeg4B&?=?Nz1Wh= z+$ahHc76q1=E>`RiHwjSa}MwH+OU@ro%I&o?u!X07@~~i!x=@SD(G83nmxr8RoRAw zSm5kzkmfQsNRgS+1>0+p7a3gsi=lu{4zzqi2kNIr;W=iew**4ABUf`y@W875Z4Nxg zNrUI+;Py`h8j}4KvTFmt-M+!V%FKgjQH05UR~W^qmgknU<`jaOvc~zcUKwX8A9& zFLfQy1nCeUzk=~q*~s5R@O@jJyMS7OR>nJ>6z#`_Z*YPy)&_>yA5kPZVgN%~GrJ5dhCR9~L zdX7|spQIClAJ8Po3jqm&R?uE|xPKmVx&Ks5-n2wAAIMX5fifvi(1Ku!>T@I+Uy1I( zx~L8blpzEn&vLSJhOl6^mw>}=-t(N0>gGoGM z@&9y6w+`BENhw#p2>KfTGrZWNN!9@^bs)M>dCH~}i#q*yl^p(|Sz@xe5VAW5FVE8R}whnrBYHJE29G?tJ*&YoYtZ{|UoDTcKnyJ9Vg=Rjm53+swp zbV~K{jfbMq%m2(_*%@er6(MCIG%irCLBla(Q0CK6C`;q6E=xOkK8*{k^57gYlm;-~3kvCPJ>gO; zEg8`B+r$W~+q7$|zT=|?@Myf&pZ~nuMMO~j!eKeuINSmcc&+O`>BGWNI#X!%$BE@` z3nv#LSv8GB0f{Pwb`Q-j@5l_@w%0w)dsdx?qAyJ;*K``KIw5bS}VuRiEIeAKQ23eGLuQkzjaX~sk+sDySKs#9hpdsB|>_ip)Emn z)%(uguIGnFgG;8Nc6BjMHhx@1Ts~E8Gv!* zT6Nn}M9COmT82%86nZ_whjs$z(0UJwS06nD*o=koPpmEL9MxPIq;#&~dfjB>@lEt5 zp5N+w`KcRg8as$^(4#u_E6Lm2GB~Gk&T}MX>$mbm3KT(<-AYFVM}m0+Nj=XhfLZSj zx=7R%C0TemrXq)WAm{+{WT~j0N6jOYb&ZC_z@Kd6Z>Md9+BYNIJMKL*b=7|y`8ISY%5r64i`1Q+~tm>?{CmP{931Ti4QP| zuu}go-Sw#qkc9>(<`u=rqY) zmzBHBU9?;~b(X|lIy1w4^9sY(HTuc)uIPGXo8sL8zuYw0RrBFbwm;0fG9nPEHjQ-= zqcyt=7Of2{WqzgxAx*2-7?i6b37y}dLzI+NE z>jpSRyrH%m@J86LpAdOXjpyAMb))pceRV5n>sqaOYYyx$bqeO1RY)vcY}Gbia}}|b zV8j>)SR-Wae14?R`~(eW3V_Q8=z_|>GKCn2lZucwQdmJuB9G0>fZ!(3?&f>x|7;%x z_}VrCs3SiaEFf z)1IvTapU5T>U8fX0wG(K3$Z^~$S#iTFLyGK2&dRY1<0b`44Vc#ekY^$MC+=?Ts~Y< zK=yVFwIch@zYd*B%ty|TX)n6);rpgryI(PX`60uuZq{s9#-zQq`uafeRFLe+Z>)W? zH;fIR{Lsxw_ivhRg-kQg>+d|pIfuBOCJ?i^MnvaELmg)RULZD(CCQnWNz|V_^#fe+dy6Nd>qng5>J~RBc*RnBIYP zS{QApCFe0b{SI4116@P?9qjS(a*jb6@8at5fPl(mGuV+;J1+FopNvGFM4Y9lkx<{Ss_4r6Z%N;sFyW!11TrHjlnA zbW{D*$0kvsqu^4ZN;*nMt*$qM&=wVJqx~7wnQdAq2drGI> zq?ti7s0cWBy#ZeL8B92%+D%8(k}VR#AQA0Zzx{;|yl6+524 zmIh51LN7W)$iF0;dO8G#C~|jPS{-|wAmTAM!J@Im;UjW1adCjZN2!29m@4wdd1`R( z9dtVupriY`<=$Ks*)jia{Bo*wAVM}BJTu%2BY^txyoO)XWC833hTTUYoyL7^0~`yQ zNN{PPC#2To$p=n!=1asU8;mt*Ak)od=v~dW&NU=@0=jx_V!#P0$0P!nbKKJ?DIUB_ zI|#(z+s>^b0j%>w2|0^RWx9%JdNS>O@8-*eKcE)RVR@D)LU>v#4Per&be}wi!r6`Y zAPNu1v&8op3YQw{_%?QKwl3WIZYMKf!6}`X5UKI7IEprj&6CA)DlLB6fKNl8{&-5o zZ;)aA!ITV(R9I@6?XOo%8cg3sVB*&%!zAbFuwEor*xH*EHQD628uK%oNU{$4$)EKV z84frT)E!n@@e&OzPY}UiZ^6-2_M)P4mePy((*ie`A4sM{vp&R& z8dqi7&*thv!TBuQ*8GhnKdS)|>d0Jh0v(47Ys04P&Esmx&9026NVYI;kfpgO{{}NJ z*TnQdSA_RGhjIU zzFy7{h`8&qVa739mp_{nL}PlEZZ57c>ZYxGN+J*udRQCN)`$Cv4}-n52agPvDr)4$ zSw6{ElPwkP;+-i*5zQXPG%l?7U%Y{OqTPcGsNvq|pHjgnBf;;9*Z@G*ek}6x`s3$6 zXW0p(CB*vaSx8Q=KVo)Wlzj-zAA6>sqf@$puwjB-QY7K>%gzoM!KwE?2`K_i)5U8C zFVI;r3+Bb1cu4Pus>hEHcdswe!9%4Mxz5%ux|E>zX ztI+-GjkTA0=0PE;Tu;0B@QTh!}q@>HrvREaxP@GRapdUPLV?wr<&$; z@I^95PupUb`KoJ^Yffj~)x{q$)gK1uq6HX{E;uMU4ULCr_Vhi(eedq_oCB+ML#ke!8LM^v`OPMHyOeRE z!@Cny$WT92@UW_KyTWYk5nOg^;PgI4^u6n!s6XWIDu0-4mH%!8ol_6Somf4X)E2oE z#Go#AT)VE*otoxxaT4?EJ;r2u&BG9?{v|g`_se@d-F~!?P72m|4hLMZpIv#pW-uXu z_)GCp;ZF zuTD3#2eoO)hXsQJs1RGqGdJW{w@K$q@|$*qe2(^^nW;lqqYR>0P9 zv!0RJ(|0gMdun>mG; zvry#4<7q_vV%2fQc^TpYLC!Rtyy;SB3|~Y>;@KzlkeOALuM*~eZeH*?viu^jN0lCU zFSfP(H{y&_dBGp+;^Lcyq~ZNutJ#o!_efNk=UF=Zqav2u#3$1wvT=o1I&D$CmFpgR z5lbJ!H~nIVo{LB3U$bMBaN(G&J(@jHH?Tl(8cZ4Z&W@sTG1L+a_Pk_!P~GvD!6k8TDm?35V_32zF`Bs-$Z#a9^7!m2z#l{g1sXG;e9rgv_p{4pK z!*KH*sBf9Q3_FVG8f&+Xuih&Y@NVtceV^m498P`t4)^EhnXs5b(b6|jVH12Ob+S`E zE6m;`DI(G=?Hp7T^?vlH@ zuYD@0+BNTgnLq0FU96|X-&ATY`yj*c{U~Yc_+iD;VbF4u7TV#p64zBpCEcE|$Z;$c zYd6Qf{t&*neKwp~BK2jA>RZp<1mVW=84gx>N@)=hdJL8a!YD+hYK6G$*oYp6iL}p; z>xF`YuHwYtFFPg1_BqZagAd@iU3yVmm%;cLZ)3da<&`bE-RHGj_6Ln0B%N1YmIMcQ zVGw6sq*ysJl*bjyWvte|_3ZiR(>wLeMB>u#1W!}zO}_u&vpo@K)Wa;)orq`&ujS{7 zu~+q8K5a+QtB!Kt$aaGG zC-u4?KSOGQ4b?PWZ~5Fut4F^tzf8DyRbku;s>G(;=9a<@OGe|AX&*J5Bskwz96M&b zQI2y);kq_F=YyJTPwgvt#3bvB@S(%j@sv?2%4&}}QC7VRE8)c0NBGPAC0`{QXj(!x zuk;FAJr$l$na!(x=X*bN2_QQvwWu>;A5 zr}2kQ`{YkY>a(2q@QvE8`y%k~Cy~QE+y$uyBPc^pm47HdF1m9$8WxFs zhI`%>^y3bDIz@x`U4=9WY^>t|wFsUxPfz^4TKC2DzOyeX!C&WJhGkoKhrEL~C!ewk zqb)OJU$fn18^4{N*%z(H%xhdmWXS?c4^hf}2j=6x^m*#eP#0mxk`-?oe9pO#lO9@O zP)U}$nr2ky)e+rydkheaR@(fF`$)aEf65RoCHv*=mvY$aRuA3dNBSWfT5*t!g`2}= zJ0+5qQ;%--gPMcwW6g^8#hFOpFN0X$9_fWg_bJ#ccA z5LPiFvt8;7w7WL+`-ZT0@qkb7c*qkaJ8$2|%9rWWYvf;A?Tb-|MNBj}zCU3Kn?cWe zAP!EI$|l|ewzFE&PwODOnKFS11`6r&1zn(S$^>2S5SwmAQqW^i1U_{z$6pIR0ZrQ! zJ{8o^OO%_5tlUU=h%uo8s1+xM!qV8&`;pmh-u!$bE&FcYR*u(hEjS{HM)$Y&ti>Ow z{EA=Ay3-0D+K#GF5O(`y#lTw$<61z{KTd^ushYr%dQRrzOC=5y)Utm07Wih^S=5t! zz9%LO;k0wbweNe?`HKFf$z(a;;$kRBWcccwmVyr9&<&e}#(X7eI)<>;AK%K@zR43V zdHJ4E>u1~GpG*F_Z_u&ude4&D5ch_;_k#EqL@L zIDMB9H0?aB9Dsdj?YbXK%-b~^H|laJ$Bu48KLuET04WCzfKe0L`;zunUx@4YSQ<7s5R|5Y4&zvic^>#HkqmG&-}&sMxpP;2g%5PY@S zqddF46_{%#eb4=4mB@N4+;MZSZ<5lkB>bXUaBENQ=JWXD(9z(q_>#DmXuQz@l;k%H zp*HRU;(HB*=+()l^M`sCvmTo(iv*#1$fF20Qkn(JSw^CCZRlsKR~gUPze{2Y>+7F0 z!Vvt}N)JfP)*A6~)jVKoNB#^S?o%au^z)r$wk*{ky9?1|B}A~@1Nt|SUq1W3B6b{d z1}?2**Psht#Ts#Qn1%lZa*KBk-g_apXTeBnS4&epJrZ|3&tUpw2okTZtLCdW-DuaO;7yC@z@I z@~^J>@~i}j>j3Do#M5Ddofy|sC3r3x*a&)GV`{Mgqvp9goyB>6US^ z7O0(fh#xEG&_;V&ajizTg!pfT{!$kGelR0+g42~^jxoW~A|Ca4i?Q9ZCOa3NL|M1G?}je&QL#5&6rjvVp(YBw64%;So<(OZ5VcFib683CX}ekw4wef$F*aVC zsP;4mbQFTB%|tAU&P@;h;Cqlwe8c%0v4TPT&hLtDCTz-xP5vhzJbhi)j0xCDqvjXB zCb~L#FQnJx7?c|guD}3p8n!|_Bt*uff;@$fX zW?s99C;5H>4ZXH+HaQ=z^6lof;4sIgO-)RgLS1Iov?v?#@o@sIe0JdPpH4G z!+VuG^duN*2esfS)YV5{|0^x^6CCm&5Sgw{BHNdP^V<#pYi+H1{fM!8lSB9V_GaqfftJcULa3jq#<9UXdkpK8CKzuEg&UG z&yVuRVO2#($jdNMRngB?x|c`&3dw#vZPtv6I0sC@AYKC11)pD(B^c# z&Y;=iC6tLO{71SR#H7&X%V74?)q2Rl0S8Oo^EJc|V7T?oDxJgH4;MEzdi)i|Z}lGR z{7sB<;fX;>H@W+}Qdl5%kNW>Cb`N{5QzF^PnhMND#f=w7;8#e&v5WvVKDkf$rjJ5` zb%a48zf8{jT^wf=ZfB`V_yasEX8PiMId$~=vUy59Ak%|Ff4}Gz35S%MTm=KwBdOxe zyr$PUnHM0xR16Z&dNnwvZrSb*>L4732YCb=1?G4(a(5QqJi`CQZ12=5tzH;;&DU9% zIqMw~3~U*H5eWW<5@^-e?aZ;?1{s|T3n6e#{%A)j0b>o$W>BszsRXjk5m1PD4{D~o zjklUwp{wgGeGj>+EEpm0VqVjnX3AX@6HNxGSDBnqQ4ycJUxQSIbexrD1N2qEUryWA z1&+UYQMuCCBd3FPfU_rr!DOmPl}=Gz&FC~jv^Xzq?iK!OtxHX$tt}leD}#K=yO&Zt z25KNw%8S=w9%WQL1inTP{o+?eurb{wA>4HWSnGan@Z4vYQhc*=uPUt|Z?i z6kU2b4^AjOudsCZ%~AqBQ2R%J;2SXYdv+8>a(NK7$s85!^Pp+42f^Tc;ECc^?0v1l zo)i@wZfBAaf1MW*fR6!WHcZk*u9ElPQopiur%QA!hFDSyc&nqxxmefH3}R7=vIZCW zS@VVz@6S784ey?F>qv(#O~8nPbYZH|3jADwqHJ8L1}a&#oMWNGxH=R!Il0^XaQkZWVyTbhveKpb zNA4U}T9YI-)3oSDt1J$qokpnAK$nHw2fy+Gw1>SuM+Y z^ZS+PGFtQ03wdCR%kpV}3rxkt>2BH1JYEUR`W_2Gn@3vlQ9-TgF5-qif8j201{8s%Oh;03rv+ImL&{T_P{AW4$_Rc0#*82;9?W&L9+437_GxNQn9%l{psHPuV z_vUsoJ4G#3--k^?sq`E3kofOh{cq@iee=YKyC&JSSEn_}e8Wzd4Ht%$Sbp3C#lJ@0 zVMcme(uJe1|eRfMRrNgHKCdEPdSSHA=aGnx7 zCW0B>*88_xL7=!}_i_(%E7Y_%zlWP)oa*>#T&9H0AmZT~|mXY5XA8 zY@}W|A^j`El6<`5u_qb3`6F@Zd(DWk>PAJrvf+g-wSC!+#Uqq=Od&31syY8fh{Z{Y zj&gDD2mTu&80P+Ih`WJ78-DNeedDtR#_q+O_Tg$kAG6F+ggpZpmY3Wh!_papM^VNU z=tV{HaiNLgBH@93-mQRH>N;HFFE}@Y(K#`Rd?2S`7BCiaRzqpkq%W(flXCW0(0%m+ zd=EUy#J;H|u9Em9Ngm!biE0+7jvnCLMd1|To*(8KKp843>nJ0(r(^*zz3!j1Q`?o{qcf52n5L;zhhsMdNtfVvzMnwaYnPH_JM7 zeA2)r$(gkfc)_^!@7b1;!Me(NVw2V-^@0x`gpsh(eS`^T`|?&6b34b&iOQX*q1K#5 zd68RQj;h&$MEw_oY)NK~wYORwIg7uZ;YptRM%QH69fY1a`myEK-eRCzCvINbwnIo1 z(Mq^T1_i}C>=(h}0@eq+2i?dTs}beSYLz^o)F+T)c@yCIu}qCym9B1C37#?Jr+^oQ zHC1VSrp0FN?7cKj7brpqRtR8t1qsbgg%sK%4HkO4&fPeM$CwnItcIt9Rrr>G>kyCp z+RnNTU{{Vl-6V&7R4Mbkyx(<316II-jF;Q#263u1;5DE+H)$Cx1;VQX5`x*@f}Hxs zx=zcs6uDOk558$~H?vm_V3&k6^5OOk&!sa;RdGES!#3y5k+2RQQluh zwaWKb-erIiAvaO8_vlVZAi!WZLaJ~ot+Pl#N20BHl({lPkNA2Y5N53wB6-GA0vg_9q%99xH~5D(BJqOFi;EMIscK_ zQXd(W;a{{MNp-a)$4QI%U|coPCKE0PHF5<-=Q?!Y~%ItrK6B!KFo($3Xe;Ft8i35tYB*4uV(k3A7Y{2hXS1farR!pZ(FUQ{UYj51e zJ>I*$apz){b@q<-38H90Q+;3?cTO=Dr=8cbw4PnK?e#nt&#{u399xsnq`*uoe4U*EeOm< zuNK4@B9e$`89N@`4ay1G!l39>_+~jIWQ=Q>+hnEr4o3whQ4P=_!lfX0&H%k%UiT9j z0LBKYDqD0-7iHt~I^z5GS%C{~8hb$CkbvFW43>a__CvQSDXe~}Yg>AG#@(uJ z&ox%=cc>n;T_t++V|N~0FCCl$4pB%>P2MBR?+1xk*c|DxXWu`xYuc^LI_x{qB2Z8uarTXKn z!MUaMJE3x2@qPTbIL(*89JlT6qzj*|#eE-ri^6{XSA2ydUz&={9v>AaY>KBv%s~6@ zxja4zpVb}n=Ei*kqj5&K-6!0B@d+Wk{Ygw|x)WG5xo1qSO5K8_z8JV)hm5aovJ5Gq zw^7CMEa?wzLC{uV#TLaIddDslY^r zu(IPhXpVEKH@r~Q%VUvxg!#;@gMu0XYPHAsR@;=HQeoEVpVc0%9AYJL49m_x8g`$^ z`#^Q4+*T!$#zD-@WXkwrEgo6G+Z1k6Ia2(}d*fvRRf*XcQXyXhm;wAI9(QBnfdVuG zSi4D(U{fzJqG~tOdSQ|SLr8RyVW2G`RbGn=F_-eBiqE(5wad!aMp4Ca>#eNygNm8d zw!X^)rqkA|=dzEPsOj(y+h;@L3^P@KM_DwZ{HrOTC<`x$vIu?D$KJR!SG4-dcaA7? zY6pRL`Pz$s%O;ZHeXOZkc~6_dt}3QC|r22VIs8HsLor=gLC}C)oA8X(kUA1tKxx2k3w3?<^B^C zC%ghMO#tykK#+Y;GH+O%*fL(%-+F}?F9?L(AEne*;e)szApFQ^w?aIb4N55N*Klqk zt)9RSKr=79D?QNTOMbW2UT$uxd-|@i!7f6I>e-{alKc0eGz*5lgB2C)UwH$tqh;>> zgxg;8{wQuAX_mh@NtdIa*)E_>zs<<~;^aXNRctdxJRYkG8l@tTCmX{+JRJ%bhz!gev=`6 zFs2-TAp@iB^y@ONkWunDz+m9TWmLKfH6T(|1i%9iPzXTV|37mZY8K6q!r5Bh!7=|1 z9pMPLjO^ffIE8^Au~|_`2lFw|{CrYT6=SlirK26M!TM{yd86VkzpgBeX$i14#__e6LLK2}WDoQ%ldZe)ZG25K0Z9 zA7%pCF5FDlbwopbqVjiC==U`=n+K7)y2W=j24RVa>Xf3}$$NjBplss4(|5e<0nft6 zl2Y~%(h#GtGte1?a8`R;hS;ovU_40v$vo8rtKljO@8fX5KoiWG))^Sg!hV%es%W}>6q`TeLUsBXcZ9H$ko3M2{)f(QiNL1yNXigt0#p{J!0 zEQ%?wfg*&L_8y%J9;Qto>B)Bu+Xc|c=s{*@a*QYUswv!-CgYL%ME5IzkZE-HXvUqCjist5 zgbbI;z?W z&yp|=j_b~T$sb}`0V*GYL5lPpZhDju>9_2ith@|(AKvTI7@<_7X{4a8P*9V<)MV2& zZpWGYFDN}g60Z^cit@p4JzQFyvD@yHF{F`N=o|F>&!c@%G);R3%lbD+&)?Zzr~&;u zNeJ)ITr~Az=5_w*B=P*$Z(m*hK~=*BG>*Bv+p7zx)j?rcfXMgUtD1L8q@qW+W^5!A>^AHV5V)$0VV_x4E^)g7VlzbK)Y&#fS_ zE0Q3`q@MHjZ^ZY{*NDL&YSL44*VHKFrsL$hy?p0pgM=>k!60fyiryomB;&jrrfu{s zpq&!IJJqN6%*ye@G-$chp+bki@aYXIF0aBB0naj*#@pIm+JXm*peU+Z0KC5)^g?uk zC7}llFO3Z`iD9t24KNjJ$>V-TMqo^b=u}FlpdJvCzxVn7fY77vns!FWp5rj*irBCF zI_G}WvHKi@;%g8{GBBzle*=qc+xLqeqZX>Sqb@FgsOFcWf01!Y6?kR!VQ|#Os{!L) z!@e7Y=y4RK(i6iZT`OF<+By0| zfk>np-n=zv(Ia;huE94jkgFIjE(#Ep3yz5$Hv9!7`6uS?@x1D~I0)Z%B*2MsQO+}B zc4C)bB5ph({+}wO5V+^dWBuv+yPAt*Pc)eb_M`#0N4{MiO!nlOYGWKA(>n5&vh4?P8nNWpNj_@b9P5z`kIp}b$b8nX}Zc{Yq7HQ zZy94&(6OM_NNLiO6iWDz7v$O@sQ`TkmUv-Ixs(tAsIg0hs-hk_6U&`c!j)bqA3dW5 zFiV7%G=@@c4=ZPHsrFeO8Vk-+s-FYz7tb5lM(UV4Vx-zd%0%kEf7M70nT#C zRp0_EMY?tq!E1pMe}9?I-suVMBs~Q{SE7|z{a$kaR5v#eufjR^_mYyAb(xP5G7(8a z5^cuKmV4}$7p80~N`J@{dUBUDgeSzvcFVY+P&Ieo`l2Ty|eu?ZUDIE?V5_56N|G>PYK z_SY=Vn78wO{CV*)F!u}8amv%s(+i2_GWKOuvv!XP-v#{Dr=vz2I*bZ)IN^oamtYeSTOkF9kR!Cl$% zd|D>`ZR+bxcA^PBCfwjv#Y@hgG%-lf(Xahjhz>aiAp3=oqLSSlvGD^E2>vIqJ?ewC z&cV9wTk0g)+ppmDhzB=Y>-vxdk)5Hw=scou_-!5S9%pW`4(vZ}4&K zDs}mGYq5K!+*e1zW1Mx))7TS&-cwwjOs4WlTQ}2YHy?TAOxo&**^qMD<317Wm(ep% z%Mr^8BQn{@E#dY0;y|6rb}BbwKSzYH_%d)PyJReG4W$3+O1`vIs%dHF+InPRts z7^RKFDzPb*6{}xOk$UPm>NSdDQQC|e9#Kq-3`7wPTql!6GAe_>-AP4@*+<_RRDaIDz9uNYir^Dm4BZwYLc^?!-*Zey+NdETq>9gN#;hjYD! zDH>}2X6MaeV3-i$;RQ?JS$@?tA<7NkW}aOouw+ZCcLE19fOTgJ7#byZjKy2})?=+* zVVRX56R80`f2aRH$*2u@b#}&S5IE>pFx%Yv2dCXd_H+^B zPX^Bwn*cfJH6RB$&Hws&wmL9THEphi?M#NE@tYhpaInaHc^6aZB5AHqlu~7(Co}Mb zdLE<6yLazw3Ljx#g!(;SX%BLhJ_jH~F-B@Wa&+rqM+&2ycIT<8)1rIxa^s=%DU(eS zGw(+N0W*s1`u`}Va!KdKZM1`^+zmO1)`%hTW7o1k;1~}brF804pkJgtNle^{V}t&3 z+83CiV9g5ppsr+jWH+_xdo($8*^)(}%zZz{LbIG~eq$;8-78g?yi~qjpGwWPz!Mqx z=wK$@&1g{(mWqSh8?nlJMOz1u8mniK`|fAuD-I|-C1Z-hr8UBOM;i^|r|M$71mFm= zo9*NV7tsiv#-XE2sv~+?YCsIJ8w3%#0}{b=N`MqKW^;t9bziX6$ViOP52m4x$p9r{ z>IJP91iz^fi{SmEIgNLEU!VsUiRMLaf0M(>OUsG#xp_qb2G{{jNqw4=5Jwu=munvfK=MzilpFw;HdMPRI7iCZO=>J@K}8$7jqedkthMY2*Q|la6_6 zGi3s=&!@89$Gq8jaHaeg)6{;BFjW3L^-@(-w}B*Sa-2LxV+C=EM4lIc3~&r~xMXhC zG139ByXvN4L>gZfvNUP2x4oZ~eCykZO_`c3s>zYwk*fCYC|~i@3%lNX5!F`qAvoUdy7ip&M&n1(XsJN2;3{ z8SW2$lF)ui|3Hz_2dRAKOoclSfuM^^@%b^n&m=N7csJbu^`%WlvP7zj!MS&c&5}kj zR9FLwI-pbW&H)7<=q2CTg(cLHIx{UxcfFK zLLj2#GD{Q*p=}GtpQbDuodXZ3+lgyjl@C3&cW*dEy{2Qoho-IjS7XxDum@7(WB$0* zW4ju9#>%-!JkJ^rw|~b)B;zzedFP?0M0UsKbHxm=SD;U=-9dOf_U1&@e!F%C%zt|n zbYEuSNty>s)NmIh@XlRnmJ8xd9!RK9G^%K~ zK2nb|8{@(KG%cfEKMGi3gI}pWP77~h$ni7QM@$@UkGnC92qBoT4>}r5JR5hE7A^y>6W}1LkJ!v@fsxH9WaKn)eR+Jo_V6*%)H=f>cf=O| zlZUHOp1(4lu>SmoYW|729)voJx$>N+cWF9&uFLWt1%S(Vj4SLUjrjbRQx%wXNqIL# zsDbpGA@wIH`h6b=WUfRdX7Xm04$c+ON1jds|1Ox5(7K|(l58}QF* zit}q+a$VGaM@;v$!SH39-+@EUl|6{>8R&Dx!tQe1c z>5mSWpf)ROp#15M@lDV_pFZs1S2FU!4&dCf*@5mvNy`)O%jbtnTJ)R60FktsYJtLq zHpC0?Qt6PTPa5KGkI2*mxd_l)%Pw67T>4y*fe7b*-l#obT9vj@1s&DFCX1AGGFaiM+qnye+1Z| zU@*%J6U*cq=#`&+eD(7g_-P{$ZYv#t0UaY*I*I9%nVc-sh$(?1;QosUl?$SUFydOX z40c!UwQO%LFqN~1I8Y1jG8dyB%7MF%YK2!t@Br+%KxBOqzD+VT5hDzXL3egA4hKqF zETpSi!4|qCoPdI9FEk6eP%HOP{(e8+o^pT4mbRKqIqdB1SeG9`;P!9hz7$$PW&OXx zNeTeKS4SQV^#rFWsS{_s$q@ED!AiwacUH8<`bgWVk%u(JlRZb!5B6se!oO7Q90w1% zh)yug2m+%6r}3_~-*}aVHW)ef+a79@q8@>~8Yi(4)W-L8A(iDboGkoj0!R(klXk0R z*n}21l!u^_sjW@wjP54($^y7WbTHya7o|GD+Y;4e8}MsKs{opfGm6H9;RgqSUuhLu zwKYvKIUlgGcH?O(=jjqVz`)oB=UD5!^CBJfgpVTLyAAGavEV}EEEK-0ud%;ADbSRB Date: Sat, 15 Jun 2024 15:00:49 +0200 Subject: [PATCH 03/34] Instrumented "insertion_sort" Added "test_actual_insertion_sort" to test "insertion_sort" (coverage: 4% -> 85%) Added partial changes to report (Diff screenshot not yet added) --- README.md | 18 +++++++++++++++++- algorithms/sort/insertion_sort.py | 17 +++++++++++++++++ image-3.png | Bin 0 -> 34070 bytes image-4.png | Bin 0 -> 25598 bytes tests/test_sort.py | 14 +++++++++++++- 5 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 image-3.png create mode 100644 image-4.png diff --git a/README.md b/README.md index f68ccbe5b..c0f3e2c82 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,9 @@ Programming language: Python - +#### + +An enhanced existing test Old coverage:
![old coverage result (24%)](image-2.png) @@ -74,6 +76,20 @@ By added additional tests that use such cases, the coverage improved. The test was also faulty on windows (i guess linux was assumed), so i added support for that in the test. (It now passes on Windows 10 too) +#### + +An new test. (before, `insertion_sort` was not present in any test) + + + +Old coverage:
+![Old coverage result (4%)](image-3.png) + +New coverage:
+![alt text](image-4.png) + + + ### Overall diff --git a/algorithms/sort/insertion_sort.py b/algorithms/sort/insertion_sort.py index 06c86228d..79e2bbd20 100644 --- a/algorithms/sort/insertion_sort.py +++ b/algorithms/sort/insertion_sort.py @@ -1,3 +1,10 @@ +branch_coverage = { + "simulation": False, + "for": False, + "while": False, + "simulation-nested": False, +} + def insertion_sort(arr, simulation=False): """ Insertion Sort Complexity: O(n^2) @@ -5,13 +12,16 @@ def insertion_sort(arr, simulation=False): iteration = 0 if simulation: + branch_coverage["simulation"] = True print("iteration",iteration,":",*arr) for i in range(len(arr)): + branch_coverage["for"] = True cursor = arr[i] pos = i while pos > 0 and arr[pos - 1] > cursor: + branch_coverage["while"] = True # Swap the number down the list arr[pos] = arr[pos - 1] pos = pos - 1 @@ -19,7 +29,14 @@ def insertion_sort(arr, simulation=False): arr[pos] = cursor if simulation: + branch_coverage["simulation-nested"] = True iteration = iteration + 1 print("iteration",iteration,":",*arr) return arr + +def print_coverage(): + print("branch coverage for `insertion_sort`:") + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + diff --git a/image-3.png b/image-3.png new file mode 100644 index 0000000000000000000000000000000000000000..61fc9d07435120749a4f7a8403524d9d4ada1aab GIT binary patch literal 34070 zcmaHzby!mmANGk+l7dQ&kd_W<7+?XCij<_JNFyBs28u{`hoXWKqq{*`8b;TE(LI{& z9r*h_&+}f_d%gdjjkBHW!1q4){kgw{YN{)e-lDsOg@r|`tn}n178Z^I78W*$5Fc~o zb8@)Lzup4i(BvXQ)!QT)F1r1e&gU$*ymCU74Lb|4sLgr;kg@ybP;TO>L! z`dogb3-@y6jBEN`mgUwnKX}RZ^nq~BlA^wH4n@MP4@$DWPlWH>9!8&cIyRYj`};Rs z)n1IaPeXI`k8f%nlRcE<#p!i)8rd~auoRfhh=(A%eB1`&ku57?573V(KYdJ zmW!o7*>v}Fb8^zVLLN=Ow+9ucM%V1f51`#D4i9=B22Mk8JKC8ae7-06C8NpYT`4OdV6$TX z%CWjp7eADY?Mah~#Khw5smEtc{LuLa>tETv%5n9XDlV)^sjfbZ&Og7qu2Eg?@}=nc z!&?q-eMec}@o;T!*i2i`a5GI+w*R0D*+F+M=pa{G-d%hMr8)R>oclWsI$$1VV|Fl+ zJosl|(_-!5Vr5a1{47dtLM)xi-n6+ZjMB6u55!A3m$EIM+-+57gjJ z4FG?Ll5LdJL9;Hu2L>*$B5T^;i)C{|nX8{&TAS?rB(ce^c7_;^t zzCzTB#4+Q4Zb5cyk|y30)biJEdTn09?^Nz$WTd>R$LV2A`GR_;&bxL~8VQO6IL{w< zM63)BAyo!~ThI%AO$~;|Uhn*$E4GRC=Tz7)IX`5SaGy*{)4h9|fG6e69B78VRuOrG#?_ITBeRS%W1NxuiM@mF=wu-FvJm6~Q#8l_YBKa|J6eIZn;A zi+B@pxO$b{qUI<^^fF3h56{{&kTwDrXWK|#?cJ1%(q}HseaQ^Hr_15fh~=Jg_H(DS z750THCee$yc1ZJ=PP+nP;8;aZ4NRXFs!{0Z8sq-!HcPH)5mDD%0#AR}<{@!h4+tcC z`6Xj2DHRYgRfXsviYd%@7Nhw@w&|2p`7kQouq6VYaooc)CZp7@FsEm;5#X`6s(jJi zrQ52f1$uHea46&i#xfiK2?u9uq>#3zL}tF{Bp>;&4bTS5sO%Iy0S$M!$v?Ri4O;F!I#cr1(rM4+|c2wU5^rk_ae`_b7pD%_i4*yDX8*y|RKa;5}ylh4>hSVLo}J14lD)zjl}y8|U9 zir-K^R1AsLvk6(2cVU){1}c%U5fm-Tb10lCSvWI%u>BP8HoVA25Q};Da&v<-b6mD6 zM40F~=3RdeJ$AtyVnaQqM9=N$yqvFZQ@?p>`n~BK8=)LM(0?j1cp{S`)W$6J=G?Kk zQLTY@m7`G({+(>>s*tY&{$EQ)0gON~>r+Lg7-t zHBTu^aql>f~)CG&@qRDF-^GRiJxO=3pOT0J#)bY`p&4&viGb(bS!75OgrA(QM-2RXIHrqwnZg5_~7^(#VrUsK=1A zlY^RHgaHcF{WJa;q$f`OIW%j-KWyhH(O(Kc@_0V}jzf%ZkM!Y}>CRnHOK4B|j@t2? zThhOxJsXNbP*W3}j9aT+eA{$ZwhR^Gre(>*JN_V{&w&Lpjs4xZ-Aq6h$1F%8nrCfH z^H8&ylTSMju&91e9v^;0#mGnH>g;{T>k&WUoP-j#(l9xJ18&|%68-2K%-nLRr3)HV zRZ>&;H99vsIemGKf@HWYULsF>JF1=$ygN)rm7;vZFNnP%poa_1ALmfMevF7)@-|V> zH{_eT*&16+%wqMRGXIR}xxB+Wq0ztNmPW~aUn+q5FIvu=Wbdgw4|sb_Q2c@lm)qSd zgF+WfX>kyLZvadg?12)^JBB!t{tz{2YY(Lg)$YdOqKjGlT*?#6?5-}8?Dvd#rBRg} zEK~K%BnCCcrBjq|5L=VU!1Z%kQF-HcMP%lfgEk1>su-k^o8c_Hd7iD*E4(o@HYTF6 zCnr(tD3AneacHh61ZS11o5caEKi~@TYXkSptM`ek%Kc1@2II_QciX-+F=S>ZHQtAT zcQqS|%J4dZS)GsEHy3j@6*3Oq;kCa@p;%w2i3aQ&c_=%naxef234yr}xn41akmBo# z6CJ=LWU<0q_z%F|ynws_J!?yDg>R@|;2P|O2(#rW@O=mN+ozf-g$p)Ch3Ai!D8{1B z@8N|soQHYSBc|2`%$|tIYYgn_syRNp>Jt7(9nDD7IdZxgnG=lGZtEMHK7$7g zjfUf1Lg)8~5YJye!H$9sg(hgc#k#Ea!=L*r3M&f=l%timIuRE3qWLXx2a9oj<;+&mo8|TVr=#;F2+xP z%H8=TBz=I_#>Q2fZJ=Xiy5XhivZ_#ODk0nOBQ|HM>BA<>xJ+kf7EbQF9yb>4!&m8L z)bIJvKn_@Hc30LE45Dh#E%TxLB6XryYG-AaDI%U+?zZ0#D76>_z~b@Cn3JA;SUIG=i2KyEh~LS{I5VaZ>;*MqcU>9DnD&yvxFU$!KLw zO7#8EEDyEKom9%Ic0P=LoIVG3v2k6i#D9KxFB+IEP6UBw;F}QpeOG;W5$mCYQIo%V zBaw;A6PsP?!~(9GM}IpT=^%;AUL*dRXGa|!?a_^cX(H6moaVd5g5cDS7vrt$RqHt zJp6h69%9tl2w_KXymCDHe*T&5Q>gQ^=Fb+-EDPWfox8iz{-0-uMB}G_PBVOJIB#(2 zuv(XaNiRvn@hcvQTUsm$@enY3PRKv%ebr1;r~t$rwds9l7{$O_;k+SCPm_+V5yr%) z?nCZ*eCpIdsuSVXQrKlP-j?H1DFEdps0a8QI-^?Rye z6e2q@A+Ll#E?!t%0OKEa)SdQX7&S^Kd2ZkOD-a9#ZU>%!*0hL}f-SD9v-oj!$gq<3 z_-j?BJqd=7^PzHGM8&+8jV5YF_n(I2!W^d;QFx{7Y53{5GQKS1Z6nuOG23}sTy(BP z-w#S~3qIZX<=g|N@R~h5dE7`K=)87)JZY($IL6ez!KW1NB#efpxefCv}QL9k(Tfhh$6v$9;KTX6vQ zmEj=y=JmJr*C>LjG|`hhiQ?H5r>Wh{mQ9)EcK7h~e8~_*4sTb?t=gbodt8Z^W*d1> z;dLa|H{Tt~NZ{m~#0I(CAWzrN692z!flNu1GA31cyOjpTvQ*ljJwlq&9ot{TqExOL8C{x5S1lpFWq`HJr zvR!)x8LMz2hA&s#ura>wnK5NeXd~MP-sx_e^WVtCC?9y6drr;>{n=|u##5&1bBu|U znvk8SteR;m$fA*@BXCkJ69~!Ha)@o$Sa;5a47*AM&ebyIuHORp{?=v);^-_}Y@3tt zu0!q(A+!7E1*ko>aXh)HSQw0`W0@Pn_=)(dW*ldes;CAEt~P)!PD^~tDfliuiChH=v;-qqA*FV_|BHkeos@dPAjBWcv*{G=zL;nX3DDJ&u*#MZ=# zD>QU3(Agk_9I4M~tzLAbvbfd5JK)Y(|5@dMcuAu)nd#mO6rj_Yw#`zktM62!(_@pV z1GGg5e(gu%eiDHAL@qtu*dfgT<;%32r<2<(uoUPxOa^i&7_R?fr5OgeX}%;VWc^h6 zg+#WYvMh$Q(YjldEt@Cs<9@04VE>1dVh*paoeeoHa zr`2d_>Dia2c_lsNZP>rrCM0n7wtCx%o#*V;AYp$46a^!I<_){?UU$ z1^lXxNLbI1ebS+?Zg6{9nYX#@M?uCN^6WwJvB6Kr=;jw{IM2w zk{5n5@XJT(jTK=F6mSmPjd$gc?XEx<)gJDy0-4v9vm+>3+K} zLgW`RMqai)%;>F8tarp>fKAoJVU_uw4YHan>z?kobQIr@P-U|vNi2BZ>_lEO1oZSO z6R$~XXT4(=e)he=hWsjJ7k#@)S+P2WUba$_Y8t**?z`E&odDy@0vm&R7|m3wN#mF) z+RGk##$(-T-wPb(7QoiWvw8Wk$l&?2sbkg@1^pOK=I)H=q~j7!b-_8b_;dLru4EW- zNa|E27ZiZOEN2XB))sp#10L68O7aLVO7SCdB+85pUeBMSg-&02r7HTTfQK^}*B_G6@tX&n9vCAtj6mMjJfTnWvK?qHG79yR91&zkd!ipBC{*%klDXu<@;uX@KJ^kz` z-FvLP&deQh7uKJ9*0frzAH)B;Iz>(*G$l@6nB zH@vuI;XoP7y&0R$vcQ^jXV`g&_~_t+HFYCbr-Y zzLU4h^(yU_qTOTsbO%LP2wD;0Yjoiw;H&8Y4_D|UWEvzW4mfF_6Zm7UYLB>V+NAL& zW9{XeZvrv0ng~jHh^dduEs&;$npkh@F4svwT8w;;*rf2C-Q{FtbG_ZS5?~VOB(U6D zCy^NqNMAWZgM>?z@UXXhg-cn@fK2%|o*<|*FrV9&fygy-bNpDcM%e!TPd*x%wl@%= z*w4!^0$|%^phPD(osJu=U}HWxf4ZG!3sIO%$j5(X|9Bd2s;YK4Z1o-!o51GlQadp3 zkEVk>VTtb2(^qNwDNWVeY1^QVkfR~xg1G!W?AhW*o_wj3^VpTp7cK!33mw#_%N+xo z`x5sZrkd2Yh{K`UsQ0xc)jXL(^MX4k%lIpz;6$R^eeCc0A_W;Z6o&9-g*CeXZfm2< zK^70Gu&yM{7t+~1f`7*&0!;i|(pm(+qp0vB+8w3e zD-X{0_b+Ep*lJqTbr;?^fIXVO+Te?y`A6jP8 zB?KKQgR`2DO(2*CbNDcf7(Z7ZAM^NdG`3~iZG)UcMCHnMTA4UdZB6qS-yc=O$Dm(YO)k1yIyPAR95I_ z{sw2pg57+f=$6b&b*V=I!(j#eQzm*+@K>^U;vv@hvzf>BU)#4|Vf2>V6|NkGi@Y<_ zlNGzR`Z_ZFw*Arj zM5Z_P;t>VOFz!jmOW~5k`oO7am6QhV(g@JIfD;@qXyXH>6O5l&pfwG(7}d*D0QP)v z|9W1#?Sk5+p1hN&8`fcdKWR++B!8h_zlv7yHQD=b?;oCvph_45>q|hdjkl@iwilcC zYaeBNa%5om;`k-A(GWgT>F5Tl-|qe%;hHt4=ieHFe-R~xx0?}E@)Www%Ou$*L%omN zK^ryH>UTHT)E_jFyMC#ksN})ViWW>ImFPbv(-3!n5>0ik_ncOA!jAy;o{#N5+IaIWKI)uYko|9yfBxb9qRD>plo%C#slL2}6 z2wUi`6Dzb+!haVD4$|8d%F9 zGgMi~kXHF5i+kWWKM`J`dl+%i(ixe_aLJB+*SCW4+~1+eBe<4-@%O&j^rzEd(=pTe zxRjMpqbS^F=_J6uJ08v(<&S?@Dm&DYvhwI@meF6z`Y=}U|iws z+1`nz@G|QJ&%;*NWWWoS7LRYD@-H4gF9u9Y>9H}Z44TQW*MbGhk#AG?K9;g*KmY(f z;5RI~^$=VbR?l`@%uYKpLrw3-7O>W2)Ed=foTnRN39-qS&77uAZ-E?mSd2d9YB*`j znfu9~m|Ec#!CgSlhmFo?*H?NU$tD;>Tgc_EZn_`a$k zD1>-#Ad;SunkGJTvZ+5pWMk&ENyOCw6Jzw{z-f}qk>4yrto*U0YZcm)nU4!Vu_f)N z0~(N4PU?!ND>lMi&%0;R{Y_G~FLiJz<{4az=m|(Qi?=7VEuS(%u%tWjl__w42h~_5 z0Z8I6gsVG7O~#;k8e=p%4!I7x4!Pi#+f3A@YRfyU)vH!@Whey$mXOVfoR*R4w2R5H zkY&-UrA@j?Q6j4g6Q76PV%u?y=Ad~FsHi!>N#EpiBui_+U4Qxc()Uv!M(2 z!0ds~eWInhKd}o+t9bHw{ZhhT-Iv~Z>^ct;PAPt1#gUZl$&QbtmPf70e2lpfGxp%? zi&64tZ|fSPEzZvoHW*ZtGmb}mAI|zr4l67(3M)e&Nz2 zQ2XIoN6=5tZhX@Bdi*k?5IW%bS~g}Y?0m06MnxC=7>C{093ft*Vw<0tS#^+d&bY{{ ztR4q=kj{`e5y@lg2J=LqLkH-{JW+?9ALcS!0p!-o) zwwyH}t!(-8>^-M$Z=T&e=~E1-4D~HW2ad%U5HI>S8$n(fmK}2QxoBj0*IT%6JVgc zcO#Ki5pwp@+*+!VUb?aWQB`Q?HFq)QH2a6USYx=$$67ar6j5OoqmxAXZo{05RNMae zhG+Bj92veY@)7}{>H?yiB;q04j2>WlE2IZa_a?`D0NC}ZB5V4$pd+~TrDTA$^~B)-(Unir!@S5gq|c=`=CeMAgb4kLG+Z=cLh#3a1B`E z+Vk}wls%pcqu24-nrc_#$iTl{0LgzX(?=3g;eRZXbWB3{8=kVN0oMR0BA7*`mHvOF6R-#LE72-$%6YIzd}xQGbTV z-lCZ>B)r+Pen;lw3NPiIsk7hgk27>Kiq7H7rJjc4Az^N1VQ6|uix~2`!7MAmniUC- z8-xF=_B6b{1ZkUYc!4+Gd|9;9vEj zXqZu-jhr#|Hvmd+b9cI_`n%2JN^^q)LCe7AkKEX=q@t8E5i;Xv(vr@y1cOX><~6{p z1pNgg$%e}-YSZN+S`WK-~2U1}Cj$86ejBvADC6KTt2|8wydo0s6U=(r5aVu|G zTuc+N(Z#@7c7^)N$PGW~P93Adn4HErfxX70N)y!e_dH(2id108#`OQpuJ5dbR_IX6*&f>y2%{QMcUO)gA;rL=~_iBX$>v`WwE zk;N33%NLRX6_%&or((?5mb`pBGJ^%G5gKeB>3|oM>`||@{eSXh0HkZwH41in%&uyf zyi|Q-aq}euTJ$euS9p4P!&3Hj8{b#-6;4-E$(lDw-S_bLJ#yyX#X2#6?QS^0J!cXf zA{vmPuObM_*3fyplQ!KbvSW$H zgz`7;1lSt59m_0k`zDhpzgQnSxVu}>Iwij=&Yi)cyJ(-fs_svFAGgVLT?eo@spSdVz3K!Tzy8ooAD~ga6 z*JyH0e`(vFzCmp!VKrrvK08M_e>x-$i2-$1cc1H|r%{l9WnfOu z$AoV?U9{L-v9t*#k>ZR^O}m#5+!bN7E5}Z2Yh|22#qBTVkh_!Yy^{(n`)vGO&pQM= zUVUX8$F z(%Ez-5i6?-@r=0ldOt~o2SZ5$T&;fGaP)uDuxF$(udMeBs~pUF-1a|N+?UO?DAQ%R zErXDO!vENjs`n3-=3c3EvJU_AL-Dr3(FE-+QMkrX399ch!1q_UkqXRqi=kB zK-|F$$SP=5Vz(bo+6X?hm?_MGKuGw!*(>6~;Zp`RKW$ii*_Nm$w|=ba?{i#@a4L@= z6$$3;C-&C*OGnz0Sm37-L#2$sdHocZRVV<{1MkzuL4eAMS@-3STtRO0FC= z-9i_hzc9nL%UE`5n=EfK;kU{s`Gl5v{BZC+X7rbOevzOlFX5FCmhjaKbUzZKpM8Qg zHL{Hx-B4;m*(H&;c)LjPtQZd;+w+eYxw|IMg6Q9_6`Z5`U?Y!) zskE@}S+7m;P6h7DnDR%dH20{M5hv;ugDbBn#(|$*WcCIIq#JgeB^epG?!IvirX(YO z27#eZ$sf}lB0tvX?smC^StG@R*Epi> zP({u*-w=XCtpWO0Hm_N*X{3}(7L)`>KdT6OH}SHwf+SvW)~gC8^ZcbK%zC1yET-O^ z7F6GCI^=hucgIb}1adbuuOH=$@&%CIE7i)Y*TmIfzW=70_W5#5!ac;twLoeL`bBld((7XRo5 zzHUyoEz^J^rgn9UW_TZ`3)4DedhPX6qc_R+weWv?SFJOk)C&e&WJr%4PiC$CX%^G% zj?-vX7>r96U|T7dzFBVWdTh^&o+H+1e=6;mE0;+P!X4jD%0-;?Qpq@u8+M_oqC!>! z4sZAG?wec6z6Zfi1L-F^k}}P7LvjyQJahQKHqT6!k#dg|KYwt8H2025js4Y1N z_{Do)cJJ6{fj^uF`Hp)rWR41C97)xD)@qi+$P2H)Rderr=z#8O0KLFFL;9@ya91(j z0@RlD0K8y~;EMf%zSuFC(|Ca$O$X;6`d4$jtAQ{tGtzp6tt;%+roW;y1WWl<4nV(?C9Wn_uk6n}?f-DmpNu$+;I@^V0l+vjXn7N~vdY#%Etm6Dwt0k~!5n5(iukd#r|)^ZywsWznf0=xhUj-8!z4^1?$2i5x84ZgBrq&qE+I$bBC!)rA!En<#gff?rEK3*Sl05p{hlB9 zP|N{@32-@*c$;=|k4=UF6fHHa3)1i$K47XA~}&uYyVSfNhBca+W806X#g}RJ6v}uPa(C76LEU#>7|P zU?h@22A6k;7WY{=UZG`M$Gsf7*mBH>V8ey39P9g6IyybP(ymT%ap0`nr3sPeSTi~f zyq_68BSiK>T3@FoT955sm2)<=D&{H{rK2*%JP%Xf$!KAt_8G@{rAahC@ku=hPX1l@ zJKyCq&o1?KEz4gvXtJh-mP6rVmvIV5-fQ@0A+>1!>DO!aV&7OnxA&Uf3?BDvu=tt+ zu}Gt$pCrhm&odwgo{#(AmQ_&pU1h$!Y3TNIu_Tzj4Y!^ig#AWNPEKyp@wPNRZUqJf zEdr0}k8~oxtgRzq66N-S_+F}ZvA9+5u{yxzr}j`^v2g2Qs>_txKv(g)bdp(z99AJY z3JvNc!O1`gc9BQldOHt^cL)QfA0=QgyD4;#5cY-=0P#%3kBTkET6m#Z*pU!0qnw!- z8&i3uWTmOIOr*sAew03sC3^O5q0OqouHTI=M5S;PB~3#y*}o|^&R(BN6Nq*$gWxKL zSBC0|Pw+a}=lZ*LuoXj>jKYJOK>j|`tGmnXe86UBM_;)`7*EspZPtzc@0_QLbevwh zzt2A@&hDk8&3j4sJj~>Rw*P`zrxJZVMLlLmh&3)^z{$5vuBX16oC*>nU&6OV0kl=92zKLtnrB4+>{?Vms^pnVAa%hK6Gj z@6bQ?KpG~!lOy}f)x?UjF<+d6(7il&C^{`4eG5W7qHI?vW0P2QU?xpkgEAI3i%<&(3}VhrhHvr! ze?3F!f^v;|!B=Kr)j*Vus=jix0={_rZ;ZX^oX{d)-L1TJV-`((?(p#+qC z-Gt|ryGXPj@AU)z$SbwQkk`4TT_e=d9E=Hq(g=+(tt(Me*W4rH;Q1V*wJ7513Pu$B0zEl#tl!s#%we_LFNrVIzm=pDfSmBId4nNrm9Rri+ukST*w+ zZY5kltpZoP+F(&tI=Mp1%Bfv>uu-Dmw*XZ7BUR}8rE9if*A_?`mu-LNc^gOM|BQKH z%k`K~d{?IbiPxF0Zy&@vr#w=AOMpF}8VAROkq()j0-$3}SsQ?)s8NZ_!RZ^g6YB@3)? zVY9;CYOLhwG4yWvKvEOElY@s$OBQbK%&?Sf&5N3NXNN~;&&zQEQ7d=f8-EDdVL+r+|cE6A6idt&3+{_FW#A3?n5IrM4 zcBWdNJiKB>dv(;b?FDaW!}h=xg9Z5EiGMsz3$H2+}N_7QYlmE$4d-B)+2Ju>f6+t>yl$rZ#Y6y zYRlc#RMp#__;&b;<-ut#Ny9Iaj(^OacE_D#Ie)V|Ru=af>&&!*VI^T8y7LdtD&0tM zgUrhdE}u_)ixR33d5U>I_zTK=%;Ch~(>gj$h=qveTJ3j>Z}xJrwDEVna9-X|nUlZk z8iZ;eAhPKQIN`>{YCF$AUlAI?9q9gW+)I)I)OH!#7`2^F;At?wINo^d)!B$E%ZgK3 zyU7+VbYHeZ#<>A@6&dD<~3(y@$8R8d8jo}m4Qon@Vegx1T zeEX^}1hBj7+MVq>D^VRtGLK5YAd0}F+^O4)M_O0w?Bd@Im44#n6U|}t6&bq!%|c~a zY#Zhsz`7NEam##RuDS#dx}33;0*6qoRc@~a!jA#6Hpk#H?ZFZ z87*hc9Bxu%8=HJa4Vi=9=7Lr?kvzjDcz0N(GoHz{&|ZY z9*X>9YDxQ=fWHpKbqZZlHW4%XMiAHb#f-2P$9?y7E(X!*&<|a_Kqh}z4;`xkGMlhs zzkSYcAoo$+kOTau^**AlSuO;8Z08r%I0V*3!L-2f+a#F_%b#E9N81QSimjgS zt>}3QY2!G0-A-T%QhGU(*k;atOUYNAV2(>apx=4c<<&Pq`%ut~m0tl1L(=v71}(>I zW35ggz;pxy*GDlqREkUfvroW;8V;IxZHM)+Rvao|UwA%Q{B4m)9o^@jc=eCM87Xf~ z3kWch?|pls06)$r(;5AlX-g#}8&DW|(0cMm=8Kq*=SxXAj$4M|?+3+H*NYujrK;1y zXn!S;Dt#UUQ-w*YmmQpx`9fo5T3aR+VqLeiekszfK z;jkb7kA%$hTmuDl;a#@tjgK2mz!Y--EnguW?r$O(tZoG1)cgM>DmT^L7<`jMi)SdL z@IkrF)W1+aa=95(puN}g73z1M1@y0_dP8}~Z;>jY@cxjeUzWxR!7c_YL`B!(N6A7% zohG!5D;r4tsXE(-3QgQQgjrzy6KhBht8uD}HfOiaWN$u)2JbpJku&zVii^tT(eksE zmmLz6MOOkT{!Il+kcr!wx4T$UUeIoO!uKzv?a!xJTXK7)Yj^lho&iC#1MFT5K=-7& zZ@QTS%vnGh7px!>g5;Gk&k*}t-z|pI z6d`KesI-d06f0Wy=WNGvaMb7Oi^Zf*vpPzBSjMAoyr!vTb`05wCEk zBF54v4bzL?4e=FNdIxUSqi#ahO{F=P3auWop?e!`gpGcCxGgo4m>&qr*t_I-NMJ>l zGWe|A1WdYpSQsWQA_ye3Z#7LIuoU`v8<%?NrkG2snTdrGH=O6WV8^9`fJk1-JfhUb zx!Ux2uAV67@cUbf-BiR_85zOv4g7&J^@eJio$P-qx%T#%8U`OBYfjTA8Ev{&m!Og z`x7a2V9Nwi%5>Jil#KN!-PANZ;Z)CW+RjjdOoRU9nmD8rT(_>S%|rEZ9CNzDPlX8$ zxr&xh;n&Kkr#snH=>ym1fw2$u{U@E_cC#2JOR`mU;i(EjBq~RffTlG%ay@3~33y;{ zepugI^j~YMO6tu|X{ald(=j$q!$kN+tMYIH&K9zxVFPiSrlFedy4ry>qg`KLFTVD* zhLi%0sTIsUr)(GBq|6D!-1B4rW<8^a&`^OfA`(h66gppX(a#GD2MUz#~<5YHOL86>7Kg}lzCic##9i%T}a4A z2{O_pYxsvc&Wm`*vo2yf+c_nRGjXQ`)}5v9|Cnl;{Sf8Ucs0r|1@M~-QrLL6whEFe;@?+z4%S!jMgPK(%yaq9mM8wxRWKP0^lJ*ynn}Yto_T!n4jftp6G33o)2Ij6sJoZpmUsFH_6;IP}ew zHwBYfP{u23Hd6nW0RK;~>dPPhkVLWP^w;Rv=kKnbKfV7{rMSc-n5_9f;gPQq8D{hz zN!^y_cyK-4AKXbO6q>+HcYAz=Z?+l^uRPS6`s-JDjuurfUmlCW`JL+-6t@xUDt+f} z+~KxdX+A`E>KvvfYo%n62Ry}s{7`6aZ?51K ziJfLJjDi1ulAvxkMHnU}-sumno7ImLMBVbEK?)4m_a?Q!XOy|`2?)i-rzI2=tPDCV zJLMcIbGqg5OT%C_XGN5EU!m7W4=A*t@y&Y0JcQh5+NUKl7*=N&*}K`HAi2=nITba2 zuZ`^!%dqPME-3Bb67z9~%Cb}~*xhrW6{ z8_S$!{mBpx<+V+qz!{BPo+)y}~zC zSt8sg<5VfefZ4E}y!AUPfxC^?6_*F;Wgy&p=YeZ7Gi+|a((eM7sgq2W57gH^=hhTz^%`X3}aJjX7M=QrYpR}bPmp^T) z);giDKh0;U4aA^ggSXypHb;7Y)HsL`77CES`RLzdxNw)^l&?lUSKuEQ-RUYt_&U{< zcaZk3h=dnVjP6O1pPc}mXOS^&!3|Q75S_vlZwmx~E2-nv{~^)hJJjqDdpS+(ZqJGa zJLykNB{{KBAujapn8|3H#86D;VAe_R$l=Ax`m~-2{4E5veAX@?>BK|OmDR=S2Gk{P z+}bKZT#9hezwnh()~IeND0>C8?)AwKKSjK+2JSEFs2k~{xurKIuxnrVKHMcBb;!I> zrf9Tik7@;*VSS~pmS;{%%3%|=m#oi!gdH_d(vn{~9_@T_*&k*@-2D}sOF*dUDsM82 z?H*fHEa5m_WI>eZt?2mD_y4SQdtZG${v(P#SvbSp+n1;CHP^1WKh)Y`Z^hbk(Qxm@ zm60o;^C-z_usc0&^Qis2sPCWy(`9C7><%1oYK~Mq7AizvT3Q>bKj&sKpf}+`orxs- zu1+y#?zE-Z_|3?pGwd7f6bB>BEF-e$bnhzS8igopJ}Gd}$It?Vf)K+p=y5hx5pu){ z+p_{nzfn~)^E}$ZeDb)vDTWC~PuN?Z!e^vRF)d-@e^P@=$ z&tz4n+k(wSxu46zd!SwnphZgJ(sC$L`S~?hxCYqrw3x_=bcn^syavIcfOb2B885j} zD{JPX#f}Zy^6NQDnsmtmns7{@Nm4_otfhbgci*Y-ci%Y8`_Ff1@- zNr|-ItWs{T+;%)^eP5uP?~lLKAd#^RR(9xq-mp;SYWgwztACaqx+wD-H3yC3ZfWwI zYbE6sair6s|CBI0tHEnViXu666Z*dCBv@RKi{3(96l)#k>7W)z$ihEeUr19yzH>4y z_Q8fUp;rHPd<%ewK1tN}t@g|QtpdzKN6dX5mbS!OH>lw?_CKg$G9U9lLUIUP2RW7O z{<{pW!w)#|zew^oMxAM#jzqPgHV>fagRCU~3lGpqlK}cySDD)>k%J4pDJRfmE?rrO zc{AGYtO^~_Y47@H7rl=*LCM)9O`joFvd}1#QwjcYgg?JOT}{FN>FcedqHfzSUJxWC z1tlZ~Bo!n?x&`SFgOF5WL~`gHN=1~Ak}g3(>FyF3x?`kUa_Aw3nDd>%=Xu}vtlv5Q ziLAve7vA@MU3>4(-jM4zc?F(WLw=eh^eKQh$`V0=M2L(~tHJ^v8J}=Red!Ag56|SK z;t1bYLb4(v$6-fGQp2ex{UztuVfkZ?eL<3|uv+SYn%AzbTSB`oC9GpVmO>Zk+okl5 zxM#U#swd!BkM2kM+?P}q9~R_Z<5hC7`oD$UctrAeAbiG3!9SmgwfgTsLa;FRPMHpe z8>FJ73Lj#DEp=`R4OQuXb+Pd?F7@@j&Q1t#4Vv>=Q2=wvnT~(csAog2ZUMdeR zmSt_8Jf%vOMH|A0(WeFs?&Q>YiScF+-y#(1_4_A8Cq+1glLv|~rVrJlJicAL@3#6J zsObSpi`uy@o1b6j3ru56lp1MIg3J1K8T}#Y4mXgR>l%hutzKjK5nANGTXqcunSj(t z^zbM;5<@28>Mw|74)e8qwXm|h*hSwBNFGcpf89|%1jHy~!cXk-DNELO=&dIsEC?(g zrP7f_-RvR2eJ~UOwtV$#um@)w&~`{J!y}S+c`7-t@vRATswKR;6N1yfaJGSd-uW)U z_)e*06#gSsYNHLypND7SuT810`{vtZ{>YxpLf4{#5pfADX%AlREm@$C(4^n(>NVFL ziX{5`DDl1iVg>ytYoVX&=_uK_ z07QZY{4ra0CqymUBRPE~%2&q}N;M+YR`MGOOgU?hm$vcG8}V`Oe`nW}A{(vV>H$); zAWl(^wUEmQA}pwwV0v~GZYGmnJ1g(>GAd+Fic5dKN1ZEV&L$E6hjkiq(OlIn(F>Sd z?!!=UH;2JAyBX#b%>z=<8AbR3V9OotA)k;RsYqC%jxPL#n`HFB&F*Z@;C#%hMn9{9 z=;N8!Fjt5*;lb6NMSWtYae^jtEAmLq2uw(Q+Tr@$ z1mOoX_!M>;G^?Q>>64|%pQ_Tp<1%eP-NJ*_3c#fo^WQr963uNT-xE#T8cfE1ih?JO zI*@ZsKRG00=?Zi7Ae)fNtp)lt2-S7d;nhWEz4=9PPsTsY(Fyb^P%3<1+Vffje=okl zxhD<_x+f)nnIe@o6%Rb;TY5xN2Zq@#2^M=Wl85@xw7nCbc}c%!-G2P6!Wn`;D~o7N zbw*au^$Fn-HK=UpF4lPhsT1l+?Z6RpmNP{v6EoNx&J|>L|AA4wmD_}qN1kFpaQ|BC zPffKP1*1yFn|Cw}zfx2h%&d8w>XgdH;g?60{lCJsI1s=0`*wtenPrU-v%06|v zzV^995LwjzIII;vgl&J#T81*Qi|Yy@H=pyFBIub_;Y36YZv|#i2F4`ah1287MRXnW zMXkjTR!9|is$E51OW8yrzwEB<=aZ-BgwsE}s~Wy;HJ)WIj^Gr7pqjnneZb-?B2hHi0|2tvsdgVu=;m5x9V*6h)R*fVz6uA?|9Wo9gCEl;%Wf~ ztP9u5j*l+V54Y|~Fzbl^nkTBhW6r?L6&?}57W(v9ZRnnBU_-SJu@82UHnaHft4 zkuyg9NxLD)dDm$S{bbw|*qpt%gV~%lkLyARP~`Hn^6^d$-+TO<)J80?zPY6lQ|+0c z8y7X5dowfbzdT#bVY3#?Du8Lr%-wSE9|fkVpv@^qmg>71i^%G{f$kt59d*IC{+E(? z?SSawD72i`%o?T1&<$kSy^jlS>}1^R=@!2K;j2iA?GpZ;(OzahE`zP(s9B0eQ&kc~ zgvcjqDEf^5^t%v38s^L_&7>4O@5v;S8XP#8^a-u!2>7rP0_HLI(sSmRUs*6huGh+k zle>Zw+N{CZST8H9%u1c)qAM#uG;y1?!{t>e$~A=2HB zcTP2a^zEa~g<@XB@8v&8IWYpl7V$csfQz4xNWL}F5Js3zhHt4~q#Xkro<*F{(skLh z8C^P`0-^`-&WS$GzbmqZg>JVJ`;DYFXA|jrGVN=?hn4nSA7hr~2Q`~yMCQN$Yr_56 zQ=_Spw?}2m`uZyT9tWG^E#+MFKK-vfG}2hDH{o0RS}|)peMrS*JY!7 zyAW%pVLd|fb=lg8G~t6LJ}b8m6NBd!h%=}-0U<0Xg1HpMaF7A6A8_v{X^@GS3BR=D z=Ar#JepAS4c=)C|bAC8mq0sQ}P=3}3@tr-I3&DI=yV;20eF>j02hICu>^YtEwzDWz z%08DWNq?4v6Ll)0t||`eh1wtt*n~dv5DPY8#+QmeSAQy8^`b}vON}bLUuJY4^RTI6 z@6*O}GDWE_m%IJ&8WCA6sfQHpFrJp~nCxbook zd39rB?ptMgEf-vdGv3aZBQhyR=eepeQEXL@5XWA-4$XG4zNca=;jpzAKuB|*_22}% zDzipSv!0a$5OqlAjjBQ&I`cLKbk z^3s{vBMA6_*!o!et@^$$4{SiAY69(nE)9^*~m$!2H56@{Y#Pw!4=KN!CIO!DoUkS2hxNH`o^5LXZV^jWkSf- zln;BHtM7aK)uqMAZR7CgC8gY8@~Lp~jA_NY8wj}pk(RB=Z~5J&nj+0iQ}=A`Td;O1 zmrR2qHl(V7IP~(s)tkrc$f6cw-{8qO$Der4WMp{}e(J2~4kAzP~^U9h5;P#QqLdhZrG5rBHGh?Q$}# z1`K=$-yT1!c>mx(029nP?x83#<8;pK3LdeJfLbL@hL*NM7#LqpHS5Jge?*&{*jCL3 zr&=MZ2sRP~qzU`^Wa8Ok_=h~j8I0;^v1j==^rM6AI6zBhxQg>q-l*b85LlDtk1U>^ z_N5uQyG$DcKf}dE%Jrv*Qi^@^gAIG?80z*G$C%i;mzzJ>bM&A;{fImu?p|MH9&FTH z^_9fiDBZbHO%Bo{5250X`?Uevb&v^%^#TdPa{br&bZI;I0jgjt6!|Xz9b!qalyK+Zwz2ZO%td`qfi$8} zK@dFNjJ!?1hx*T|EAD-nEYvoPxzRH+Au;X7UVX3Pb%||?H3h+s=Ir(U(*}KpcAp}N zH?>DgFfklZ&kJRH$}j@e)Qy)Z%cf}ze8f>WQ#@&5)TJB5s9mLjGI7L|O&U`em=N^g zo)^SwX9ZYv^yt!4qQ%{a9Si|02a8Zs{QwXKbY$_!5cDm=T5E@{SEb@faIgDC0IE3) z23kf`=_BXbDM{ZEz;Fx4SGnPb!z%=u_Ugeul&FH&d4a*vbhx_ z=?QbVD(EN!Dj5c=%&!cUYHNccA*A+!K^^5{W{sa6XijOi-5ks8z$vXugJL*~O4Cj8 z5E{TxqpgijIKVem74^t$7jX`)7uq4+f$S2R-#qr@=BE|_`I)u@`Iff<&#dI$e3ge4 z$-fH(-@F^37x*AL91}cu5h#Ei-Otd}(_K>i%tOBbY8*`u_5ZP1TVXokJZ_HJge4a& zJicAsV1Ldu`7O2m;sdn6sB^QDx~EFcJCS6kv88iCrIXgkoS~(H-MP;o!wvOk zQl*^>)T%OwldACGtZ7hi_##UNB^hV}D zhMSf$2jpY(nc!<}jipkURr>APD%96B92^wxV3c9@m9;m}Ox zc@5ptGlo@15ViH%x>hD>9zM^>n>?Oeygw&IW#{;aFnXc1zj7TvM}W&4sq(l6Zz9F% z`fYXxcZmgf3!~&1o*0m z7OzrDQ)e+%jF|h*bHmG)q5&bPT#kheen)I*C<{K z+`82`hpu;2U@;X)hoOsft%|3tC3NTQZc^dsvRs|@A@u^?s+E!d% z-Q`VLfWPNS!~ zA%|j&zxjxNS(ivm`t$Sn`Z2Opf*vfIHPqJ$S6tg7_xR2ozbv7&LMNJvTremycQFXE zHi@oK#U|yHAy_7fTg>1SEvI|`?z_@3XS{fC+VI)G4{r|@j5gBhr?RlZG_tatPSw&X z0DOOy`=w;UDgWQ!*^`7nzw-OM&}U2f^sMY6q+fyjxAs0KlkXlU_Ge&Y=YUrhlgQ{$ zHoZ`^wE51xaa;ZLYN84})=9x zD{AaQcg>j`q@aG;nx+mc{CJ+z#hDvhP7bZCn|{hiMFn3f4<)8yy6FC_Ze8Clw*m(5 zkYP=+OH#>q%|L=8 zjo8ME+eQvQA-6j@n56sijqJfq(Wx@h%CAvvVji_cQ^Lok1t_}30Wn_sI@H9O-;> zlr)eeufOFip!9A(ayBu`VNR&E(do<#Bp4FDy3GlDe7e}OIp`}h;WjwbGmswZMpRnP5r=-9{@Q8Gz>CZ3#TwV976_$6(Dqq!_e9yI-A=Zn! z`2CwgPXd3=+PuLewTR<%`9_{gUZb5_FWGLmcWj&zJGU)pepZVztPaiQjWgZkSWa<+ zdEEt%9CSWS%=-o(bG_<9TK5cGA-P}uSTrx2>ot^Y&**a$oC?^YgHu(i&^5KBh->WUy|I7MCRl5(6hl?Wm(MFBNHAvA_g(+OZT&kK< zM(eJWJwfH}AJ=ECqzUT^p;yfVkM|`wtu}a0(14JxnNk!0I&Hhi>apiPZV@VyA@Bd< z0P4?Yio?zeD$+V1ivTCCN3dzm;YeuNy6+Q;1=S5e7DanceEk)|enszyxk7On# z0lWla8^e--Rr*a+Ovwu5(dVJ+LH*^&w4TQ2DdA5FpYp9#g9=jNr9b-N_drLmS#nA^ zMVRavMZg?(%XEwHsJW{H71F*5Z2FoYO(%2>A%pThU*0mFg^sC5%o@1hOUvr3;eIe>(*GO3@ ze4LpgWreDiL0+G1Z;#Qn*Mv$gGcm4fB-R#WN3?(4_vSw%j1J3c=E-7q(@M>@citUaMtw~*cD3DyLqM+*ZtRmFT;k6zwvTF(oG2P3ob)vOvUy7GY}pmS~`2e1huB`u_w z@9AI9mAUEHmw3Wh?>{pv3mfLT8Y=X=??Bb@15#1)OYOD7h-KWxg~@S3zx5!uL#=|j z!p+rx5`kMGc;V=-G(E|ODH6;!C+z1VP^&-1A4Q`WqnU5^Ocig8O$EZRQvshq(Xy^;eg-j!f-8 z!^+Zs2fjZp)P8N{fMBjT<`7IaaHo8@C(X1kQHsMpVWhXKcZ8=p0Wc72zyL2VWnNH= zX#k??yF6V_CchhC=S?`ni1qguRp4RE@2ehpDAp(<54k0u9x|VIid52rLKdHiedWK? zVDg1z@WM3zk%)nr&6p zbPF%b3k?)HD848}iRXhaWSt&(ZZ(`-C#2qE$gJHI-;{|?opVpwex^#%MtqpD@5K41 zg&B3l#5KsEDf9^AX>-WTj=sjoq`UGSLx!e~Fb#(n;ZBfA4zFjYo?7vFWCmJC6E(_+`1!*Z2 zIG93fMY577omPN%&gR>T{Xfz}r1nfFY0Uu$1!Xu$8jlc-SJ?nW!U=2fClBeer8xOI z131X%^jB(as{@`?H6MdgA_~MaZEs08r&U+|H2-|)0G=yjagL-Qf%EU?i*F;wT9n&a zbM}wAubO1|i}3;U#AzCUo>c;zfM~4iodci6~hq4r00#glC)fyu~T*eu^OW@uk;m+TX(1UUA^;%nOsl& z$L?#3tg4@T3wG__fzJXBa*a{r_?cqFUlVdq<3Gw0WV`$hamJqgRk3&g^pE%=e-3=U zr19@{(6WC-&FRMRJL|!sr+O<>#_ya?g&{=NiL^8hKdU zE^Ppz>DAtAt7TpssR^5wztVt90wdj&^iI(Rn zKejg+9KrIL&F8st;x=Z%g-wcR8F+2)sb znH-k1*6p_n?uS&lU&!qg1>nMR7kcEIZPrztGDNITTs>t+shUxjVqH=b zv;U^;^%S0ZXX~Y17u&{>89<7{x7hqI7niipf!dHiUiUfE(Ey5D|MvF}+M!&?ABQO= zcB8rvh&25+%4tCMY-4_*c+Tn|YpiG2_li5we2{R{cRmzj5 zf5Gd9pGptk?VtH2r~1=w&&U-Q{vp0g5DT&UFAo#W3kLuPX_}dVwdR7slb(2*QMo>La|$S2NYRn^#tD z-pNWvk{85DG*@%#V^eF`SV3xi#n&B~@g;Y<5rK)Tsn-H$&sS55CZ&!731^e2mHt zlLt_}!OHNK+xkb)!zdQwGFz4!`#bd2_lTc#K8@s(zaDiHpGc1F+(YE+m9CoRNGoQ5 z4YF$UkA>^GsYBHOp9u&psc~1*cSEeq+;JfOhPO+UIpEqN(!WFQa&RQ}$05S?LQAU* zNc-`N=K4Ty^i=mrwO3JqSK;k;%uMZ7jJaGKk`DxNfB#^3wY*ZVMTb67{Tu?ayVM~@ zvIsz)@d0yq5_iLcN!iF3SscEwd-8b;6Z~`Dvt>t@A`xe!YK^C*OL@y1yfbW?Z@8#n_+IYd^ z7@Sl>|i)dCl=C`3$719uIf+oZx`_HzK~XdW^DX5~}WV|0C8?pjwiqu-cAavF|-@3AyZ z%@0?Pj}-O4wC-9Vx;Dr`7ZP$%MpIraMHfk^dAIK>3KRU3i%su-kH_IEu(&5F{?MK9^#`|<7N(Dp{I;q z0d9*qY+Qr$D}OL5jn8kw`hBwq>IwH?jfkw3#SpEzJ%%u%7O6{Rji)DBxXF$E*kcKeq}Nijh&1fB<;8^ zVpt~l#&6sCr~o~4Y;n56LE|1MO+Zb=F7Rc7ort!`+Z$9cFH8+9$^sZ7)-Jnc$5aKf zoXG(J7QZ-Yvge3HD0tzwJ%&84Ov!;vM8o~|A+2o~R8(L3U_t_hgLtc>WC7B- zL-Z`A*?GEV5M1j@-&1DqO$rHuU7kd~g?eVb3^o+<(z_aR+~v6XL(f zcv_VpP*!6UZDbo^y?avhD5`}_{N$*+4P&561Aic>19B1HsZCy&vSthO;Xl=QW6^Yj zGJ~nU_dR731vl2_JKA<8<}rUgDm4nH4$6gtr5xt^!{rLFoG7PqqX_xt=*pYcf=>6J z`xZxT(Ozs92(C<5^N~L;obfF-Ce7BUZJ(R!s`OfzdkCF?RvZ>48TPf=1FXZCMGPxD}0U>$o(-oGx;Q?vQN$xw7k4*qz zh}r#xkJ22#vzmYpN=~S(z|O$VeXN^7Wmdj$w}}tXtpx~+>U%J%wUhj3m~9b(0Y2|< z>C|MAUeb}Qz*1-C(fr#l{L;cp8na^ik0mGrzK!fpQHc zrXpO|H<-N;tdO6*?FC{Jf@QVsFP^kBaeU!mW)8PZ@_^L&XRRO;7Ny2%7G-6L*J1a6 z0_L0@^2Vsf1n8SULJUOYT2F2u9XBm@RaK`$)w*OsdH%qf4C+=Cf4Qf!%!@WG%!Z27 zhou_LjtYhRB3ns3T$_MFHKoTgrMJR_CS_aI`)!-i0>3ftU&30-$-@bZjdlqN@Qf1{ z{r7j*t$I!e)=(rD?Nhv|ZK`2l-_eIV!x!zxOQi?pPJ^Op0gF-RE4R2EAegn`-R z8g=rb6pQB*U}Z4Redxd(XGI$RuCqwbVfUwo*Nl`o%=t0xf(IVC_ky!NT%kx?#4xE+ z*AB!hGcJAuraJd8t$AJBiYRPJm>5#ciryd)2hx9E3L8KtlDj9@fIg3} z$DW5R7UrU`ShQ3co~|EavTv|=JxE*QcVQFR?Ncyc(lvD`{mh9UV)kf6H2LZkbU*5u zpUEOP#d5fqz2sbg_#@xy7h!jl*}+evqZ;YvQ;kX19YV3n(j_QCZf%3xW=C&&%?6aY zX}T5sOFLhbnH~%9xREMdc08q|_z@&y&C^HgTOLY2&NesJTw`wgW`#OaFKl3Y zo+ugi{%63rV6VyC&~%ctvI0Xg`CA5^bQL202+DP1lD}lCT=g%QyG0JTTjpkR z9l8wQRi-rEfsv$LhD%S3XH6fJSTqmFYzP(6a`G{a>pU^X`kZ*($;k6^f#$E0B8t$; z!tnt;g2)CDG>Gg%D(+1G56&^6@EC*y@7((dX){-d-|}&DgEeQ0!%kzQw#?5>0V$?g z38!;%{2QjT{Mb;S*PooAQ6MUU*Lr7olXZEEPVSDz8z09&H;ZinEerpcRMHFgXTjZX zB$J;nUZ)C(qN{^ur`MHv`zDEhF}vs`O9n`}C`E+Hy*S!$ym-l{lXH5G1>I9e7Drvi ze%^f!=8U8(pUcwIUX(osf`InB`>2&|nn_^7Fj&9|6-qhqmtA6rs&VbJ71Q;TLqVk) z%R~_==^n35oBY1?${;moG9-)wTK*L{-nIb(N0Hv^w;KY)SL6{rBow!R0fPwMd|UM~ zm*)#LrNneT+(GcZRs;|Qyvu&7a21jo84tZs8q=M9{NIhdMfo^LP)XD=H9F~+k(s^A?d zS>iXTANA`11Juks&z^fA6N#P3V@m}jJV>K&i-&#(Q5Y28}I={Q*A7;7rg%|y(NaYJneWF|W;aVPRs1rN*c#f%G!@mI?c)&hif)u-R(G-2DJqjaTo&w1Js zfMFH`XP+xX;IP951UClDa_?(!7e<`C5MMG%4ye~Dh}?kOIY$aXiiOO*$1YkszsrEo zjkM$+G9fi%4IU;QD%g^zI4*S6ka(f3?{% z+2nEMIYr#|taZKY#nl3j7bY)B&6AK=8v8m$A}k&=ZG_@nOGqbA8EUq*9?*1SMztu3 z-Di_k--`6DQ>EF-(SD_XN}5Osb@<`k_w4eS-y&XQOf}MTV@E@cASo%T^C_YH=dk^} zG*!olGV5e~`8_;$lBcsFsc*X3>|#o`z@gdsL%N-~y%@L%zAj!8nhW&rupuCd88&K> zE!m*qJ3WXSLo(KBn3G-S|C%iRRz0D)-NncI>oPB|3t!9~Fu&q(UKlu(x;m2U53^ue{s6Yfa(LwuUE%idm?<0EkZagfPKq$9$E{Zn0k;*)mYED)DGX-| zRmMUJOUDu<-N_4zQ`0|N1N#6*;d(YJ(|KV76ydSfN!E2$JykBl=aKFg zau?%Be2B6fE={YYH;64kXIxFX0RR+Y!h=c6ZWF|$KH*Pagftp59W=O@POjAPA*5Id zF~R^LyqpEtPeO8D}>c_UA=|2H`J4foSu^6chwtW~Ox_O18d zp1%M^+%Ix+!!m2)w(TQeUmwYOCrf^Ix=Ec;c+f+%!_r+TpdyNT()Tz2J@t!hGH_a# zm%LBqgxGa@UP%hwL7wGMMy=FZQRr`$UY_>-6yeaxeX#!T;JdTK`#-WHo(6LrtHd6B z23eSjv*{&Y1kaC0+jL_UiNbgTUA8)}WaE-;IF&P(mVFY&J{Smz@tWe9P+y3h6qAC}yzaM>z zSJ2R~-Jb(|^iz?+EQU9;!KEG+$h?aXfpZTi1hT^`?d_C*(GDr*g2yT_az{AI2G&1h z^93df4k{_ObUa!d{9mpQU&ThIUsF^4`m_++)Ui?Sx`M(E6|v1bgycrIh+^!Hbj!Ze z6EGcIVn*=JPqx*n^<}XizAg@5-q(a9F@j|LK=4>V%jbY@WHy~*`bVJoAmg&lzP@K1 zK<#29Z>kz1#wXm6wUlkX0}lKMTBPSmer~#B-oDecpbA+hoS};<7>!`c?C&@n6wgIN zBo3Eg%UJZFr`lvTrsr=DFiM%dppNo#_m__$hGUIVWV8g^C6GK)X4NOqM$Eh*%;`Zk zGxk_%%Sv^i{IH}(z-@4FwHi-G_j}8eeyL{kXAjJopEzE=ar(+~*)^m+)2ZnyJso^= zvY8eraPnE+^?`T=n!M=$^ZlIHTS6LFTRKyOELGYE_$3&x;}YfOuL#!TU$IYH*Y^2*S6Q-Reya zvTqIvgJ_T}o)5(IX~llpj5g(z-oNAwA^^^yg&@EgY*gZ#yIF4Dr3li~>yp%>ei)22PFNn-2@+jq-#Y35;PJVBt0xK0n^W*;s~^7s zU$k^e>cp(pMk#?LZMG z07L7t0oJw`SUF)ig8#=BDu0`^q`po;6DuYhwFh`cvmAR_?;y3K5EmU^MAVc1S#fD# z!hUN=OH>-SUrjV7J$@ZXkF$;gf;7Me0Vm%!R(8rn*`O+pgpaPKHLe?)os6 zr)Bf=EpO-?^a9#~HM|^x>Q7(65v@NQN;a)X{Q#z@%weS6$G3N~f9OTx9>gUJ@B`f* zgYg^wYqgX;%4A&YB#FdRNZoj_{ivVeM1ZO92fA9ykNu3*Lvf={zM4$HnZVA52WZ(a zl0L0^dF2LgvZN54qGdS$F}Z#ulev_quUJ8Q`}HpvUBM_r_+|XDMghytS`VpSIA2f) z#uWRx8HhE+u1!=s#j%bXO;>)}SkTF*JAXTQx5<_LpJLb1NDMWQc~w4*h4OGcX%EuK z`{kS8!!zBjA}Dv9h}paICq!)1{1pk3iEht)pI#(D#XaMnwR#2C_arKWpRrM`R1>WL zCBHuJ@!DkhZ6%#GKa0kv_0#Bso1B! zym7=f@Y0X1zi;19-Ka-`4*_2K0znwU?2x=R0h)nym?u|q%2}X|ja|pmYZEC+w*D>5 zkiKW)C|pP%6Suo<#8WvuTVV9sa2jzV*|Ros0>pVNc>ZP?=H)dB^C;T#w1sGDP(|Mp zmkZFcmuNA2=&BTPtFN5+B+;v-jzcERT7912;%qyvTT`?!yZ3RLfA%MHG4TOMoq1wp zH-3+@SoHV=puqv<7D6P#gDkJ`Sftc($Xd1~l2}wJxj90};oexBEH~`Fjdw|;4WJ^F zecq%fhj8_mvt4>KS8PsHi-&Vb=;(=o5oAjaUDAob0p{csy#1TH>~zU9MiL1Y?4E37oG@4PZVHu2cBd=_VIl5n{YC=FBs z91*ENe>Y{!Kcy8a=r@3q=W!zsd=x39MAo2NK-y}5%H}OTj%N@?R-U>e>$r(6quAh| z$1qOA_s}Ni52ZEIl)VDOX0S(d_B;3Mt<_h3JDtr9xnx56?HF0m{rohG z@gf1$I=|A;tsmY{gpYg z84Yyn`4*7gxc1g341fc^WwB2KX(v=*Y^-&yXNQ?qeo^|AVh^aBYnpV7b3foHegCI| z73kys+H6%o92Ijnj==QUY)ptz_R802C*(J#u4GFk?JhX-lgp@^n^Q_ECXFU$HSX3Y zUaY}uNd6mgml%KMt=J7s8yp<`d{ssHXV&QPqYS$w<%Ow1)01NbB*VN_-{`SZ4)jx1 z@;k0praws^*$9MW(BaxPOLxfGW8x!11%c`$QTk@hr#dAWF(&vY9k@>K@=EXTjXDKn znVZjA^iOXJj}3DLIIsF#HFay@vHYvtHkn`@tw*k6Y?+xB7W6FSzY}k(@!1}lfZfm3 zx0K0?RQgd3u~QIEF!@|hq?@*ZxA?BDXmu>3em~~bj#SISrLM)E;+Kj*_#e!nz4%#( z{68y~fBmc=-^$3nJ#ta(x!u$Le;wn%d3{!gU~X`exKpa>^SX(XoMNqNFC4|*7#;F3 zypkW|Bl_FUO=>?F_ef{_7NMXCA(vZ?VaHZ^ak}=0{zT|(i?DR4hw~(p=W!c>PtT(F zoZPxc9-=HQyL|3-euc?N!XYji$CSO6!{Fe>eW5(*_cFCU^7+UF&HmK>jkVd_#+TJ5 z4B8DW;Rn}w#W^WWl}&#ZsszSw1~rwvTtPHN{M#WRT5z}K-KIQ)=!UbopL^->m=~!) zO_Gdlm}&*sS7D);i@E-0p!c%(`l|_8Iw3BF&s(j)O$XAi%?oAU^NoFp@y!|H@5J|i z2Rkq#54J~V3#2NH^C$|12;n#lmx(p`AXhtj5f*noA`J zoRHK;&@r9B{Uxu%o$KfBAb6J_g+;Lp_6DF*KTQVo0si(|E7%4; zw=KyHKLsu?OV?dl@+Tf|n+&haZn)DG$u2~@Y1eX<<18eh4`KcQIm0;<$s)jFFdC)-OF zqz+|IBu>7~MDW|Qgw~ZK4iK4>U1;-A>bPo1hTvldv2l}nCmBE3b(f#eoN#ru5t&p| z&KEjqE`eE2_R`*Nd8q9^(+|pkRQfB)Aw*aWw6g)!BAHjodm|LV@1f`?{-{|_vQLbm__ literal 0 HcmV?d00001 diff --git a/image-4.png b/image-4.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5c606941ccaad4b1e6ed968e6dbe18577f3da0 GIT binary patch literal 25598 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 F{{Ykq-zoqA literal 0 HcmV?d00001 diff --git a/tests/test_sort.py b/tests/test_sort.py index c80290fdf..c01b11740 100644 --- a/tests/test_sort.py +++ b/tests/test_sort.py @@ -17,7 +17,9 @@ radix_sort, gnome_sort, cocktail_shaker_sort, - top_sort, top_sort_recursive + top_sort, top_sort_recursive, + + insertion_sort ) import unittest @@ -68,9 +70,19 @@ def test_heap_sort(self): self.assertTrue(is_sorted(min_heap_sort([1, 3, 2, 5, 65, 23, 57, 1232]))) + # HUH? `test_insertion_sort` tests `bitonic_sort` ???? def test_insertion_sort(self): self.assertTrue(is_sorted(bitonic_sort([1, 3, 2, 5, 65, 23, 57, 1232]))) + + def test_actual_insertion_sort(self): + self.assertTrue(is_sorted(insertion_sort([]))) + self.assertTrue(is_sorted(insertion_sort([1]))) + self.assertTrue(is_sorted(insertion_sort([69, 420]))) + self.assertTrue(is_sorted(insertion_sort([420, 69]))) + self.assertTrue(is_sorted(insertion_sort([0, 1, 2, 3, 4, 3, 2, 1, 0]))) + self.assertTrue(is_sorted(insertion_sort([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], True))) + self.assertTrue(is_sorted(insertion_sort([0, 1, 2, 3, 4, 3, 2, 1, 0], True))) def test_merge_sort(self): self.assertTrue(is_sorted(merge_sort([1, 3, 2, 5, 65, 23, 57, 1232]))) From 3a34eadcce3c98cdf5e837d0784a1659c2253c45 Mon Sep 17 00:00:00 2001 From: aymanpopje Date: Sat, 15 Jun 2024 15:04:45 +0200 Subject: [PATCH 04/34] Added Diff of new and old code to README.md --- README.md | 8 ++++++-- image-5.png | Bin 0 -> 66535 bytes image-6.png | Bin 0 -> 11221 bytes tests/test_sort.py | 14 +------------- 4 files changed, 7 insertions(+), 15 deletions(-) create mode 100644 image-5.png create mode 100644 image-6.png diff --git a/README.md b/README.md index c0f3e2c82..28937efbd 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Old coverage:
![old coverage result (24%)](image-2.png) Diff (LHS = new code, RHS = old code):
-![LHS: new code, RHS: old code (i had pushed the code before screenshotting it, oops)](image.png) +![LHS: new code, RHS: old code](image.png) New coverage:
![new coverage result (100%)](image-1.png) @@ -80,7 +80,11 @@ The test was also faulty on windows (i guess linux was assumed), so i added supp An new test. (before, `insertion_sort` was not present in any test) - +Diff (LHS: new code, RHS: old code):
+(New test)
+![LHS: new code, RHS: old code](image-5.png)
+(Changes in imports)
+![LHS: new code, RHS: old code](image-6.png) Old coverage:
![Old coverage result (4%)](image-3.png) diff --git a/image-5.png b/image-5.png new file mode 100644 index 0000000000000000000000000000000000000000..e65d38265242c0b3b64314e697c8e39b42ca1e83 GIT binary patch literal 66535 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
+9zlY+8 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 literal 0 HcmV?d00001 diff --git a/tests/test_sort.py b/tests/test_sort.py index c01b11740..c80290fdf 100644 --- a/tests/test_sort.py +++ b/tests/test_sort.py @@ -17,9 +17,7 @@ radix_sort, gnome_sort, cocktail_shaker_sort, - top_sort, top_sort_recursive, - - insertion_sort + top_sort, top_sort_recursive ) import unittest @@ -70,19 +68,9 @@ def test_heap_sort(self): self.assertTrue(is_sorted(min_heap_sort([1, 3, 2, 5, 65, 23, 57, 1232]))) - # HUH? `test_insertion_sort` tests `bitonic_sort` ???? def test_insertion_sort(self): self.assertTrue(is_sorted(bitonic_sort([1, 3, 2, 5, 65, 23, 57, 1232]))) - - def test_actual_insertion_sort(self): - self.assertTrue(is_sorted(insertion_sort([]))) - self.assertTrue(is_sorted(insertion_sort([1]))) - self.assertTrue(is_sorted(insertion_sort([69, 420]))) - self.assertTrue(is_sorted(insertion_sort([420, 69]))) - self.assertTrue(is_sorted(insertion_sort([0, 1, 2, 3, 4, 3, 2, 1, 0]))) - self.assertTrue(is_sorted(insertion_sort([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], True))) - self.assertTrue(is_sorted(insertion_sort([0, 1, 2, 3, 4, 3, 2, 1, 0], True))) def test_merge_sort(self): self.assertTrue(is_sorted(merge_sort([1, 3, 2, 5, 65, 23, 57, 1232]))) From 2b0b9187c1c040e4476b1ca14f2c2249273566b7 Mon Sep 17 00:00:00 2001 From: CatalinAnt Date: Tue, 18 Jun 2024 13:51:55 +0200 Subject: [PATCH 05/34] Added instrumentation for branch coverage + improvements --- algorithms/matrix/rotate_image.py | 42 ++++++++++++++++++++++----- algorithms/strings/strong_password.py | 40 +++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 7 deletions(-) diff --git a/algorithms/matrix/rotate_image.py b/algorithms/matrix/rotate_image.py index a8b5e4e77..be379bda1 100644 --- a/algorithms/matrix/rotate_image.py +++ b/algorithms/matrix/rotate_image.py @@ -7,6 +7,13 @@ Could you do this in-place? """ +branch_coverage = { + "rotate_matrix_1": False, # if not branch for mat + "rotate_matrix_2": False, # invisible else branch + "rotate_matrix_3": False, # for branch + "rotate_matrix_4": False, # for branch + +} # clockwise rotate # first reverse up to down, then swap the symmetry @@ -16,18 +23,39 @@ def rotate(mat): if not mat: + branch_coverage["rotate_matrix_1"] = True return mat + + branch_coverage["rotate_matrix_2"] = True + mat.reverse() for i in range(len(mat)): + branch_coverage["rotate_matrix_3"] = True + for j in range(i): + branch_coverage["rotate_matrix_4"] = True + mat[i][j], mat[j][i] = mat[j][i], mat[i][j] return mat +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + total = len(branch_coverage) + hit = sum(branch_coverage.values()) + result = hit / total * 100 + + print("The total branch coverage is:", result, "%") + +rotate([]) +print_coverage() +print("\n") +print_coverage() +rotate([[1, 2], [3, 4]]) +print("\n") +print_coverage() +rotate([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) +print("\n") + + -if __name__ == "__main__": - mat = [[1, 2, 3], - [4, 5, 6], - [7, 8, 9]] - print(mat) - rotate(mat) - print(mat) diff --git a/algorithms/strings/strong_password.py b/algorithms/strings/strong_password.py index 85acd0223..4198ca854 100644 --- a/algorithms/strings/strong_password.py +++ b/algorithms/strings/strong_password.py @@ -29,15 +29,55 @@ Output: 1 (Because the password isn't strong, but she can make it strong by adding a single digit.) """ +branch_coverage = { + "strong_password_1": False, # if branch for any(i.isdigit() for i in password) == False + "strong_password_2": False, # if branch for any(i.islower() for i in password) == False + "strong_password_3": False, # if branch for any(i.isupper() for i in password) == False + "strong_password_4": False, # if branch for any(i in '!@#$%^&*()-+' for i in password) == False + "strong_password_5": False # invisible else branch + +} +counter = 0 + def strong_password(n, password): count_error = 0 # Return the minimum number of characters to make the password strong if any(i.isdigit() for i in password) == False: + branch_coverage["strong_password_1"] = True count_error = count_error + 1 if any(i.islower() for i in password) == False: + branch_coverage["strong_password_2"] = True count_error = count_error + 1 if any(i.isupper() for i in password) == False: + branch_coverage["strong_password_3"] = True count_error = count_error + 1 if any(i in '!@#$%^&*()-+' for i in password) == False: + branch_coverage["strong_password_4"] = True count_error = count_error + 1 + + branch_coverage["strong_password_5"] = True return max(count_error, 6 - n) + + +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + total = len(branch_coverage) + hit = sum(branch_coverage.values()) + result = hit / total * 100 + print("The total branch coverage is:", result, "%" ) + + +strong_password(3, "Ab1") +print_coverage() +print("\n") +strong_password(11, "#Algorithms") +print_coverage() +print("\n") +strong_password(5, "12345") +print_coverage() +print("\n") +strong_password(5, "abcde") +print_coverage() + +print() From eaad6d32ecd73bb8fde876a4d4852cb522aea6f8 Mon Sep 17 00:00:00 2001 From: CatalinAnt Date: Tue, 18 Jun 2024 16:37:57 +0200 Subject: [PATCH 06/34] Improved upon previous instrumentation and tests --- algorithms/matrix/rotate_image.py | 6 +++--- algorithms/strings/strong_password.py | 8 +++----- tests/test_matrix.py | 4 ++++ tests/test_strings.py | 2 ++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/algorithms/matrix/rotate_image.py b/algorithms/matrix/rotate_image.py index be379bda1..f525e24bb 100644 --- a/algorithms/matrix/rotate_image.py +++ b/algorithms/matrix/rotate_image.py @@ -15,6 +15,7 @@ } + # clockwise rotate # first reverse up to down, then swap the symmetry # 1 2 3 7 8 9 7 4 1 @@ -38,6 +39,7 @@ def rotate(mat): mat[i][j], mat[j][i] = mat[j][i], mat[i][j] return mat + def print_coverage(): for branch, hit in branch_coverage.items(): print(f"{branch} was {'hit' if hit else 'not hit'}") @@ -47,6 +49,7 @@ def print_coverage(): print("The total branch coverage is:", result, "%") + rotate([]) print_coverage() print("\n") @@ -56,6 +59,3 @@ def print_coverage(): print_coverage() rotate([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print("\n") - - - diff --git a/algorithms/strings/strong_password.py b/algorithms/strings/strong_password.py index 4198ca854..b3e9317b8 100644 --- a/algorithms/strings/strong_password.py +++ b/algorithms/strings/strong_password.py @@ -68,9 +68,6 @@ def print_coverage(): print("The total branch coverage is:", result, "%" ) -strong_password(3, "Ab1") -print_coverage() -print("\n") strong_password(11, "#Algorithms") print_coverage() print("\n") @@ -79,5 +76,6 @@ def print_coverage(): print("\n") strong_password(5, "abcde") print_coverage() - -print() +print("\n") +strong_password(3, "Ab1") +print_coverage() diff --git a/tests/test_matrix.py b/tests/test_matrix.py index 262fdbe62..5961680cc 100644 --- a/tests/test_matrix.py +++ b/tests/test_matrix.py @@ -15,6 +15,8 @@ ) import unittest +from algorithms.matrix.rotate_image import rotate + class TestBombEnemy(unittest.TestCase): def test_3x4(self): @@ -228,6 +230,8 @@ def test_rotate_image(self): self.assertEqual(rotate_image.rotate( [[1, 2, 3], [4, 5, 6], [7, 8, 9]]), [[7, 4, 1], [8, 5, 2], [9, 6, 3]]) + self.assertEqual([],rotate_image.rotate([])) + self.assertEqual([[3, 1], [4, 2]],rotate([[1, 2], [3, 4]])) class TestSparseDotVector(unittest.TestCase): diff --git a/tests/test_strings.py b/tests/test_strings.py index e7a68302a..9bb0c6a94 100644 --- a/tests/test_strings.py +++ b/tests/test_strings.py @@ -479,6 +479,8 @@ class TestStrongPassword(unittest.TestCase): def test_strong_password(self): self.assertEqual(3, strong_password(3, "Ab1")) self.assertEqual(1, strong_password(11, "#Algorithms")) + self.assertEqual(3,strong_password(5, "12345")) + self.assertEqual(3,strong_password(5, "abcde")) class TestCaesarCipher(unittest.TestCase): From 869dd9766964ee168c85aa21e10baf36c7bbd75b Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Wed, 19 Jun 2024 22:35:30 +0200 Subject: [PATCH 07/34] Update README.md (not finished) Started filling out my part(not finished) --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 28937efbd..36afb4516 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Name: algorithms URL: (https://github.com/keon/algorithms) -Number of lines of code and the tool used to count it: (TODO), counted using lizard +Number of lines of code and the tool used to count it: 18023(18 KLOC), counted using lizard Programming language: Python @@ -14,9 +14,12 @@ Programming language: Python ### Existing tool - +We have used coverage.py to measure the cover of our chosen project. After installing all tools and dependencies, we have +run the tool by typing coverage run --branch -m pytest tests. Afterwards, we use coverage report to generate the report. Later, Ayman has written a scrip to run the commands in a single script, and to also skip the test files, which don't need to be tested. + +In order to not put in 8 large images, I will insert the final screenshot, with the total branch coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/f1cd3fab-b00c-4cd0-89d0-6452e7ed1a63) - ### Your own coverage tool @@ -56,7 +59,7 @@ Programming language: Python - +## Ayman Errahmouni #### @@ -94,6 +97,51 @@ New coverage:
+ +## Catalin Antonescu + +#### Function 1: strong_password + +Link to final commit: +https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8 + +Screenshot of branch measurement: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) + +#### Function 2: rotate_image + +Link to final commit:(same as for the first one) +https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8 + +Screenshot of branch measurement: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) + + + +## Coverage improvement + +### Individual tests + + + + + + + + + + + + + + + + + + + + + ### Overall From 60832d9c672efd586848077cc41a52630d34371b Mon Sep 17 00:00:00 2001 From: bodda93 Date: Thu, 20 Jun 2024 21:31:47 +0200 Subject: [PATCH 08/34] pythagoras test_maths --- tests/test_maths.py | 61 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/tests/test_maths.py b/tests/test_maths.py index c4a54af03..8d6e5f383 100644 --- a/tests/test_maths.py +++ b/tests/test_maths.py @@ -1,3 +1,6 @@ +from algorithms.maths.prime_check import prime_check, print_coverage +import unittest + from algorithms.maths import ( power, power_recur, int_to_base, base_to_int, @@ -276,17 +279,45 @@ class TestPrimeTest(unittest.TestCase): Arguments: unittest {[type]} -- [description] """ + - def test_prime_test(self): + def test_prime_numbers(self): """ - checks all prime numbers between 2 up to 100. - Between 2 up to 100 exists 25 prime numbers! + Checks specific prime numbers between 2 up to 100. """ - counter = 0 - for i in range(2, 101): - if prime_check(i): - counter += 1 - self.assertEqual(25, counter) + primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] + for prime in primes: + with self.subTest(n=prime): + self.assertTrue(prime_check(prime), f"{prime} should be prime") + + def test_non_prime_numbers(self): + """ + Checks specific non-prime numbers between 2 up to 100. + """ + non_primes = [4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 62, 63, 64, 65, 66, 68, 69, 70, 72, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100] + for non_prime in non_primes: + with self.subTest(n=non_prime): + self.assertFalse(prime_check(non_prime), f"{non_prime} should not be prime") + + def test_prime_check_coverage(self): + """ + Additional checks to cover all branches in prime_check function. + """ + self.assertFalse(prime_check(-1), "-1 should not be prime") # Branch 1 + self.assertFalse(prime_check(0), "0 should not be prime") # Branch 1 + self.assertFalse(prime_check(1), "1 should not be prime") # Branch 1 + self.assertTrue(prime_check(2), "2 should be prime") # Branch 2 + self.assertTrue(prime_check(3), "3 should be prime") # Branch 2 + self.assertFalse(prime_check(4), "4 should not be prime") # Branch 3 + self.assertFalse(prime_check(9), "9 should not be prime") # Branch 3 + self.assertFalse(prime_check(15), "15 should not be prime") # Branch 3, 4, 5 + self.assertTrue(prime_check(5), "5 should be prime") # Branch 4 + self.assertTrue(prime_check(7), "7 should be prime") # Branch 4 + self.assertFalse(prime_check(25), "25 should not be prime") # Branch 5 + self.assertFalse(prime_check(49), "49 should not be prime") # Branch 5 + self.assertFalse(prime_check(50), "50 should not be prime") # Branch 3 + self.assertTrue(prime_check(97), "97 should be prime") # Branch 4 + class TestPythagoras(unittest.TestCase): @@ -301,6 +332,16 @@ def test_pythagoras(self): self.assertEqual("Hypotenuse = 3.605551275463989", pythagoras(3, 2, "?")) + def test_opposite_calculation(self): + result = pythagoras("?", 4, 5) + expected = "Opposite = 3.0" + self.assertEqual(result, expected) + + def test_adjacent_calculation(self): + result = pythagoras(3, "?", 5) + expected = "Adjacent = 4.0" + self.assertEqual(result, expected) + class TestRabinMiller(unittest.TestCase): """[summary] @@ -434,10 +475,12 @@ class TestFindOrder(unittest.TestCase): """ def test_find_order_simple(self): - self.assertEqual(1, find_order(1, 1)) + self.assertEqual(1, find_order(1, 1)) # Should hit branch_1 self.assertEqual(6, find_order(3, 7)) self.assertEqual(-1, find_order(128, 256)) self.assertEqual(352, find_order(3, 353)) + self.assertEqual(-1, find_order(10, 20)) # Should hit branches 2, 3, 5 + class TestKrishnamurthyNumber(unittest.TestCase): From 5651abafebe8ae3a5ea63e74883bb991acf19303 Mon Sep 17 00:00:00 2001 From: bodda93 Date: Thu, 20 Jun 2024 21:54:05 +0200 Subject: [PATCH 09/34] first_unique_function --- algorithms/maths/find_order_simple.py | 25 ++++++++++++++++++++ algorithms/maths/prime_check.py | 25 ++++++++++++++++++++ algorithms/maths/pythagoras.py | 28 +++++++++++++++++++++++ algorithms/search/interpolation_search.py | 23 ++++++++++++++++++- tests/test_search.py | 17 +++++++++++++- tests/test_strings.py | 1 + 6 files changed, 117 insertions(+), 2 deletions(-) diff --git a/algorithms/maths/find_order_simple.py b/algorithms/maths/find_order_simple.py index 8f69773c7..732fcae62 100644 --- a/algorithms/maths/find_order_simple.py +++ b/algorithms/maths/find_order_simple.py @@ -11,17 +11,42 @@ import math +branch_coverage = { + "branch_6": False, + "branch_7": False, + "branch_8": False, + "branch_9": False, + "branch_10": False +} + def find_order(a, n): """ Find order for positive integer n and given integer a that satisfies gcd(a, n) = 1. """ + if (a == 1) & (n == 1): # Exception Handeling : 1 is the order of of 1 + branch_coverage["branch_6"] = True + print("branch_6") return 1 if math.gcd(a, n) != 1: + branch_coverage["branch_7"] = True + print("branch_7") print ("a and n should be relative prime!") return -1 for i in range(1, n): + branch_coverage["branch_8"] = True + print("branch_8") if pow(a, i) % n == 1: + branch_coverage["branch_9"] = True + print("branch_9") return i + branch_coverage["branch_10"] = True + print("branch_10") return -1 + +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + +print_coverage() \ No newline at end of file diff --git a/algorithms/maths/prime_check.py b/algorithms/maths/prime_check.py index 60e4427ab..532f7afba 100644 --- a/algorithms/maths/prime_check.py +++ b/algorithms/maths/prime_check.py @@ -1,17 +1,42 @@ +branch_coverage = { + "branch_1": False, # n <= 1 + "branch_2": False, # n == 2 or n == 3 + "branch_3": False, # n % 2 == 0 or n % 3 == 0 + "branch_4": False, # while j * j <= n + "branch_5": False # n % j == 0 or n % (j + 2) == 0 +} def prime_check(n): """Return True if n is a prime number Else return False. """ + print(f"Checking {n}") # Debugging statement if n <= 1: + branch_coverage["branch_1"] = True + print("branch_1") return False + if n == 2 or n == 3: + branch_coverage["branch_2"] = True + print("branch_2") return True if n % 2 == 0 or n % 3 == 0: + branch_coverage["branch_3"] = True + print("branch_3") return False j = 5 while j * j <= n: + branch_coverage["branch_4"] = True + print("branch_4") if n % j == 0 or n % (j + 2) == 0: + branch_coverage["branch_5"] = True + print("branch_5") return False j += 6 return True + +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + +print_coverage() diff --git a/algorithms/maths/pythagoras.py b/algorithms/maths/pythagoras.py index b24b682ac..f67f1a99e 100644 --- a/algorithms/maths/pythagoras.py +++ b/algorithms/maths/pythagoras.py @@ -2,6 +2,13 @@ Given the lengths of two of the three sides of a right angled triangle, this function returns the length of the third side. """ +branch_coverage = { + "branch_1": False, + "branch_2": False, + "branch_3": False, + "branch_4": False, + #"branch_5": False +} def pythagoras(opposite, adjacent, hypotenuse): """ @@ -10,11 +17,32 @@ def pythagoras(opposite, adjacent, hypotenuse): """ try: if opposite == str("?"): + branch_coverage["branch_1"] = True + print("branch_1") return ("Opposite = " + str(((hypotenuse**2) - (adjacent**2))**0.5)) if adjacent == str("?"): + branch_coverage["branch_2"] = True + print("branch_2") return ("Adjacent = " + str(((hypotenuse**2) - (opposite**2))**0.5)) if hypotenuse == str("?"): + branch_coverage["branch_3"] = True + print("branch_3") return ("Hypotenuse = " + str(((opposite**2) + (adjacent**2))**0.5)) + branch_coverage["branch_4"] = True + print("branch_4") return "You already know the answer!" except: + # branch_coverage["branch_5"] = True + # print("branch_5") raise ValueError("invalid argument(s) were given.") + +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + +print_coverage() + +# total = len(branch_coverage) +# reached_branches = sum(branch_coverage.values()) +# percentage = (reached_branches/total)*100 +# print_coverage() diff --git a/algorithms/search/interpolation_search.py b/algorithms/search/interpolation_search.py index 5b1d00a1a..98a405431 100644 --- a/algorithms/search/interpolation_search.py +++ b/algorithms/search/interpolation_search.py @@ -13,6 +13,15 @@ from typing import List +branch_coverage = { + "branch_60": False, + "branch_61": False, + "branch_62": False, + "branch_63": False, + "branch_64": False, + +} + def interpolation_search(array: List[int], search_key: int) -> int: """ @@ -38,24 +47,36 @@ def interpolation_search(array: List[int], search_key: int) -> int: while (low <= high) and (array[low] <= search_key <= array[high]): # calculate the search position + branch_coverage["branch_60"] = True pos = low + int(((search_key - array[low]) * (high - low) / (array[high] - array[low]))) # search_key is found if array[pos] == search_key: + branch_coverage["branch_61"] = True return pos # if search_key is larger, search_key is in upper part if array[pos] < search_key: + branch_coverage["branch_62"] = True low = pos + 1 # if search_key is smaller, search_key is in lower part else: + branch_coverage["branch_63"] = True high = pos - 1 - + + branch_coverage["branch_64"] = True return -1 +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + + if __name__ == "__main__": import doctest doctest.testmod() +print_coverage() + diff --git a/tests/test_search.py b/tests/test_search.py index f515cfcb9..5b6636da5 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -139,13 +139,28 @@ def test_next_greatest_letter(self): self.assertEqual("c", next_greatest_letter_v2(letters, target)) def test_interpolation_search(self): - array = [0, 3, 5, 5, 9, 12, 12, 15, 16, 19, 20] + array = [0, 3, 5, 5, 9, 12, 12, 15, 16, 19, 20, 25] + #, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100] + + # array = [0, 3, 5, 5, 9, 12, 12, 15, 16, 19, 20, 25] self.assertEqual(1, interpolation_search(array, 3)) self.assertEqual(2, interpolation_search(array, 5)) self.assertEqual(6, interpolation_search(array, 12)) self.assertEqual(-1, interpolation_search(array, 22)) self.assertEqual(-1, interpolation_search(array, -10)) self.assertEqual(10, interpolation_search(array, 20)) + + # self.assertEqual(-1, interpolation_search(array, 1)) + # self.assertEqual(0, interpolation_search(array, 0)) # Found at the start + # self.assertEqual(interpolation_search(array, 12), 5) # Found in the middle, first occurrence + # self.assertEqual(-1, interpolation_search(array, 110)) # Not found, above maximum + # self.assertEqual(interpolation_search(array, 55), 17) # Found in the middle + # self.assertEqual(interpolation_search(array, 70), 20) # Found, single value in range + # self.assertEqual(interpolation_search(array, 22), -1) # Not found, above the range + # self.assertEqual(interpolation_search(array, 50), 16) # Found, single value in range + # self.assertEqual(interpolation_search(array, 45), 15) # Found, single value in range + + if __name__ == '__main__': diff --git a/tests/test_strings.py b/tests/test_strings.py index e7a68302a..7e0573fc4 100644 --- a/tests/test_strings.py +++ b/tests/test_strings.py @@ -568,6 +568,7 @@ class TestFirstUniqueChar(unittest.TestCase): def test_first_unique_char(self): self.assertEqual(0, first_unique_char("leetcode")) self.assertEqual(2, first_unique_char("loveleetcode")) + self.assertEqual(-1, first_unique_char("aabb")) class TestRepeatSubstring(unittest.TestCase): From 3ccee3b4943550ca0e9b17c9fdebf2eb138ee5a8 Mon Sep 17 00:00:00 2001 From: bodda93 Date: Sat, 22 Jun 2024 19:42:55 +0200 Subject: [PATCH 10/34] fix --- tests/test_search.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_search.py b/tests/test_search.py index 5b6636da5..f414cacc1 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -145,7 +145,7 @@ def test_interpolation_search(self): # array = [0, 3, 5, 5, 9, 12, 12, 15, 16, 19, 20, 25] self.assertEqual(1, interpolation_search(array, 3)) self.assertEqual(2, interpolation_search(array, 5)) - self.assertEqual(6, interpolation_search(array, 12)) + self.assertEqual(5, interpolation_search(array, 12)) self.assertEqual(-1, interpolation_search(array, 22)) self.assertEqual(-1, interpolation_search(array, -10)) self.assertEqual(10, interpolation_search(array, 20)) From 4baef668763757265e65334f30ac0e7a17e7007e Mon Sep 17 00:00:00 2001 From: bodda93 Date: Mon, 24 Jun 2024 14:02:52 +0200 Subject: [PATCH 11/34] new branch --- algorithms/maths/pythagoras.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/algorithms/maths/pythagoras.py b/algorithms/maths/pythagoras.py index f67f1a99e..be0da03ff 100644 --- a/algorithms/maths/pythagoras.py +++ b/algorithms/maths/pythagoras.py @@ -7,7 +7,7 @@ "branch_2": False, "branch_3": False, "branch_4": False, - #"branch_5": False + "branch_5": False } def pythagoras(opposite, adjacent, hypotenuse): @@ -32,8 +32,8 @@ def pythagoras(opposite, adjacent, hypotenuse): print("branch_4") return "You already know the answer!" except: - # branch_coverage["branch_5"] = True - # print("branch_5") + branch_coverage["branch_5"] = True + print("branch_5") raise ValueError("invalid argument(s) were given.") def print_coverage(): From c16f26e952322b2c1729778a4141a57103ba7658 Mon Sep 17 00:00:00 2001 From: bodda93 Date: Mon, 24 Jun 2024 14:19:07 +0200 Subject: [PATCH 12/34] branch numbers --- algorithms/maths/pythagoras.py | 30 ++++++++++++------------- algorithms/strings/first_unique_char.py | 19 ++++++++++++++++ 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/algorithms/maths/pythagoras.py b/algorithms/maths/pythagoras.py index be0da03ff..adebd2a63 100644 --- a/algorithms/maths/pythagoras.py +++ b/algorithms/maths/pythagoras.py @@ -3,11 +3,11 @@ length of the third side. """ branch_coverage = { - "branch_1": False, - "branch_2": False, - "branch_3": False, - "branch_4": False, - "branch_5": False + "branch_31": False, + "branch_32": False, + "branch_33": False, + "branch_34": False, + "branch_35": False } def pythagoras(opposite, adjacent, hypotenuse): @@ -17,23 +17,23 @@ def pythagoras(opposite, adjacent, hypotenuse): """ try: if opposite == str("?"): - branch_coverage["branch_1"] = True - print("branch_1") + branch_coverage["branch_31"] = True + print("branch_31") return ("Opposite = " + str(((hypotenuse**2) - (adjacent**2))**0.5)) if adjacent == str("?"): - branch_coverage["branch_2"] = True - print("branch_2") + branch_coverage["branch_32"] = True + print("branch_32") return ("Adjacent = " + str(((hypotenuse**2) - (opposite**2))**0.5)) if hypotenuse == str("?"): - branch_coverage["branch_3"] = True - print("branch_3") + branch_coverage["branch_33"] = True + print("branch_33") return ("Hypotenuse = " + str(((opposite**2) + (adjacent**2))**0.5)) - branch_coverage["branch_4"] = True - print("branch_4") + branch_coverage["branch_34"] = True + print("branch_34") return "You already know the answer!" except: - branch_coverage["branch_5"] = True - print("branch_5") + branch_coverage["branch_35"] = True + print("branch_35") raise ValueError("invalid argument(s) were given.") def print_coverage(): diff --git a/algorithms/strings/first_unique_char.py b/algorithms/strings/first_unique_char.py index 44ba05e49..cef6527c2 100644 --- a/algorithms/strings/first_unique_char.py +++ b/algorithms/strings/first_unique_char.py @@ -11,17 +11,36 @@ Reference: https://leetcode.com/problems/first-unique-character-in-a-string/description/ """ + +branch_coverage = { + "branch_26": False, + "branch_27": False, + "branch_28": False, + "branch_29": False, + "branch_30": False, +} + def first_unique_char(s): """ :type s: str :rtype: int """ if (len(s) == 1): + branch_coverage["branch_26"] = True + print("branch_26") return 0 ban = [] for i in range(len(s)): + branch_coverage["branch_27"] = True + print("branch_27") if all(s[i] != s[k] for k in range(i + 1, len(s))) == True and s[i] not in ban: + branch_coverage["branch_28"] = True + print("branch_28") return i else: + branch_coverage["branch_29"] = True + print("branch_29") ban.append(s[i]) + branch_coverage["branch_30"] = True + print("branch_30") return -1 From ab40f9371a116b8aec9a799aac7e66fc19411053 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:25:16 +0200 Subject: [PATCH 13/34] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 36afb4516..564bf20ff 100644 --- a/README.md +++ b/README.md @@ -102,16 +102,16 @@ New coverage:
#### Function 1: strong_password -Link to final commit: -https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8 +Link to commit: +[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) #### Function 2: rotate_image -Link to final commit:(same as for the first one) -https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8 +Link to commit:(same as for the first one) +[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) From 08ad5264f0ef3b90c8579f82233547728378eda9 Mon Sep 17 00:00:00 2001 From: bodda93 Date: Mon, 24 Jun 2024 15:32:22 +0200 Subject: [PATCH 14/34] test case --- algorithms/maths/pythagoras.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/algorithms/maths/pythagoras.py b/algorithms/maths/pythagoras.py index adebd2a63..386b821b3 100644 --- a/algorithms/maths/pythagoras.py +++ b/algorithms/maths/pythagoras.py @@ -18,31 +18,24 @@ def pythagoras(opposite, adjacent, hypotenuse): try: if opposite == str("?"): branch_coverage["branch_31"] = True - print("branch_31") return ("Opposite = " + str(((hypotenuse**2) - (adjacent**2))**0.5)) if adjacent == str("?"): branch_coverage["branch_32"] = True - print("branch_32") return ("Adjacent = " + str(((hypotenuse**2) - (opposite**2))**0.5)) if hypotenuse == str("?"): branch_coverage["branch_33"] = True - print("branch_33") return ("Hypotenuse = " + str(((opposite**2) + (adjacent**2))**0.5)) branch_coverage["branch_34"] = True - print("branch_34") return "You already know the answer!" except: branch_coverage["branch_35"] = True - print("branch_35") raise ValueError("invalid argument(s) were given.") def print_coverage(): for branch, hit in branch_coverage.items(): print(f"{branch} was {'hit' if hit else 'not hit'}") +pythagoras(3, 2, "?") + print_coverage() -# total = len(branch_coverage) -# reached_branches = sum(branch_coverage.values()) -# percentage = (reached_branches/total)*100 -# print_coverage() From ffbac2244768f29ffaa922d08ce22f2c5c71ce09 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:52:46 +0200 Subject: [PATCH 15/34] Update README.md --- README.md | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 564bf20ff..b3a8a8ce5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Report for Assignment 1 +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/8e69587c-68d9-4d76-8165-f60e913c20ae)# Report for Assignment 1 ## Project chosen @@ -122,31 +122,51 @@ Screenshot of branch measurement: ### Individual tests - - - - - +Catalin Antonescu - +Test 1: +In test_string: +[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) - +Old coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/5ea3487d-f024-45e6-a1e7-e6d9d1d953b7) +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) +New coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/1d179cc4-1179-40e2-b344-5e904e899647) +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/c8173a47-bcc9-4b6a-9a91-c70b5a8b002f) + - +Test 2: +In test_matrix: +[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) + +Old coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/a97a2bd6-c69e-4435-a8e2-bbdefc429bd1) + + +New coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/7cc337eb-5684-40b3-aedd-dc2b7180b7f3) +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/2143adff-e0aa-4113-858a-0c92ec288d20) - ### Overall +Old overall coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/f1cd3fab-b00c-4cd0-89d0-6452e7ed1a63) +New overall coverage: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/a150a1e5-3393-4aef-9f27-13a256d7480c) + +Due to the large size of the project, the percentage did not go up. ## Statement of individual contributions From db180066e7683f688fd60b6d58379a6eb90c927c Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:55:56 +0200 Subject: [PATCH 16/34] Update README.md --- README.md | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index b3a8a8ce5..307be9a9a 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,27 @@ In order to not put in 8 large images, I will insert the final screenshot, with +### Catalin Antonescu + +#### Function 1: strong_password + +Link to commit: +[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) + +Screenshot of branch measurement: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) + +#### Function 2: rotate_image + +Link to commit:(same as for the first one) +[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) + +Screenshot of branch measurement: +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) + + + + ## Coverage improvement ### Individual tests @@ -98,25 +119,6 @@ New coverage:
-## Catalin Antonescu - -#### Function 1: strong_password - -Link to commit: -[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) - -Screenshot of branch measurement: -![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) - -#### Function 2: rotate_image - -Link to commit:(same as for the first one) -[https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) - -Screenshot of branch measurement: -![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) - - ## Coverage improvement @@ -140,6 +142,7 @@ New coverage: + Test 2: In test_matrix: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) From dd7c72a0d3f88dfdd7bc3a0bd182b06346e397ee Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:56:14 +0200 Subject: [PATCH 17/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 307be9a9a..caf4213aa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/8e69587c-68d9-4d76-8165-f60e913c20ae)# Report for Assignment 1 +# Report for Assignment 1 ## Project chosen From 56f72d620e921630221f44c1eb011e146e3ab0f5 Mon Sep 17 00:00:00 2001 From: bodda93 Date: Mon, 24 Jun 2024 15:57:59 +0200 Subject: [PATCH 18/34] first_unique_char_printCoverage --- algorithms/strings/first_unique_char.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/algorithms/strings/first_unique_char.py b/algorithms/strings/first_unique_char.py index cef6527c2..a1a57b521 100644 --- a/algorithms/strings/first_unique_char.py +++ b/algorithms/strings/first_unique_char.py @@ -27,20 +27,23 @@ def first_unique_char(s): """ if (len(s) == 1): branch_coverage["branch_26"] = True - print("branch_26") return 0 ban = [] for i in range(len(s)): branch_coverage["branch_27"] = True - print("branch_27") if all(s[i] != s[k] for k in range(i + 1, len(s))) == True and s[i] not in ban: branch_coverage["branch_28"] = True - print("branch_28") return i else: branch_coverage["branch_29"] = True - print("branch_29") ban.append(s[i]) branch_coverage["branch_30"] = True - print("branch_30") return -1 + +def print_coverage(): + for branch, hit in branch_coverage.items(): + print(f"{branch} was {'hit' if hit else 'not hit'}") + +first_unique_char("leetcode") +first_unique_char("loveleetcode") +print_coverage() From bb4e55266f1d7c807ddea4cabe66f77f0e44aa9e Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:59:14 +0200 Subject: [PATCH 19/34] Update README.md --- README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index caf4213aa..8876cd586 100644 --- a/README.md +++ b/README.md @@ -118,24 +118,23 @@ New coverage:
- - -## Coverage improvement - -### Individual tests - -Catalin Antonescu +## Catalin Antonescu Test 1: In test_string: +Link to commit: + [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) - + + Old coverage: + ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/5ea3487d-f024-45e6-a1e7-e6d9d1d953b7) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) - + New coverage: + ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/1d179cc4-1179-40e2-b344-5e904e899647) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/c8173a47-bcc9-4b6a-9a91-c70b5a8b002f) @@ -155,7 +154,7 @@ Old coverage: New coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/7cc337eb-5684-40b3-aedd-dc2b7180b7f3) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/2143adff-e0aa-4113-858a-0c92ec288d20) - + From b7742601cea17844ea62c5292c4f2bd199386794 Mon Sep 17 00:00:00 2001 From: bodda93 <114078193+bodda93@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:01:20 +0200 Subject: [PATCH 20/34] Update README.md --- README.md | 45 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 36afb4516..ab3cd8254 100644 --- a/README.md +++ b/README.md @@ -116,17 +116,27 @@ https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) - -## Coverage improvement +### Abdullah Abdelkhalik -### Individual tests - +pythagoras - +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - +![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) + + +first_unique_char + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 + +![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) + + +## Coverage improvement + +### Individual tests @@ -140,6 +150,27 @@ Screenshot of branch measurement: +Abdullah Abdelkhalik + +test_maths + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/60832d9c672efd586848077cc41a52630d34371b + +![pythagoras_before](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/cf57112b-1aef-4a10-a41f-bd4b797e2012) + +![pythagoras_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/1aa45c17-46fc-49d3-944a-03c2276d1be6) + +the coverage is improved by 28%, the code only hit one of the five branches and cover only one of the three cases of the pythagoras theory. I added the other two cases, i could have a fourth case where none of the cases is present. + +test_strings + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 + +![first_unique_char_before](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/9910ec69-73b0-4c87-afc8-abc01f65a423) + +![first_unique_char_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10859fac-776c-4a48-8a1c-9531afcbfa9b) + +the coverage is improved by 13%, the code only hit three out of five branches and only set up two examples. I added a case where there is no unique letter. ### Overall @@ -151,3 +182,5 @@ Screenshot of branch measurement: ## Statement of individual contributions + +Abdullah -> increased the coverage for two functions. From c45cfea231a104bd3cba3e8db9ee3a87acd82450 Mon Sep 17 00:00:00 2001 From: bodda93 <114078193+bodda93@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:12:22 +0200 Subject: [PATCH 21/34] Update README.md --- README.md | 48 ++++++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index b523fb7ef..fde84eb0c 100644 --- a/README.md +++ b/README.md @@ -128,25 +128,6 @@ Link to commit: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) -Old coverage: - -<<<<<<< bodda93-patch-1 - -### Abdullah Abdelkhalik - - -pythagoras - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) - - -first_unique_char - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 - -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) ## Coverage improvement @@ -162,10 +143,6 @@ New coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/c8173a47-bcc9-4b6a-9a91-c70b5a8b002f) - - ->>>>>>> master - Test 2: In test_matrix: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) @@ -178,14 +155,27 @@ Old coverage: New coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/7cc337eb-5684-40b3-aedd-dc2b7180b7f3) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/2143adff-e0aa-4113-858a-0c92ec288d20) - -<<<<<<< bodda93-patch-1 - +### Abdullah Abdelkhalik - -Abdullah Abdelkhalik +pythagoras + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 + +![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) + + +first_unique_char + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 + +![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) + + +## Coverage improvement + +### Individual tests test_maths @@ -206,8 +196,6 @@ https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e748 ![first_unique_char_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10859fac-776c-4a48-8a1c-9531afcbfa9b) the coverage is improved by 13%, the code only hit three out of five branches and only set up two examples. I added a case where there is no unique letter. -======= ->>>>>>> master ### Overall From 0a643f8233462c5d1caa3b8c390864ea2e7b5fc3 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:17:42 +0200 Subject: [PATCH 22/34] Update README.md --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fde84eb0c..4c96f47c6 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ In order to not put in 8 large images, I will insert the final screenshot, with -### Catalin Antonescu +#### Catalin Antonescu #### Function 1: strong_password @@ -118,22 +118,21 @@ New coverage:
-## Catalin Antonescu +### Catalin Antonescu Test 1: In test_string: + Link to commit: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) - - ## Coverage improvement ### Individual tests -======= + ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/5ea3487d-f024-45e6-a1e7-e6d9d1d953b7) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) From bd18bf900a4092ecb0b1a5fee70b115909dbe505 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:23:43 +0200 Subject: [PATCH 23/34] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4c96f47c6..4b0396dc1 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,11 @@ New coverage:
-### Catalin Antonescu +## Coverage improvement + +### Individual tests + +#### Catalin Antonescu Test 1: @@ -129,9 +133,7 @@ Link to commit: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) -## Coverage improvement -### Individual tests ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/5ea3487d-f024-45e6-a1e7-e6d9d1d953b7) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) From 0a3326297174cf092eb89d8b0fb2c5d67ccf6dc4 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:25:10 +0200 Subject: [PATCH 24/34] Update README.md --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4b0396dc1..1d0493363 100644 --- a/README.md +++ b/README.md @@ -118,11 +118,7 @@ New coverage:
-## Coverage improvement - -### Individual tests - -#### Catalin Antonescu +## Catalin Antonescu Test 1: @@ -132,8 +128,7 @@ Link to commit: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) - - +Old coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/5ea3487d-f024-45e6-a1e7-e6d9d1d953b7) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) From 76cdd118e4a35e1a8ab0c8184f95a799c5a79142 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:35:19 +0200 Subject: [PATCH 25/34] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d0493363..b6968161f 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,8 @@ New coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/1d179cc4-1179-40e2-b344-5e904e899647) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/c8173a47-bcc9-4b6a-9a91-c70b5a8b002f) +For strong_password there was a 26% coverage improvement with the existing tool and 40% with manual measurement tool. + Test 2: In test_matrix: @@ -152,6 +154,8 @@ New coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/7cc337eb-5684-40b3-aedd-dc2b7180b7f3) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/2143adff-e0aa-4113-858a-0c92ec288d20) +For rotate_image there was a 33% coverage improvement with the existing tool and 25% with the manual tool. + ### Abdullah Abdelkhalik @@ -191,7 +195,7 @@ https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e748 ![first_unique_char_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10859fac-776c-4a48-8a1c-9531afcbfa9b) -the coverage is improved by 13%, the code only hit three out of five branches and only set up two examples. I added a case where there is no unique letter. +The coverage is improved by 13%, the code only hit three out of five branches and only set up two examples. I added a case where there is no unique letter. ### Overall From f8ed727daa6f014dd6cd6e14f46028cad238600a Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:38:04 +0200 Subject: [PATCH 26/34] Update README.md --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index b6968161f..77197dbdc 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ In order to not put in 8 large images, I will insert the final screenshot, with #### Catalin Antonescu -#### Function 1: strong_password +##### Function 1: strong_password Link to commit: [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) @@ -47,7 +47,7 @@ Link to commit: Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/e718a47f-5ea0-412c-b250-25a193412164) -#### Function 2: rotate_image +##### Function 2: rotate_image Link to commit:(same as for the first one) [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) @@ -57,6 +57,23 @@ Screenshot of branch measurement: +#### Abdullah Abdelkhalik + + +pythagoras + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 + +![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) + + +first_unique_char + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 + +![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) + + ## Coverage improvement @@ -156,26 +173,9 @@ New coverage: For rotate_image there was a 33% coverage improvement with the existing tool and 25% with the manual tool. -### Abdullah Abdelkhalik -pythagoras - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) - - -first_unique_char - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 - -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) - - -## Coverage improvement - -### Individual tests +#### Abdullah Abdelkhalik test_maths From 175e67a5a26304fc3e7ea1c1d328d3efb3c71739 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:48:13 +0200 Subject: [PATCH 27/34] Update README.md --- README.md | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 1d0493363..ddb3cf151 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,22 @@ Link to commit:(same as for the first one) Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) - +#### Abdullah Abdelkhalik + + +pythagoras + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 + +![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) + + +first_unique_char + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 + +![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) + ## Coverage improvement @@ -138,40 +153,29 @@ New coverage: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/1d179cc4-1179-40e2-b344-5e904e899647) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/c8173a47-bcc9-4b6a-9a91-c70b5a8b002f) +For strong_password there was a 26% coverage improvement with tthe existing tool and 40% with manual measurement tool. + Test 2: + In test_matrix: + [https://github.com/CatalinAnt/algorithms-SEP-95/commit/eaad6d32ecd73bb8fde876a4d4852cb522aea6f8](https://github.com/CatalinAnt/algorithms-SEP-95/commit/2b0b9187c1c040e4476b1ca14f2c2249273566b7) Old coverage: + ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/a97a2bd6-c69e-4435-a8e2-bbdefc429bd1) New coverage: + ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/7cc337eb-5684-40b3-aedd-dc2b7180b7f3) ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/2143adff-e0aa-4113-858a-0c92ec288d20) -### Abdullah Abdelkhalik - - -pythagoras - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) +For rotate_image, thre was a 33% coverage improvement with the existing tool and 25% with manual tool. - -first_unique_char - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 - -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) - - -## Coverage improvement - -### Individual tests +## Abdullah Abdelkhalik test_maths From 64797c2fcb27288fc41d5a3ce2f26eb5f9113a7a Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:49:50 +0200 Subject: [PATCH 28/34] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 60b87bdbb..71d884d9d 100644 --- a/README.md +++ b/README.md @@ -223,9 +223,9 @@ Old overall coverage: New overall coverage: -![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/a150a1e5-3393-4aef-9f27-13a256d7480c) +![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/a53729ff-a4f1-42ce-9fe9-ff0813952658) -Due to the large size of the project, the percentage did not go up. +Due to the large size of the project, the percentage only went up by one percent. ## Statement of individual contributions From 9653ea61866527356bcf2ac8ef491c81012f0661 Mon Sep 17 00:00:00 2001 From: Catalin Dinu Antonescu <113595149+CatalinAnt@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:50:27 +0200 Subject: [PATCH 29/34] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 71d884d9d..848f3f70e 100644 --- a/README.md +++ b/README.md @@ -223,6 +223,7 @@ Old overall coverage: New overall coverage: + ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/a53729ff-a4f1-42ce-9fe9-ff0813952658) Due to the large size of the project, the percentage only went up by one percent. From d4de0f663df6eeae2a6d8e644785f0de81582892 Mon Sep 17 00:00:00 2001 From: aymanpopje Date: Wed, 26 Jun 2024 12:36:09 +0200 Subject: [PATCH 30/34] Added pre-improvement instrument measurements --- README.md | 16 ++++++++++++++++ image-7.png | Bin 0 -> 19838 bytes image-8.png | Bin 0 -> 12804 bytes 3 files changed, 16 insertions(+) create mode 100644 image-7.png create mode 100644 image-8.png diff --git a/README.md b/README.md index 848f3f70e..9af814af6 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,22 @@ In order to not put in 8 large images, I will insert the final screenshot, with +#### Ayman Errahmouni + +##### Function 1: simplify_path_v2 + +[Link the commit](https://github.com/CatalinAnt/algorithms-SEP-95/pull/2/commits/22ee6fa1df4785596c603af61a725c558973eb0b) + +Screenshot of branch measurement (66%):
+![image](image-7.png) + +##### Function 2: insertion_sort + +[Link to commit](https://github.com/CatalinAnt/algorithms-SEP-95/pull/2/commits/5dae7f28036f89b7f6ff673639a922dd714aff3e) + +Screenshot of branch measurement (0%, was untested):
+![alt text](image-8.png) + #### Catalin Antonescu ##### Function 1: strong_password diff --git a/image-7.png b/image-7.png new file mode 100644 index 0000000000000000000000000000000000000000..3232d8ff2d207b2e5fc027ce9dfa5297b46ac19f GIT binary patch literal 19838 zcmeIa2T+q;*Dj0^k>;axLY-vR z$9ve{SDHAmG6)y3-z^F6+=FPm?JSowq_hPz0h+%d#l} zht4llgSy{?ybTvPQ1aJCzZ_gq{5$YYZ`6f)yc2&7Mr-?K&M5d(fA+vYtB7m2;Ub$| zZlN*;!s~kb*gZW^gX6d#TW#H#631pkE^c$Rt4|}{j~c(-m}gqVCYT|v?HGH`V2TIS z;kc+x8r52zQzslIJ=onhi|;{jw&ZQz82xRm%x2CU@qgM*m8HJ=)p^G|_MCVBuXBEC zm*#rwS>d84yZdYWI}X5{d;cY-hnrv){8wC_54KI`!-M#vs zM5m;2aoXkJM(5c1Lw}mHi`dvxyB{9tSoSLI{FCSspW<(o2yY1dP0*j_e5fRPzD;GJ ztgZxw5&D&eydrWH)hI8EnXYexc{frmG7EtBc3x0zLX-wXO4= z*miUwt+RsztIpM-&*iO!f%%{O$$eLZoB!&UXW%BzbK7j&Ik2!!_duzt8$SY=aoC?Q z-#++L;pXW+pb)Yb!-Y4CYbkEF#QhUyxwK32DAs+)sd7wue)Js`_7Q0AtAXYX&CS~nAj14!_S6v;)M>t_G2IHvY$yT4=K{(sQJeBkc6H~L806_h*z zn5w`5_V_s`u7szxO?63cmq!rM>%)d*LZ@`~_07HdS0k${3{*Fp$|CloJljjP^l9R5 z?Ja5!@$l&scpOjo@qC9v|1{jLr`+3)@)RQNw`5LdsL27-9N)!%6$gEhbs!R%s+I7v zcJwUnT%-^_1nW-h*ZFHRZ&+&G4$=|S<6TQp`@pa)rGfeiLYM#EALj*bhAu1YH^I$p z$zeLtwD=FKd99w1BsX02?pKThW4A(s&FUOzg!%rJGhL$G|D+)j~i57ihBo*R<)t%g5TK{#8hlCs3nYFI7m5o@bsF9~`b_^&672`)GC*Xw10& zew*o9`+A=s>AIC#x0qc#UJcD3L{XmzWx8>W4qaqVO4nGd^ks&^sQdL@S5k(vNEtte zE-AIDdf}2;1SlsN{EKPx(Pf#%9@c%JUH zQn!nx{2<#NUrf(s20r)g*58ZZoX9zKB=3kJ;mlnf<3V(YoSJg{K5|$&ZE6J_Qv0Ey zF&`XfkcOl|HG791$$g7r@sLi!t5$@jJ2B;>#LWQ#zWcGGhC)o++nT zEqRTMSFe}a`>q!F6v`EzO}kfam8PIp+jX<#QS7ysaC2p4;5{pTo*>oD&&$T#e4E zN4l+GHrg@8#U=aY!!K;92}_I3jG10-xY~ZLp4Yrrb?~N3VeB?&h$VXj@jspB{&xfE zCAaVYH22^_b%Vq%R+Yfbf{hXDTECSYI_=j_$@${^;uE-_zMd6JLqwI>(= z^S$5ckNj3iJ%uY!y3cw89_)Tnvjczqo2QB?vrppM+*b*_b&c(25w$U4sgISJ4FY&Y zJ{jz)c#B!s-W7qZ*X0hOL&|x(|EEB7!UKq$6$PF7U{g6J@o2cSswmXvGjQltIq>b7 z717>w4*F$=tzg1=C(L5X6QV1lb17Xf6F!vqMFD+_d6P#NdrT&2xN8wvaUl;pCWByM zqS38ylXwKMDVd4Bys9?NX(adY$Ju6qMv~}<-}iP3mbMW>YDK}Vz!bmnl#ly|Y3{wT z4J-rrJiTAgb%<5~TO^Os>`HqISI%;E6k;+}QlGA^zX}oaq^PLcl^X)pvEjA6l&n(d zQ03Vwcx_c<+xuDNFg~Bq;L*u%uUgCJic}k4eWb_~+$;AKIWRF_H%<1aV=k>D#k|Io zQspwWjJ2(V;_v2%VTdY@GOmg%>5c2r) YO;Q-0B^3WKfX14rvsW28!W1Np%w8gH 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 bg|*fAJ*w|cKu8n^_-ABja;o6O)xZA-s?&9% literal 0 HcmV?d00001 diff --git a/image-8.png b/image-8.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f2470bfa97cb2697ffcdf1a0371c596f90ff94 GIT binary patch literal 12804 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 VnwK_#|L&mD(>A(Ue#1WM{{S^{YP Date: Wed, 26 Jun 2024 22:39:04 +0200 Subject: [PATCH 31/34] Fixed instrumentation (reported in README.md) --- README.md | 11 +++++++---- algorithms/sort/insertion_sort.py | 11 +++++++++++ algorithms/unix/path/simplify_path.py | 13 ++++++++++++- image-10.png | Bin 0 -> 15450 bytes image-11.png | Bin 0 -> 3382 bytes image-7.png | Bin 19838 -> 3098 bytes image-8.png | Bin 12804 -> 29459 bytes image-9.png | Bin 0 -> 25029 bytes 8 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 image-10.png create mode 100644 image-11.png create mode 100644 image-9.png diff --git a/README.md b/README.md index 9af814af6..9e9c25981 100644 --- a/README.md +++ b/README.md @@ -43,15 +43,15 @@ In order to not put in 8 large images, I will insert the final screenshot, with [Link the commit](https://github.com/CatalinAnt/algorithms-SEP-95/pull/2/commits/22ee6fa1df4785596c603af61a725c558973eb0b) -Screenshot of branch measurement (66%):
-![image](image-7.png) +Screenshot of branch measurement:
+![alt text](image-7.png) ##### Function 2: insertion_sort [Link to commit](https://github.com/CatalinAnt/algorithms-SEP-95/pull/2/commits/5dae7f28036f89b7f6ff673639a922dd714aff3e) -Screenshot of branch measurement (0%, was untested):
-![alt text](image-8.png) +Screenshot of branch measurement:
+![alt text](image-11.png) #### Catalin Antonescu @@ -139,6 +139,7 @@ Old coverage:
Diff (LHS = new code, RHS = old code):
![LHS: new code, RHS: old code](image.png) +![alt text](image-9.png) New coverage:
![new coverage result (100%)](image-1.png) @@ -157,6 +158,8 @@ Diff (LHS: new code, RHS: old code):
![LHS: new code, RHS: old code](image-5.png)
(Changes in imports)
![LHS: new code, RHS: old code](image-6.png) +(Instrumentation)
+![alt text](image-8.png) Old coverage:
![Old coverage result (4%)](image-3.png) diff --git a/algorithms/sort/insertion_sort.py b/algorithms/sort/insertion_sort.py index 79e2bbd20..f1f7613e4 100644 --- a/algorithms/sort/insertion_sort.py +++ b/algorithms/sort/insertion_sort.py @@ -36,7 +36,18 @@ def insertion_sort(arr, simulation=False): return arr def print_coverage(): + covered = 0 print("branch coverage for `insertion_sort`:") for branch, hit in branch_coverage.items(): print(f"{branch} was {'hit' if hit else 'not hit'}") + if hit: covered += 1; + print(f"Branch coverage: {covered / len(branch_coverage) * 100}") +insertion_sort([]) +insertion_sort([1]) +insertion_sort([69, 420]) +insertion_sort([420, 69]) +insertion_sort([0, 1, 2, 3, 4, 3, 2, 1, 0]) +insertion_sort([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], True) +insertion_sort([0, 1, 2, 3, 4, 3, 2, 1, 0], True) +print_coverage() diff --git a/algorithms/unix/path/simplify_path.py b/algorithms/unix/path/simplify_path.py index 7cf773cb0..8f993b763 100644 --- a/algorithms/unix/path/simplify_path.py +++ b/algorithms/unix/path/simplify_path.py @@ -39,6 +39,17 @@ def simplify_path_v2(path): return "/" + "/".join(stack) def print_coverage(): + covered = 0 print("branch coverage for `simplify_path_v2`:") for branch, hit in branch_coverage.items(): - print(f"{branch} was {'hit' if hit else 'not hit'}") \ No newline at end of file + print(f"{branch} was {'hit' if hit else 'not hit'}") + if hit: covered += 1; + print(f"Branch coverage: {covered / len(branch_coverage) * 100}") + + +# simplify_path_v2(".") +# simplify_path_v2("/../") +# simplify_path_v2("/home//foo/") +# simplify_path_v2("") +# simplify_path_v2("/home/../") +print_coverage() diff --git a/image-10.png b/image-10.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4ab2a58a7a6e1fd238cad7689cdab487a7352c GIT binary patch literal 15450 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ⅇ)nI2vt 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 K3HvHrH2%NV6INyb literal 0 HcmV?d00001 diff --git a/image-7.png b/image-7.png index 3232d8ff2d207b2e5fc027ce9dfa5297b46ac19f..ffd360b0f964722450acb7bf9a55ab8ea9106a49 100644 GIT binary patch literal 3098 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 literal 19838 zcmeIa2T+q;*Dj0^k>;axLY-vR z$9ve{SDHAmG6)y3-z^F6+=FPm?JSowq_hPz0h+%d#l} zht4llgSy{?ybTvPQ1aJCzZ_gq{5$YYZ`6f)yc2&7Mr-?K&M5d(fA+vYtB7m2;Ub$| zZlN*;!s~kb*gZW^gX6d#TW#H#631pkE^c$Rt4|}{j~c(-m}gqVCYT|v?HGH`V2TIS z;kc+x8r52zQzslIJ=onhi|;{jw&ZQz82xRm%x2CU@qgM*m8HJ=)p^G|_MCVBuXBEC zm*#rwS>d84yZdYWI}X5{d;cY-hnrv){8wC_54KI`!-M#vs zM5m;2aoXkJM(5c1Lw}mHi`dvxyB{9tSoSLI{FCSspW<(o2yY1dP0*j_e5fRPzD;GJ ztgZxw5&D&eydrWH)hI8EnXYexc{frmG7EtBc3x0zLX-wXO4= z*miUwt+RsztIpM-&*iO!f%%{O$$eLZoB!&UXW%BzbK7j&Ik2!!_duzt8$SY=aoC?Q z-#++L;pXW+pb)Yb!-Y4CYbkEF#QhUyxwK32DAs+)sd7wue)Js`_7Q0AtAXYX&CS~nAj14!_S6v;)M>t_G2IHvY$yT4=K{(sQJeBkc6H~L806_h*z zn5w`5_V_s`u7szxO?63cmq!rM>%)d*LZ@`~_07HdS0k${3{*Fp$|CloJljjP^l9R5 z?Ja5!@$l&scpOjo@qC9v|1{jLr`+3)@)RQNw`5LdsL27-9N)!%6$gEhbs!R%s+I7v zcJwUnT%-^_1nW-h*ZFHRZ&+&G4$=|S<6TQp`@pa)rGfeiLYM#EALj*bhAu1YH^I$p z$zeLtwD=FKd99w1BsX02?pKThW4A(s&FUOzg!%rJGhL$G|D+)j~i57ihBo*R<)t%g5TK{#8hlCs3nYFI7m5o@bsF9~`b_^&672`)GC*Xw10& zew*o9`+A=s>AIC#x0qc#UJcD3L{XmzWx8>W4qaqVO4nGd^ks&^sQdL@S5k(vNEtte zE-AIDdf}2;1SlsN{EKPx(Pf#%9@c%JUH zQn!nx{2<#NUrf(s20r)g*58ZZoX9zKB=3kJ;mlnf<3V(YoSJg{K5|$&ZE6J_Qv0Ey zF&`XfkcOl|HG791$$g7r@sLi!t5$@jJ2B;>#LWQ#zWcGGhC)o++nT zEqRTMSFe}a`>q!F6v`EzO}kfam8PIp+jX<#QS7ysaC2p4;5{pTo*>oD&&$T#e4E zN4l+GHrg@8#U=aY!!K;92}_I3jG10-xY~ZLp4Yrrb?~N3VeB?&h$VXj@jspB{&xfE zCAaVYH22^_b%Vq%R+Yfbf{hXDTECSYI_=j_$@${^;uE-_zMd6JLqwI>(= z^S$5ckNj3iJ%uY!y3cw89_)Tnvjczqo2QB?vrppM+*b*_b&c(25w$U4sgISJ4FY&Y zJ{jz)c#B!s-W7qZ*X0hOL&|x(|EEB7!UKq$6$PF7U{g6J@o2cSswmXvGjQltIq>b7 z717>w4*F$=tzg1=C(L5X6QV1lb17Xf6F!vqMFD+_d6P#NdrT&2xN8wvaUl;pCWByM zqS38ylXwKMDVd4Bys9?NX(adY$Ju6qMv~}<-}iP3mbMW>YDK}Vz!bmnl#ly|Y3{wT z4J-rrJiTAgb%<5~TO^Os>`HqISI%;E6k;+}QlGA^zX}oaq^PLcl^X)pvEjA6l&n(d zQ03Vwcx_c<+xuDNFg~Bq;L*u%uUgCJic}k4eWb_~+$;AKIWRF_H%<1aV=k>D#k|Io zQspwWjJ2(V;_v2%VTdY@GOmg%>5c2r) YO;Q-0B^3WKfX14rvsW28!W1Np%w8gH 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 bg|*fAJ*w|cKu8n^_-ABja;o6O)xZA-s?&9% diff --git a/image-8.png b/image-8.png index a1f2470bfa97cb2697ffcdf1a0371c596f90ff94..6e6eab6b2e52b5cbde98e45395031f9f65336c30 100644 GIT binary patch literal 29459 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%0Ac(k8b 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 z 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 Date: Wed, 26 Jun 2024 22:51:32 +0200 Subject: [PATCH 32/34] Update README.md --- README.md | 153 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 75 deletions(-) diff --git a/README.md b/README.md index dea5eaebc..bdacb93ba 100644 --- a/README.md +++ b/README.md @@ -57,38 +57,17 @@ Link to commit:(same as for the first one) Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) -#### Abdullah Abdelkhalik - -pythagoras - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) -first_unique_char -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) -#### Abdullah Abdelkhalik -pythagoras -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) - - -first_unique_char - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 - -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) #### Almuthana Almustafa @@ -144,40 +123,6 @@ Link to commit:(same as for the first one) Screenshot of branch measurement: ![image](https://github.com/CatalinAnt/algorithms-SEP-95/assets/113595149/94eec9b6-3dd6-46e3-b087-40892eccc10e) -#### Abdullah Abdelkhalik - - -pythagoras - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) - - -first_unique_char - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 - -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) - - -#### Abdullah Abdelkhalik - - -pythagoras - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/0df1fa2b-2185-4b9f-ae65-5d969edb009b) - - -first_unique_char - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 - -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) - - ## Coverage improvement @@ -283,27 +228,7 @@ New coverage: For rotate_image, thre was a 33% coverage improvement with the existing tool and 25% with manual tool. -## Abdullah Abdelkhalik - -test_maths - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/60832d9c672efd586848077cc41a52630d34371b -![pythagoras_before](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/cf57112b-1aef-4a10-a41f-bd4b797e2012) - -![pythagoras_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/1aa45c17-46fc-49d3-944a-03c2276d1be6) - -the coverage is improved by 28%, the code only hit one of the five branches and cover only one of the three cases of the pythagoras theory. I added the other two cases, i could have a fourth case where none of the cases is present. - -test_strings - -https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 - -![first_unique_char_before](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/9910ec69-73b0-4c87-afc8-abc01f65a423) - -![first_unique_char_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10859fac-776c-4a48-8a1c-9531afcbfa9b) - -The coverage is improved by 13%, the code only hit three out of five branches and only set up two examples. I added a case where there is no unique letter. ## Almuthana Almustafa @@ -338,6 +263,84 @@ existing tool result after: The coverage improved by 86% due to the creation of new tests. + + + + + + + + + + + + + + + + + + + + + + + +#### Abdullah Abdelkhalik + + +pythagoras + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 + +![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/4c90fc73-980b-4617-b1ec-01041bbb1a06) + + + +first_unique_char + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 + +![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) + + + + + +## Improvements + +test_maths + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/60832d9c672efd586848077cc41a52630d34371b + +![pythagoras_before](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/cf57112b-1aef-4a10-a41f-bd4b797e2012) + +![pythagoras_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/1aa45c17-46fc-49d3-944a-03c2276d1be6) + +the coverage is improved by 28%, the code only hit one of the five branches and cover only one of the three cases of the pythagoras theory. I added the other two cases, i could have a fourth case where none of the cases is present. + +test_strings + +https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 + +![first_unique_char_before](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/9910ec69-73b0-4c87-afc8-abc01f65a423) + +![first_unique_char_after](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10859fac-776c-4a48-8a1c-9531afcbfa9b) + +The coverage is improved by 13%, the code only hit three out of five branches and only set up two examples. I added a case where there is no unique letter. + + + + + + + + + + + + + ### Overall From 190081b725cd2377e51941ad8eeec12c8971e46f Mon Sep 17 00:00:00 2001 From: bodda93 <114078193+bodda93@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:02:13 +0200 Subject: [PATCH 33/34] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bdacb93ba..7c46a4cec 100644 --- a/README.md +++ b/README.md @@ -293,7 +293,8 @@ pythagoras https://github.com/CatalinAnt/algorithms-SEP-95/commit/5651abafebe8ae3a5ea63e74883bb991acf19303 -![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/4c90fc73-980b-4617-b1ec-01041bbb1a06) +![pythagoras_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/c61bff67-be7e-4bd2-b892-0a0f2dada1f3) + From bc42bcc8c5d22b55e11a4fe2369ba8c40cbef641 Mon Sep 17 00:00:00 2001 From: bodda93 <114078193+bodda93@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:03:21 +0200 Subject: [PATCH 34/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c46a4cec..f3a2da0b0 100644 --- a/README.md +++ b/README.md @@ -302,7 +302,7 @@ first_unique_char https://github.com/CatalinAnt/algorithms-SEP-95/commit/c16f26e952322b2c1729778a4141a57103ba7658 -![first_unique_char_hits](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/10d7c45c-398e-4408-8f11-6771f51fa95c) +![first_unique_char_hits (2)](https://github.com/CatalinAnt/algorithms-SEP-95/assets/114078193/8c1b704e-cadb-4f54-aea7-795005348538)