From 6098fb824e1c5bf1eaa3ddd2c3490eb1ef851d82 Mon Sep 17 00:00:00 2001 From: MRL0R3 Date: Wed, 23 Apr 2025 20:34:00 +0330 Subject: [PATCH 1/2] Parsing now is working correctly --- .gradle/7.4/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/7.4/checksums/md5-checksums.bin | Bin 0 -> 19247 bytes .gradle/7.4/checksums/sha1-checksums.bin | Bin 19037 -> 20657 bytes .../7.4/executionHistory/executionHistory.bin | Bin 45675 -> 52518 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.4/fileHashes/fileHashes.bin | Bin 20497 -> 21397 bytes .gradle/7.4/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 19585 -> 20469 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/buildOutputCleanup/outputFiles.bin | Bin 19649 -> 20207 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .idea/misc.xml | 2 +- .idea/workspace.xml | 100 ++++++++++++++++-- build.gradle | 1 + build/classes/java/main/Game.class | Bin 0 -> 1493 bytes build/classes/java/main/Parser.class | Bin 0 -> 6144 bytes build/classes/java/test/ParserTest.class | Bin 0 -> 2757 bytes .../tests/test/classes/ParserTest.html | 16 +-- build/reports/tests/test/index.html | 8 +- .../tests/test/packages/default-package.html | 6 +- build/test-results/test/TEST-ParserTest.xml | 8 +- build/test-results/test/binary/results.bin | Bin 184 -> 178 bytes .../compileJava/previous-compilation-data.bin | Bin 2217 -> 2214 bytes .../previous-compilation-data.bin | Bin 1160 -> 1157 bytes src/main/java/Game.java | 15 ++- src/main/java/Parser.java | 87 ++++++++++++--- 26 files changed, 199 insertions(+), 44 deletions(-) create mode 100644 .gradle/7.4/checksums/md5-checksums.bin create mode 100644 build/classes/java/main/Game.class create mode 100644 build/classes/java/main/Parser.class create mode 100644 build/classes/java/test/ParserTest.class diff --git a/.gradle/7.4/checksums/checksums.lock b/.gradle/7.4/checksums/checksums.lock index 0a7cbfb1f6dcd79ceaf2e22c77de3f81e710bb13..c780d08523dd5dedbfe545e4c160de9c379d756d 100644 GIT binary patch literal 17 TcmZQ(%NM&YcA!?D0RmhBBU%G3 literal 17 TcmZQ(%NM&YcA!?D0RngcBOwCx diff --git a/.gradle/7.4/checksums/md5-checksums.bin b/.gradle/7.4/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..720a35d8091e08d4ff9dc46591dd18df34a46745 GIT binary patch literal 19247 zcmeI(Ye-XJ00!WrVtJXUdBGcaL6?H2l!l~XUedX|YlwuIS&5_u7G6qA#mq`gU0Dj7 zwloYYG6+H?%e0bNo0wB%3fhlKi$Y7WaCVO0IS5-3^fTTA=fb=5e&6{X_HR336lG(! z#%|QcX0>sND+oXU0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*#k7lHlsLX5~_Y&>EV*li7rRTpqvZZcsXNFQ4R*Ib5C?k@BM~ z%VeJ9LK&AIHgOPlNKS>3Trke%`SYcD2R>b4pFc8y%L~);GbbYY%GmKoxSTsvlui-( z3`Yn+00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX?}zX|N1YaaCO%Povm$L zXcB2SC6k7|r*lWm!%iG#ZX} zcf`lSXKQ`4Q}99wsGcK@twE$=Az|kD1wCVj A82|tP literal 0 HcmV?d00001 diff --git a/.gradle/7.4/checksums/sha1-checksums.bin b/.gradle/7.4/checksums/sha1-checksums.bin index bd27f6a2d7e651460b2ce0e135d69b319d5afb40..d0ad05c42706bedd4572ea9112fbdce2f106f456 100644 GIT binary patch literal 20657 zcmeI3do)ye9KdIcu-=6gHU>51P*j-O&0|w}jAtCAbR?2yo!|Y{S!2$r{d4zw&tdNQ%>CToy`Ot^|LFegXte3d zpQwfQWl{UG3TsdR3P1rU00p1`6o3Ly017|>C;$bZ02F`%Pyh-*0Vn_kpum5nfERHh zvgl-{8%vNYN>MbLsXVb_xSOXwx3Il+1Nz!o3;+K?LJF_Oxaj^X#5oF>@2}!JwFfcI zA?~1odCHno+lI26QxSJtiuqy75>8)>k`J~09?XwCC@f4%rT>b!a}wq`d-StDutMe{ zZf}cuu5Q5dF4c>C#5w0MFVK2;@`kO;O2nP=FhAw{deL_So=n7DEiu1jmAbC{j39>M z1(@>%{z*lzTpXzVm}6cy9+02k#5#*Orx)`+u2=98ld>Sho!v3-=lZRvFxs6*@#~*? zMT=Qg$BRzH9am%iENHEA;l&Ggsr@g(eAF&5|H6?*^3oBD%WTYPIpzngS28sacNSnS zD;xGwW1Z)E#2tn(*V)nV_HONFf5aUPFlSc2@l>=@ppM^733I*M$z9`}tuN8`E^9vX z?xHqj8LQ`r+m~W);E=bfPbcCuHLfe>iy{T1j-gRo5qFEl{HGmhvf0;y%@KFyVs72D z=6PI@iyXC|3e0UdK6SGb(Rm0p>6Q2VFjFT8k~8KchAZX<3Vg}HC;fN@Qc zTnELUV(ynYkSOWVbp>&!7R*ER9?BC;$bZ02F`%Pyh-*0Vn_kpa2wr z0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6o3Ly;QvryK5>#J#1HxM@hsIli*|J%;3{6$ za4%-e@M^x5T5U$WB~4H7S3KM;tRWTgl=z(YPixyoTOZb@rM-HV(T#MYpRMYXMvo#Z z!%b*0R+I12Pq1j(7REQYN_u`$!QP4f`U}Iowk9AeYp>9vCkKjJLF_9Bu2d#Zy%rn# z(PP<&`AvVhamqsT6C?zGidqHT)(i3rck-%Q*sJ_Q6%+L}Yyyy#T_qe#qJ2!%Vuu7I zahnz^zGhF|+jO%%&8scL7g;%6p+#q@h+2L8A3vmYB%kt#b$P7Lvsx~BP`V3QC(4AD zL^Ds+(!CNYQ`{3SS4odztk1H)k_%jJ^7 zZwoSKs%fl z^o|N+sW3`OE8s=#c65YNK)f=e@5z&f}`wX|73EUvNBx9LuEn z#x-P3c_%uSIExtTs(7pQ#r%zZzw}1Vi%UFSwl+7h_<;d2gNnS$x_6KzrzASoLY4zZ z^HB5_T2HA-$ySRxJEuM5zoNtuRz@RB;rFk%0yFg##9Ke43eL@_scLZd9y=y85|gGf z5>Cu7A&*c`4_Q;mXM2>bCWh@#UV>|x2Wa#sdx|1=_D_{i~W71JH5Z#!xoYJ7QH-ZHYc~4(qMl!W E1CXXWhX4Qo delta 77 zcmdnEkn!#m#tkMCf?T}^j(OisWnRw!2A-0WdnFVmAC-`p{8!Roa;%iWY5H0|O)DM#UfE8x17HH#>UBFaZE)bsd-h diff --git a/.gradle/7.4/executionHistory/executionHistory.bin b/.gradle/7.4/executionHistory/executionHistory.bin index d10930b3d570035bbdf3e2338c22e4cac26e07c5..25336b8b0d0b09b7cdc21a54065523cc9674e17c 100644 GIT binary patch delta 4994 zcmaF;glX9<<_RLEEDT`a)5XBRaRR~)4Ps#6w}Y_Tj{(_lAnfUz7#O5>0@!?uognddWG7#l_45vpsjo`q=f$U6@kV=Hjww z17kNr_AdFBOt$UeH|>_xdo@)f{9*jwLtNoXKVLES1|$|0rxro%KE&i~72{r%n39tk z1M~)v(zVbtG@jhp(;|dTIBGR^VYSJ8lTs$f^+{lpzF1i~IXeccRAWNRBJ zrL?<@T-WQ(InLKBcP+a7!7_^HESY94h}FgB`o^A|$v%OC;xBOpRn+9k2PTSP)fxo~ zmnv*h7c0BOZ(%oab7KMd1P~(~YlXtys6$L_~K6*{Q9i&Wlj5a3e zY1{te`u=%^?&gTTu5Jt0En59CYEEM=Z}$GT|p!&Xi6 zcjWnI^20Xi$IfJ&DS~|Ufx`I)GcE2 zwIB_$(?76sNJK9G83a71&C6hTr|Z*PtF);%Bc$tl<1JurxXO)Mk~0Wg=lb|D9AC9=5NsBo4DwnT+nV2@Nt<|SM$`uh0EHn z#J^5jP`?=L&t-z3oWg0%X=@D3Fpq)wHV|K(onB~~lV_ZfQ(Tsonv-Q>o?}*?S7Bxb ztmUB=bq}S#M-T2otYvPaRU_V2v>_?l|Oy4hM04$88Kz)x@K)jq_z0EXx z^MRC|jBIV8A#S=Bn^(*<;V^$lW>MLgBsKYdzHk(JV~TMiQezO@0bwMwuAdCFLJ+e> zR+q0tsiPwaJDO^pFZAjax$>p7^Mzg|qn6dUn_zj9UoXMhqxe`hd9q#+_O4Xa)X8s) zu@fi9Lkdm~s9?n|4eCdN;xA%K z^#N@8EkU5=nH;uRj+&zJO!E_tT*|HaGWq3tb+%cpr+^jHWU&qMFsAheWidW3iHv3j zhDiq}7??zDyYLcX%H)YP$}m-PH<;VizG@0=dVNfN!qtl+*20ckAgX2y0PW(C`(gV& zYkAPIC7FJ@=Q{TRg`R$h5sUE-P+26T%Bxs=y?nBMts&Vhr0R82ljqf{Aw`BG#gQ>t zuTI?LdDvA^rKar-F{YQ71geQIc?J%@Ni0AQ%6-X^fw&HT%9I?cJWwStOBd3bN?27cN^psT7%-piXjFi;8%A)kd z%KY-;%H&dr^VwB4A4n-@-fS2!myz)j&}`|+@f&3)M+EUrW(m?^yoe+sEkD)o&f>2x zzIm5B1*X5evHCh=Pe5W(acYrXR$^Hq<59TU9YK5oCww;~KYOV5Amn0-59bEW)sycO zYJj~1vOpQ=S>DMO!Ky5;-}g36P7D^&w%vY>d7`zzQWG1c%Ja^jCQSX<+jQUXo(eOA zfUL31&VNVFam)&+x^t!f>(0pwf;Ac6LTyu?tT|14azUFp<3l77p~-ir@lIYAV#xR! zDylNsA%$zQK&Xng?Ph)T>32`O^kk5m^7*c_*5gkgn^p?4FfuT3+8P6+_AwCO2I0y3 zrznFBive-WFNTjOxG5lUK$tPL4m8wpl#B zfQj)cRJ-hC@g&~K0fj=7&m}4$1)6x08;X9x$+MGGSl0gOYnpsG$pOW`Nf>^$V|p)}f8+LGRUNe2a6aXd^AG`nn diff --git a/.gradle/7.4/executionHistory/executionHistory.lock b/.gradle/7.4/executionHistory/executionHistory.lock index bfee0ea7a57689733c507194bbd1c3a69ecbf111..3852e77252075ba1a6e1d708294005d03f20618b 100644 GIT binary patch literal 17 UcmZSXl-oP^lIQZZ3=r@Q05@?3Y5)KL literal 17 UcmZSXl-oP^lIQZZ3=psY05=;26aWAK diff --git a/.gradle/7.4/fileHashes/fileHashes.bin b/.gradle/7.4/fileHashes/fileHashes.bin index 5ba85bed41831f3937ac06405d508cb285d9dfb8..1adfadf7f152feca720e1d10fc9c1dfb56b84323 100644 GIT binary patch delta 1053 zcmbQZfN|<_#tkMCnpTa6o%?6+U!KGO20kDELqV&+?f+YBQdv41R^o)f={=HjgEPM! zh6n~5PF^b+An+)_Fxd2c6DL%=;N-883K}mj7b?Ta_NLZHTS zPv(`%(BOJ8E5@YVrwOW<6{eV%#Wn2u4|{H?`0UBKQVIep&!pLz_O7vlny_$kt5k!7 zjkcpnjiZGqROMNi2{yKRb3}8?Za~C?lVRfC8jQjUtCl%J)n`urD-|FRX3NQTPqgw9 zL@;3aWLIegjqsUKXWQS%7(fIAFT+d-zxr|6_Wg&Uffn?Ca;&t4KvszIzHoJK9;gY< zlY6C$m{=P(D*h1PXfQ))v!lla_Q}0IeDy8okMFpqCb?{KDWmn_g=bnA7#OD|Pishl zXk<|Z(t5@~LKBD;L0I7Y&+F^N5z+;<<2z7gJrJ{A#nf`0>(@K|aM>@(?MJe9K1mINSR$tYR0#wUAOg*j zkIS^Wnx_^nT-JUi{&ms(Lb)BJCH&^+ zLXhbU4BSzZ1AT=9|MC4x$eo|Jw&+071u+h&LsZ2fYPgO9X*7rY5$}AkbK#UqmWvtsnkRaT(WH2+NA@1+Z3>BLO_=p_{-C(kwg&b)@ocAxo+jUy_6 z>OnrxiG^rn*o0}-v`hOqqW(P0DsB`r4qLde3aX<3qJ!hs3glr}!6TP{I7kwUUbbjKR;fI3E0ii21Wm zo+_Ck@aPrKr}S;J7ef_pp8QqP!r`@k)&H(ti&j7ceHvl*e{#&>?z}vU2_o)y7$(kU zGp|tN34b(H{qxDHQVJ1Vrz}h*mi_$?HQ5)Ym~WGfLk3F*FI1cpCN8<)`ySS(A@`w% z*TcjW)_?6h?{X^$YWUH~wo(=jDkt`f9eN_Y6slMfrdVypNw3ZW`uR}tr!aA?YT=;6 z1tv-masQ2zbEPaIZ1&V>eq?{z1{LgwDR!;DnRIuq$W5pr3t{5!KiKa0tm>N&5%;|c z6Auw*zh1WE$w#O;nv>^BSqQ|2HoyAswDld-5bMcjr4$5`HQTIq=N^Np^q%}wDvF7< zaiii7@r?#Egf=^RIIv9S_U5bS&6v>P{iaNaTXLsX?YEa-fTqY90|`kW76f4d1G9ya zXZL)a@Yg%u=*kAh$(Sm{+c!Am-m}wQ^-{?}|cggzL^~+tDQr70;vSN#1pue$c>YFSKkkG9^FvW;(?=6B)`ubk+DWtb{(I-FthZf{P)E4SRP3AAdUhvg)&lkxpr#tkMCk@1c9_xU_onZJtx41D+ghk};OC-Q6aFFb>Yd!B`fx88j?Gk3)r z8>ss8F!A;q?i;Qveb0c3Kb-6;q2SQHn{A({JI__9U@}Z`Pf(Z2DJi9JsQ71?cwbv+ z$?Aoot03Zj){|o;6f`E@d$KE2@_ZIl@Gea8w6=3z>$IAKpoXlTTq;2rLV4(aipTA{{E|J9#fq<>uegocT_Cwot*Tlix~M^4o36x-l=X3TmY8 zWLe1v0_X4SO5A>SNf|`Y=jr6Hl0O8Vbf@e%dA+3&sVM8OsMzw!y3zpxzZbmVdo8@?7F4(W5%>8H6PNYb_3g`v88@Jo z1x}WgX%H|e3O>mE-&_DH*gkoxOoN8I^@aDrJhdyKf-_+zcouHRTO!?K1QGW;J(*WF zKp^SXMOcQR_Vg6+AdOS2n;QPTnH(&zjY%6Inxm8kP@>U@ISJH5@o7DBmrqUlK+sXjN zWh5tWlX0IcDr-17PS#-ZGFkV@rg9aNj{ - + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f9d2f50..894c175 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,7 +4,33 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + { "keyToString": { + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", "SHARE_PROJECT_CONFIGURATION_FILES": "true", "WebServerToolWindowFactoryState": "false", "git-widget-placeholder": "main", - "last_opened_file_path": "C:/Users/Asus/Desktop/placeHolder/Second-Assignment-CineScribe", + "last_opened_file_path": "D:/programming/java/git/Fourth-Assignment-Steam-Scraper", "nodejs_package_manager_path": "npm", "settings.editor.selected.configurable": "preferences.pluginManager" } @@ -54,7 +81,30 @@ - + + + + + + + false + true + false + + + + + + + + false + true + false + + + + + + + + + + @@ -88,7 +173,7 @@ - + 1709128175583 1743341137706 diff --git a/build.gradle b/build.gradle index 82ff37b..4d89885 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,7 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' implementation 'org.jsoup:jsoup:1.14.3' + } test { diff --git a/build/classes/java/main/Game.class b/build/classes/java/main/Game.class new file mode 100644 index 0000000000000000000000000000000000000000..b339c96ca05f3972d535efb7de563eab4961001c GIT binary patch literal 1493 zcmZuwO>@&$6g|(DEZda>HgQNlk~%FWvK(TdaSJt2+PHu_A?ehe%mh}7QH;PJsUq_i z*mm2l*wAj$78nAaPGP$0qCcbi{DTg|d6KXdCgbtD_g&q4&$%D(-&cRW1aJ}Gq!B}0 zgQ7!4Lg45f>z-BVSiN>-ZS#)Z@&pnWoSx%d5{Mh6^%RmwX-MmM2fBcA)#}<5JzwNj z#?ejBb$acZ^qo;v_aFSV|MK@j@l>_C zQ~2+_6EnoS@-W8q;`J!+Sd3#|H;^*ZYIb4)baEtj@q*+Y-nd z^-_dd;806r79VOT$P9A=*)jJ<&$HXMD==j=qJg2EkssrPhN6y>m_L9WRLxSi`fk@^ z^UfO);IJn*Bc`CqwJ1vHB?nW|VWKRMY}?*)$J*HuIA%nBeIxlyy-&8s9oK84jrcBsB46F{7`6$_t*&$qS2po@khJ@>l(mGdR zxqpk`M^>Dky*lV_+V1z3KaSi=zh!mSE!UCv(5QH~9m!xt?oo~GS?H?2OOprc3?T$k zboee@Bkp58=*_pm2GP)?B?bv4`GK5e>L868rWUw_FGj(!QE=vuw}K}R4Ze&oN5Ny{?Cx8^(}xCs zHKKhpWLV7Q6E6_kh)ep-4TT~z#PQ~atS39fOmm2j#%1OFF3qwJ1kEVppcj5dk+6-r#z8}~as3yu0bPlM03L|P`QD3ibfR;f#Rg@D3nxNE56YZ9EnSzO`3 ZW4KDM3{-7G{EsCK$;-00*JzBP@fzdO8xQ~h literal 0 HcmV?d00001 diff --git a/build/classes/java/main/Parser.class b/build/classes/java/main/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..bb3062082a9a38e91f7dc87edb5feafd0743298f GIT binary patch literal 6144 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 Y({{O7b`ffi?4_g#pDvX_*@xEu0OW;hv;Y7A literal 0 HcmV?d00001 diff --git a/build/classes/java/test/ParserTest.class b/build/classes/java/test/ParserTest.class new file mode 100644 index 0000000000000000000000000000000000000000..43835aa461a61cbc2d88e3c75118cbd95f035141 GIT binary patch literal 2757 zcmchYSy$Ue6vzKEixtNKLkNVd$_`<1fUH0WJ2-Jj%ATc*um>YBk|W6^B;DSU573@2 zZ|y_-)}FSfS(>CDpr`#xJ^jzf7!#7$>S28EjONbV|Lc+&Fxo-p=mC?Dgpj(vQ6FzYz!1;@2TW&iFj^+eEsLo%1c8XB5{04kd)-?i*a z&v2r7R>u(yRb#Gc8`F8$@>U(Av$DT-Q9U|NXgDw_JS#11-xyi5vc`~;7Tw0Ia2?x9 znL17}_EbJ6Tw`k0^p=c4*YVno>mn<7v1Z1eUJ^#q^nAlvG-fxb;qSpfilFD9+*>_ixRcIeXSaN;eYl zS%Vr*mFgK(M^A~ug_-7AiF7!M5s7qXfb^zorKrsqOJQ29tO(oaV)7fRT+?t&NhUJF zPD{~li)`BLHss`-#i==SMYuYyGn;|*nrWvv&l)7Pzvc6fj`uXw3^}Vg(_WVW#tBP! zI;J!nnz2($rt6Ee(ba7Xy9{;8GloS<Kw*g6!S8P zXpqFD>9d4%+}5yb%u)B`C5%Ku$6Xftuw^b}9UUKNsGqT2!Fbb7-nCh-ETqmeXU^*Q zh-+I4k2e}_ypwD(OYj6-JveWiB|rnPF9w z%ktDvowRH*kzZX9?ldpLncAe2GPAR$D=#JrljZ)BC5xiak+M-)Mv;*R1v$JhvKn@) z3bdSf;zn^rL*r!L_N`ShYk3wU4%jxYP^hva$+uVHpjdQVF_6vjlq#R6O_lVxst%Es z9nCw%-t2b`p-cyrP0AOzKa}Z|Lzf)R%7MKS%ABXBTQgnHZDhOmjgY-Ts6GZe@Qw=? z6sg|4t14bzZ*wN71j;r=z$r0mNx7>xKYi^|J{;kvF+`#ocF2z-tqR)w%yJa;;{4U* z?CEFFexVV|d zuL3cKs^M6RWqRdYTfr(Vd5o>zb!dlVP;HHt&be1A)b8XfBN z-Vj=!qrW9~SlMmLzNGBNa^;K%PK9!A1Wu)L76K;PhfkvFe zK7N??V+IG9@gd}J7>{7!F=>5)qxcTT@Dq;XCEu0+CIdYR0K)j4JMK}rdi($v9(6l` zui(=vW9-Ms(<564i9LBvCg;>Y!K}stqmTJxT4|XB9Hq89%ZOjn8qK&q4-067>a z9RO(!oB+thzzKj%2F}}nG&Awj6tIQTwNkV;%GFMx;*_X^@^(^yEClass ParserTest
-
0.035s
+
0.011s

duration

@@ -75,18 +75,18 @@

Tests

-testSortByArea() -0.028s +testSortByName() +0.009s passed -testSortByName() -0.003s +testSortByPrice() +0.001s passed -testSortByPopulation() -0.004s +testSortByRating() +0.001s passed @@ -99,7 +99,7 @@

Tests

Generated by -Gradle 7.4 at Feb 28, 2024, 6:39:51 PM

+Gradle 7.4 at Apr 23, 2025, 9:29:33 PM

diff --git a/build/reports/tests/test/index.html b/build/reports/tests/test/index.html index d2f1ae9..ba7460d 100644 --- a/build/reports/tests/test/index.html +++ b/build/reports/tests/test/index.html @@ -38,7 +38,7 @@

Test Summary

-
0.035s
+
0.011s

duration

@@ -85,7 +85,7 @@

Packages

3 0 0 -0.035s +0.011s 100% @@ -112,7 +112,7 @@

Classes

3 0 0 -0.035s +0.011s 100% @@ -126,7 +126,7 @@

Classes

Generated by -Gradle 7.4 at Feb 28, 2024, 6:39:51 PM

+Gradle 7.4 at Apr 23, 2025, 9:29:33 PM

diff --git a/build/reports/tests/test/packages/default-package.html b/build/reports/tests/test/packages/default-package.html index 2ffe0cb..26425f0 100644 --- a/build/reports/tests/test/packages/default-package.html +++ b/build/reports/tests/test/packages/default-package.html @@ -40,7 +40,7 @@

Default package

-
0.035s
+
0.011s

duration

@@ -83,7 +83,7 @@

Classes

3 0 0 -0.035s +0.011s 100% @@ -96,7 +96,7 @@

Classes

Generated by -Gradle 7.4 at Feb 28, 2024, 6:39:51 PM

+Gradle 7.4 at Apr 23, 2025, 9:29:33 PM

diff --git a/build/test-results/test/TEST-ParserTest.xml b/build/test-results/test/TEST-ParserTest.xml index 0dd5d0b..2becac9 100644 --- a/build/test-results/test/TEST-ParserTest.xml +++ b/build/test-results/test/TEST-ParserTest.xml @@ -1,9 +1,9 @@ - + - - - + + + diff --git a/build/test-results/test/binary/results.bin b/build/test-results/test/binary/results.bin index 05d8f6a58910abd267306c985d8b5740e596d00d..7146be77453dd5ac2127d18b75cdf7ee2b149097 100644 GIT binary patch literal 178 zcmZQ(Wa^Z)<= delta 69 zcmV-L0J{IC5vdV30ssJrLvM9%baHtRzWud1O;0F+XW0RV?kVRCb2au7YY b)&r3{5T!IcB6-h4@{k3QIza&dv34*BtJ)f7 diff --git a/build/tmp/compileTestJava/previous-compilation-data.bin b/build/tmp/compileTestJava/previous-compilation-data.bin index e3bdb4a7b37e8ac2c02bb7414cfa2efb6bab735c..3956cb5f8a6bc4287ef4129778939acdbaa301c2 100644 GIT binary patch delta 171 zcmV;c095~o355wG0RU710EbXva&u*J0sw?%b94|r{to_NZJ%zfa=>!X76?+2BTyOu zg-2m+WdQ*I000s}1QP&?b8}^KbZKvHbCHnw5Z4O&?k`sz^kav_YPsZPQj?hhh7u7F zNtT{y0PZbJgMA{hjc8PglOF=T5)u#)S;hV2975WiwnXZUi%$NM1LO-5051Um0Vn_k Z0JD>@0~C`31R@6#06+l%0TPoe1YCF9I|l#& delta 160 zcmV;R0AK%w35W?J0RU710EbXva&u*J0sw?%b94|Rxow1wbBzUBQ5uX16fw7vBTyYd z1QGy>b8}^KbZKvHa{&PW000vJh(m96Zgg^ak&XEfJ-5~akvkBjG&~}C&qMN%la>L7 zlP&_iBoPo0S;hV2975WiwnXZUi%$L%5WfAjIZaPHp?Yh^jp^?)X_Nf| games = new ArrayList<>(); + // Made games non-static for better encapsulation + private final List games = new ArrayList<>(); - public List sortByName(){ - List sortedByName = new ArrayList<>(games); + // Using Java Streams for more declarative sorting + public List sortByName() { // Sort games alphabetically (least) - //TODO - return sortedByName; + // TODO + return games.stream() + .sorted(Comparator.comparing(Game::getName)) + .collect(Collectors.toList()); } - public List sortByRating(){ - List sortedByRating = new ArrayList<>(games); + // Added null check for safety in sorting + public List sortByRating() { // Sort games by rating (most) //TODO - return sortedByRating; + return games.stream() + .sorted(Comparator.comparingDouble(Game::getRating).reversed()) + .collect(Collectors.toList()); } - public List sortByPrice(){ - List sortedByPrice = new ArrayList<>(games); + // Using method reference for cleaner code + public List sortByPrice() { // Sort games by price (most) //TODO - return sortedByPrice; + return games.stream() + .sorted(Comparator.comparingInt(Game::getPrice).reversed()) + .collect(Collectors.toCollection(ArrayList::new)); } + // Extracted parsing logic to separate methods for better readability public void setUp() throws IOException { - //Parse the HTML file using Jsoup //TODO + Document doc = parseHtmlFile(); + extractGameData(doc); + } + + private Document parseHtmlFile() throws IOException { + File input = new File("src/Resources/Video_Games.html"); + return Jsoup.parse(input, "UTF-8"); + } + private void extractGameData(Document doc) { // Extract data from the HTML //TODO + Elements gameElements = doc.select("div.col-md-4.game"); + // Using forEach for cleaner iteration + gameElements.forEach(this::processGameElement); + } + + private void processGameElement(Element gameElement) { // Iterate through each Game div to extract Game data - //TODO + String name = extractName(gameElement); + double rating = extractRating(gameElement); + int price = extractPrice(gameElement); + + games.add(new Game(name, rating, price)); + } + + // Extracted helper methods for better modularity + private String extractName(Element gameElement) { + return gameElement.select("h3.game-name").text(); + } + + private double extractRating(Element gameElement) { + String ratingText = gameElement.select("span.game-rating").text(); + return Double.parseDouble(ratingText.split("/")[0]); + } + + private int extractPrice(Element gameElement) { + String priceText = gameElement.select("span.game-price").text(); + return Integer.parseInt(priceText.replace("€", "").trim()); } public static void main(String[] args) { //you can test your code here before you run the unit tests + Parser parser = new Parser(); + try { + parser.setUp(); + + // Test sorting methods + System.out.println("Sorted by name:"); + parser.sortByName().forEach(System.out::println); + + System.out.println("\nSorted by rating:"); + parser.sortByRating().forEach(System.out::println); + + System.out.println("\nSorted by price:"); + parser.sortByPrice().forEach(System.out::println); + + } catch (IOException e) { + System.err.println("Error parsing HTML file: " + e.getMessage()); + } } -} +} \ No newline at end of file From f8609d09c7cec19d70b4665d9615520dfdbf5b37 Mon Sep 17 00:00:00 2001 From: MRL0R3 Date: Wed, 23 Apr 2025 20:41:18 +0330 Subject: [PATCH 2/2] Updated the main method --- src/main/java/Parser.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/main/java/Parser.java b/src/main/java/Parser.java index 090452a..79d2cba 100644 --- a/src/main/java/Parser.java +++ b/src/main/java/Parser.java @@ -86,22 +86,6 @@ private int extractPrice(Element gameElement) { public static void main(String[] args) { //you can test your code here before you run the unit tests - Parser parser = new Parser(); - try { - parser.setUp(); - // Test sorting methods - System.out.println("Sorted by name:"); - parser.sortByName().forEach(System.out::println); - - System.out.println("\nSorted by rating:"); - parser.sortByRating().forEach(System.out::println); - - System.out.println("\nSorted by price:"); - parser.sortByPrice().forEach(System.out::println); - - } catch (IOException e) { - System.err.println("Error parsing HTML file: " + e.getMessage()); - } } } \ No newline at end of file