From 9f1a768a9e2e216bf71bac6ebf5cc41dfbd72805 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Fri, 23 Feb 2024 16:34:50 +0800 Subject: [PATCH 001/189] Update README.md Add codecov badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 13f5c77403f..161fe60ea5a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![codecov badge](https://codecov.io/gh/nus-cs2103-AY2324S2/tp/graph/badge.svg?token=PBBJNYE8U5)](https://codecov.io/gh/nus-cs2103-AY2324S2/tp) + ![Ui](docs/images/Ui.png) * This is **a sample project for Software Engineering (SE) students**.
From 588eaab92d71473568ca6d4101ee3c3f597e5ce6 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 14:38:03 +0800 Subject: [PATCH 002/189] Update AboutUs.md Change project member names --- docs/AboutUs.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..dd0cd2bd43a 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -9,7 +9,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` ## Project team -### John Doe +### Tee Chu Jie @@ -19,7 +19,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Project Advisor -### Jane Doe +### Carsten Joe @@ -29,7 +29,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Team Lead * Responsibilities: UI -### Johnny Doe +### Tarin @@ -38,7 +38,7 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` * Role: Developer * Responsibilities: Data -### Jean Doe +### Lee Xin Yuan From 88b201c384215cb64c537b9054ee6538f29be751 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 15:02:39 +0800 Subject: [PATCH 003/189] AboutUs.md: Update Xin Yuan's info --- docs/AboutUs.md | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index dd0cd2bd43a..01eebd81838 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -5,7 +5,7 @@ title: About Us We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg). -You can reach us at the email `seer[at]comp.nus.edu.sg` +You can reach us at the email `chujie[at]comp.nus.edu.sg` ## Project team @@ -46,14 +46,4 @@ You can reach us at the email `seer[at]comp.nus.edu.sg` [[portfolio](team/johndoe.md)] * Role: Developer -* Responsibilities: Dev Ops + Threading - -### James Doe - - - -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] - -* Role: Developer -* Responsibilities: UI +* Responsibilities: Dev Ops From 3d40151fde0eb3b09530f20311019f45f2149608 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 15:05:00 +0800 Subject: [PATCH 004/189] AboutUs.md: Update XY's github and portfolio --- docs/AboutUs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 01eebd81838..a50102b454e 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -42,8 +42,8 @@ You can reach us at the email `chujie[at]comp.nus.edu.sg` -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/agreatdayy)] +[[portfolio](team/xinyuan.md)] * Role: Developer * Responsibilities: Dev Ops From 6b52012a39b39e20f52548f887552c4b2ba728af Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Wed, 6 Mar 2024 15:41:45 +0800 Subject: [PATCH 005/189] AboutUs.md Update Tarin's info --- docs/AboutUs.md | 20 +++++++++----------- docs/images/TarinPairorProfile.png | Bin 0 -> 89879 bytes 2 files changed, 9 insertions(+), 11 deletions(-) create mode 100644 docs/images/TarinPairorProfile.png diff --git a/docs/AboutUs.md b/docs/AboutUs.md index a50102b454e..552f5940f02 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -17,7 +17,7 @@ You can reach us at the email `chujie[at]comp.nus.edu.sg` [[github](https://github.com/johndoe)] [[portfolio](team/johndoe.md)] -* Role: Project Advisor +- Role: Project Advisor ### Carsten Joe @@ -26,17 +26,15 @@ You can reach us at the email `chujie[at]comp.nus.edu.sg` [[github](http://github.com/johndoe)] [[portfolio](team/johndoe.md)] -* Role: Team Lead -* Responsibilities: UI +- Role: Team Lead +- Responsibilities: UI -### Tarin +### Pairor Tarin - - -[[github](http://github.com/johndoe)] [[portfolio](team/johndoe.md)] + -* Role: Developer -* Responsibilities: Data +[[github](http://github.com/TarinPairor)] +[[portfolio](team/johndoe.md)] ### Lee Xin Yuan @@ -45,5 +43,5 @@ You can reach us at the email `chujie[at]comp.nus.edu.sg` [[github](http://github.com/agreatdayy)] [[portfolio](team/xinyuan.md)] -* Role: Developer -* Responsibilities: Dev Ops +- Role: Developer +- Responsibilities: Dev Ops diff --git a/docs/images/TarinPairorProfile.png b/docs/images/TarinPairorProfile.png new file mode 100644 index 0000000000000000000000000000000000000000..b7dff09fcb055d8644b540e4f3e545e39eae21dd GIT binary patch literal 89879 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 literal 0 HcmV?d00001 From 49f14c8c7532937ece212c3b9207654c43d55e66 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Wed, 6 Mar 2024 15:42:31 +0800 Subject: [PATCH 006/189] Add xinyuan.md --- docs/team/xinyuan.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/team/xinyuan.md diff --git a/docs/team/xinyuan.md b/docs/team/xinyuan.md new file mode 100644 index 00000000000..25a9c7966ef --- /dev/null +++ b/docs/team/xinyuan.md @@ -0,0 +1,38 @@ +--- +layout: page +title: John Doe's Project Portfolio Page +--- + +### Project: AddressBook Level 3 + +AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +Given below are my contributions to the project. + +* **New Feature**: + * + +* **Code contributed**: [RepoSense link]() + +* **Project management**: + * + +* **Enhancements to existing features**: + * + +* **Documentation**: + * User Guide: + * Added documentation for the features `delete` and `find` [\#72]() + * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() + * Developer Guide: + * Added implementation details of the `delete` feature. + +* **Community**: + * PRs reviewed (with non-trivial review comments): + * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) + * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) + +* **Tools**: + * + +* _{you can add/remove categories in the list above}_ From 07e1e135526ef913ebee04a08addc5a191d9538f Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Wed, 6 Mar 2024 22:12:22 +0800 Subject: [PATCH 007/189] AboutUs.md: Update XY's photo --- docs/AboutUs.md | 2 +- docs/images/xinyuan.png | Bin 0 -> 654974 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/xinyuan.png diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 552f5940f02..52918068aaf 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -38,7 +38,7 @@ You can reach us at the email `chujie[at]comp.nus.edu.sg` ### Lee Xin Yuan - + [[github](http://github.com/agreatdayy)] [[portfolio](team/xinyuan.md)] diff --git a/docs/images/xinyuan.png b/docs/images/xinyuan.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5f5b8abff48279756d145eefa284e062fb2050 GIT binary patch literal 654974 zcmV)9K*hg_P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGfHUIz%HUYl~*m?i}|D{PpK~#8Nl>G;@ zZb_CN=I!IXyS99FceR=B@fdIbf*=AxGJ+x%Qi!BL{hj)eQb04BnKsqcRo5Qxo!)1y zFYh_kGZ6^nxq0{g_D-{M`LuiP|Mvg-Kkui6+uPge;^JaDJ3FiUwY9ZrV`HPPD=RD0 z;^N|TeSJM$U0v0C@#f}cy1rkKy?#G_KQ}iw&CkzQTwPtAzWVB`>GRJ&pYHDNDvi3{ zy?ZykdGji{@291urD=VAy{_{q(sgBJX*xeYPx_1L^769ko0~6i>s~!)CwJ4r!a}7} z=2Gsb>8{}2+}x~Z?iW+&-Th6$Q+4Eee}7-?1C#PZ_jA)i=SkFdcmVs;r_T#N@87>K z*u}$xlj-2#pxUcEb?!acsoz^$Ths3DPQj9j9xWxBw-d0_sesON@zUowly5QgS{Gw?Km+Dd9z(wKX zE|gHld@zvw;>yZ$(PLpD^ju6_xKG-tp2@Sg>UXZemGtt%`RU1d;Jysp$J6D-RqDK* z?rxR4G%YQzCC@^^JioMDc?JyNyf{PitHR0c^-W!+T}@hT5!EOC)os&Xn=5bXzPY{1 zySW(+=c}!^ch{9hd*Ob0d8zVUUN%hz?FIRy^M1$yctmxg1=@SRFuzi;$t!xcxY%t{ zW-b-vTV7f%nkjqG>-6}b+mW*UURz%Y_cnh^cNf{vuIuZ|>3*)u5v5h%_U6uq-vdT8 z9&zxntMt<1(cRtMlDGBch2UZ}?cA8==N7|XXVb;$b@HrDJ3D)o_UV&n)0bai z`eb+d_~VbKjkU(}dT8&eOzpZ~3r)jI%lIk$72;3#;$8UWE;vYebI~8yhx^mT>sQn9 z?|(NP{q~#b@Y`>vi~XbNcwu*QW7^yZUxcskug|8%&|q;XGz+g>Uf)iqXV=rg z@x^p_ayebx1oy#Jn0MOP+6! zrf(yYbGJ9sr!SsPKl8qdqbXrf{bm&6({?&Ki zP2YX{+i5w7effNEdJ?^~wZ1XkMV~H5$Nb^l@$~B8bUM74roa2$chk4|z5D#*=_g

jY3s?$Y3t?7Y4yp|X=!g~T6_L5U@!)ogyn-Kk-XJW~5Xgb;> zTqeKz{_uz2myUe(>Q&+7>hipzrz==bID*4|(NW+WK8C#7HHD^ddlwxd zE%^qo`h?bJ(QT>o^!%pYvDL}}%XQ?o^;6?$F?cIn2UlS9P81gAn>WErAJez4epg#U zCux;iw8#}62Vc|C%Zn?OZgXvO+FakBHdgS!YRX-#HWp8YE~kO-?D8yn;=0?q5|}RA zS6KMvU;O#kfUE{2K{0H?KyESS41h*HTm0~^(ge*uC3CY>n zX)%O`41{cLZ&tpAFp1xcwlw0>QrD+p%DB30roiwTe4F~Oqx_{&|H;Wo-RHlgYG&0I z&%mlqSNTW#IWEdRjnzUq?3Z}8v7xlq;}qo4GiC0W5O?d4@F;oBHn&SCS@a@D7d^Yb{4 zv-;r0y*T(;+98adKc**mDaHZIfcZ8wa}UP@zlEcj67|e)`OZ#HKIC^@S`L3Fz4C?Y z5AZ~;@>|>G6$_7PzcBb&{mQBOQqO>M)FJwf_wd*5_EvtwM-wueUd_m^At*g0m z_7-ywN9yYOqm-`NArnR$^1AM&x$|R$yn9UR!b7y{Xp6kc^m`>TFU@9TX>V_DT3>4; zz8SdDK%Hb}3fRj@w;qRKb7N~-3#?d^tSqF=%kz`z>g2c_nA3M}ro%scKka|_hw19@ zC=Si-^de=fB>zhAzLHMETpX{t82qI;OzJCHi9xyvZgg7am(tb+JhVEkZ*1mw_&(3i z&*MZL>=!*at?TP+fkj8FjdHTbh@n9ohsf;N*<}=SI+f8Ytl#!#+8L*EC48&yg*Z@` z*XhK1n?^6aHdK(&T#F5+DUQW4qgG^3wFc0Gk-%d~CEG?uxiBr4w%|1# zs{J_Ycek9ao9O~?M)%Aug9-GHE}wAv`b_h3Wm!aW~;l?SPx1&#L_?OWKB~^OIkUm+Tef z!=J~;Z8JrA$)kLt-<&Kujoca(=rY0GZNDv?cbVRS55wS_flq=C))C}2a6u1jren7n zK7W}G#NOWS^yJBtvZ-t{{FIGJJdOUP^DZtTQ!_lFGdzG#8&%!yoplsuFi3Zn4k9@l z&*Vq{)_=_po>jY(SDEVZywZo`$9r@cdeLveb=dmHbi^y#17}M~PhT&_7b`_mY}y1- zhag}6%fHYdaN!lUcQrhvyoJB|tH1qvx=&;CHy;MPP4|-EQ8Le;y_i1!=;LWE4jcqR z27m+w;eomP#p(sz1ep}Fk+M{pr(ZF%mmb zA_pm#;PLWXm{wQgZAU?0r=2G!XKBMyjbMnLsd*`g+1T8g_I95Xb3yh+lrZm_Vku&W zQH)%j#sFXljQ1>xaWzH&AmWF7?$)xRs;Xaa@r7F;~@d=O8|_}L~uDeYa215n<8h~h?`y-C+xgvua|unxCsU0 zHwBi3h45SOHy0y(8-9gG@%Z%ZbQObnah0BClw!~v`o{5zVYv>hOEFmPIT)pID4Rq^ zM1-@m;P@mR61~lZ7?=|Jw41}@!-oHDTUVZ;2 z4#P<)ARRCx+Upx}vbKy=v}5U=24pp8P| z^HnmP_T4QTwFKY%w6?lD?d@z#FQ4pA+i|2gMK2@MTY=T6-%8rZ(F4b#vZGsWQ}%86 z<0`u1DhP>sk38Umn`vVq@SW~Y>sP1K^yc++@DG1K9sc^CrupN8X*Xr;rM@S-QHrZ~ zX={AS1+c^k=9GjlZllxia++9mQ?zrT)lT?#FZc)-CU5jd%G-bQ{d9GHH0^FKO&`B} z8u{J`4z7yN7oyYdB1ShU=r%g;DtJ1&JfGgh2)#Lua*uPl5@&29PWfiyV(1cdOzTGD z!()rl2aBQgeCU21`8`hO?ke!jCEf03bZ6uQEe>ORi$8)3GWYDs^XSWV5O3nJU&i^o zi&5WR-=4NN@I@+Fei^()rV^*Q)#%a~@#yD;&~YFI9X-JeZMtI=(1NxYc4<47CDyd%SjbCIP8bm@}1R;|(Tvj~J5MkTXhcdB}2 z`F>iDURw(tS8qehi{t4gPHYfezc-U-Ep1#0E|#KaH-eva&(s&VuP@FbUuQKkb9{PO za#yk(q~cMt1g`YVZFr_fF*{1DQ^^S$hW#Oi?*R#DIx~8bBSKE+!y5r3av2Byq6ZVS z@H(9cSF*Vl-6*ashThScYb)sl=a0>ti)?cMSEAFs(`ke&avfDz_Vp_EKz-mEGN|mk zzyTIB4x6Ft`ub))*P#Pvje6$FHm=bPks)?bCnfAvy5u@(Z>~c#qv}c9R8lU}0bk*> z$nuJgPxK)9V>MPIIP~Cr@N*voTtt`Ngctb{XQ$!ux9=j?bj@1IiM*%0<74{LOx4D; zc$2cDAD8k@iP*t!<;|sXqp)%8$AY&l<@~U6D7lhR>hBjQ_D0{I1sEk#gcyr3@WGoxro$wbRg( z&4}FL5BfXy4WAYl(q+Lb9j9Zb6Txp$=62e)vALUa??a2Nv^_M4y)pBUN}>a!3)2Q2 z&GHEff6%IHzYc6dZ#v_ZT}l(xL* zq!)S50%sQt&6E#Qj>=Ov7mwK_u3N%PSfdOn9}eTd=hoI{<&zFv6flLy@h14)ur%98dv#%(^v9_|L8P;eX=_u4SpQ$45P`tfscauNssRvBrNbnfBVXqY_R^Xd_6 zzq`yR1O^)J0$CVO)ZTM$4U5S@Nf5$M|&DR&N=u! z$6MmSExZ|puDmmvNL#p*Hb(0D^0r2e@#*MwQnq7sVbq0>R^wa>172m2Wog8Q;ii<3 zcj$yi@d=zQhW4%_7QSZFuR3%b8Y6*>VfAvgG0$`+8@EkkoMj|f`_98FWvx==<-cZ~x&RrdR*;>*?g(yJ^Z}7mk!HMb+ z)%);sp2nnw2XY@eUq=t3m5fCvIx6&Ry0yM-{zO(ZZMkp9>MEpc{Vldk_LbbWu4%b> zcsJy^-=|{Ds4&ur>V;4FM}Q-8HDqhZ0s6v|h|f8J?!oQ%c&AOC3F=TjnRV|ynP+iGZ<`X>*V$Nhkr+{icJ8f^v_okBlI@4a%pgLgrB zD`gW}7tE!+E(dK}Pc24<>RIKlY^4VWtejNkf@LKgyV8B^yXoPyl|NvK279@%OdsEt z4Sc`9UpCfA;Mv(pkFuxEP_^tny{Z14nGaI3A7yVTktu6+8!WjGTpZo?$b(UKj<(&QKYZ;55d?@*2?Z{$r}t|(Rsmy(GUTj+5gLLt zP~_nn@!&x0>}WJsV*d^}Klgtjd)K9V*Nen6#$PO+$;<)q`ka zi^{o54@TMQQT}L)XQR$hFPwsT2u{&mSrqQ5JHfNYk@o>7>BY37(k+!jX+^dYW{0CO zl7@fOr*6N|oRQ)T$g>&)+)k{u5NlN*<%$j$=Z%|IwiG9)yM+XQ5CXp|P3eA4sZpF( zR$?ia@I+0CrGB{Z9IV|7ZpAwA1%9w9OS)2&GsmT9I-`qwqvV8p;NP>02y)@SMw7wR z?ctk@-;KMD-M+4mTomsI&hZ>v=iz_!QpZr50>d`wInpY&uCua*p|Jg~QQF{r7y!?; zXVBZ|`skb~6D%A6>4Z@~9^DMhya$)G@_@x}b-6D&PaZGy(~lpwQ_jt#g%@v#iG~{Yv=4_{n^9&r;x84W8!WEL|P!Pgif>O@H|R z{loOlfBw(Y@prGL#gx05wmnIEo<^qUmvpScD=DKKuhdba5MeMQ9P?=}r(+?!c%L*z zjbrwzmwy_(efR2pt%+hho<7-|UZewUbtYpchuYutvIuJfg#hbn0q%M=E@G}}OEUvUue;VC+VM)VUbl9_0 z9X?1}&f&@NNi22n6ZsH1i5n|%98!-_otyCTb!Z|TN6C!C^K{CW1OH+i(!0y^>HO$$ zx)07bBL~}?8`JjE{Re&2|18Xt0V5^K4_^GoQzSYGL@x_(PsSRUQmW~k6|6ryM`yUNf`xm?uEu(uS0)4@Ic;OOXd^h5mslq zc44NMt9|$F2r9=wi)X=R^0bcO&;+CPypjjEI+Sc~;dixdu)&G>2(`8CY?;|HI;i}J z_#LLNU%&o-w)E>H^4Yp91qQM%-^_(;;r_ncNN#ja;KJxT=Wlb%a<F$ z-o7}G?-Sk8c!D!{4-W1k>%patFS}Zu0PTvtDBBR;cfU$bgDWt&;$e8unTHcGiV4_- zj|zc}P93~b@{&5i06*ZHkM6@!3;)M|`ai$c+usNRDHg;>7>Rh*2;NRv6V)`Ff)N%1 zQ$+n%`5-O_$J#d$03!-T)TG07n0VRrRFv}876;DsGXo?|m#2Y>C9sT$q1IZ^9!1Y! zaMINC$tR!GT06hBq4V{61+Zy2C((NZ)IRmPNvHY*aPLRj8N;mn$MoUk zpbZ$%U0P9x%=1BGQHAoha(YnE(%=VWv;hIfgG`CwzQ2vq%~g8&O4+CP>3-CqZaQLn zt9!@llYj85yy!mk#09?0GmdV{Gcc)g1{97S;(Yp5mKYd#o=aWT7PLv7I*K8GwZX`3 zjfm!tqp2Qs&RyS5tEpod9@4vC2s}$sc(;cK)9H7wr*Hr6@22nn{_m&5Km1`@ixPYm z8GaJSX)BJ9jVE{WvyLeo2TrkIsULY3+#%&$_y#+1MlM5p(@OhsG{1X&ko5D@b~?T` ziR_q4pUDP(f~V@h1fTi}@MT@dIQ2 z%ye#a;L>W&_-**^I{bVdy_3SG^|WCx?Xo0d6;cBG&H2eRA7^VPI&L@mb7Q4DMA|A0 zUKN`!A+iHn{&5JG<#}kEcXzp>FiMyrV<5F#86ka5IbP}@=mjR7wk&RLO`DO;HF{Jh zBhIR+FiVpd_ZnqN>Tt3w9o3PC0k3KU=Rc1{b%{T;2Oa7@qC{U-+a5WBcwT6Do0rFP z5sv5)_!@HRJsGc=py)vS!uXFgqr9pMW^x^H2>59{8)XWk9pt3!MC#`ZfkFE5UVWl8 zlYFjy$4z{8pB_*{~t2>U*qfTx)IVtjrN~2*6ZjC6DrSX7IP? z%299Gu0lifOn9_(SNOmvq75G1X-u0UL-L(pTIYW}9Yk*5y?>n!+}p(c;uG(imcdKx zb81y^Enm~F8bpW=z_IL;^rqfzq+;)Nl6zFJH(<)6EceRe3~HlJXXCwL+6wD&O(4%NRb!U$~yVS?$&?z0bZ#$gw=1E*& z```Z4|M7Jj^c0?YYZ@=qulhU_tFa=)57wrQzOB{czJH5 z@Uzc8D`ydGh%*F-5Q0m)wAH;eNW)1~rh8F7>pA2dZGJmj5IpJv%T|~IBWSbo2|*DE z1Bcg!fN7JdFwZ{_3 z8xD)`A-~>KF(l?|h0k&75hk66;3GY;Dlfe$)07stYp*FSOpkH(j*Nh=q^DH98g10f zFkr7uxvO<)+Bv3$dpB=SHTH-w*weXTU z*_{p!+~I6SO!{H8F~36|o;T&)+C??J&*G~IrqpVExBG>z5UbyuCeG_lIXCptTn z+K@R>88s@txm|D!K0;@T{_*dM;mM*^!6SXQjb6FA4V-aKyc6+2;VtQhoKTvSC&!N= z07EM7=YiFlnG2hMl6EzY&r04c$QM}V^z8A{ci&C>zx(aKall`;vo9XEj z%V?ez?v{!^O(&z8@P!9m!E2V|`@qXHloNTTHuBH4=)iqKVT#=b- zckaoG-N*97&+c~g8T>>KU*-K(-jg4r>qhmgpXLM}yni1D@4TkJw{0@n3XNl2HcUgK zLYyb*?aaK5?9Hcan_iwqU)ou|#<&I(i?I)@>EJy{{yiIw0ykd7Un7+BmG%z49pV1r z_938Y;TT7zm6bP_{I?iF)J#DB(%(&a;RoqbF5WS^V{|qus78dZVxun3Ps`vn9qGRq zZ%Q|LJm*Lcy==N}B~EnlUt)nXgITOH0z=>bP;cOo){p%je?QJU%0%Ph^W2vXnaR^A z(|fW@zvF+QXHQyZ58O&S%KQMstX@}j3>bQ}sbz9(YIOhD5iHqHgbVe$4*RTZ>BM1c zh7K9^j^IvR-VHcJWe%I_Droy-JXBjE=c7F%UzMI~@eN%ZlzcL$s>$k!09xz7#qzh$(NAIuG z;b^)ATh*!Bv?L_*KO8}28nHVIkFjO+nL(7L#U2D%j||#_u(fWz_C{il(tEd*PF&$S z4q(798?94kv``;N2hcly&_z0vtxpJw<%NtXLpYB zytk?2qn9t^puMbhE_V6wj9nq6J!6J9iZMpXZwRvPhA|ERRW4#}N3lPD_B=@4D@00b zN(Vw}ZBgK?#j3OCr5Iye-@kjG_^w755L|mOCnt`xD01#7ch8M#J$4X8$fVp|r7fqi zMm5{%YGu>Aktj7~Fz%d6=^5MAI8;Tns>`@Igcsd zJ8kNGL$O!Z3VBoTt8+L?*6mfg{9Fr;DqZq3%7l6tc(}FROMXN2-~($5= z_%5=!x%qs0@iHC2r_X9?**dxcG=!~1^r^RK61>r!M~BCy3yr|pAY(KyTu$=hU`^9{ z{xdafx_Bu%75yI!OB}tFStEkM4|pBz(;XCpc#)No^K{-*M|Y^wp*%gVDPLu7$ANni zy6#nnJDuJ8%fOdp=JO8C7k?a5U!Hqs5x-r`WRG@H%DM&eDX&PO++35RWa}pUeiV9}vWEAo=)%Hz zV6|y)H85HvU-T1a_00a8$?I6Y(6P!*gm)2cRH_}14C)N(; zdA9p%TKM1p)BpZ8W|z=QO2EA}7fW%TFo_0zKu!p12$T~e=%s4dU|hyv7!S;a5jh|j zQ62`ydOo9bjE=NM@gSAqanD;;rZ|M7qIsk+jx{!>R~TC(RAWjQ4C)83IGi|TQhLge z#`7`ChdGT#Dr0YFx1Px(5DaO@DBuS;5(PNHNXk_IlQ^T0Ure3)wOJdS1*q+uKk3v_ zPGH`d2L9tfnGw+8xWOZ#u(3p4?uQW$DJxG2L!vNX9dHO>k=}3bz^N?8MLH2Dg$0Vv zAD)GI@B?9xr-t6cSf1C;;Q671I7eN#o>jpbJdV*3pb>~`3I_w0bLY&&RzOCUI9ZGU z7_?T|$1#nelgUUF|AcqEw5CUomW+F`D0*{KY5w`dYJ z4|D|&B;h~PNoc}=nf|%Sb35`mr{}556w`im+eaV&xH_xLDVHgJ*x)b$m+O9N-#Ya@8@!Js#NTkC#Omt`4aYRSrp zKwifF9=-CnVmEKfH1)m_J-PQ}I}U3)xjS2h!#W~ovNM{K3I8|keI>8;O6cG6&M9SN z!UK8ln4Oit-Kd4LK2qjU#_>?VfH9^s`c0AB?CR_!&4= zhe#%evnPPZ@6ov$?{wye?ebeB%it8{6O>OA9Ha%Z!ej^}0QN*+0VCnrZW zI@e3vFcb&Rh-}xxesr6=o>B#F z%3MvE2BqRm_DL+8o8V=Ez z2Xosr!db%HoVc-u&sAQLg9kC5V-_1P9Q5gYC)aPk{k9Y-Z`-vT!_+y1bs(5m?mCbS zUgecy4kIAWb{K;(#T@d3S=w?!Q$85PVy;JJ+m*-Y8jS(3GWK?R!wXm*pGCzm$VbrB zUC%?{$HFOqZ$xzsc!scw%0Oevl@M?uI&@hhe^@8K7$YO5?P%+DbpAL3^DXqI{5Xr! zp?&v$8eXtV+X^Rq6=SB;p|1P8?iHhJPX~`_##T)7x{fFt!ScM`-S;S1kG%D}DmPbU zb-I3rj%Y=>r~^ECTlb8>hrChzuFz@(*?l>81TU``cz6{U8+A}#+S*D1?wVJ$Lr_*n z3bkqAx*o?3o(GNPu^~ZQJ(sTYM*+-6$JFh&Xlj=u07kNhhg%8TAsW8i4lhM14BivR zeaTmxZNGKG@Lr7srb9INOuFIt1yw~S5xk;aI1t+b?zKU+jw`tJTR9!j>cNP1uQa$1 ztk>b4GRF8RWz`W1d8Z5xleK)D4{PR3q12kNl)Dx@tfsEp=%H&f4yQ+TR^Xf8{U(m! zKThxe@J$^nvbz>tu$7KqIYv#FKvJ_Fi@_PzHx&uSnoTG;dnyX9Yf36@cRii)sl!># zmb`raqwtPt*t9u{)sFw8gZ<>!@r?tUa>)y))<~k+2sm`am;+w$kAC!{Vq6s>JVINz=!&U1J%}Pm z2SMI>4ndxM@x>QKNKTn&42V3VO!t@vqYxxf8G6&s1^nilZ|Xp2aPFt~|1?f1FMBUc z2GQk-pI?+hH~M6r9?jprc~eut?kyxfi8IO5w$*$%k>FJyN0aby;3!^jdR`7seuL3H zNA&I6{@RE3i{2@#oWkTcbv;HTJ$D^KuPla5Pw8PabUn(pzbc}QaDh4fzDSP-Ebug7 zT8yGsr|8)T(lleVF%kTBuWhb=KN9J_-1pUcWnyjup*+LweefoMiV@FyLPtTBgBZn3 z7)S5Qbw501DvM&M4n~|QL?9R#Hg{ErbNE~d6j%sEI~RdHFu5O&CRhlxkuQ#@cc#I> zHSmQt<-8?L!`seZD@}E^6Mr1uG6Kz!0~gv*1b9xl;MHb4aTYo&2OQ0}cf~*WM*dcy zt<+jE^eDr?h4Q@vzpFNEZ|&4N9>3w-J8LQ7UR#V<4xZWye+=W{o%HYD?$lwP^3&NWM!H6or4N#RN7rr>MC0;b~K*+{+m1vpWs&YNWc z@T8s2)}&MD5C_J?e~K&qDCZ$~pe*Zb$tc2LBhMGp?sT5Q&&nuAF)!^_b)J~>%bX`@ z9o;&`muEMrZ#DH!;mgaD!#IB5PQU-hzn@&ybr#o zX=mFmYcmoHWrWUy2aY2rj#Fjnj7=qGSXP2#j^C=$z_j0aisjG+X=TJ`@S%s!HDqqt zVH|#lAD_I@mv9%{(%JWOW+EIh#p#INO_}TKF%EGAmX{cgxq{2}<~E&t#xXE2km1z3 zY&5~ro|I>&sS&zzhUR+h9p|%_dgL9R8vHyWz7+7z<1kY#KMay8Kkpdlk=L@mh1{Es zv3ponM+R{KmxDK*OyMq0lXZbLvV~4EMn~MIeRqNDIM45b@42M6W19iAPH-GVKaTGZ z1s8NjfARt6+DGq*r4zyfk7sOJxAkm+h-R+x(kJAr^dnhJq?3p7CQq*FkcKVT+H8BN zd{=TNJ=s<-xa4vF81Kp^n+96O2%~hPZXE>Ws7o2co{hZHi6e~w_EE-w*}DkBjGi_jBwF@o`c;H)Qfw4Y_kaS=$GMJkl(F>i(Sy-dwz$lHwf+FA<6kOZ_@$l2!*ZIxQrs&~5DYfrb3B3+(qtAAMX)&&pqjuYosO zH!jvWgmfRdM04%7s~Az>T&IHyWWYzBCGH_SK+FXc~Fv{uu$EkF4L`1;%v#e0l4d+~?}+MV#n`|L#Bh z+pmv~;uS_wS-Yc`1Tcgr^c)>)Tb$0ly|a}{+Tj4CM%xXF!8W3ptjnO>A=)#@sf{NA zhZ3aRpFG_wVo)*|*19ldVG<40P?6$+OrPoD_&H1O)vNEPH*a5;!O`$iR6(Bfkcg=X zB|*gK;FOQRaB@ZW-b;@`H$!Ok`YpYv9KSIEJa|8lUq(0#U^fv$zln2c`dfX320@$X z);2y&OOG-L#P)0y(wcy+Eep3>NYtfX!(Kzt41v`y4vMy_1G9kj{JJ;0fEjZN@HvE5 zc>|~JMemhccuGF^!?|PZQtXFNyilLYiLepME_&{ zC=)K^E5nvF%3-X>8js@pw8wiwNolB;;Z!%L(6#HRiUq@;bP< zxW1guj!&v%&%iCl8D0urr{E**@N^N|a}gfCg9NgcBH&NaWgO>X&{O`FBxlqTpHSidj7)wk~L=Yy9qO*CmYdk@Hh_L?0xIcPA3jJkE<~58*fIgd%dN)y;CRKH}uP> z0~~g<3UnEVR~%n^l9$bc17)}VZkhDHo)^!PQRNIhGNV^9nY zi?{G|Jr7@i&$KPuZTW_2;oigGS)XnK7WmX@4pimP*3nXQR$xQ>n&rrqO&#qA=BNYQ z8#AAwbm~fPHnF^?H_7(QC^!dAO!FG$tIfTUhr4@cVUivrp>%5So(~}+YLoWj?xNl={7?V$f2_?S5JIA2v2myUbQ5dS1(QoxYbHPM%gID$1zLI|nOl(%>n{9xP);fK1Z7Mv)%gQMmm_AaRNDOksX^bIF1&gbI{;!EuH2%ggwQCO!eG| zpx!-tm(z-2W|3SKWaI#!hORb`Ev_0Z!N=sI<=>1#UI*szDkm_;qn{-PPDREo$~8DZ zd$L4$;H7vW_0@g;rQN|=J+3;co`$L5@!zBHLmB&FK<7UW(IT_El&7#+8jhgbuus*Y zZcgBQaK~YFp5WQV`E+u4GF^m6Nc#f&5$F0Q?LH5GA2W7=`yMhPQ}o;Lq674 zXPfpyJ9rn-hm6w;eQhU5AS3u0AG2FEU7xyIU;NM+bR9B1^zP&GO4dscJp6X0TU@1W z9nzi4UeDNr7-Vh?Ku9+R8bt6b3oXFlD(bvGZmWEwy(4-yU>fj@ILdq+#}GV=&>NzA&&+a|&eu(>b;4;Eu~HvcYIe_qs;gnBPC}mHOUI`bO#UTS8u9?l zM0BE0mDOqRuu*y&WiA3scdkd-^i_4(WY2RuZl$Tg0W&Lc)LgYsxD1c+i40Deu`~N+ zM6jccoIQZxEL6CT!mfH+pG3c0a~{cdU=Bal`c*a=z7y&ET0==J6Bmu@2Vc^W+xxq8 zdGef|GKg2FDMWV~y}!GU4|HSW?`1koHtU^E=a=a?<=*ehn>dDfFa5&*{J;JWwONFB z3keY4N^2^wQG+1KB5e&aI!F*OCFkrkP8tWrl!P6}HL@7vVf~#5-83bCNw9nr;UL*z8IEpVP>Dla^D1PgN$VuLHCBe zKYsBty@zIcd4>~K0ybkdOpdul9y+E{HvuZa5A(J&(NhlNJ>FK1I0W$Y@@&S)|FY0Z zJCwr^D9_b{QF}yCq`(O85SEV8hO3Iv%7_Qoc6%}6oSwX__tJIR`Zo&{QTGZ1T^SJP zoe=^~U@4qZI;pETo%2W~81-mj0k`!KRkjji6;euH^GNz3RA4V54Ugy@f!{mrc^n@@ z$T^X2;EA9spQ8dlrXq%;h}hMV7*}}&#;fQPfkrZISO?-I9|x}h2Y6iF}@*u`s%ysb)3NOfBWm{@YNrt`@p*q@9M?& z#`J7wGft%4xWPO8YyaTS)Ti2odj=j)_3y{LAykh)0G7ARDjkdcqI9a0JPXh{j}%JhsEcq57fB3fe6S z9KrFsa0|{^y7Aj};O=o=p>$x%9%9k7nNex$9r*VutXRGC9=bWEv zHo<17`kgiw?Fam9$0Inv^w<$ZtFk3=1l@D2EDa-9bU6Mq>Zjfwz;Y_YMy_;WJFf1# zv)ThmPB<~MQaY4;sWbY|XFXl*&PN9`o}x22oma?yhy!0WRZ9qGzek&_`{U?w?$-Dh z!I!vV)+x_=6f<=OSRLdV2~0UR4&twozFCJPI@OxQ^UKpXck#XAAYO@P3~xDz=jk{F z)~g;7yqJv+o?rK;7#IHifBZLJ6KXwNBY?H0Cy0Ppzaa-AFbk&lnX}_W)5#~tcAT77 z!w{3wA6G#hqhbV0!y#@wAB)p{eZ&;8sb?dC@C0EH-cAHzvj~$w#Bk*q4dFL}*=DU= zaWIF#AR!RL<{r|A!!Q`hbKjU9&p3!FUXu8>R zOavF;!c?Y`2Y%E&7@--Y9Yg8Bq-Vh}6MX4C^Dc=#z&_d>zrO@{2=ZfLR;J%zc2y3z zz%gK{^%s@Cglhqn=_}iNItBx%cvE)4(GK%+wFT5xNZ>WGC>hzWXa5 zct&02c;?SEb@O1;N(t_bK#IyYy(m9?wDK}7ie8Oh4tAH_o2b-*zr9m7{)K1H$&#`t z2G^=Hv0zFWra6W&7_^LftN?~UdB1nokvM({?Ub)PLApR4xRryxy*37)+nhuZ;qQ?a zT$G%9aH&iEWWslf@saxAL0TO}3R`-yIxkT^;IH;X$qc^k?{_|o76>+h1xv-p(v~5y zIW3OleR`|&@DbkN0M1>c^B6h14NR8@`_p+G)z`oNr|I=?e>c7R{Wp1jGHu48dbYVf z?QN{YA&kL^UaMWgi8YdydW(*!-pInd@2nRub+8k)=?rV(lfc?C5x$?bQ+W{o^ zfyr;r3-|aUd>0PR@05_2(3x5yU!24wG)!=hi}9`Wq%SzA-;bVGSsI&sRmS+sy*zm? zWdW1ue8B+JxT{nTp~^{+bcFFt2sr;Na0IKi{4+w^5Ts>kteJ#rPig|6k-dw^({Val z2kGP=hrb+vJr}&K#tB@1x;L%F5uA%1xv@r&F3a=97}cdXBKN^neM=pUQzVB=eX!fk z04%q2Cc-u6X^ha7Jf=P3kV*N6&K>b_y4C@$n}&?IAA0O@`XLkJuxe2q(sakGXNG$E zwC(PgsS>4=M;Q6lKb{RoP#pF`o^c&*d<_49?~mL6A?6vlwTV6&_C;Fd4%;(e8|`*4 zO&w$&{0!Yu__=EPB-W;iq?5lpCGIGqohU|p}GqwHVc1X>GNN9_gYbQ&c?_UU8o z6y86`KAm3n=r}#g?v5$p zatJw!H69yBLNt7lys>~Q!h7&m; zxQ=8n^cn-@o+HvDQWrraVQ%472Z4Z40V4^R5iH)flhBbst;9H&^S9aS^e_mcC#^Pk zS0BmGJpv6PVK8O9dHc4?Iger*ZB{>A_-$&}Icbll&Nz+ZH)DV)lt*aYo1$;0qR)Yn z)_rY$nblhcH)$*g9YQS*0a3rQhTte$9two84F#cxHE8$2S%`uhWj(yZ#Gy#a><&Vi zrmBmf>?vMp3*}`EsCdGYEV)zmOsSO9ITPv#O6O@Ms63-7a95w8i!gOBEe^#@ITVh< zCt$d}Z6nR$5|uUD1}~JV+DG}`4P3kGrM9zXXEH{;`oE2iD1G|A@-7ZWoW@Y4Et( znWlZFA_O#ZQ~~(GH0aaQ`^}qrrA7lNw97brH&IwgTx$bYg5{O)z+&jJm@=kx-Y)hJ zrqlOtr~NpA$C0tyDC6zm?ZwX4^vp&LotcoGcCd4|-MC_>iX0g*w3E?}O{d6Bg}|2o zYnmwO$cf*0!ziDPCxYolpR`)TvvEGyjQW;micQlhwydPh`9JJX^>RP_EpZSziX{tq zDZRG^=tz~2-<2-~)|l3eraA(BbbySBc~WcYWKTrPJW1^TE7mjZ5&KWhxp-pp$y-%h z#u2c!wbpSZ&P7h@OCL!SXe*8pyb&6w58?4|VEu8JpRJMgzm^VXu>MccMvv0W+URke zw5Q>bca{o8C!U9wI0vh7{5SS?r}e#^X?|lZPT=Bnn|K!+vK$_s3t!ilVbX3pqEVvc z*wIbn@Lt2E@DThy=I@sC;3Rnq|Fc+nEctr9@DKH`cO#7UlUMr0Rgh+sH3E7H>Jt10 zhce|I%TC5xcRG^28unGXE~CqFPqqa0a0JQta5hHS1LnstiR0PhG>_klqYg3-wxMs7 zub$GuvwS1%xWa|^M!PQ39(Imy1F_DyGLpFJwl4oM3`Xb3nNEhMMm$Vk6$Kz?;3Q3#qO>xXNs9C;j4F ze=B+Ld6(PmKRq$6+rOptjC^na9cF3~^v0|sq<-}AzLtQbEz)}jer4OWH+ZSm0`Bhz zo>t(aPTqqvvZSY+)vMXKG;{6Z+1=P5V6Sq|e(lvJGw7uoOifpgPFcx62) zm%@AZzNeeIPu}lO=dWK)^WoQx;OZGCFp7TD?%VLvatLMwtJd&ASnyp=4qnsV#H7F( z-p+!zT(Q}&q;bzMrIFzW8!@7v0(X!*Ek*AbHE=$mP8}XL`e&!JsT)eaWhWu>TlCGl ziUDSkgQe_Lg6=b)D-fiv)XhN1*YJWhyr2vt4!Nf5otQdxc;*-$PW-H0)d|A253xSk zh@El`2(>epV+Su%*g@UDIhlE%dVTf9@*5q|yX){%a8Ni&y1PQ`4+Ct%n=r0IlK-=? zI6Hr{1~AR0&Npb{LAk=4+<&hAUwD_Nczm;#=`hSqIqgLW8M3%`RyD7~I?x|1xuWi5-- z>o?z(6X?{H;p^~;${r??b2tElHoMm@gKqAf+Ms=Cf{tkF>K$ET&`Vq1zI_$Czm2oV zY2||*27KS8H`UutthA2Isii0j8W>)UeBMRiIfpvi{3-XAcNrbL;NWV@U;L|Iemw}N zAq=4x8q8DWBr#^g;JaeN%NS^L@EQfNkf^a3z;BG{lWSviO_YByipDo{^OoDtK^g=b z;gJ?x&ii}6|E`X_FcocRyy{OmuD+G3tT7@o>T5(UeAuvoDIt5*#dz7Uvbel7J$v%B z@_RSZVlr*=tab#Yor9RJ7*@1dy_vWl@%PL(-})|<(rOlg#P zu>Zbb6GuB;l_Q;Ur1LybRULxzl=WEf+{2^j-Q&8X-`H4yAB@(jh|1x7^2n$k)gVCeE6l!~*G@K3FO2s|7ChN;s=;3G_ebC?K?=}I{0 zDOW}izksLHm7|g98KEBVDSL#xsvZ`YJa;v$50BDngF2#W3I;f9rO|jJ6GMr@0UDU@ zlMbBnasbt1L{J?=@lXtP6i0%#s#_x*5-Oka!C!FYxhtNeXg!yHID+m)&sP>VsvJD8 zlLM}TH8`%(!wb``Jyi>K9U=!uj}dZcCNt9e?VZC*{pJM9gBRTIZ1vQzpldT_tR~9>`Ni`=K9LC=d8fUb0`+I-)s5i!&Kq4{JDoIhNO*{WeUw5lxByr zE5p(xNM}UM2n52~$xOlH5AC{-{-U=+@ZhrfCa-hfJQHas8J9=9@nw}+WyDd4Zb{05 zfV}jSPUtIPa(h-rutv^33k-QyPHp}5I<`6wPx^q;a+Ey5LUoMNURm1t1DAAoXgJ7^ zV`1pSz4W)&;WcYsFBs_byi>j@bm2ZUY`FgA@c3P-{b!-p2)fBTZI))FD>~(m^UW4r zT;9}iFbA%_$!Fbe?vdhDO&Z>z4Bueu%b8nc*en=bn9G)5wcm z_r;4tKgDv6dpH9Bz}3(LV!>B!gWLWskG!KiSF$btP2`UZi0;R4WsEq=8D+{>JW}=a z=S9_F(9qb>}np8UPU38CU$0x_-lMKH^eS`M3MlrwX zP_zK!u&D;ydNwMZoahlvrZ=q#WczHwl+MVZcduT5H@$oRu5_k#f9#fe+|#`^OPX@Z z?nd`idmOD+@)=wjGMYJo>@z)kQTn!VzVMfS^XFfeki}pepEyw3$VLhe5DMd{+2LkQ z%K61fGM=YELzXdGHy6|GLL8L)i)ndfZra{in|AiLrWYSQonC(Yd|LMr_3iZ1f&?Rp zfW)u}pmInus(|(orN!PO1}|F!_xDY$9+$zIn~U&Vodubc+|Beh-uOKQ8{4$8y*}+d zi=kSL@ZH2SpRT8s^~LG@+Vt<@w6U|A`=jab^j)33b$x$6efRpCX)8*>S!GW2ciz}? z7~l>8j652Ok1@4D#m16aj~GR$cYJ(sGJX5ax53rb^y}aJI(UI#%D@PZbLdXvgg&q5 zlsn}OrxrNBPn*Ag^(yiE5ZLiEc3K|g_nYbe`*(krcI}4|^)}ulPkZkr9>IYjU{0|s z23bnuuR}Y^*?JnV>hVX6r>pbJ=^{q+_A0QMf(g@6t`^;{Sm&1Z_(Yno6`(&FVZNov zhA$}cYt29(0?`U zh>-gv*4+K_baIdm)ZuAhjw0azCJ!eAejEh)WP7*had#buW@$b2xS!6_4x@QXo8h@A z@>E)e@G{E6=!Z2;^QrGNaLfgVcWG07OSWQYhQ^^`T+CLwQC&si&_|)%f zvYRY5nv{57YZ^`6q&*99k^|>*(yfFah)WnKv{6oegr{T5E8gDsb#4wmIFBhbotWG3 z?42@`miuZH53eNUv=rXu-WfGqNZLC7Fu*LPteEuFw>(|VN52GK`tCORu|LCsX9IuQ zP@}7XuSWLDP(E}bbcWwW#~IbT39iyj4{bOMk*SosoKE6NczHi*&h8=;sqgS29noZ% z4c%A(vL4HOD-39;d6R%eT`2t9L@L@S}vy#81 z$kp79-JOf!tJUcuP5VP=|NZ_^Xt)$z|8jcq^3&~^Cw!{zEOyT{B3*463YljQ>1`chot#>n zpE}A>2w&Y4oyB%E8Qkg!b13q+ywV-Oh;MX|4!J{~k78>NqRaZ*w|3WC`T{|W_I&Wc zX|qJ8K7&RdhmVy3r;ZO%rq88q#{sSb<6~>Vq@&C1bA0@EAFyVTQ_v2M*bZJh4SyWl zooYD7y*S>p(Kpt6QA;pgV$Ji>aH0aWs#YbMIQ%q z&3oaY?dZ7YdoQNV=)U_9-{@bIz!Y~T_CEQqQqpalwafX~&iE^}b63)&U6%mpz~U7?2o z7J4U6-Obr_es!3Km(%O_-=zbzUw+o%>3-s2^iu3$(%j9(ubPXESmg9sFPkd|a3S)v z5Lpkuvf<>vK3j>2f)_Md4vg#+d@cOqPrv$FuZ1^%6Xs_iM{htdS}?p=BLI)nd0tG1 z$g@0pTVoW#^oaw7^-9gvmzNxX7-gdsb{#t-Q2nC7TOVok;5WkH>Jm6uMlI_Q%KWaK z!(l{IR`tQ>)TzfR4H&DOT+P?}9F_D&ma2D={N4q-Nk>RqIaa-xi%|*urjgYPK10^L ze(6H<5~iyl+A}axu%jpBU5`e#;3*G&;8FT9vZG9)9T_87QOLm;16sq>)uW_PyQiXV z({b`@-+-xl4{4A0!oVSA?<&1Ga0!-D2yyfWT?Djq$TedP9_3a$;RY`Atm)j}SFRC@ zya#hAQm_(S^-vb3M62kElw9z^$xMDP=E8`AGL#JtJsWf^C6PMM~f@75Tm_NM(!)n-uvvmK-b($3YM6m!rhFsk?EeogL^4B0k@CVs@a; z?Mo+R=h?I!Be9t@t0~jSA=_0ZIc0*0Lsw+aQy0dj+`xcsK)K&_sJ4Vpy=;DgXZg@g zicVZ5{aPrL72`KvPXEDDT%%x%Y69)WHX7=;gE_H2alrmtS6gde0aH5P`*JGB=C z1$(zsa98Ua(+&Y&p$YvX_BuPpnqg*;v=i|ZdL>P9u|fC{2)^TnKyVc^hEL9qo^IifLB{a>@xfLJ8@d5o%0_6U!PHLQ zfA{9y^!nASY5(2(T7>C%7l?$sm85ZaBjGfP0w?Om6sOhONWH1sIsyU&F(o+BO#0i)c4{F_kPf`w>D{R7_3NJYg)r^+%m=LNBi4CtsD2!^ z!GYpDV^W7j69~9*9mDtPv#!!wNndP{UX)&_>9M521g5*KyL4E$(X#%!M=K10(>fR& z?Cv{n!z$gNkLVu0z*CMx@CK%CcRMGWkDQ7Tl~-#dW@QMKFN(K*2Y&>k6=4gbd$4<5 zQ(j^4Is+|bdsZJEU$ADPh0Ybd?Zn3P>UEg~AaSJn)qSt#{T z5sahl19q_0W{xCd@H~T$fdfMCSx?&!e6}LdUc5HSy$=6)Zj>0Vl|d<+dXmOwDVr?D z`qXyrTh=Huj)+l8veF+mH-2g)w5M8Zu;Cn0P~g>2b%^R;GJ=A);tX*H)ma+~5-DWm zqNUMRc(WE(r%C%L-7$r!46)mVufj8Fe}5vfd5u%u@KaL#r3_AY(SH`|p2MF)ltm`+ zp|)xdJ>xl9sCEReM!he!7jK8|MhNEPU@xZ4n=#;9!HIO&k?rf0h33AG3GOGm&+Gg? zpPgIL=6Fg=fn8^$rl~_qqkXae0gJN~+(cm(jJf`o96|Ec&;2i9Cst0qHv*$P3O0!- z>dKz~q8anF%c-;;Cu!9`3q7hlE0x2V^vdep%ZanJmABqKMA{Sju&rr;GTSr>B?G+sNV3(Zg4yjQlys zy7(nkkoOv4%I|JDh82c9rjq*SKY*eOJq^~>A71Yc<$O69w;`G}Oh=a9!~s2y+@$hp zEjn}a$+KxWy76v%EA)*!&d{Y$oVRGHb*@gw&=F%@F?HRpdV*UIqr0m%o45%lyvLqq@>$>U|q#|f;dWR6~K6lf<^Z_$vmGB49R zHEi6yhZv1Cwx%L52%$PZtLaN4e|i>15QC*OJjB*6!mRPhb9<#1%mK1vvKMM1id{ht zvhKzH-Gk)3jS&Jkq99Dg5o9|j5yl#;Pd@o5_~{KR7-rxXBffq6rq=!$4fWjU2?ig| z-x!gx)5!V{&LNm=z|l?)5`2K61-}JhFrnunysA&zr0cZJl&&NF7!mZ$m6CU6qx8~x zCJZJVWr)Jq)oR@a;91VIKE=MjX=xf3P05E*QHqjL zOl!igraVKJ7$5ki!15&YvdGxiYBqwW)i`k4f$rAC8jT|tj9AOlUGQy(+u_0fR6BI@ zjQn-Gj9P}z>@rLG@4x>p2FnP0^JO1O%5WLUXlLvLzS1^n)Hj}0o|$14(HC!x5scgD zh70l$UN{SHpX>GJ_kD0~N9jh|yNQ0m$6cK5`zW~^n@)01VQws^v!$(3b|!6&Qw2LQ zAQWyo9vqvzLmv^9T*wlBHQkG6N2vCc^})*war3{&-PBI(UVHBXODlFcI+0|pd{v5e zvp?lkekt$cgTKN~+sB!mJ(rukP>X+Yxl0V?oWSOWj5SFT?l8(e?W_h{P6LM@F|^d^A1(;)`kT zlaHtMID>bQpE@2U{It3q`H9Y4j?P@lGtS^@WD9UQoGUtKk@s2~nKsrGc4QcS@Fj;v z)TtNg_gAl8RY!kx_C2G2KJa_^luj3p?RSAKr1;Mc`i+*%X`al=oj~; z4+2l=<=~dn>b`g~q4=ltFZpNd$8{ zi#-@(IgI?ucjfwM>u|X6G8;l33_5YXm05MUM$b7q#(mqL*@jMjLUeEAbFQY|H^W!# z`fmK6btBTzExu6Fwu4RWO@Z!V49uR%AK(KQnsGeSVVKz#omOo^vSO3S4ea!>TbI+p zY!eDtyc={QdxhJ=OFMl=_bR5`KDnXm3?>Tor3VWxgEH{b>G9FRFaGqW

TVT*%4q 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%0APU5w@ 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�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 z z>;m}Jgp?B>UtsLSxB(fTj8lxHn&tVGl3JAADzDfnLr^lLXkPuWD1gI-;x7pV;r%jD z2QbQW{D3r+`Ng4Xf8-^X-M}&gH5S#sq^Ex;Ly)>uzrz-FA#25>Xr<4T$NkdB9{k}a z>)a<&>P%wr9GOnwyj~}_qw8cdZ z634R-$&+3f8vPtMDEUj8C*dkA`R2HpU-T_NI5n4>=W5R~jItR2s2_SnJ@@R18xa`u zJ&zUtNji^?qLXI;m+D4i@Kfr^lmE&op731h$vw4y;0aLm$Dpb)QehRo%!d`e($$#2 zj^LH0KL`-k)p1`n(ooL_B_PGyerxkA}0=x!*d z9MdG4-RA%NKl?u@Z$(Uz!jU*@A z*YSNP424Q#QJAPl`>KKq!J;n&HdWkoUY6E`S4(3ZNAUv+m)vJHzGZ*l%Pd>sDGzlvT z+;MZ*_*~^ZRg{6y92ffRidTe%W`Jm)ZwJeOi7ZC*o=C$EM#WsIC*;EC^VzWz!3 z@Bj7xLHmQh_HT)skL`zdAM}51>Bj&hKLD*j>Q8v;3W!6Vz+*Tfw+`>^CM(y_cF@q zBT^=fSCGVc=b8^C7VYw?cI)V`-3KXa@tECHeq!$I zGD4vV>M0jR$Cxc6iVt_{*F`An;))MkZrZ(+D*Ik{B9xyRT!<9tOeU7DEin>J3CC@=o-oM(W#yLW=IZ-KjZS?w<|pYoay;Pf%r^N>jqj7$W{ z3%#KYnnNQWT;Q@LZWqsyO$``mP|i>p0msD2({d^H@}?DqU)80b1gd%`vP>;lW_ zNB6VPbtV}3pPp5Awdd0^X%+6WbQBNDt*@gioV1xI!RT_%;JZBeE&s#~uZGbRxCtNW zqmJ#(JwopH+FyM8L;HAntvP&K9ku2$>w0Am0HF~b1TE1)$V3c5pS6=e zuZGJgESEg%>(?F^q+u*^u8+knW9CtF809O%X<30yuiWK8%Z|nmasC-P%3+Mjc%jYE zfxgVoM52GgWBksyQsayA%xBuCdOU_z24!(Pg?#j1j+kKkkRD?jSotsh^Z(;y2nGtJZA`^gvo4>?m3LO@Dsot(?@X-9zFrHZ>}$8j6ld3KhZ6RaOeT?udG(P zspn3zopY%Ct}JQbpJ`Z8-wAJScx`)D2C~N7-XlL;e(POTc2qwK-@SX=e)#VD_Tl5Z zw%gCBZb}h*y!E3bw1#?_1a_2Wp>in`rHqVY2y#B?O#0zoW8+S|0Cqr$zq{9%;2aUZ zMuS19Ip`BZFl`Nl4?z5GcgKT=MLXhW2xSPq(BdzK;I0fo%vC-fAszC;`M@%OOXe}0 z8Q+W*J}@y4MLRBMcXLyt)V2n{10AV00g^N3G$g%;LKtc;@#@rvJe1<^q+L;A(#tDle|CLoA|R?d6f z$Pf?RxFZ?{qiHz~ckN-8f9g}$*v&I^<{230FhEVPKM0J5pzn8^U>-|>7z{x2=)c+D z!vme&Q#?PLndcvKKMR8)xQvcglP3RX+`!C-+5Z@V1?XsGD*D^<)#Z+`;AjXkrkBG> zpSriV_pR4%G?s3Z{`6weexn8C&hA0`!++<$*M9obpZbRZNdNJ}JKy?od2!Y*wAiG# zUaxEMsy-qwU3Ip&vmyBZ`se?${rPWy+diIMwl(P&bU1$94qUs>rX?yy~FZ6}S8DbFbNB?k9QTJ@ zq9#`;DwK$NI}(CI=tvl8s$ClJGE7ag_+I>m57iI68YV2yAZIJeU;Of_ld{D}w$Leo zS8}`-{^}<`_odNOYM-=9^v$SV4WF^!yYWlSm5nnaLwY#Y)RuTjo2 z4&+ZCVEpphmy4>=hv=-xn13Ekx(k28pqa8F3;8;7+_?+(RtWJIuDTDaZD3LbY6y#G zN|%7;a!0hDksL&}B2$wq-RfNujW^D))-Qf+D105pC|wz1RzK90I^{sZtV^F_<&$4- zz5e|)&Mw8Na9=ZoyF_1j8dPXa=HwIl+!x`*_b~2N(|~}9PvaC0|L_xsUs_7u=r{S% zff^gphYpwPTPZ;0NP7H!UB`1zi~B@Jj{avb^F^>oE7w4{Wn>P2E*-oHJmr_t^{64q z1TKLHA%5m8=5$eoLiPqqv6Fd2^eWtOJ;sLlRq5?5>39|n??0Zj3oWn?4z(zI z{YEoo;eZ@`gh~6AdL&>$0nSs&KtRmnBP+M_Zio zglC257Ep4dj5#mQZ!*`LvOY&DtypS0V<4I?S0GRu@Dg6A@+!vZIeJCkQ105F{iA>K za)w$*eK(>&hX_D=-mb!q{Ir`H! z@M%9(8X)0G14f?5d=olX<)6lm!{@Sj22x(00cuU%q2E00VWbTWN$2uAdg2-oaJou5 z0bv+3F#vtux9>zJtopM0g94CU&hT+oj`4P=YiJS;h}Vh7Iui@);5O3s(+@9%ci+92zBPVL_#el)GlNhL!-AZFt!_X zy9IFr)yBuRrRJJ`X6v(Z-p^7{H`q8Yo}?m=x%9 z%b^ygEQryMbyj&k_gTAwLL0!9ew3s1FNN}q=uodki0Y`Ea0Bh^BoJ0)yWd2e<3aw) zKY%RRDu#MKmBo_r3L`E!J<|rIDML_gQ9EiQL2|D?cfFM7eD;l12!Q=x*Kfpx248_Y?KLB=_H3g$Ac|okP>GYC~=(?cO_SdJ&NW3TG;W>Gh z-Or(4Gb@cAN+voGH@T2LJjZWPesM$*@^{{hNJK>;W9WdV0DniQvgh*AA3)XH`7r=< zF?0Ka=V&d;v_NN4}+- z&W;^*FxnXZ^7~#}W#HF|!bgMru*^G*s*7F1lG9n<)s!cB!Z-9~>0|n#WK)tp%ZfrB zX8lBenM#V7^2ZP+9?YC9`fEbVz)6AtiVH;rrf@Ps5XKT$M11$%cRmlq6%qie;KRd1 z% z(V16?U&axt-6-k8P2VBJB*dZ5`87=V^~8`cLI?bV|C%IKeDFC4ua_~x6TwQK#-Hc0 zjL{z?UEJXE^N6VfH|2{H9p`pnyy7P%I`DOd%FMr*>`sypkql5T4Sl$eg2U@sN&APku z9YBZSXTHCci(lMv`p;qJR{)o1W0##VZEaAL=CUi@#=V6cQ{nYAn^Lhm_z;BW9FYLX zgAU`FI%+}K>l-k#3%U)@py|O?S)~!50`W-`n8M_*yBjw=7QvPO`~UU-_Q-_8<@OuDol4KBN$vnrPidaI_1UEZ(f-x`p?5`~oym;2VyhIs%Jt;+ z7{#jkJ=jzUuU7<|ULr0NdtAbRI!je&hb*|A$I~RSRc#@h1NRID(x&Yx3wJCRaJ#GF zhU5{4?7|CPkrGZFzI;+H{3Q(BKBz&MG{i+9d4|r!0mX+>kRXtDCr(sOe4x#tJv&;Y zNj#G;Zo;NAR5ZQEZ$_?(Pk-gF{Zaen@Be`Z+>IjFw0PjB$Q~bZhO+1gUGNhbgnr5e z((dtj1nLDsPy9ayq@&ExfFHTxIhZzi!szM25ymi!SFe9e7fJ|AeUX*)8!q+J#+{k-pyO2@3l@-a(U-1EhDz$p>Oc7cgn{GuVV4Am5fw;#NHdk= z^nF1iBb{AW%HbR{z)k@9$iq$t`se1c|HNOf8~G`>#yxF%5+@xJ-9;S8t|kjvf8A-F z#_RBH-ivNU^5GqrFpV^)OZtQZj8M`B5;x`_4@?dDA-z8P>h5p5kyH$@eN3Z?K-~QuoNEE}3j%AxOgZ+>G z=#Sbje({U;t6%-9{p$CAEld5E?PovxnXPsXaZ;hr!C0ZrRy1Iy3m};Ipbenz<{+k5 z#mb*Df)N}9A>caV$8b}hc)L@Kx1gg1h*KDGkb^>pvCyV&ROj$2dRN9_4K_2{ii*xA zuM1GQ?lFpSIS2%WQijVnKr6~)9<)KgueH=ku0vt)BRt^MIImGCgV$|&)tR#AIszzu z!V8}_1dH!PE{gCuLk4QL*KhHq&gDEfJ`rm$b zl4|#eeClt7F-a^WlU&`y2O@h1hwWO1ysz+3Ue0XY_g$J%PH>TB1RP$EbeO(QC(oow zUNHR>KS0{gVJXhyYuc9cVPjiKI|=OoqzQzstUSTQ``Nx3l7>3KslFagc~hCVgVG1^ zb3Viq9O1<#vKJ^lJM5K5iz&-@$tV}E^XiuIM}H}oSMA5gAFX8gX(W^wa*dj#6esC)eUyharjk@|wUMauR+<3MNE~TX zcToR52~SyLn6a0W@+zeJglR&lz{h3U7=GE852J;!J2xo@Eeq-N*2l=LYNbPB-Hl zKQe?+QH~y^x9fGe7yQ!Aj7c`5jz4~E?|*pP-oN{yoqYTtdqs;->7TtVzM5ULLB}rO zxzfJ-aMFHw|E?W#JcU9fhs=2#gF+??Y97T%1kz?)rbYn6aBAZa&U0}_{x!uj2C!c= z#yr-0toufJI48~Bhd#&ZqR5X~N76qT9tE6%(Tu*k(c&s?WTwmu$Fa{psv@>mo zCsxjCH&Du(K}6Zb*BJ<(pQ}F7lnW#b8nYsVp8#=821qmhq=n?C^^9d}Qtq_j57MTD zjqRM`hw$VFYQW6&6j1lmvO&&zVhE~7B$HpYuYdYepBv%zy>}5L^fn0liWLYA@xxEz zim#=x2}h>#Jjz?jS$_U8K(@#9;3PA`u}yxR8h=O9;4+q=$!?DeeYh^Cy8-;<2U4Gb zw7rb9-R1Q%g8)WD(z;h2$20t?)#3^=&V;9RJG*-~i_5mSzVL1Tk6fQbxvGPompeT^ zRvL^CRYIWy@3q`kPr z=w#)*rc%|POr(&ndZk^T@F0LcvNpmKJ_*)%wWPA>GhW$p#SPa)P&OaI;L>m8h|%v^ zRw0xFMXdaNE=cjd)`|t55TlWEk>s(F)aw?>R_Y)ICyg0*HfvE^atRygEBeQW#G$7n z;aB2|$BK8}$`5VCIe&MVRNRQ_c8^QzTU0`?EAEU>4MEUtQG4r4M!C`{4)2Da)61V{ z${-$|;Xs2Q@m6rfcX;C0-={PQ(P15FP=zU-o~N;=XBPkP$=%h#5@8+{*pOU;L>J#{ zteD^GjFI;s!W}=Dv8Mkf9TRlE{wg!i8PmZ){G*$EsRI`-C4L!|`q^+V2s@gFUhW7^ zXJM)E;=R39qvCPl^D<27@KbFjIdeQ8xuRd7;X(E11`Xm1iqFKy z5M(iFJ;FFuxOZv=#lvh^R6fc=@9asZ`n{e5RbW|Mma! zfAtN9-_L*k^J%w_AN3~;qc8@GCp;CNj!frP<6snpTW$GyJ{(>v z51sI}c0Q}{_*JB_l(|9_jvr&2XVO^aJ_94KK8N8)Xa|u;T*5G<=zm<4oL&04W76Qq zbs4=pcml+qNgYUBo}U0|dl{xj&&JN{0DgAWlGgo5c+bZ%2^5aZMWN#Le0zJbpSL;ADRQy*`rv9s=90m3knmb9^l{-6z98HKE)XI_8#Mcdihb=$8v*sVVD zkInafy!9~|PZMV$JC@zm2g%?d|@L8D z+oKG`0~~oUgF9jjq30c|XWt;9KY!%akuVlnEPiAOxL;JD{?T9X{H`r92Bjyy`}Vi( zBSsxYpcbI;i+P!!YJ@jee7L6UTqpMK!*Tm_rT@*h-?sN3Pkq*34Y2%~_@NzXCtoWE zkQc&9UbbS%`aC8oomEChhpT-UkxJ=jjKNCF*n(D#m%bxd5ycUuW-od!XU`R4-M}~VcaQ(63=9Ir%sGOk=M%8%INtWKM(!x2RvEvXTc~z4aAVK zzsEoF>Pk$+XsWY;YN-EJgB4&SkU_KRu_VSRYKL=1oMVwd!Y&LJcK}RJJ5z@18eO%a zN7Y2h7)KG*1nP;ZTkL+_rEuEMYbS0+=c~lt@e#H%j zAp8NWAeVvmSa}u?UAKTiiywNH`vw^OX(KrCe?Y+L=PZUP&+tt8atrGd`5 z|By9l0_BCL*NrP(7S~)TeWiZ7)%YnRit%-Map|9yqXw#B5rkZ$#E^eJuA<*A#g7#k zb-({t{%ZT;&FjXc?eGTWkBqXq&dxZK0!HIvA-$q!3=MWMLG;NTb*r+pGj3qHy*yh+ z1-Sh7xY%OZ-`dm|m7H{*7FD^J^{Q_*4e^g0F`0W0YdFpgSjBXPrVp;(MnP zL`T_Z6}oZ(WmwtEr42UpgzSc5`0;uSJm+UHrBgsI<3BzVo}RQ1$0zON z&%=N88a(v^Tnlsme4*N59gn_StH~+`-?9!!{)8pXgv80U!A5)4Zv9u~>6t|uEv(|? zlSeK0q|37?a6FS)Aa%Pg%9K0SKVtM3IdGlN{|n%=c!_IXcX#5u+&gwrhp~bm*^9q) zd9cDq-;90>oJ98(s2o9in+6<kld_GH?Z)c-!XW%kXbfvq$jpHZ?{ek z@tuXK=3+KaPGpCC`}VEx4&;XhxPHbnCH%81+Mth#+pf@ypr?i)=x9Bs4MCM+;|V|G zSss|ABB6&rjTgq0JdCM&W_-}Lp1jZHYNquBW!0EdVnIFk`k+++-x401s;q4fM26Z*l4VSl$YmazVjS(JBBc%p67&5u7_lmk-ny#X&dNvTWRtc&Psdv z>P>t7)lW2m?X-oAz_l%YKzzf70PVS1oKFKPh86zQn=%2~lDYxf#kE5d-GaCQ^86T# zya6a5&ZbP_LkqHmf2?a%1|ao$Lha=S{k+sSAV8TQ;Iwk7F9^8aS!|}fk}&hbUjwHM zm#1fq&CPWbsbrcRCmG$>S1kObWEmUEyL-o7p;ZQ#K>x+J-`fbe)p$ESJu~ljcK0p+ z*IMW>7H(wJp~U{i-~9L6(c!N9?d^Bpx3}-UFB-+CTN$CW1Y?GK!M^+ct&E^+^MC~b zcS!Oj`DOno3>w0Rv;)ZV7!QPhI}hT&+QMP(7yEnd&5OhKQZ(@kL~9D?GJ4|nq{nE3 zIPbR72ef6Y8%aFVcl0MeD$n&W`AJUV&`HH}^@seSfeVp~mXb4G?V?*T{&3mp;FT~u z%C6wG+}oQPFCQ+3kMh)0)W6A&ByuDj`jr;=hicdBS1)~WHani4ER>hN+1;$MQhX^{ z9l^%0+gG{+KXnl9wrV1EyZKl|lQkcVaDi_=7QwA!DvbWfSoMW^r>#HM87-c@Gt~W| zqj-i)+W77h2vk&g9b0>3Jz0) zR(1DhTs{`DD@2Cr16)29u}n)pAu)>ZrN-P`uBfAbgZzx~a3?cMRQuch&oG-|$$z-|-hUmugjqxIFgOBPT~9^Xv% z_yO_+xKJOE7)-#2SfuqrP~nU{zB^#Y63vP3z?g=QTQc6*orfOULEo}TRlJ%v&?Xwy zNYX%FXfL;TfO~#f_6t0{ldj+vmf}x+sKzD|{O4!<@S{sMceY(VZ*R^Pm(}P0yZ`Nf z`VGPel40shAz!p7>*GLj}iw!EBWCs$O<%ZapmiI=0Q6_zgeHq2=urknDidZ3a72* zFN9n1Ck_`_u8ZgJIB`4&6UP5zn)vz4bJD}BMY`bSoP1=WoGbMUdV<|;kgreo4-TZvH`?O*wr$BUz*wM-KmYkJe7~M|3D0X{U?+(I zMi{^u7pQ>hazc>wW4)B`!25+`weSXn#tQbW$0Xyb0jrCwS+bKP@1+B8xC~ zM3G-E>_(o?#48q!;19x2j<0s$pX3q$WC)9o3jgHQu-xLh`ey2@xzE@UNYGi4bYAirllJ{z@&8J}II{ZGdkcz0KC4X7hwU}Vw$!AM+=8=sRV zFs2#P1>lc2CIk*&iU;!iG;{{&4p?4gxX{1h{gYS2^RzO9?LYwI;{;OFfL zvVW(ABC=nLh`Pg^PhY}hj_pYoy1NSiUvhOK}IPe z;vtgC!FrW63u_R<(tx@n4A#ME2@+X}Ge4S~cBS;w5$3)A>a}hu5O;hZ$RL^=r=SeM@Gr(jXohM&w80Q$H-V0(4AQ#{ z)#nb<^K1w*Fv7pyo==`90#wCnSFc@o?9L;$>Z$O&{s{uhuZBwyD-L*))--fJbO_Jq zHq+`kEqSLry{zQNg=e^9yXZCLQ2Mp@;>F9h&Q&oi7}O6Kg$vG&iC0X-DB{qUei+M7 z9PNVt(*&mH3>1K{=a5hEN%uJfM!tb4gM`h4yTU^Qd2zE~%6RgiL_sM1CuQ_x#vv2ugY+Ky0~$HF9-Y)Qxju!NK7h7B=jUDz%h%gk^30BH zeL0LVh^%WOQ<2tTC}8))tSk612%t>6{=c3R20W!|h9`!g_~6%^-DNU_uPjtNNs7;$ z`GY_93wbr1yg|sbn=&VNmZOAwJRs{!>A}#Y|E6bPj3@n%0W_w}5oX?$JC+$BP0D{7 zGeDo)NL&3l>nk9;gT{GUnSj0x%=K59DL4KYGL~f-B)E^#30>PO4ZeD!&-e5o<-@enL=&H_`D-VgQyn<>+>1$k`HHynsBFFPb z+>mE-@!C$1r}HRxfTFf2t!h-XbBPYdoZ9ZiAqz~#hw~R5kfcT==Sw}rEkKr!%pff#msySx4(`n4=-&Oa4Rw2*dWVDl4G zVzTB)>Sc1P)k_A;niTG_1v0x#&_W)REKJ4_gco3yG4KhpH9=aT%kah}p5~-YH(K?O zw#t}SuPK9ba+44b7*Qk*LIDttF$iBkw_#1?cx%24ju<$JcRenzV7VS2s2`q3;F1Gr}@^$@ol@3Iy2CuPEQ@?<8dJu1MOIG#H;L; z+WAJ-83P!t*AKj!-&9!-?fCe#z5j5m1thPK*@eCHF9U3~6LLjpq%C&!@ z^VT|sZS4+niS)V<-9!0IoYWtb6nJd$8m#D%eB8=-7O(hvkDcxX6CiXcHAf@31piiT z`fz&IzSBg;=b9WiN5#E>`|1x={Jo6G88nGk;WL(TVI7p8)GW0rv;i8->yh{06b*R`TodA{n4< zr02JWy`YiHJ+r)*0T|x_rc3Hw?fu~}=;(+X&;A;J<#`(JGu{}>8t*nPgj`+Zafu>8 zr)!Ml3>B2n-zno#0r6WTQZAE_fHHH`2py!+C7DrueU9Mg6G@6cb?fmA<$D`JzCpWZ6yw~`V77}0CftQRio?V6NS6;@$ zx#are`B^*FV(0()um0Q%Pkxu2uZF#$BvNR#vbtXa)Q#chu`2XAL?sNZfigI&{ndX3 z)`5bw6=2Lq*5DDZuQ`^%7-ILCc;pj(z=s@Mp6^W|wSzi$_CWq$V=;?uGx_I3}RYa%F;hGF^?HBW59BJGU%7e=Qv~p8FGD%zUi*a0uvnwMJ4N%+n8q8e*71SUh zAIvI6xHb)Z48zOIGuJ~N($GP4G{{|rC`p&pX-?S)E9nu_w3~8(tPZFfdVmtX&{aSf zI|lMdmy~c;I_j%B>!HF6Yp_qx5_;<)c}C+WX?pfgAZ24@07)B|@+uv?O51}8qhI_r z9`veT)SWgwx0#S-L?3D*-rOo)*4eAtX$XzJ?t?+C@F2So8SLXu+qxzu!aQ*aNlQNw zpFYb@$%x6HGN0D<)OdCp`I9zvIbC<5dvZIUM+`)v1wP@SVypWrpF&AhyzCPdas_bB zhv|^~`l~xFKrnuo2p$_>&M&0Q7>iQecUPJ`ua%!4R7Wu)+w>RZF@D*F<+TK_UTSRS zRWQFD%FY(|fnk(wZ&BORO5|yGk!Y1RF^^u?Js_f;AhYFSM{I{ER8p=CY$3fV@WKkumRA;%CymoClO2&C5;(T414k*BT5b z(#^->9k0CnlUYhzzhWRhh?Wx>dKf(kzugSJF-k>Rbf$s&gfq-kRiK{jcHoaZwa?G>knP>B&T*g3W$m|+QW|7+G zq3RFs@Ruia_HfA&hS{Tdf=po)V+=3|$l>D-;!S=0BwmTH@ZPW6#is@7^^Bp2>;9rI z`tFNml{^zFoN_QM^(^V{^`f{!Tc@uZSq@ej#-nwe-NO1RxsTi_|LlT!JN8_>3bsEG zK27`@fUxCwxP-s@u%j0;h4f?md3!X1cX31wUduC!AOX+hBOO5dNnc?P?eJ*N;Vb`- z|MI`A6ao_{pwa-DKr*rAno0wAe#c+&KryE}JDB*zjmGsy!BDHgx(kuXyxw9}llDL-pP z{&7c;G6;t!fH#8#gcVkP3v7?0Or9~6aKZJ>E|^;B`&sQMfh`39JXJL_5YNP8x8n#r zhgRH~wpkD#?l20}x1^DK&0PSZ;qdjB?e&*mwLKYwtmElh_EAXn-HLWf@=3}qVB=%h`Y4ZvPr$`Hj9-R4{O-}ind zU9JME_*vFsfQl2I@M@xyoReSStY$F+ACR?&1$#~YP=Yfb=Kl7ww1d-?bm!y>Dly{Q6F{^}3(6_fM;-{&7c;c*n^tzA#Z# zzU&CXKJ)@QfiuGxNH6vd{NV_@f?vLR)%LcvlGfP9L|YYI7+3u49W=|F7R@zo*x6*K zlMQT_FNF4~e~C~jchUolTjI{Oa(5pq4qDh5ztn>Ff-irilRnB&{CIZWPSoZr7P+ET z8N@&7B+34J87k;5j>vFGeT{xqx(!v&^B1p=+E;Jhw4eR->-NPLuVn;sC+xm2@`lF! znp>>*kQM7d^r)Vpi*}iQq(?krm&>x$KN9&}JA&+p(>BU@aDLJ6`pT7tu$w*t>v;|z z!D%|J_*c~SqI;I>?EayfZWmh6D9i?(b$rFs2ly9~2ScAIRj75TzZMs*q%+OpCA%{8 zkw>Fk>SxHBKOGBdvPBN_+D@6vQFv*H0%$R)Y#?RKWhsxm%i*&-^QX$5T>w4=o+|_W zfy;OV=}W{EKjGYf|y(@U}-~8aO-!B!ux~qk^^!a3rc)EMdYZfq-DVYV5z zrA@Xta-%tTy;=~R#ZTG6H`+md_lNwPyGD-y9&?)8O^<98`u_T=Hqy|G(8n*0rEcKM zpS-ZU_Rs$8&%U7`kczO>Ih1TyNFj;y@Al#j$lYH|5co+45n#%sFOZ*(>&}f zBn+UzB|w!HKQ8s=+>SfOox|WnA(z53^UXMQlG1L;&-O5P2y%h;raB45=UoVthl+4o zl$#WM6)smaU{$jcy;$1ag4MVY>0o6{&v%+>^_2~&Q){JmLRNDw&B$Cv6dNFJ`FBo>nCI~hfsk9%l) zyR1%S_{hkivpK4;U~-iL#L#(o;LBc(eHmuFB1Yj{TRCy}UVR9{SvS5=%Z?yOAE3}~ zuI}1~R>4MIt4I-wP&nbUEFgU+PWr3m%k!&tsmY+OS*nT5AQwInre@k7{s-JQed0_o za)md@jvhOuI~v1$40EUjBVSHi&QvgakenIxYbE7XOR6uuYfAr84t+ttmVsg#Odp0J zzm0j}K zpToMB9^O!SFQwal^5%8>xBu|3wO{}0SMB$H`AaQ)zi3AX2Q~tsA38T-iHR=0s0L#h zeYMM=njGVHD%^e8jk}Dg&+Q1(cg0zplK=kD|4+SDet>$4mKormOlubv(4PU9J&mV1d<4n^MqP=Ux&Gwid3%3;+J5`teS0s%?nJucMEd33 z=}G(H!^igS_@sTO#ou@D-nH*Od}u$M9JjY;C+)-Kna4=C%w0e7CXadL4~Kf&fvFwc zpJ(sjC$9T7w5Dfq;z@YPdLdystEYx_UP})s+@R+Y<2jrt@}q zHyStST#_;`P!H*mXKW0P+c4&k$=E~CfoxV-)yJbOYVFKzwC&AWwc99!!Ag(e#;f5q25e_CQsR4n z6kk|EOcdMBTnJnWq0-Y42M1;RVFXeph6fTueE1hM&n%_|v>_khq`idEG~CKpZH_-> zC9RxEC@Fc;=LXIN^cAV%BlJnHe-ggpBY>c*)c#a;rVV}#((45iKMDO3Bn|Ca=EI06 z7aYoFHv|#g6dwUJyupo=0Fj zK>x&t?go(8u|19({LlcneExs&=Iv9PVix z?X~S)Uc+ywU7{UB(33bklN_o2ymIE8;f0JSCTh2v`;P#XqvjbiIRMN2UN!`IqF)Fg z3Yxq#C}U|`I^?jw8unMj(i2|UBU=m>`7x5H1Ea8ZXXuOSrzc}q{lM#AJ_g~d-YXe= zwC6#(=|Sa*UF|};;Q0KaohsfxrHIT(zi~0{0-fXC#tpwdwgINarWoN%z1jKV!GUQVL(3#TGm?ro;g8}K zRO14qeci7-70y`87%R8NUmttI(Gbj8pHm(m$G=KFC3JgPkd?U=+ zbH5o8Vr4oHI!pQBYmH^}`%HhvtO%xA1*X5e%Rn&EpF+y3*wMcX#qX+M;%V=P>d)>@ z{a)#Vc?}Fqbv)C5BUpzi?KsB~mgkdm8GSPB{z8V}Th9Gye7wKpYxq+cg2(N>48iv& zr|rEA!{duf#cP42zPJ+aZngN@T2bFx{*d3A11J5dG@%`URQ%(d_2kuWc%bMhkN+>o z{5hg`>;!u9vloYst1z|J^^W1xld{lr*dO$x?;8|3^@gF0K|bcQZb!h;v0D6XaXpiC zBk~)5f&kr8Jf}qIYw1Z~Gz0;UQO3ba?a;3M*+2e=G6ZJ>jY^AHCRJWzFcDTb=X5B3 z7Ge?63C(lj$wQg=Q+8a^PzOl)G$v?}Gc&pxSkLnrJd8Y;v8hR=3_qb19TN;`VhH*y zlwV(H;ET&Bado%jILN%J!A(z5zS9U-)d?jmMGs750_1!W1D(|{b)aMpHHn25D?RZI zno$^Fa9|L(QqleL+C|%Om z7g&YnsRS?d;8L^2S3x{OdkL2642?Z4&}(&BPSX*rgTpTp~XoQ(0L_gA0cebEatkzo{4=YwRI zGh>f@=%7;DgNz4$Chq23^j&C7JhbhN6&XLg%3W`JyL>&%0!oVr)s4`@XBI;XURhpW z`wQTOU++zzR@L*)2nG z+g}i42>MqHNG$!wYa{Crh0zvXky1w)f>kc{c&ES%*OF}(G}nCXdr@bj;1B(Kzq#jg znwwZw=ot`hnwI-=4)4R?CS^?E*oq${?5>e|n^RY1`FDpuqfhzqMH ze_$F_(dVk6K*|}-1&7d;c9bqB{hw7;p3SxE~)mj`@M%dj`lmJxT7-W+~lwD5h$KK z)A1YZhm=L6^3;)_%)N=Lu^`Jp^-vOhQDxQJ1zvHp30H<(z;$WP0y8!N+?va(KcN;t zMbbqv1Oe!r>=jYKqI&J0{^Ni24UuF9!x#WYq$7=0wqZ)IFu%5gNvU6mlB`_|gn&-3 z=W4L>3So)|v&ymJFrzToY9(2Xt%eiN?iNNDh9C_gZbypJMj*zRCa$~^c84flMSCaE z^ywdGd*D3zF$6a}iBPII+p@@^VMm6_roR%b4xzR13q(qrOTpVVyr2m3MtCBwVh z8yZWz64gRVPF4mPVaOJ#C?T%ku$T(uWvQwq%efCXgLr1i5_LZ?f zIW`8R=$V{(JxQPM^C82_Lmyh+kP*rbAQ#X2S4*@YLvOg{Y9fZ{jV1*QDkfoA@X&Vz z;mL^b!~c`0gXLwKxa@dwXW3C3JVB_<^#!r?jEu2^{k^t{ULcS98bc6$L~qrN1e*@? z;dJ){8c)1dUDSsFoIqp0v5Jf@n9Rfr4!v_x?uzJUb$|J=;vK@%(+f|0cbqGeZrR(D z0mnG7uG><5tNyrwzR>)jW@z#gk9Srcd|~vjfBN(Ghkx(~-Ufqp zjTNtAjJ^2lV;$wCJZPX!(Nq&1V_STpUdM?(=9CHRqaZdDxWIj&pPscJ zPELFz;!0sR(j#0QbN|5m9vMV%3wcu?vK!8^2>)V;aEs}o&-GBH8mbOexlEHjkswlf0fkW<#zG}boiI?bO_)TKyBpq~fG|xMN|MP$L zAAJLX9=N80$%l-!iU(-0T~%m?2;3Md8lFcWPgPw0;FOPs^!idaF31*sh-LSn26b7x z@lyun^CQcIxnWWOs?BBMR(&cTW#9=B>s(QCNzWZ|oRRS^j_H9m=bQ$5P53E`*UPNb zx7(Ih*5OL!h>PXI>S5W}elKQg}P(3*_sdN<)05<(a-I z9vAIZwoqY(4C<$fWUkA(Cb|O7FW16eL549Okh;>2Ps;9Lyqe+l=#5YvD1&~dZOb^= zkjudL>m<<*cn+s8;3Md^7wwTJuqKrPSt|0Lvw2#LUtxgp+u1Vy?moZ2jS{PL zH!@n+*Gv8)Hs~c@r*g+$=_Yn5!(S2=noS*+Wv+yXa66JeF2^pN{2Uk;B<|s^Yl&cv|eGYk2%IPnp0J%OcpQDicosY3ad%9Q{_?? zaTeP0$0a@V8=r~C4Mg4oc`p9Lg5trltCg4iPtfz=oGuun?+Nse0b0^$AbbVS zCI82#=k4u>kL{dAlA6FZL;j@^8Too}fB9Pgp%+|1ad}gnZ~2oPLW8-b^67xI9Wd*A zJ3P*nfIkIP7-e+SNbk7>lqGOph2!R#cJS6>(jVldNT-g34xqp0t5> zbAFMDf)1rVb^!NwwMzF_O`2B8%d0j)Xc&3vFDg}UfG{BRyM5|B&OOmij9zvP047S5 zkrjfzL7xjD1L~WdNz9;PCkG#X|Mad(;l=eh#v?)#tM)+g9#h+ z;!jw@$Mh+iwwX`*!w9U)Lp6cz?fccRMz#h6{6lt%pQfqT0Rk93$OeF1`oksqS^Y=< zlPBT1h!-9c1`UyCko2AaR0q$bqhH4QfV77=zWB=X6fO*e2S(c2%TGJxJbA`U04Upa z_cA=e2$_t`hmM0hg2cHXUyt0-;xxcxVl6q{HXD7;k-G2VFuiBe8FJuU= zw-+xY%NtxU%o$pgh}!aiOo^^L+|{;_;djrj6-MAf{>L@Dgs-h@A*8xc+VJ;62F;Dy zhXKIii7;s93@ty;ghJxuB<=`=MQ`4`k};&!^tKGpO;-NukN(9luiUw&=JfQ~A9gX; z7gsm!gTv?8guj(6FGwJ#f8#sstsHp z^ZMmW8D`QG8mD|oy1m8gM0j&&#k;PF6!0rL_fP4*$SR8c?c4YMFodzkdDlAQv)SIi zf8UNzuG_`gxnH^aF2EhhKWC1WW`_l*=-A?1kX&kF7mz)iH%BkpuYUHk_V51>|9boV zU;e6n_0?;?#@<#x^83dg^YlMw*hB|s@ybBcq$E1%0Qx|pA-DW+uAom=DhI%YcHbem zT5n=_cAUxtcrG2SG#Fv>+u-VP&O=yL1d9#hSgAN@q5OKTy2NkwjTac|clwbq*SA)( zOJAT<{gECU0u=RA1=R`6P*w+T~wrkn6vV#lQhe2{Gjs;`N1(BhzsB^ zaj*C(&c~O@2T`2)UEh+v z5M3-j`Q;t>zbd_>8r6qtvk;zuI~jlcVZipjQ3VbMOeyKMY{vKiEWFjC-;J(S0rN_ys&1QsV`sa(C^djE4gfjEUKTslL4$c%qZPjOuB zXXDNVXbg)#yb(e7VJ~n51$~G-A&-nlj=Nwgl%2r>U3Jke(UfBlX$Qw0NaI(-Bn-lw z@tFxV44Nh(3Kih`+(VBKMj$|UiU5CH5GH^ag22RV6N$nq9K)kff`l_zraJjUNJJwF z0~h9dfFnRm6!N18x!e(BYYmz$T*~XV2=!c0uYq{&72~bm!N)kDbBkxs@<1ho{z_l` zpo8n6raD6PF;LP*ctW#iJAOB?1H!Tl(CSqZ_3+orp$zB*;K2;0s=NYrjY#Y8o<1Ot|#S5jeA*g#fn%sExdw;`63Fk5>cx|xKws%(B{ywi6 zRqi8-g!HsSlP9lWWbi%8_@+M~c%*eSLG+WWzIFecI5| z_<#p2rr6=4A68{-lIG@?-vwvkB7;f_^615ZcLaBK>f;eLMtoO3rQNkGGCV$&!KXl)+2tp-NXaAtl8;?EJ`~xNj^OKCcG!GL zxOmTpHkFo1K@$bng7hm$q&a)9&`(u96FIoeuiNka{1@$4KmA#I^-_ydE~!=84fGNf zh{tSHWBk!J8-d8B=*2}y{H*lsbe3P)M6=H}GLfhiJUhM1sPyv51$kE9J`TKVlW`## zz$Gm8@T`ZP*Thx1{{K@b_RTs6IjS*3+&ocRXSul0HKYEM?oRuv9Q-zf1(r>_WG*oRebfPK>6u+CTolc<_yZFToA!XT>!a}Pjzaapee7=U6uY&&DwPK>$4)f7*~8!QgY@k?+ws42;jX=+%UwSF0aO$KEei z+PMtDcOO335WHjTN`4+?_%WVUtBt@Ke=1M$p7T_^LM*@TKtX4PdAy!VXwx1fN*y0aM9Dq3jO785wzIg2pLJOFH~spu@*2no>kvnD3NG+ zSjAXo3{{#EQyHr=3e7XRoDli3M|gY2f*JV&D37?}F~gkkS9S!t7^vOVl7G|BLP+$j z{iA>Ir_)!%WH2s0ThYqpfOZBXVJ1L+I&4IU0BIlu)ca`yXdp^rMyG-hH9VMC!)BP7 z7o4BnF+%TNbee3?sUwQs7_d^#7=VOBhr$sAb{Txu(DYXxI)!vv=)= zWxl9A$x67WnUL}WC?uuqPen5{Ac14}2x%XXdgD)i(=Nar!$7{?gN<;#zJ#nZKU|S< ztNyxTr^`D5#oOvz@myi_XIA8dM`qa>$}_uqxZtuOnDCSf22y6)M|&)rT`p(&9Qob* z!8r<^wBKXnDOO_q)z{`Vecq9sr}*`s`Vpi*~ml;wAzY{tw#~MDuakuz!Gj0 zHY-Wgu74j_Mw`eHPuAULu1U#c#koJmBUjeg5R~Dx&97Y?9k!iAE(+J8h@DN8n&`j1 zuN{2)mKApOUA={XhZvpLG6dn*?PE6t8QbQsikJMvP%)1u5G_;ZRJeDk>{0*9$M}Jl z7=IY22fMrWhrby9_!%pH-Gj`iD3`_{Q+s=V`BIs;95wMFc{dm%Y8w;Y(f&dE$yZ;tU;g}O?WbRV)xLQ3vhDI=5Bf#v) zjou!21gXzu^rx|(W!Ro*>y4hq&x2dJK8;(3iAMth{`g4nBu@NEJbDg4Jf*6HPxbV)BaT2i+JRgU$5sz48}A4R_W{GLCTV!vKfm?pY!`%9YuxA-RJ--HQuah%LwxOf?jM_7ZLlD)ovDKpR^OSS1L;9EHOq1}(-EjpT4{HI}nQ zb+8vi=xTx;luBn<`8(4^Kstn1LKZ0DXb9puOfE##q^fwBr!u%W)~|+p8amOdVf`_& zR-LOh1gRJ1(H^9b_7<;bTji~1b%Oa-%%u!y0L*N)4I_{;c_z=bI@k1)jy4Gy-u&VB zVN&H!Sjwyap8?p?(~znRaFbmIp`S=n;o;Lnr|YnH0`ptp9w6`nIy=xW$qP7bj~~nZ zoc}@N5M!PvCJJ^{Yz5w26`+FPh#mj?s^kT2=A8@@9?J6S%`ehEPes=$A zEZJ3mm{$r{uS<4TWt@q6gh&e7U-F5sdXOULGW7ZqRub=a#R$ZZ5>?^}#v8v=T=x%R z46Oqqp?&fP)7P`i z*4UgLCDb0Tc-?KZm|a1x*;#M<(i1z|(pU7i@@_~`W2A}WcBL#`4760g!n@Lyxa@XN z;@X<%6#ek{Li{@ZcLwAPnOBWD5owaV;g()5eq1GVCe(J=L=;Ug6tUMl1EtQ0;?(2 z^tru-Gtccuc9@57HTGeX<9oU%X+i(tRychRx-R^L^>E4}d_p}xa0X8gPtfVgkFLX| zEfy6@n`oDuiT_hR;W9)wTMiT-Ly+16gqst^sFy{G4{EB$rLN>QB5pc8Ck4{bl4qGxTmAU3OCFo1urT{t1 zNE&oDzx8f=>+k;Y-% zXeOR~v?nkNQ_*X`jCSaE3wyYY%I+r*kAX~jfYYk{sjTjrS1zIkEbYK`JItS1(GfT0 z>unAs{Kw$NyFeaqRjv#{6|CnnxS3Ex%f#otLul+<+d%cZ(kMOtJWurZK>+_pnH%Mk z{$YWTxG`-E!L+-e$_H?bz1g8Tej0)szTmP;U|GfOSUWqkTV<1dwu8g%_VQ>)gPjEpD@~M=3~T;0*9V3bA8N%!dXNjH8h;BdO6!?L+^0kZNuo%pAL3+%J33xtkfxozVR-c=y3n@dRPuSKsEx!Csy5;n&dbK zL?jCv_>6JLYhhjwr_X5%AJO>QE4eIGsr$<>zi6*s*3ZMeI67=Tqp0S2r%BY`-f1DE zF$^+pp`~;-jVXhl$)Hhrza)E{ z`$PZR*pi=J=LcjRnODEy@|yng;=*@T62^H>8=30=7=ZSJ>Q^p6=i?im`Er!qL4Qdq zKHE4HJZ6X@pBMXHNY6!MdKidVvXBt=I_dOe3!+1NiNH{_uV zjBL&yqtAIB4MFUWUFl%P?b@IGo&UhEhAVSt$lT6p;sav{0=R_LPrOAD)awthcKet_ zxy!Fy!bT))TS|{QqC@~1VJ3BY;?K^Im8=?Kx~)h$6Bytc=){HLbbxigp1o_Scz#cm zpO`y5JZ!5nDm>x3J;7=#edKbLuj-;hRVL+97R<){;~BQ8jG)VqOFoRi7!;*kYd~O; z^VKkEi{^UwPdkXW5|x0YO#Gx7aSkhbrZ@zv`zwtceDWye)Wx>nXaBFIoq^X-_c5 zAV3^>W*X-(V043dCfzlL36n1}L|qty&d*Mb(&6vaI=}m1M*1uA6QC@Bc*2Q?|0wCv zuwzgWhf6q!KdopSTHE89k zu_~*(pz7jGll_t#&2G-8432nai|_nIWnuP&@GuCBRv5JT`*`Of^aP<+&}qO>*Mc_oZ-S+8ujWK17+ zLy&a5=7olxU0wy#Cnz@Qfi3Y_bQiBBXH2^4z8c5%3ZxV_GQh;p6kg*WBjWn5R>b40 zVN&D5V?U|SN;Z)*2MJ347z?B$*iqsGh9E{B#^4L-h@<^I-^J&1n4;Sysa+li?0%A0 zfhx)EWfJ#!YP%19y@S!rH8EVaeR?KC>|KRfOfHi<#CH4D2xtw+et5eqPwBq zC}tBEJqXlu34^T!_`Jd`Z+5h1@KVm+)y5Q`3ul5jSaI4IZ_-~Aiq zGWcQu`i!^uO56EZ3>P%7@vF_~d|$$jJd;+m5?=h77ue!#wL`#j+K%zS1Wz6y{1{yj zUI(fls^3z+)5uMH+!--e=k#`a-zQD-*zj70x%y9N3?QE=Cw|KJ9DcXrUz9rWCDO;f zKTzhm>cT(+mC5yLY#H^(qDwS#&)zC$bUU~XValJ{G$2$c)Zw5F%bpi3nA?#i+pqAa z=`?=4Fx0csRXFKLFKX3?EV!!?$xAM!El2Y|x)@ugu=Ky$DVOty%ta)QJ;ei~fU$tw zYME}o$y7e)MRr^+N2jFk<)Sx{CEmos7vkVQ3r@@HAOG#Y^$nTbP*G{-btVR#Q0V6L zijvj`)O&m;+;Orc{TLT_j%R`^2p#o`d2UoS48n_ejHIAgJEi3{YAke=0N~vU#lZ=b z0*Zj$K6V4a70M8!tDUrW?kw_97ECoAa;po4u9GCSqlaLIUnLMq)!p!fXXvC%Xm?vg zC;Z`=I^YTIVDcr;WSF|FnJ+;_5724izj~bgolk(>?nn4O53?cYC%K^oaZh-F=O92m zW1S-=Y=P0ELGQ_ex-`M)L1v9m$*R7p6J#(0c}5Y#v*J~kSsD7Ff$$h{`I>Q*MbgKg zIFS7GN6Jink;PyR>smfKdPR?tOPV1r&vEZ;2$#};AK@qp$dei}N4Stzm!xCKOt=+| zIK}I&HLZ~O1&r;jH5nclQz~BuAopBeO35P2D3|k#^XYXvhTs(!LQ|%mO_$`+A7e<# zT+2u~Jw34jc(u6lqJ{ddZunVA889M{3yJ-cN9qG)m~a+^?DV6=B<&uPS28I1$)vpl zzQEOlD5Hi~Yi+G2JAWnTiIq4hcjy&OHGYv(#trh0Om6r(1a>7aZ)!qe#mhKFw1TuJ zasZT95r%U8HJ*TpT0Lw&;LEFFJ{CEWLA&S00dEQ<`|w?SVhUPe`+|ZFBQW-8lXz;r zs;zW<4D4#ZT&0Qb_PnBJ&MT4}o&;%g%{ic(JGGrZ@{W9%T&E>(>8fD*APCO_W4bwg z-MUf!$}<{*sngKuOL|~54o&kwBS<-nPyFP89>M_6d6FlNQ=LdZeE;!d`@j`RO8c-P z-lz)Y;y>kOXi5ffRi}UV7``eX6qqI<<-^;w;fWF0-L%198h8JUy)3~fpJTqn^BUKF zC9(cQM|R!rMUIs?ZO>fR%W!GZ7ebF?w?gUqBEe!MHu>Ux#n(7${&+HTM;U@FczPex zZz`8(ztK_JPP*mPbDUhtrwsaqUmJ3L>9DD>B9e$Oats4W=SIpU9Hk6$j~K}1r<s>g*HBXjl+=$dsN`5x{f;19F5T8cHjsH0u%MPZEBN9H+ zLf$dGnI3-h&JB-1o`DSbqz!%elO`^Zyorxtk}}4!0sKFPz(lhkerS##H<;(RpF{s< zt=#8e3?K6>W8hJ=Kx-!Dk?(0U7+zwyfn59>{)~JYapc{|lfW20#)rO<-jS~KBXSrV zWi#$5d!+yL`PS%NL8fl=74^X2mYgcAc#Z7VE+A=*%4g#cTBUS+c$!@`<>Twyg^ah8 z(+}~lJhP#AaV?_|ltR8xTCOxAonHeh4PWtczaO+hm)K^* zj())4Lt%yA*L=}%}F_k{UD8#Vb*{K~{!iwkh6*nJx5e|>j z55%X>fb`iijC~A@{k|NRK3^`Eu=F9%zOJXo#SMmjXk@o3=NpNmjlcNSFWWDF|JUtT zzxV6*^I!g=z4`LXcJPAV1I9?Mve;qd_nK+HYV{;x1N&Z!MH$X(>!KS$;C165JJ|&e zjBN`*+jC=sdTHl!`1m}AkC3*H{{LU#bC9^PPa+c-%-+eC5neleGW>+~>on&^`opNX zg!u$yvZYM=&T=XjfBKTMmNxu^p=+W~JPAMT3USS68IdVxDtk;THyBthf2s$gIsPSh zuAI-onD#lOj*Nlj`iKV-_Z%*l!E@TmGk*B8!P^0i2X;{v>G}0h4jX>B{tb4yEJR%= zeqm?`@cfrSr+tQfV?2;{d=Al}UR-ot0Fs~nMGua=1D63Ac!KMt^McVC(RGx8-e42! z#fuj%f5ZUvKo@}QQ8wj`a)v*!@_+d+zLC*e1rU+MR7g05EJGTEyT5-pJ(I5#iys}H z{Ked2N{GhKD?l2UMus@zX$;Rv4+3Ku8k0SYu~Frbtjd0D{LXOw+?FOADO6sz9_;P3 zpZ)af_LHCdq;22b_SXukTh=s_s7!g~mB4ARF#)Pb#j_(SzDPhZ)oG6pe?Q*(%pvV$ zRSHe)*67K!qclt}wmUS-b($_~7w4K7w2H71A=hcxWg?C8F|k930z_6B65J)0SEO9L z3lx9nc4s9s3aC-}k`CY=u^$7s3?6k74iP5HK(d*Z^ z^rOPPqo+C+ZMSWRZ+>;87%JyWMm_}auUN1HMSaKzzqlbeo@7h3-tE;ur%jY&<4f@> zNcq(k$-Wyzs2EDUEX25=7}>bq-*sQuu+&)KXXs3)!k`Z&1h8|!J%d;wj}Po%-+R|< zb$`Dd9UfXaeft-`Y5)3P{wvYE+FrkYExJ~$DBpj0Yon6azy~jm{AvxOlXF;W+xIr; zzxd*H+uc*&Yw|vNacCv_?%lg~b$Q*+PGrCe@9!jYD_cs_^nB4yPR`of?~hfFWKeb9 z-aNKTDL>9O!Ue+NcFiX03)+cHbQwfUujnK3iQO7r2S508bD>HNWP%uQSNeF zp6PP{TJ35)<=0aD-2I-@G_S&UFl}9VSk+?lvi-N;e%t=*fBxUL|M$QA*X`SPTDaaS zUbNk3-tGPF&h?nC=O?nHzPtXZ5a8MBSeeEh2@Jh z#POxB`$9C5$8U0!9vcCd-CuurX8)>W@}!qp<$7@~J;_IXydhCzyzt{0T+#eTI{eV^ z{_K0#Po3Lanm-kX9CHkXa5m!1Yq5(sXohF#p|i8I_Ih*Q;j3e(1k;HC6@VEG;AFiD z$MB>bF=gR`DL)t{hv`WZx;%(G5@v&GK*E+W?FgoPH&}>2G{qkvEHr?j>vJ%cHM+?+ z);X4wdY*$Z?U?SdXHWc?4q9n@coq7W;kmp&2Fq!lqd7D_7l$=RIJDU90|dYwWd%OP z9r+f(kDM_8tf)0%F6U3XC_D9r4}_B@vWh#_11>|#8F7TWdzlgsnp_^ZJQ-y-EB-p? zh~b1H6Z%&$q&OeBF~871XT>{kfvC{LDmuia+VQ(-$1IXybJWMe`lbf{#ZZG%t2d&%$QAJT9?X7Z&Bczbir>)uMsnLqmM{N&UZcC)j6tu&UKUY@U> zQhMf(lamuqh{zZ90q`vS_&LmL_7O&Y1=APlhw*s|=M`uCL*5a841O$rxtyepJJuN* zMtly^_s_ZU2c8RC2I_voTh$x-3ThsH4nlhnNS$E9Q|7Y&cfnW|82O8Q0x5_1gp)2| z$@d&a_k6bPJzZp8)H^;KXy{j@IK_9uVm?|g&D4?Pjc zGl`<0zz{tmhZvIlb3WnNV(7vwn>7aH*J*vq3F`@8!ID3AYe zp`SMY2#_Xy>-0S=$ZtR2A=lgt6*yTwM zSt+T{Xbb7Mh}iO}G7x%p8zPI5TOhIm5C)dK&I=gJ>d>wLG!{S0MIJo3By&E0B!76z zj<90Xq+7`b3X3`w=T1U?l~y9oPqlGXgYV~i)XGlSgrweF68NqTlHYNA`WZde#@=DfFluVM0321cN;Q=P)s*Ff>jzyv9xDyTjB3nk! zo!Wh&6{){CRUg3*cF_4S;o#t~9qt`S(Qx19u76IE@v`Heblg<`l&pzxr4c_j)_ei) z<;6K0=3cSFhccox$*NuExA@M-BN$dp#E+|YF8A<&l_|Tu3-Lh(h!^~3@%i~>J3BoW za)6(!pUO}bvxR&-AxEyS08s;d-jT5T>+aSnA2$%0hTM!#_*-rn);v?^99Ls`ggT$}dC1uKoV%+2 zz;C46^j|&WrY@c<4vwWgwDsnmkBiE0oh~`X1xG#4xQHK&|C+DSW&Gvij~f|u*Oyu} zbmQ-udmQC*K9Dnj*O&Eb7`(o?Y{xPLV+2A2{9(>>pJ<-o86F0CHX_SH@`M)?^vB{u z^-nz~Y{cGwcqW+p8Td3$q2q?RmU0~4X#^5h?x$(_03l(YLm)2jB;4b$#(;Xz{>*K_ z?DqL>2^mJ5lfP6SoSa^?52t7CT>ZyK6y6C0=c-jN|HE@Xst=wn-i#GxcoJth>~v3I z)qlY;F8;Iu2;Fm<8b3*wd6yW+_q;xv7<5R1M94JO$F|6o;yq4Ds|4s-@eaQ~#zpRw zo&btw2a)TJsF#~ikkL!&Ox_@EZEnLV)mP)6t75h`woOZ}N@DJTptXPS_y7Jk5%Nru znJD9@kP(TC-=%bz8mgc$EQ7rK^FU5`3_*af41R#JNP`QrfU!)%{p!&`my%}|c=DKW zdS;t-lQS9$!w}?Z1|}eHjH|54@asmPjX~8zTllY(m>vl5vs`ybbvjT`l$R1^vjMYLVVPyy+!(jE_>c)*|mLY{G_?#B)qCAS` zwG%saQf7BV$O!b!Z9-nD%iY#MRug5+N#5AWyJ6?(LixE5aM4~KZMU5r?gZqz6%G&c zx(1`|UhQ~j+bVO7S4kMC8rXGE8UD!t6gdm66c-v!ykdFKpyv|@o-YWT@_LaSpoLDn>h< zGN_#;FD|n`W8`A&@_HMY!MJ$&@@4zk&wgejkeyY_q6|^XqUweYc*0L4mL8NmS{Ie9 z6_r&7d2r#wDB~UneAFU$9213=|0$?c%K04_82tc-`O|dqLmz#qIYMsfPuf8)#z&2# zI~juL+|suhYcsM7nDBXg4tU2;D{{d&i;xQ&dVB%w<1L$N71?@>lMqTi_S{WYmI_{()~3Upp^(B^-ZXP1^Fh^lJC%`sqp@5Y0@RC!s``sJjD+GP`YCjUHm6dV_V+MD1wDc2oWPhK zKRg=CGRj^rg_` zf|sl4SU#F%%u5-oI6wCdl9KJx2V0x<_Jq1fgN|A4i?X$U@{j(*Z-_+rt?*G!$`m&O zGhz{4=pB#FoG`2msTmVrga2t<@-wJI9O0A=bAb%Rv2Of?`^t%gn?Ay3L)CXXDV*yq zFbaJwgeE<9J#wM62vD6U4hbi&jRR(KI!FXmPslH!_aLwO*tH@E=F^54f4K2OliNpI zX|u~#eZq1}xKQ}G77Het2`IdL7Fwk-ISCt-PB72%IK9*1A6yqAtvS3Xd~9pm7=iMys_ha6hdwYa)VIPLSzSJN z#?Q6gi!K>6zH&(}uOinQU-Zg=;~J1#8Gv^elF@~XGIjy^1)N72zqo5{caJZ0xs-gy zwQJ-@MVo#Z5|SqyeJcMJm9w_xJ`$DUD@KZxfZEA#0%MH5*l#jMRqhr)Qzm0?qb^Xd zGWk*UP0^_du^Z&@m5&toI@muMC*9*Skm`%;tIKwBcA~!F+! z`%~EUjb9NPFIhNT89%=N*v`++We}dUQyGC6fb5{Kd&rpKD`0rU4q$!sBmPdDpOrIm~`R((II48afd)49eyyZZ{S zH$y=NczNv+FxLZ5=mYf(y53%wJl&aHYl@zB83D#l(kELe*KOxm>e@&-2zCMjU4iu?x`68B@sC;`X|SY2h!Pp$olpD0+B(45^gK z^QLq=E@O#tWS4QEaklnn|M<_ose8b91&pv$XkjrK;%Hn54-v&z3M-{GcP<2GP!kq> z&JeV+mdhXqNeAI!DslLWA=F(!oWrJ$tPYrIFZ55tkrw8YPUYk0vuV!etYi484%5s8 zAh!lDLP9?leXGFBQyjl(>ogq4~%|`=aBakB(G2pJx7r+DH{TMbndbjS}4w90(ey3OED;NXtPFUhp^5kEmpbVw9oZbAObZqTk z$#mnUcMkZjw8O*oc6hMSwsuzatcAxgl{a_iC zta059Wn5#p@)~=cuQS<|Tlk8Zv(w|YxV}_-!(Z`ql7G=5b}8Mp@r^-2SN za9+Jzcg~A_ySJgP6Iy{ifpEO?71bV%foHk3?DmL<2NZi_6Ju143)2Hzy>PYl6X?x_*C zcu)X`7>|G1KQo)`9a+#&a$(g`jVrnL^(wSy3KO5apn}KZ6(1)loOb&Rp!r(k8}x*Q z@z)JMzy6h5M-KFSb>S;wNXIj;drvtZ`0ic%`1YN50WW0;Vhmyca-SgMheQ3mD%+HC zj{)ebeB@>)5Z;Y?gf~0%MR=Kbf2<)_g_e$DCntWPf3}pS7lX=Ge8N1e+&3NMFa1*b z4Bkxrr*QLefGo~PGp8#TgwDiAj^<}%p=5AGQ8wZDJjT!A_L$Dd)no|voxniC$F%-I z2+?&bnc$W12mjREg+KbjHo$mgbRnnwgXWnQ{8c}YwqcmXA6;&kNtr=ut8@yS{doqh z9tMB?>Qcg_15{5w7TZ|_@7-UXB->v;efA(kJMA#uV5JslM z(s`Z`J2H63G;{u^ojvEPNft~zE5o}!=n1Eckru-7!{E7`>RiICZ3M1L>8w1>%n}9~ z55u8}L?{BfIfmc{`CTrGpESe3;14oPN|jBoWS2>2jr-IIGReJA%aG zA^>ie!u>jwa74fRT|ch>lutBTnG!D)*E~=>SSpKY1EB>7FM|p`>2fX3DoLm&`x>n;{-U@%YS-$QAtkrt)w)ktKT|8itrms^62wlO* z5jfQ?aDPa4J?Yxzxp3xt<+EJ4KKf{k6JOW#A72SOm_8Rhd>q0k_Xi>hVvtd-CIp#g z>Z4mFXSYKuvHR<`a`zk2dDC{c_>iE5SBM>0U^@u-ojo9dMR9NkVN4|4Sc?d^9@g;2e zjG)U+*+OVd9C9?K#RU@fxwz2YJx$peqy1n~& z>|MdDEA=}WL<@D`ooUdM26Lyv{{zIE2i@hl#&)Hd4734(=lsEoH?z8b=t>8h)fjPx=h3 z<^=R2x&qyhJ~v;42rT-MaRG18+4P0tD#4Ucu-xz<8OKQ!9GMmzVa)#=j%D#oe(1pE z*{=ek7<&EB;aFx62t7Qf9?DxTbIcP+UflRc_^~it%KIFRKL)8UN+xAK2PvDjaOgJm zq(43BXrQ4Gq7=q5$LHtpbFkb7UNK`-KHIiO^{00ZoS5E{}B&Lfp< ztl20+X^%99x8QU1kMYZWGCl{$pYXcUfgNk)ly5$bVX)B zAY+r?egTTy?^_zegExu?T7Eamm&DUvU11HvnD*w z3(^)AJX>05@0sH;Rv*2kNW#|MFS9Nz++SIRsF@lKB4u_$}7jufA zhB^bGf5hc>#s9k?GMsUVJB9)H(NT*9`j0uG>Y#r~gT0n~$s0t+`F071W89&8yNx1! z!|Pra|5CU@#iN66RG;)BizMb6p1~FIgsaBD}g68^F`12 zJ%QR)xCTRBr+8&Sm8yrW=yfSCe)5ZS;ZgmffpXJs${#^>LuU{{g@=Cqgh8e-l#E^Y zCqLye@foRHVZ=SksoyxH9u$A|9Ul1Uv;u_L;R5pDBSm&d*}2-{ye3~fNkQ}boxCFE zx)oltZ73}H4dVB@Ryp(wyr#ctOZh(?;7k}#<*g=|@CG9({_YxgR6Vlm_sD_ta}|0n|GC=7E8rVV;t%a-Zywsg!CKqjTWfp5 z{e4YTyX$RpOMT-V&y99@!GU;Im#gjU^tPRy@Wc2rDdm2+T5DIlA=Y5OloGkr#CN7P zvlGa8V?y4Pg}y7Rbbkw!p(+1?jLgGrC59$+h(@pV>s-k&Ww{%XZ0~ zS&yoFaqg8QKZt&Pe<>w&BLnTEefQmOeP150-I!!AuddBYk9&=WTTtVj@x)OSzn0sX zjX%a5E7*%mUggzK+MV&cydO_g{+ZIrT`yQ@-sgC z0gT$puY2rqzv7Fd_QjW9%Anu&SS1`fX+P=V4Z0FpV|-Ju$E5h@g^&6l`e`3DvRfVl zCOd(=0INV$zkR*U?09;&U1+_h2ANN!5yC2-;T31<_(B)N z?^ok8n&De;1oRkv&#%L{FO)9Y zcK+B2WM>e%Xu-DRfR6$9_V(KjU%m@DtBFyL3-933rWQfyV=&{IaEB?4UkNJ=zy(Pc zq!GB}i42W=E{Q5X;lxL;fTe9JKA8OckDN?9S?FfRr#yS?AL-(lO=xw#9-rS@2LWiA z$`Pdh#(tz-DTnY;FVZiJSHgp$*ndfza4({J`+<~!bn%wJH!7$setz-8$*ErrbDTxe zqM@t&mYK?%HYuxgGVa@5Y(fT;}LNSX&S=6sxkGogCUJjAPSDDkUc=P7_C=3~Px*Ug7gxO`+s+0!qJ026}+goSC# z7$FGeIh~s{U$}ue=mbchS2%#N;_LTw)4eZ zySSFjYY7U?yprCRv3Iz=DZ_8Q9c_U!Hf0Fzt*^A*H5G0JgtAADv?x;D?2fo!IIt|_ z5>sB)V?psdpK4{h?YlbwKly|~RJ>BG((nNdA9BIk^eJw5&Cg1~U;i$zP!v1d{1;h_ zUCus^7ZGzFZj_T?CUyFou}&E&YgvAa#>kLpo4tY>+W{sfFQ!E+JA%H-Md8RMfiouEbM;W}au|^3U+^y@#|eVVabrJ#CA*(TWtfokf$%M|Fe3TlAL|N!E)IwbjDG5R4#s{D zO~FrL(3el*pX%QcvKtRTj~7{+YhHly+H@SBGqoN1uHbX9T;Fqb14;M05O|J<;WcR@ zm$-ZcNiG0eTIJZ;z;R!!z z&Y?_J6DT3CCK<_d()Z`Nyq>Rzu|51;+z89% z2MtfsQ(v{KK-_ejl(s8PcAH3}-jH8uz4G2_>sy>nlK~e+3FyBqDr-cCE% z*=qZ$i?4*Y#N$oL^c5Fdqj;ofxVncO!WE6HS}6;Cao%HF+^a1zaPQlVcLzD7O!qyk z)_CVPTe+5lt2%u5ppcJdie(u8j7iR)w6%%O#39CvgZehToyez*R9w z^tNc@oFK2!x5PhHY?;7taZcq!S7B_RSL)(zuHSh&X#Y~ z!fyD9r=vmWw4CYe<);q%C4fAqUOf%|qB%*Q&?Fqg7(>~q!|!~(uHsIhGuUqBwN68a zGOm=@yTfwt`aHqwUcaqT*%da=H8%c+IfFFNvADYQPNDJaQe*7aRkHiSZglv?&MNm_ z;_`vcCWfF~(7Uec#|MlJwPoxlV}FLnV|W&>v^~5`+z1no6g;P|@DU*#*KHKa<2D!H zdK~5P7acm3PaL!dp?BO7Ox<>w!}{}BPGC6b3$DRO{Atvz04kP16 zg}5yA2W62Sf9c5z%h)R(thAej#*vVZ%Idh4Wal6M!+-J(3cHBGDAFpI-3@jXj9QK05`%2q)fsQd>eQjYPX9t#SnK4 zuV~p;5y5l>uY33jEDS-;*K9+R^I>q&BFd&T3Mv<;6m`8OOZmJ?^XLEMQ>JX;Pakv$ z+3oO3K?=-Y=b)^lq}Xz%9g`v0JF5Pwy@cbMAlzkyItd4Ly8fj>P6`IabKr7upZ)8+ z#7B7+LIqOp6Ldm(l}28-UwQa~iD&urzW_l+IkB2inyjQ5{Et$`HK}o#G-v*-Io&+? zTkS#E$yz){j_fKNTGQURQ`=}m_g6Wc9zo&=iNE+={SoAK-W1P1tKthQY{3qkCZwC2 z^LDp5YqyJ2t-?;){epw)$6Bdfx9!c_w!ix*Lt>-7JlyohAbWe7q_$;@c_LzAz?Y=! zl9yE(ORZgAKC}zr`T2eO@R9RS>_BaZC%mrRZJXN%a<|&$gAyaVq76fIORMR<9bRK@ z%K+SJuQ&rJ1Mq-_59i4+x-G{{a2xG{k9FieVh9r6ClY=>@lkfx{ffr4{uUU2cUR^C zUz*+AT`M1bRV!0|#GfxTF~oR%ySuY1{;*?KOIvT!D6 zj7bhXBfS_yz7|J)fswqiR@d9qO$Sn9jmv-eW(2{ zt8~%;q^IK|-{>(G)84g{ZU;OuNk&TlQYYi6kM`tOJ}|G4*~!Zn!6Q=cozj5ynwZ@` z458A84yPRMi4-DdIUmUGiv+{zpe1s&)_GayGV98W5xKnHuY93j<1cLi>viD#Y#9rG zyAe1da-9A(13K0#MGKF6qmW+DAL*3PV;7c{{;8u3voRc~{GG=g+=oKwc+!TriUVhQ z=P>6Lu!B#@^;mBFVD$rZe3~Y&G6Rtrw^DAw+=dXJwpRP!tHwIit zuliS);4^uLx&mnjkajUP$MA`kP9Ko?dO05~J%yVv*QvDg^V4+PE9$W=e}M5}S@YOb z`rePwMg2xSLj&W-ipX)|30}(Xbi$+DG0H9;X)Je+6w{-a}ZSjwd=Aazj=!p@Fh)fMKEcV@Vs6inUYJ%XGOw6f5%Gn@NLrwlNV2mdd| z)6onfP((R7G|*}67)1=~e*r~x1J8%d#Y@f)VO+5qMcGqk#TQ@8h*d@vBA>&mJq0cs zTI?!bNW1QMCF}T^cOw#q06quAyD>ik>8}xi$yNO&mO~n9w5vb06XnW>6d2KzX9KY3 zzt_a?bAdudD!dOok!3@Bn&?nsHOQ!sFaTaX2P6NWCG7wr8%EVJKC>{<|MmkY^NN#f zGf;cEbvER_ZK%xq`^)xldoK4}6YEvmSQV}<+Sb~QjK1}@ztd!tt=RzFmjQSnLv2R} z+ZI;F12?_1auhypXtLYTYOTqj;jG76ySRF2mshImQ3G~uTaA$%${tbX8IbHFZFPQm|km)K(AC5SAEdu7_AtSvJcc|CU7Y)DXthoYb&+#Wyk$glL!kg z(y1ZNXQ2@Vj2#g~mkN5{D!h*`x`6$e2*Px3Tx*N!?=t-%EG|$1cRUcQvUHCO^-RFn_!5)WPctH zaaYuLxRHO*`l!o!cHuz6(7CiV22yFs8OT#}K$XF7wbyyRdAG0PG4SZuGX9Lc&bY2$ ziw>Vn6iz#WnxA4oZfhJshxsCz@)>UF4D(Tlp;E^jF!D-&$6x|SLvSv1z#SmNX`(mm^-~Vx1P9=4q$fc7J}!Dr(7nq zyPZDMHl*SiaGm1m2*mko-=1$7#;~Lr!zhy{*T{mt$LDv2^`t(LUYDF3$SWE$KA@)F z43ZL_P-f|=av7UsR0MLNF+*B(kr(qeRwUQ@<7{$W%f%Q)AE6gCK9!X+Tqkq2@-l9q z-8xHi3g;8o{@x$|-ESCR!3=s5Lo5xO2v=rYo+%LImjkL}3yC-39YzL1Q2apUd735y zmNcmsAPyidgOsx-mA3LSDNIUIY5XJ5^1~Q@QKZfuaIUD7*{%kUb3>clI^>z>?l(=< zVRRqlm?j1mx=%Dss1Z}@l0rAu#~V&_|8KO2)Qeo z?C1vuj0c7D)~jR2g2P=F*m>+4iw1v8qq2gLm(icJAQ0YKu7ydTwB{vgWogr%DhmZ& z<@w;V-G{cjseJ89{e7vHUA65EcK=q|;r^=e#fwcDf~zu&)->s_`86=t-gq#JClB{~ zYUieC;T0$b&8qPlLr~8vD?6%}UDLg`CSI{Xw(&38?jG;j;r3lS*ygq6W_vBe@6FL( zdnqIE<^Hzn)nv#n60ZqRNHY5Fn(9$`cQT-E_~KdPVa3KaibeFO-D;i71~0EK+Tv~@ zWAwtWh96gC^l8lBXxw>6MLfaS<9;^`F?RFV4cy(^7yIBj{f(^ONwHrG`Q?-c@0cAP zzG#OpYG)o9V8;vQb3Y(PqZO2pyqt-#VaTgcjoA&+OrFLU(uzOVJT*;hT$XSD#xBwu4J_gOvx?=a95!fT={82uH`PYVK( z=eWVq=%U`x7^B1N?q!lUa|P+q&EzGlke!Hb0QNA_&GD7jXakX7m*JYFibG%e9AP&e zQ4pKHV^s42G9jK7f4U(j9naiv-U;=e)1qhSS1>me*nq_C{SrTA@&<$a;eF8U=AT@b z-+AC*cq_yRCd_>G;<4Jtv(tC|HHLdk(N{`ByOTc2QLnLCbHj5Gx+WZ} z>~xxrUMG-nq#u9y1U%;^O(66$qXEz;F{w19R~T>kIId8O;Tn6;7MTYa;{dvnNO)tt z2|X^gXz&L!;t#fqe;h;Qq63gk!ntybt7=GB8*a!#wTUtrhwK&-MtbVEtZ3e$39AG` z7zr74Y`f!n&?)hVQ{z=QfIAEC%;dPha$NETXwWzSOJHZ=#SQXI8q!DME-PT~GVIi^ zhJbuI=Cgnb50akpLVIAW3rtvm^g+Ty-w0!S!PJrTX(QqAJ@J7j^>r^{BQ8Vg8F#D# zsW1E;G4$h(___Kt8L4G;j8CWzRtaUY>TUPDZQ0;cKV>Q?%V0{Z96_;Wh^{rT=Moy@}hyw>d#Yz zc)hmC*VY^D)!tfrbFkLFI^1esz1(SE$gp~|zvVB2*>$8&#>MKIjL5d3D!1CAZ8w=~ z?PhIH;oS(7k%5uUg2cZZa(mq_7gxSBkl%9!*=_SV!7gX+gU&NvC0BpbSF_AfH!f+t z@VODsm7g)pSY&LHhP>$)ToveigxAr4SxyNbk#f;lq#4IHfIpBv49!0Vq+t9-_9zb> ziGHL$o(Yfs8g&qU!jd<1kLfU`Mx6xO2vi*DmfILiS-}yg>&KAv%VEnf@(85OnF~k{ zZ6l2-GkM_)eaMF(;~Y{Sh&0DATa`Y8`1gtIZU1r!@JQB#6RNig5u4m#&GyQ`axhUKVi=S@yj$XBakwF ztSo?d=mA43VZmj1zP!0EFy(>J!-pa}eNj}qS|hEM=HC=T$Mf{e{9NW05IO_T)ej$# zPyYf^Zwt?{r!2cFV=O=5U!YQYj*wN~Kdm!-CQZN}5lUw6*a75N&XvZf#tWMy7@n+t z*og8kSg9C(*noJDYi77&2IM04_?5SaqM}q9B8VeAge4pxE_ugrAmMR=(H|fT#w-uI zgyRO2hJhX&l`l9dRg6I}3bq8R6b0o_<}!RP3{3mO4*(i}43Y<=jIn*d*twsB)E^un zBjW+>lqbC8)vLGgT6CKvSu2d>HG0H<&JHe%PE-! zpHryI&(G!KIpwB4>PAio3oO?SuB|`#OW(tzo%Z#YFWOIk`r7#Amq+c*tAn<_TCWfJ zMG(%Gu|vn}M%vHs5MN&0wu|#y8G_gC^yI32Jicrv!ejZ*&Mw=#52t#*sEd>}LGn?E zsJ0=vy;olYgZn${GXCUBk#28j!d~N=9o5@+JTRvCP3K!Fk=w?O;FggOQ$Xo38+hDB ziQ>wn%&L}2+=u)h$^i1$pK{?{@u&JJP&{OeiHDqj)HC@g7sO9I;}L|{gpK_{9{3-q zGG}BmkBpFqz9*cv5|%t8jC~0#$3F*7!>U^jXQQE?x+sgd&=CEUHbqATl9n`tC*7Eq zxRe*#@;ru*_#8Z!W;yK`H$r4QNL$m-q)$6T>sStH#(qpbc8A8eJ1r)_@G|JQ;+6&T#0BHmE z_x!&LQcuz@yUzhU4pjdYLeDaekbFtM49|t9oP^USna>#;zY9KB*YASl8Tqk{z+a|( z=pW^kXI%QzI#e!YJXe18dml40*hXFekqPHlFs{qLDMJ(FyzH$EJmeKUlAT|836LM! zLQCi)jH6e)Wm)@^zx}tqQB#zWTBuN~s8y_2F-I;}K(M9nPyHV_<}Z5q1bsu3FxyFNnQqBAd{kYUHrg78vc=dUXex44>yBcs*E)bGNIbaSGzCOQEb<9 zodk#B>C8GvtMxql4`xZIDFYQU%eLZ>-TWQB=@9Hh-x^=yB6D)Nmc-oRwWW*^ z4Uyhn(J936h+oY#svA2^7(9B`f7~(0c@+Gc`?y7CvUADu6KX0!NZ`)TdAKQ!ln|82uDP!!q?Qh+-?X^3F zZKKWwA z#TAVQuD76=6?Vz_O>X3r>n}_w^D4# z2V+Y_8ujFzZzbcO_)=Pkf5@nJXs);*`@;Nluc6=l@tK}A=WK0gUZUOTMNx}<^17UK z>yj(KcJyEATBH7$%j@+Za!m+5Oe*FA`lus}b^9Q)kTw{hS;!oQOKzu8nLfgUt9EME za-G-!aY;@3%mHQq=$M&S!dCCDHNNR<>7aAzo9okdzc?3f&YJ#fx0iC+36?CaqU$x! zJxIrK%w>ITM?}u|WWr;+uCLkxooNd#F((pE{fu+s8580w$Z-k3vX`IZWbCvlfx^)g z%*z^~*cG&2X^79FqDWBsp$_`Yw}KEPJ;zQoH29)==_j(-b`mfz@m)bakmGDUzY%}0 zvEjwK#>efQ{EzH>OP9zXT!rO|e3XudN1F=QXb>NEw%zTO_VQq_y%O>f!68QxI3LHj*xZ$Iuq&fUt9}jITPd%_ z!+JZrer)efuG+u;?zsIofBt>@?l*7S58r=mA3vP7(~qa^?D(u5ALBokarIFX@r4&* zE1Gb)WO{dd!Zwk?MbO-G*Z`5DN4Q+)_X(wsZ7Xaamk%aL)@|T?s zce4NkZY;xf3eyjj{;9lt4%08xHI_%%G7|3k2X{pM_w-phVVTBY!V(Yq7mhksnBtR1 zZI3(^*0W}FBYyZC^lL(l6~e^>c6#d7VvW7f5AX~xXye=?1~s=eP)0FL4D^=4F8N^nK(7IY~c&qaMj~>KOYCKjHB3Ia)>-Weyzk z1jeUjUXvai^8?U9d!dm$PNR}WI-i5kUFFSuO}^Am7=~l&Pr6`*&+%)2^0)uCe``2~ zlMCwwf(bKWOrE`xAjTMwbcCUZ@xws;A%rmM3Z&c-iTCQR(~}08Mup>o3Fpv#;8En6 z5s)cb@!wq6SIr2GFHuw&bYZ2F|7fcWPgc&XqWM_FpL=V<D)Mz)hP2tcnF9hV zHuUg|XF>*3R>nSfOZ8sS;~@uW$!}^T2T~gTc{o-~^tVDqA8YyzmAlG{^X{sx++Awr zbuD@0F2J?+>S(9EdcD`)>|eJd?&#ay@|nDC7APCrk}X#2>{_k0%f(7NxoqwD{Ir!VkCX=k5Wcz}2Kl6Fc9PCc&efI+^(#N-zpZd~Z^T8VyHNPYV;Pxe=gzk+gKhud zz`ymnbA-{xb&?pjwOh{3_L`^jxg~*+u@4PhN?Kh3f;`m1U|Y}os^>s$;A?EiD_vDO z6hiE)?`O_os7hJul$(*(Cv_q+a78PFdP9Cb=%_lR)uE5FOchw=0F=2( z`NV1*=YuEm5?4A7epVaC<2*$R^;bD-|KXqh={ID~z;Go!(K4pP+_(;ekIW!0=@E3? z67n*a<%lp#bAg+n@_tT(8z0C3}9hPmvgZW$qRjJ?b!MJPsTFiIS(Ne(}+ zUEqh9U#SM7M|$8<_)-)4TsV0iS0o>*aQf5CQizP#L|$JCBCE)h%Jm;%!uvfba~1+x zyl7B9NGbDW;@X3Zu$8-Zb@o<%z6O4fvDf@1@XMpk_Uh$!dwICk_SY|D0BR+xiGx=- z0AIr0-mdsH@a1B)eLTBw-^&2}?c3}2!}~@1c&>iG-)@iV`)zOSpg!T})jkt}`-?BS zR%B4Fv{x_qg^Eq#cH7(A6uY!g((JpjuED#;!evh_(Zt-1z&o`;#Wc+)<}=0~3cx#o zj~W+unt(9${PD+CJHP$l4@2s1Kp9mse3e=}g?pg*-xc>{NYTcQj1R_>4ZX`Nzb@V3 zXV0XtdBr9Y8b1&B?)^I(iiiU{rW}*-U3*6uvYN1E>~gIWrTQZR8G7_RSE=}LG!vt+ zK15lUpQ}kkGrzAVV4=lzE9zzCXR_6})7Z2kq|Zf1$wy&iiAe>?vlKg#TjenFSwTx0pA=s(gW6;-AJ8eca`a*TuYU_iIaZHpZIL)NX5i2~L0Hs7DMz%45N4 zLk7L4a(LZD`8g~Pq6hi)ojPk-b>!EFELW4;X%mvi`BbiTZ%;$p;dcx{Gkt=YKi(Zy zJZUimtFLOp#J}Q;>=oDhPaW;_?l0ndIr(zf{3lHhXCs1|y~8cqR>TAIvme60zP^&N zgMnS`y_H-qxE_f`mw0o1!*6J7L3qJ$DA&0!&JNRN+F5PU{~R+=zec$_47z%=?dW+~ zKKxucp8$L`bo~uXVgE+(G|yCq+%bmm^d0kTbV+U0aOuRyigtm zVAC*W(|!;E;(6`w|H+^Dmqo~s0Y@i6Foe+J1%xYIMp6ox;v@;j#SUH))~4KdmAKmh`mc)!vSO zh6q39n~$oa3_-e{PE>pP0Q@mS5Wo+;F$CFFA&ixD8G>cpIt?_s%PLBY=Vja7f76aO_hj&)(A1ZbEev{J3cb7KOQGMqIjEgL;r0gO zPDT^+)jAWQ+H-#(Q;pp~$%=W)xt-!Q3W(eK;he97dC+)}vB$YPek=HzGdS%+G^2o7 znaj`;0US9MIqpdJ2fXk75tKS94$5G@zFxHBlT%M%{(aYjeT^wT+S=8mf7{-F_|V>d zUptQ&dwcu4?ch-DIuIZB>6_9woTbC)WE|hHE2s&SSG}rQWotaCQ9fg*KIQBSlgI6K zE$C{2rLL2aaV2^%B>Aa56mkt}gg_2HKh}fqmxK5Cl^@yVnQ=-!T4~ypU`;&cY}TG8 zp_d0o>Yx4U3q@K9qqHkq(KNZ;uwZgP(z;=Y3wf2M5U5FH_5;rEJaby75lzc58dAu3 z`Ywhb&lywbC-e|IPrk3u`dnIx-8%YOX*MP3`@8v#UK!h}(`TNfFSX=RS>5nqqG6Kn zyL{yLYfbfo4S9cb6y1*=mu$+Q=NTHvQ`pD5knv9(X~wqDb{lmVZ}8y>6mQ@cixJWl z&IVxcVN-^p`p-rmZs)Vltji@0yMuOnnba5luR{xbf?wY8lg?)mvJf9dJHKtuZ!=>E zG8Zu?@|(!)l3&XB!`L}FIq`9jv-5NRJ~wB|{cAen5ns;I?vi81Ug@zFk^tj5yCRyL;p-d;KIAoDNWbSbZuCwC(EIQ#6x@F2s{heU`r`$Cy@W~T8NooC0 ze~Y)2G101~GZqzPy<-|FT(I^(`5S-3_XyGvF_5sz15+WY)aQeG!(k|u;F33Cqn~YW z+!%|?d3kojdwA-KAwl?vv_5{yFlyjsCosE!>HNj3>%u66HilaL6-_)B9dHT8E(7JHe%~J`;Nux4Ny* z>=>~tbfd|Tsz8it1h@>rLSB!QP%B>flGe51=cH`0LN1RYi(zHrR~US;vPN? zC9Ph$V12b+3D2%tJ3W7B-@dz$Ukj>xO-So995#=npboW~J(RoOc9=lahkT5p|D?cF z$FAx;k|DS+_h8q%fSdi}r?iKI@Em8jTI{MVv`mv4yi_>Sp^;&JalX&LZlm(K5c>8` zMj*!EJv-%^nAg;9^@v7Dd$18$6OMNQ%`3$Q#k2T5_IQ?japxZs8~i@vBal6Q^<>j` zyj^J0`$0zF_dk5^Npfd*$421MizD^_UR&Qm2XtequinuY7=!E{@%qQFg)tZ;${gC~ z7g3NEzdBoV9i;KZFhVa6uLA7$QL zD?JPFnm^npHu|J@@8~zmq+c+EYLRZE37JMzkxr-^18(9n;; zC&P}T9oL%s_}N8_KFc#_#=}+ zM+%TP%S_kx3-Oah#1HS^iD&%E$hE?hMtQhfkRM{Wy=ODFd`l=zb+o`r->acTzs0pSL7EFX_;K zLv_p<#CajCaCG+EPBxvOulV9}#XH6lZ?E{^4xLTXwg1t-_wRi}f+rYal!;X!h2r#o8-CQKaMPp$Q#bX}Sv-d>hpT*y((sIMe@QJ~ z!rM}qU2*pEoK|T1^&FS50MB5+d{Fy=gqJ&~8x29if$7Ugk& z?N*976$lU;sBYhMPz6%&FY!Kux1@zeIiRaxavS`ejQ#-9|njG>xj<*#6^*;JY1^q3+29STkDHy(XiIbAXTS?E1lYdil`apWd{Or?>6$MsoGADY?@`y0tIkXh(x^L$;O%v}jwo z`k={=pHsV)Vc6O}_YNLzwS#@mWbq3LC^H5vqeATwiy!VZ=I&W-^6GiVhP8hgL8B_+kAlR_i(%cD!LFJA(YxVoI{pc{aWF8{`xN z?N)|>UvVvN+@~*Jyb;aY8gDYrG=@$-p0;nl`?h^}|55a; zlpK(dM13rKHXsf1TS}Ol0@jp-yCC;v81bthNBf);tUfA39SKMFx-N@;lYCl#q1`N- zC}G;x$4m#pTyY2JH$BEG3#h!+K3rgStFP#z?5;TunQ+(~&s!4Ojh?987>qi}2L_JN zU*1YE=~KR_g^!%&!r(*q+}@lEW#DnP&<1$NMd`N-88>VQT%4Y@^Rv@-b-`}5 z=S*z$;Yc%nkaiLVAK@>Py#0N$_riDp(tD?cbUjVd*DE>6nEQ(HBE7U(u5Z1NOWHX- zdW1fMMew@xarlRP-d$eU_~Unvc@4}*R+kF9kb#GLeRU(`!zS@S2HyGEMLRu_0r>Hx zot&Ju4>AbZP4}x|@d0D`5~D{vWFf?kpg7{4Prlqn&KO7a3Q)Y!-w38x=riwnhR%|c zF4vXF{(^ENJIgSqD@eMy{_S_UAR)`~@G9Y8^>6WyXT~|t?teB_Tv*K!Ji;Sh4_}EN z_2n(Uvo5`3{iL$BkU@UjA01N%NMF*1^lAFnybvzS4=~yplo8r#Az>-U@tQw7(RwDg zd_6A+L>B-g@5v0Vp0uRVU&bq`*pxya67KqFgI$H$RY~H*SXUX+&`GgHe|8^f0(ues z5c#Hb()&W`s<<+OM9?vG63A;+zgiWOiDz&HlfM{MWh^s2mBydE_>(?$g8>uR%LpdT z^7H2)X~wic!lHyMh+UAVmo{YwGzi3Hhii;mMgVuL3pe3lc=sG8K54-~{L67qo`>)e zJmLK%;ko?33ovd1-l*z8S!#{L7z`c|;z#IByEBmEhJRx^;?if2SUobTKuP9=o(wek zdZaNpGyqo6EK;r@eq(zls@~aMU;8K{?@GqXLwkM1`Mh-*g`5pskwLgA<4nfu?w+r! zV7KY&{HlGtTyGyP*V^05mG=JpvAsPLp4_!}CyVy>!=;Ry1C_g@36(R5Qky7s01$&zZ);qV4QFs_yOf;%L{egLk$zHTkZ365v8;ej4uXZe3$>O%u&yJ3q(J z6ED=HJ1NMzbebJXO#;gIAVtBs!23r{%-tB|3YdqL8?j5otZQQ9`UlQginvvF1Us+c zv&RHRg`P3$CRE!CYX=TL9h%oM80F}V%ZoA+7nv5lumUT@ghoUDj(8Z z$(Ui6BJv3W%l^L%jCC&Ka(rO)1D}h-A0C7c<8#tvoWO_iqILkCfw4S}yLuHYec6pi zcEsq9an88C7LQ~Ao*kdGj~_pJG4THV`}X18`*!?6hS103DLr|Ybusk8!^p-scjWaS zv@fIkpyvssU-CQWKZdCfKQx#p&?CBX?M`qZ1MiwwycoRae7wY+pL{q~$PQq>ZU?g) z$m?M6qYRxh#t91>jiVdM^(DWvE8TJ`!|{YNFFC)D9w}!|V_E}KVtM+K|&T$s5BnqUT zke$dMW%EoNJfpnaL_+z5Ez`6NBmb7uq#tHjey%juU6Lh$GU_IVLf&*xw&N|EGT2DS zGkRPTrfN1izrs@eP24#a*0A0DK4q#t2PG8H2K9|ML zf|y7;6d2$#=oI~tmiq{af4#5#DwA`9(8f+6Z6l6X5BX|1RkG7Uo3m?`1zBjyt|==> z>ZB>~(g)|s(^usYe5dc|0ZLgQ8C8Y{tjdORWA`V18H#taU{B{75R6Vc5PG?rY8jlq zBW;L3Kp7LN{eG=YxvHG{r}RRvK$PcJ@m}RB?e6|Td-?KJ+t}V}=bBLAN0fi@WS)@e ztJEDzT~~)S8Auo+7zPNp&xN7UFe@&~|?VankyT=`qTW$Y{4=ps=ZNR#2lnHO8 zEN*Y$HT7@Ej%5PmF3p{G<5$yavy|nE;y3$*mX-EaG0H4qbO?JYfXgjG_h}NY_&IUzEuCq0965ee8a~f zoP+uo|KeYIC*;kW*X@n^9lgS_0B~hZbm@<~-;g85#j4uG?$X;I-m4FG{k*?>pnlrX zWXi<5sBtGcWgb*tvqPo)C^uH=$Q@?{*|}njsd2UI!vpic<|7}xrejBgI;>|TvhWS4aUzt6avrK6Zpry5 z)9m~)CTJI{d3c|3NV>#<{?gLz6HDY)TupwYCCyZRAOFs$F#)3AaQRZ3SDE*kL~~w{ zbhI1&$`{$t0$=^gQ;55<*7IuORiuX0qhDUeXIxL;SKFE55yPz z$P@Ag&+0X8^_9nSNAH9vbNB##+$7<)2}t8JpGt_I@)FL^&GCEYDT_GQx6NWpVaPP; zR3|!Cg^D-gC43NazK_?tyz1q(Z`_mjZ@u#eUR^2PuY}nl&*n+#w(A>s#;!bL4TG;f zhPc-_VMlpG^AG%G_ghk2?H3<7dUVJ!1kF?2rm?wMX9nqGc*c00`d2W@3G~yZ7{%e; z2;*Cpv77+3N3NcW2M9~Kj3N4z5tj5|$z?ZG;3={~nSC513#L(jo?A7>cnx|bxj7eK zk7YnFl!r@8>0>?^+0y)x-^yNYSL)3oBkdp^e8V0=4Vd! z`$wQdiA#Q554>L1IOynrOd!GJO?^PNW(iCE?f@Y~PeMePgbt<}6;52O7%Gj=oya9G zH89{!Q>SH1A`2ZJFscj1XQeOcG!wfaC|0@y@UcVUFu6Hw89D=%R-j<>qw|F4u?<{0 zS{+qwiys8yjxeTql8(uSF#dWt^m;|_w6h=srn%-2!x$G>Zr7(U$Ja7p&I4;OWE9|P z?o>V>iEs^tFYy*X77X~I4%6T)^WZAlX;lH?k&SyU$CRo?&ebdg~ID=;H`BnR5ZcAd2=E~%Wng(*cikB+?Qd-Zv$^{uS>3EK#F+jV;f_O z#bdj;ywfV4S2z#t+v~%2eyy;D47LZ!|N2hb6=LHLeHSuJvZSAlyVh~GK7{uZaA4f=?tJQqaB;r~(c{jdQok<2#EJo0E9w>1e{Vz3 z=h@sKNk^9%cK-BeKfl}Ta#S9z$4({^2bryNS@LM?&|c06qD1%9znl|%bx;!u#tS^O z5rf<=$uI@hd7#pDDC>$>lIXNWzvKGM8RY*kwCHP4(Fbnhdtz= z@Avuo_Kw^)&$$;QVcqRJJtJ1k;o;%oF|1gYeFC1TRpLed%(r2opW4Vuq>%Q)pR!t3 zs;wBXNR`2lZBYj7@%2Y3MN)n=U^B3xsGpy++IP`zr2Kn8SJ_AhMF-wy(v2d$B}6u6 zT*$aVRZ?Hv($~F3Z`yS@(8_j=TaK@m!~}6i353_Yy}gvzlNHAWU5h3{>My#SpPkJW zKkycQ7v}k%x9wGLACDOGl85Z@qufvg+2-|mFYyryA8%cgKdbd>rM9ud+fpch1W|b@ zw|E00F#d3%@xjr7cOv*O0yLw%RcFernEZ*)mwApbuA`q`hL`+^7yLP}oTq_)*QFl1 zqMXtnZO0TZJs1XA>|2ZJtlnrp6iUWVwq_g_Z zbDmn%gK)%$U%V|Z|D<8L$ur@F$cF`xXE`i#2Nv!C*KJjLs*e&7r<>0SVY#R=3f|=z zS|N{UYw{*7UQ|S0SXTQtq@i+^{8qXaWJL$lU2+k-w~O_|ZbfiW(V-)f*-%;hLKG_7 z1AY{UIEmjQ?!5vSH!wth36c%zCx4d*0i^sWmn$SU1Q>&W2Llh<3Nt8zG~!$%CcNBy zu0!sg<)M*tC|KoSyU&fRPD@xta$I*};`6iloRMk#loJfNA@LV2UFV_hRL*5oS@36h z*y(ndw1YkL?)IaRE3<|BP}TyObH7Tr2MdrFAmLJ{K3-o>S4dDTxzy?Shmeznj!g&V z9NCrzPG-QQ`CukqwC?S9hMrGV{90X&xSaJ0AS^M*UG zw%X3_wq}NGTh!`!y}hWJKPV;e@d;DHU=?K$lp?qxMU&MsjUyYZc1W?EJxY0+UaLIU z{^|#310UMV=<8ralaf|q8X8RY$#7XTJTHpMky$R!3MZwHdY~(zSRp`|0A)a$zessC zT_Ndn=cnh5s~%8#N83_N)ks{uI2}*h<>htz?wjv@Q8p`nuU@^Lzhp7uiW#{*K1o4V zUgYENW{!E8KqZ_#wehW#R|bj)m273*E0R~|H;vo)+4iqP^Kxe(W@TAnO*i>j5fq}d z6bC5{(G~C(uuS-8t_bR1Rt4*605O)8LHzZ|S1K_1T;OPX)ZQG8YQcO%T}?7Vx&H7 zakKiz{j*sG#2tG0rIsZekFTWg)qQ|tw#dZ;(1q#6#2;dSdZJ%I&Wg1CjJK+|=IlX6)mDqq|dd@6vx0}ygSePB_z=k7ce(rR9` za@yi|@hdx8#3eTJgfHGOL4&7=MOY?bv^8JIp^SueQH7*wM9$%7S}P_fx{?;)zM?c- zr+@#Ke`!T92sk4Z?p_@L2r=rvia&${u+!P1@b$_bnCCu@3pZd9c=2pTL3j_(?yQ5m zXQ2>{FoQpxk%QtcuR9?`Dm!j8DsGi7!mHff>4n>BM^*z777TKbPzjshD1sR@lw0LF zD1z8wNCppJPQRg^%FU){ctTA4okGf^G&uB1emrBQgTw@!;$XKqAntu9a``}hgBvp@ z?3JI=T!tZ8AaQ;U%1}#-BF)w^f)oHj=Kvup2a(mvUx2J0NYYon0xljG(?}7A{ z!@V`%3%I#{s?LPDszIt&R#m1G;hplHv`tB?t+l7Nx4q%>f4&=VZ(B;I@{&?WA6aLnuQc?}Ghtr` z<1dn+nBj)srWlI6gi;Xrtl8uC1ieT8tOVY)yYWrCNrC=6Jb= zt75J%Z>?~kj8YB+vCjkfhyn5fMUb<Y!|$9`V%3msy6x?q_V#dBgS93$Di7)UZBz5T0x2o_e!4|g1dE@^N&IX@RDHRE zTjuyj9Jz0hH~xCG8~weL5xkM#gZsbAQRb3-Rij4sSOyAN`MMW!WP*XwZ|n|(B<|GN zG*Ow!J}-*+t!(l6)BUx0Mfr$7#+(VfzVnd)XumGT%&iKfLw{yfg%xFg0#47gqmTTU z9?HkG@;}$vW5-}Gbg03kZIBUqrktb!{Zv-sd0g75BS}#NEsKY60B@d_0ytHjO7UYy z;m$95@P_YYn{dAG`pS5FB~xy<*P3jxJvJ`sK*l!G>(AMn-v<8Ux%g1_imbBM7+Gn^Uo=3G zzPX#UE798bgDO4CNAgxXvqE2O{xZ_mJ>r%!fMlNX0EB@TEt3b`g>oZf;1T@Mbuyvg zldnCfXw^>*)aAK<)ouaMkNhc@SIk*;6heF4nf#y}(l6URpwA#-fIk11AoVX;!~>uYD}ihY!+R^DH+RczNGS7dTr>76D=A&Mp`cl{xd* zL8voV?`SfkFswGJLJ-6>S&`Cv_jIYSY)9QmXkH6%G@y(XM~ab#nTejcKaj79uwq)@ zl$DS8!u?$BUwvw5OXY3hZ2d$+Xk}e?(OC`XRUMU={&B-$cy9sTXi%qahf-{7MUXA@ zyK5TL@QTt&RudA??L>4kY@G8TPLCu!qTf&QbG`V)n~;!lA!R6`?RVGFYz)Bo(Rn~ z6i)XFCHH4KTbM!bRhjrB(o?9C<|$Cg897 zaS+;aMv1%e?x&ZUeDE^FUA+k5E#X_Y<=QG|^ytfM|8kuWiXQ_g3j{Ujv*Ll7Iv7Qh z(1LLVv&I#gV=78b1a&k4fS&R%@{%-zf)iOcQcZ8&P)T(6cjuy!e5siO!Ux zCaez1e#aT#JGtqZt74$hq|L01ZcE`DN#WbogohPBCUvyXs`BRI^qsvuD}-B`0I^lg z@giFO@>+Z=K4s$Kl|_|-=k2W>e`4+R>(|1QwztQ9qcvu6ei;5@3|m$NO&d5(f6$Wp z2K+1&xg1)@J@$Vps2EPO{w>mi#!gd6{|g_6|KeX)Us2*}&y-heCg5d~sV3r+cB%Hb z6@8|pLEDMG{+fnlLfRl# zs;+Q}7rxeue!fSLz||<#NKvA|RNM)x(_&^|2I*iF)CKH_gguzFBYZHEexG;jSrG)- z_949EN&tn4<|wzsRc4i+eqnZhq9s7MAs!}aJx%T`O!(Xtv(p*@AYLhsX~dLGu?MrB z89e*Cf`-9Fsi`s*L?f$tRzq}nBMV7P`%JxNy0+rv! zkmjeLF9$HM>$7N!vH>K`ph38_{`k;x@h+>ZnrmQ64*b;j)F36$5Qx?_E+1hlkN8UctbPn^;!*-&cfY*hoe_g z)>zTu;PAG1e_aBnN#UCr&$$NX`oRj|#Wi>4v5KG>KU=jco3g7cnoK-M`Fps#Z4YBU zlFl~py;lJb_j%KpZJ})q1mZCb7^|Aqb4IAv5q4B3u0#-`{7AX968MM$C>o1y?zS?e zm01XA2(|*l3m})%vo@BpcQ?863nH@z?(W22sdN5Lq2TE!_E3cG$7wtH-FwARVZ7IZ zpb)QOhizo=(g zCGoWs!5t0E2%{Y--CI%!xMoBgVpDR?$^(O-#Bf^?J@^6x+rz$ALiw|GJk?;J;m`^x zZd|{Fj9}XY`9N7+9sPsly|Unbp{!KrMIR}dR*E1bLQtaYi9WL9&lsg7ES#<6VMoX+ zVaSQx`$CE!=N{Saj3QVxBc>F`VK7k+o>-Qk7H>p<+E*dMvnoO1%vS5b1)4U;MM;@l(>v9r9j4BW)wl<;Re0o zL;4x3fPH*OXQgjgU7>zAyo4a-3!dgHR49K&)oG?@uh79?QWS{;&5*53RzP018cE4J zJUa6In5_D3OA+*zKC)l=ZlR3IjcdyMWenB-fj+6p!NtXmc<@n^PF_esvA&o8W;;1K zZg1bbX|G?McqM&zmovx6MRB2KX^@U{n@mDON7GLHW5jK6Uj|&mMSa{JKIOg)&~$E5 z(4H5=kNEXE1vvL}uX0r9mHd!F`1&ns(d9x)IG>xFz>9>Yj-oA!VB&oWf!-eAd3kaL zCKPts936)(dipr+kG#QjSau)`#9H)CiI90Z%YMMzZ)h*hgnJ=M9;EHQ<_<48BR@=b zbC7#E;^G&h23-jxQIuHA7yZ~eFI`4nO4vN1f+3pxr6l?U?4-DBfAw$wtzQ;NVn$*P zK;U#dmMH0HwhO5M&n3L7YDuFfJPl6ef;~fki8Fs5+_2Z1R~0Xf*2nRRpG*Ma8$~34I6mdNd85(P0R`SP85$ zL=nUe@UjT-tWF)0UjN*Ot9WJhVfe{ncLs%pUzFPpD%dk1Y#{XkV(;Dh_!;~XpZ^TV z2t$OMKMTZ)padA*4O%=617hMhZDI0oyUUMyBTT{zv>k4DcWnJiK(hsUFQIA$@Lui7 z3n1(5&8v}=zm4|lc+)F^dpk{v2p2>1Wsrxq`SeCa+7Mr?HOZTHb0?+ma?*Y{yEA_G z!*x5mm`EXo@0^8I_tlQ)1F(C82FwuVzH zYj-y{?di&-dP`e((Zs4U;xySJVox zbnFJ7!CtC<`T;yfouUZxc|ns(zw~+(K~~(dB1m8Mx1CkaRi%S$`Qm8gy72-GVUQoa zB8Z#>tlY(%qtY(%V2J!ckf*IE^t?ZnVMth%G9Z1#^;4hk`%N(JegCNyK+zEe5JhJ| z+>(ZOVhF4J>9?$A#zt8$>+@RsoVcW;I7+wt+Cw}-d4G|rk%w1E1m*n|4^D}vCW zAA|byg3AzA3f*IW7GGxQ_bKSTi6!oHoMl{I6$EkjQH~)lz(kW(Li}shluvce+SRRO z9WUb`t6(7d2xUbEe+H;e59A4?j-CV$fScXPSNYQi2p@O6FiCSxCzWFkB%O)~I;-G0 z9pgvtq~*RL9!3WGvwOHbQ714=y7`IgVnL;=qg$GCo>>C&$egw}lM$mlf88kBtX7Wh7K=O=V{Cj)i z1Jok|gV|yPMZ%`;sWX_oJ_Rr38R+BUw_H{*VLp`)VPgJM@TEAt+o#}je*Yyvz2F;v zC|qd!XXu;qK`XH5hnJAmz}q`kpFXskn+qwL>+SWMs99t5~2cxZae6ZJEAMLjjA?E;j5rox%wG9-HQUGTn^S!$0{Y-B6YvO;D z99FZqLPCm!ltGjt1mE;QgN5qK-B}YUd)HC|FK;i}+0_qiGMltJDWZ2$L>bT?Sz1$B zFj;N(H-*{unxh86DR*q~rlSN-nwy!m(5rtQ=c*kLLOoe2Y`a-88N&JPf7)AR zq)bjr&*|IYqwtK&{)zsJ-_Hf&gZ&F0NjGIke*ctomx1(R#ttOi9(&+9edQ&4;{25R zGNxWZ+9H_t=w&u((YF`Mm=rk;G&NS#iy%GSoR5_B0Pgr_jA3jc9iEplas;!FL!Qs_ zR~jihyr290xZf|P6+D!{p?|>B@S^J}q^$58dF)8RWXxc7h|gp03whqzbv|*ct+KMCdNKiXxzw-mL-})iXw)Vg*D4+CAK4s@Di7*I8H$FO3t1Yo z{1)R^&qvFEdPJT*^x;1jw+EMdNT)ZKaoN2G@(Kce>wW;*aKmS}7d*6p1s{J3`*eGE z0C)H>;X*T>;cfVUXZVJDFyR;Y?C|i=NW1)(LMXt*I{Eu~=zEyBrCih(;w79YU=ueW#{`% zpGc|u_zzP4RwXz!lRkV>9`_Q$Gj-C5+IZI9y+2l~DSg#*b!DV_sPjH;DXrRqy%!?XqNk0H@aRv;akKC{G7P15^0s~fIWljny z3YSEWO_HRq10OzoX#e=z-%44&wjliS`0I9Za^g1Ux|q|`^Y(Xt_jm2PZ$Gp{4Q6lO zzV%>uuvgc`z{0%YOuwbR_v^b}4PhmK^1!dmTv;*W>KzZ-Tp6Rjz^5Q-3+hchS)H3I zEDG(14X%tL0DM@3cSv^FME2zJEuHwtdmW+r6Uku9RfT=)5ezYZXHTFh7#lc4p~<^fA6{ z6d);^^20t4Gnmu~x>07@78Aas?9?H3al30GF}Di|Lph9N+m7CIMP#mj` zNe7;xkHTYq0p&?~DI90~P&i#*l-FT^WW^7+m1(^YQ}kOXf%HD|yAhwS?`&xjxYM?! z@YVS~^*;$BUha7J)z|I#)rr5a4J}sX&sjhwaGaUs+ra>&hAy5^s0yL;_?z?g%{Si| zS=mRSeElbg7hg?S&Kg<;}z$2a^Jo?yK4XN`|sLs zzyH`iTuL5D{?EuuF~vE~J3yK}P^Z3p!93I60P*6-Dr@3V?nN3UTjA>*JD`uiFIizG ze9{5kj}$)`_keP6eQ9^n<&yD7@fM0E69JAW0M@_6TcklA0DZvs;zCDFpe;8`ik{-!Y3Z+LJo*O z2*fRw%JZB-gmGWaD`{Y|ZIQ4%CobX0pN0VP+{XuCeI9v>jl;~opb=ps0SjSkU%k?F zF8U`HAM#QBNa`LGCwZi7hR%(8gB${lz0zFx1xbr?2NJGua1_KX_TGH4JOUUdK$u`) z`FR<5yOpJCsK($uh!Ss&^Vu@hu02U$?;dcVzTWU9HR$Fq5^RVsJmLuDrraFgEu#UQ z7X-WtgrG3-#UEm5UJiMB9JiB=sg%I=c67ASj*d6l$?;Y@I$V=tw%PV~HHd4lb?Mfm z;7jRPU;_`Jp%pD^UA6e%cP>Erxgt@u5xZo9hP2GE3rX7*Jt z3`J4~Z^wLkib1C)44~hN$FA~>Cl~HBJ_{$T=2cpvIc>sr7%x%y%pBXM60m-WLUBz| zDX6A6@gBwbXiX@A&|E2?crk$bI+&|#DS98<)#at!Hzcf%r1w{O4w z&KE(mvUq%SY?*=3%|VsBrl?DXBy&R(sc z41Jib6wX!=hr0|heaE2`Z*Tc13~3`_+&7$~lXrZ|BHO%A_D6;#;`Kl|e}pOmD`H98 zD;`M)eu0n4kF;V3MO((Cl}-9}*--%f5+L*)>Su*dW5BbOKI-Q_qe-5^QtwiROQGc& z7_Qhr$sX;q8?fUQzAY(bZND$ z1}7IcUTxxQBh=ye_}E*`yePtP1J0#YJhcY$5tG!Rop5!f2KFCg^^suGD6Db-Na#Ks z*u(NO(7W;GE)cikzl9mz2)_m6&rt#M%h2X3kO6P{EpO$rHGFw<*Dlq^IWIUPKGI9{ z<|xbOps!Qxc?KxUGT@zXDLX*_iJf@xO=JOW$D}bl51+wPxQAz5KLK&!LHybF1&BvF zq=_DaoCBas$}p@W83;>yIN44)u=@x1VOP2XeF8n9E3|KMTK{`nrtRohf zYE0@$IMWPH)Bq$xsZ`2G;rYp#+?)@cd|(a`Ag@Jf7L4XFwn>N#GyysD75g$02QxJ2 zA^Bk>|6mV!eu;KKuLuImc|osbNSc@urN~9o$syG-@nzM81JRlzwT+Qx)Q5X*eN%%z z3Y^rh)m61I*BNiXjKqL>VQlf2rim+3#!v*;gx;zY&3HTb=|MBtb|VI#v@I!tzk1!I z{B5+?Z?@XoS6dRKQc$D>?u|Cv&bE{ovBK)AI_T=I;*HdfJ5pLUq&Td$@$FMPyWW&y z^U(NQo8*kQirb@PuV% z%1Y)Fby?XIukcyAb=6;{(tcDPkL00&1sbnH2jt+I_+Q%C^nTJNQvN1fPoYY9V4`1$ zu5M>Z1=?v_WtiW2h+rJrj}<=XS$&)S%xWBMMT?8BQUF1J(LhS-is`Jjdng5LMJCGJ zu+u4@#F5W`H;|vyOdBc;`b8H2Mv&5R& zD;zWH^^Gknyy~8ftEE_>H_hNOG8ky2CsHXl05|^ZSAfh=Xq=13iCbO{H&T0Xpr5gWQzQ{P~$oVU>BX zCoC%ptOPPJ;fBc|Mi>Sm_{S(7t2chL-CM}{UzbK@KnVg-Rs_XUtd5}kaSVYseNh5^EzGcr zp88TpUIMwjyYtE)FC5XYDEH=QyX~-&eSGM<|MoPIMG>TpA5{l8A9d8=zvZ`qH9>(M zD6gsm0oVejIjSvc@V9m&2(52FUTSi6>J>s1!1wRp+hi4e#Mwfx0?}unSIOf%8>I-E zN8z&|eY}5G#OKfEDk0`ST@mbo>0}S)DbW=(JQy>)7eByq()Aef9_WR)Ttvea$-)OI zf#Y^1W$;>x{ZzE%MH^%b zbo=MHCA?+!kQZ?Q{I>`GhF>wE9jIRJu!ITv&0or7dIhZ}`^Q2E{*;5Ja#*2F0dg3- zR|Hc5U>-?8M!h?TTMCxSVTUjXkZ8ie_^04~oZdZteY!yM4=jhLBG`eHFY&SWbqgds zfZzuBkC0-U*jluny&@=L`UMXmKvbnXq%XS^xuiEY{lA`5M?VWww$z`u_2L%y*nybT zEzp-=K7Q`eu0wd9d;2no4Qvvo$3SoIA!(rq=4uQU_Aprqe3XP|d-!2Zv*yFywkJhU z`i7LCv1rMsa_-eO8mQ5_6|wSBI#Nj5gVJPG?m?YJ%8Qsv%G*_&-JPrBUuxzxZifd? zQuX< zlo%<2+&4W{rXk9kQf)iCyJ^$$wfwI2e5*3wOF3C>`>Z(fS-5S@;D$@6C6|iV zsJ|4@2PsyMstZcs?4JAXRyEit?Y1RBHYkEylv8bJh7-*m*>>VnRkw{h0lBMy@Z)I!zVXHLv@=bjv4}Z43p^f+sx3TiRQ`}qC zdkk`K-<@a%PV4H72}=BW+m~X;+rlf{o z`H+>r2P>2N`v+D8d1j1YaHj`BH~%mP`pMOC`+h-N^gQoDmY>`rT;q$mxxzNik$CY) zytgA|QI1Lv8B$lrkSqBq9nxhqmzi{O=U`t3;?JL#>}4#>Pbq@EJi)D=7qVrJqGRMX zVUgpQK(7c|>B6o~Yo$zd0bL&fd>?o0@$c`4JUIFQUb zXgdeuLGdo1#oXN8ZfjioW4qP$x5+#S82G-hdzcs{0|SaD@K~E zCWc;2YVe0=QS``%bhB#O)6<%yXl8|2?v$FMFD9)uwi<_eK{3(*>&26&S`kd;;t8hU zxThc>c6TcIVF!DAk0~takq(e_;tm3s@dM+Yc%K3)OL*Hwq=d)h8Dax{p7;ef#89{~ zJfl5tiZQ`;2&|4mYE}eOCjH4)gR-)n@6iwFyato!zMlTcOj(SN6~A}G4gx#}Qnvul zifWkWA?)kN^QQp+K@OCCV6?;o!yDi-I83XpMR#Q9MLd;X)_Y0$r_GhNf1<&DZ@Z~> z@|IQtN`P(3Z!AVMYpS{o3cfS$L7h*gD&HozR}$&QWVM}LJhij4$98^x-_D0sz?<2T_*Y@2 z(D3#!t787T!erd;xgYKFv^_`(U3t7~n`@6!V4kGhND|`*;oI4~Jb(c9?g9gV!z}V~y7re3e9!aH&t0wo_0J~l>z#pnbX^OY8=hZV2^;qgKS;;JD)__=Z?yWOrAJGQ7?^f?y%%}(QMhI?u=1shXpSO zvIX1&>BZz_yD}H}Q_$x@?s>*s#_$suH-LO7KlkV<1tKf4;(6MV@q=+xkKP{U!g#ia zxmcP@rX@rzi`bR>DM+3A`o&Cno`JlU!vUc?Zp5Rklson65#9&=J!A2O+e&~R@t_Nn z1KN*%6-5v?LK2=Zi9=fSMNFPUSIWu?I6I@16tu#s_@Ivfsl1jlY)uGKW8%*h!N2{R zzn-rM;s7QPnen_3Fjaske%Sk0@p+C=Nq7Llk^XWX0O9&Z;Ta4>n7o9f=Qps(i?HfI zo?Y53VS->u7*G*QfQVSQb3tq=E)Q-1@6W5VM-h}q`I86fD2&SqvTCG(I`zSfpH1={ zXlVZ-Ox!`gcX8N=*!Az%PMNPBx+iNSIvztp5;Zn7mwQZ%( z=jisO0PgLw<;)pCb+mQmyQ10YAc&Q<5T&cm8gd?REM@9m3h9&;L5>%$Frf0LAZJ6w zn;TNJxI%@k;3;Qdgk$anyz|yDom!N!@`9cRKQQ*g%g`Bmq2xVqfST1lAs0H&c%HG+ z$(xY8nJXbPR^OHTBip}R8za2Ax@%AJ@tzWw(5HW}Ybx!Y@Be)*LKwJ&^y$eXwCq#zx%?Jdr7ZAmb4 z@7_Th?H_nx-`YG>+p(oSYJ7m5w~Kc*=(5_#_OS0XROO)qa*7p|YYm<`6Ifg1)J43i z**S`W?;g{j!O8)OAe?HRHGc|KrQ&mZFc)Ci(DecL34ZhsAwI?-%$gKI%EgM{(IMYj zmYd3i96?E|P!-=cmDTn<4}B^9$$a~avu@v6`e7j!;s4GURSK@o(; zb0v^;hq69exzZ#>iUMB-nQ0O=;Ux@VT?NA@;^Z&n9z_Wn)2vD;TBz&tL|$9F;!!Dp zwjvM~8EBp$7_DWhN8leGx@Gt0g zQ#jmxj#%l?*8uZ`+?{quFZ@vid){{#c$qRO9L4fPROK&|eBg#ExBipd{8=2SG-z*) z;{Vg%{_V4^VIXz_QvrZX1!0y#?pCs@QdP+xeEjS5?@K8BPgH8Zg`K0Iy1N8Y=NtA!$fDY4zTlg>H z^BjT9Gv&v=45^!eQB9CI0DjQsQ}GiHNQ)$VkT78A3B)~s9fi+JdCJFwnoO0%TXwvr zvmwE@E2Y6-fRNDh*9H`vx0QHv_{OVKN`(X3QhfL(@YC!@&zDki&fCr=+ranj?JFsO zZ`RxESDWpamqB*;Ht=KHW(7g*zQW5G+%5O8-o`T&ur(=F8}0j#vvziQ-+nlowU08d zZ@HI>H>jkTHnuhE8?pC%n|CZFaIAc%*J}T9+g`tKCkI>YV0WXPa9`Zvt`r%rrhrze zzXoaFxuz!M1q_WfQaqYw`^;cjjgkU(zb1ZIlR#UwP(xYa%|e$0#$0x6)1b*GV{_2#7wxeO$=+oqiiE_xv^=4FqQ}X zz)Fcyf(FMf%BCvp!9L@=Pi&DrIDl1X_RTvV_8e8j` z;m-MW{Wg7$5V7}XpuPQrnP-_%1hGf%%4hzJJXwUVv~Zux?ZKY7kr(v)C|{Uap|fH^ zekvrXLVE!DK{(2iG_aFSJ380VC&xFu|mpn+ztBfd^gYvhtzw0-DH>CWr-HW*;{DOh-PGG@HgX#YZ!2KnJColo> z4|J77gHo$NU=iZ~S76{hp364-&bQJDw}3YK&d1|S@m zG+o&tuT*x~FOW0>go_E1f9%PFG(!Af;-oBufuL*y`wcQHf?Nl)(RL(!SP_J95LXGz z(@4qa_-=!)DkdK0R?)l<-mcEAN%ZD=9>i zcBp)gtpsu&Zd1xApO50~4%bx>Pt{PJ#y1abhGIEg^$O$IcM&!zBb;jyK?o~EaG}(x zmwJHXN|(v(woO;~IQ^vENyzcNWRySzgIBK=hm}E}D-uq`uagN^eDDPXF1Mbwm6<3n zWsMh8*bd&>L|NT$eDdvZ@2DN_ANv{?zV5L*5^`n_x4mQ4>rjgJcH7w)wXJo&`oY#X z3Zi&PiaM)=zJ_Iub9*~d08iShH?P}B%H#FTP5b!awEh0K-?fh)Pt_0i+OPib*X@_T z_yey7?(XiZe?7V!+%d@cDOUbC2gs+m)ETU#J@5jJOa?Q50?bNOtpIU$k?)Jv7csrk9BY2&N52(|7oXQ4ItSc_z7YO*-{5Cc zEHjvSetZz`$UJ#<(q2pHMUe%$`-~MTJ|M4Dq&!v{`lr7d{3sWbC%bo$Czqj9{&2_4 zGeCb!{K!1&g^4`q`#TuYC5XDC>XNMTg9?_ zwVK9KSYEEERWs{Xhw1jK~$7IwK3@o&mdu}K*=v=c60ji#`Gp{)oZ@}E4=rG z6@lXIDbLqS9V zyIRzj`zH$rBp<;CF!CGN8`~Bqh>keBhZhh)*6-{5;VR5$pJg zVsvF@Vasl$UB+AyT={?hzy6;pTQyoLUX`wfqe65fGLP`UKVb=z@D!4n8YX~0@u*-b zNqoZM7ysCk4v;*^Gj0LgV?tC+;uDVaLoDLP9ZWdtM0p%ngUq%FdOzcQ)K%M3M}PO~ zxE<~B-Bc7DmBSrUkBSe2J}G+>R&<@-)jduDmu;vENM5P4XFr1&Ntm#Sm$VYDf97B{;lMuqxTWmD{uy}ORD4-ixC~ik@w*FBO4hbU zZB@c{`|!BkuPGfEQ}y58WZO|48$m5WKHGX|mzSqfY|bQKCvA7@vF+{fX|@$9EGzBJ ziDv3j{Pr|+-`32X9he>-SB~23LA)o@u??&7pk3bFx67-kw|_5gCT(qV-%8od7^Ogp z2jx{AdHLY(^jq~6DHV^iw#_HuMr-YGXR{sbtV>BE-{F#2wWBYAmJ&-VvC0PxCR46A zfgdP?23Uom{@(hvV#6w>+FpYPD+mnS*W;Tx-(O4dqmA!)DTVED6q{AiSwzKtb#q;9 zqWEr;rhFN6B?NiaFjD-iFtiPBYpb=*Kps0%yeuT_UxEa_BOGq`%Gdq&meoVtHOL`= zC->fdWx(1I4Zir|3n_so4*Q?K`Ood|{=fg9_V<7P_ic9j*tqNO*MIyke4pO&@hb@^ z4V+s$%D?itzP)XSM+aW@5T)9d=!^S@58t)B+g6h~(TzUImlT+capVN$gpdC7B@^yh zyO&}`TYUTNx9#`8|Gkvn&31atCk7E_s*C81GB{B~U0vRI8_6p{1K*;EGr5yQF?}ct z@xs$eXx>MA9%lg8gXzL*AEy0;>noILvwi*kUHg}R@-NyS{^IL)B&7j4vaL4b`>>qD zMUIeerC$?ow?XCb46BkuxBZ59(@K3~sCHhwuq27a(?c zl{N|AThf@zEtCQ#nWPD+ zDj&u#=;dl#E)+eAzSw7c+kBu+-?qfX9dKI4MVRiLZ@pr%Xor1hYjMjL^bzq+X@=jjR z8KevV<-q?(&~-Gz2hy*~UM8O#O!~AP$TMvVLIa1BTd?QrO%^mH$0C=pKZ)<)DdN9> z_s;R%AJnRp7rrNd!tQCJf*<8zB3HMcltQQ(neAx@1@gE@zI7ADgT}a`-`fB5xBp@O zt>GSs=*WYeNMIipGnHNTbHTetk6-*_hXAA>!ht-8P}m8F9f*6FD#9v_OujwR!P5A| zOTMWS3<%M@QlRG%=QSiKws*D$Zsbq-leg0l$^=jhxpX>p4dNfSXL)w@2*6w^OX^zg z6{k-(>0!>{>3MnpVG^!S??o5}nxy^X@-5;mr@`~X>Ww5T(aw;U2fz_3TIr-kJo1l)kH{b_QPDx6>;rgEtQn)F@-yR^lENeRW+5 ztIy{(?7I- z`0YQ+{-3?-hNAoS-TU^ZfBL817G~9tGgBx#40awYCA>KAM;g8|Mm)w!M4j_%?!&AC zvBK+n)5KTM10}BBRIb66bl^_>pc(yzx6?_p6mjGb+wn{W*$#Xt`Jy-uI}C&!M+-ZC zhyNuHdT^h>6nZrW?Bc9&Ikx)Fmg=`R;%uYZK+1-5RbJ9P{5T#?luj^OX z@tM1IeqF&ApmYeE@MYHXGI~WoU|K*2xzPaFdl}B8BQg~^#(*370QjiFfNZrQf}AVf zlxHw)$4XocNFZ)`uI=DT-~MuE(y}arkWt>=RexY581!{8!YBHS${htTpN6|v_|(ZQ zuJlp(_zK9rXZ1=8?>MS53N1#pjlJ!6Mn!G*j2 zKZ^@E%@?53DGV$>e-acV>0%NGGZ@~&-t!P9&mKc5yWHqoz84S;kfB$}g7n*&`ZX*4 z*OEC`k{e#>m)~rd^nMP=CwcefoA-fb=&J2D7F4(j+s8p?OkL(YAxIwaOWwU7bfJgf zPgwx;74D#gA6O}Nn8X{DH}XLV1i4+paT&*zCUS?#r*$61V>cz`@TxuKqwmQyzqzx@ z=|BASU;l=LdZOgn83@Q6?85|Vd2>-YfN+UJhPWra5F~Cj$S&Lf;@}Q3aN`+&%v2yk z%9ZK-f^j1a%!K7RLKlsh|FiSmjTGfu$o~JqA;#D(lim0U9=Zip# z-QiMyl+B@zF*8eFrY|NqPxBK^#7ygwVkThclSbZQ5+lTnTa=63=`*Lc2Vg=8K zp*5&0SEZ*xWRvqWqM-ymvup0gL+Ry9E+T51jc?n-m=CUhv?6w}_tajW@Fp{NXyB1RdVnv)Q&P6LT7rIw@Ve$27(M|vt!pY!0C^dNOQOyHn_RTL zEu}4=uBtotc%znWRJL??MtgpPc5ig3vK{-a+x^`mZ|xrKzH%6pzg;PTdve>;GjHtf zvMrA?C?$|Hekgk=l)U7Dphe;2d%2uz8f|HS935C0y*$6RfZ$D7&iL)BJl}o)y_LU- z+Kzgl1Zvc7Z(qG{fAS}P(*F2Q{yQt7DEzD@p`39}kxR8X*T(^PzDLZtEWb6$fGwJc z1PaeB{o)z*Bl>j|Kn8S_Kor26>uaw9)wvfGMGdZszv?ghlp8OHpa8HkSW5M<8X-Qd z{s;excg?u~0R~;Wg`tz z>GN}cQn~uR<$eVQp4kVp15$k!7q>yqfa$Bqm$;i21M+1JpX-$$&j43q_)bJ*Gxej+ zq633AIYhPqLzZ*5m#~-Bqyy#|dOUNJ3Ao%S^-`#;9eG|E4H0^9f z&}WTn@B@9Rvx{l*h zq7bgQOnm)@^NC)K6ir=TDS(eE%k8yffbTPua;j%2S1X6r=aFqioA6Z)+-Mnb%X8&B zJP+;*gm&d$WvvB{3Ol4ZkHfQ{hUdbC|Kb^lJ#?MhZ7X{Kd(UGT+d@A8)6ejLe%=6_ zKx4nkRBFD(0+CC4Mkem!U%Ao0IUjf{S|StRkBKJSpM&sRUmwy=nd0^gI;Y-0{ip0@ z;+wSleBuw_9t4uV`=rK0!XvkEXHv`#B|L!~gk-uqA z-*~7=2cTA|e7kyt)@y(LSO4yrBA5WNr&9ehkV>NnCVncLun8A`z=iG_he}3JBtCZB zutN~+!NdcV$+yPzeOicNmr4=1>kg883;vmJ-MXvAj9V z+h_=%N_Ak0xe^GC5Sk0Y4!G`vJ%F2O&@}*Qfqb%zHv_FmK_mQ=_+WRAHb3!GI-X5| zq&=h`hA=3tD!Cx`-c3LpAnlj3_Rpl(``xdMS#eg`MMt(jn%YYWAfNZ5?WPYB&|Jp+ z$l-pWl(74$l(6xogyv;CJef!dTbDwy(cZk?YOjyiq>Qghv5}zM$r%V%RipquNdcT~ zwaIK#vqLFk)0Ot!=}No2g5`1Brc{c@fUJ8iGRh^OIU4h*vuG*TJ%y_$rA<~I?CZKW;z<#u#jjJTty1`;_-%Mqj!BmK5_t{?hrn+hK!u18&WY3) zJfz(6l7;HbTfw~j%ZeZh;13_9u&X_3b>76KAEC7V(Xaowef^7H_%1!-Gx+dkFnyKv zCkAK~I9Q88j}<>&%&ILJl}7DTS1hpF0uM^Sso!zfA6{dSN8tHo0Od;^O z5-8cSy0zZ6^vr4?SH>_&*^p4!RNGk*M7F!ns+_JnrIksYp`G$)B)ww={p#9h78!im zrdy@mSea($Z6K$-*hGfd6hRW=N@5$CxVamddB=g%$@ri`K5bF;!>FFxxrJO_r?($0>lG)>nv zCZa`GC8eT~fodcA!H-T~RbWR4h43zCq*+}Rt;dpSpMyo){TNav{GVf$FPO0U-`NXX z<}Pf)2MD|Dhg;C^A*c-SHR$rl9hw1kWMJEU(qH0I7~&!S*d^g*D*VuMh>Jq)$rS0U zkC3JPgxK9415bp%@$iMxX|TS~0TK^jUq%W{p)e^>6gL#StQHcEG<$y+UheS+xJJJAOJ{nY|h)5AUIX<$2=j%i?_&iHhX}JMGG3L5F zt3ekGPnj?Q%(>nF3sOhFDXVxXQ^E)17D&9HTsnLC_huhIX~qsPFntb|<1XVP-_&K# zRfs~du_l2kC4_;bsgL@*xsMveXBQHN;F%mRMYkI%ER*)jU#@B3+-h%MZ?{)Ro9$q4 zU5btrBNTORpk@pBf%9hDZ9Ls-GmJ!>&qNgN> z6&_aJG(g;sc?o6Oc9i7arj(eiwRS88@cqH49q#QJcQpWHD^C=ap?XOPWV`pVp?t2i zb19tX%IkKb`m4Sxyj=^g^VI>A9Cb3z4f(BK#bOIX%xT4s?OHyQX2ovjNXp$&+uh?+ zQc~o&K4nn;c33G;xV_Py=yBw0Rd%-OQ*OL?vALnV_+;Li@>coyB8Lx+OQ@^p0ww^e zzXl?9?!Hv&yJ@5@?)tT}$FrW~6MNoEL79npnlG9R)`9GOd zpV3pXcL8n`U;yVOH@~pqe4%7v`W2t~!v_UGl2`4zYx%Lu_OQY+OnW37(sB`;cjbdJ zk-p^TAsH$O-qXbCKohB>1HTarudYiWEG4y+RkncFC4Zu*QY6<^mTaT3YUT1s zA!VByCGh6@#>$>j^7o~EE>}OchuJaVnlkz~{O^e#Zyu}9aNajZbguM%UjMXX(#QM>tbjD1vvIDEfE_gUn|jbpQh?L-0q?IX(A(P746v zKCR@F`cZcv>GbJ2yc9uCniY--FK$d~qEm4WnttMVN*n#jJDEz`dC8fb6!#^$acvb_ z!-V6R_OYMPtIOi)=x4}xmD*{o{qfY_Z>+=M*Fg zVDC=+J`DEd=j0m*gMseA9VUDr_M}M}LQG6`5p`4=3q?@M$Z#JR?)L~HH4ZbDKqx}q zkcTsZ*l9G-<$8f`u9xypU4kfriC<|}T+AS_94{!JrRV2Bx3wZq|K1$#wd38bb|`#(AUjHy1oW1aJ@^A*|Kt}zq#Uu* zCxwe`->bX(_VMhd{cw8KuB33TDZDR9)?l*3i!2&&IDa^kvdJoiTGMTg(t!fUw&~uk z6ok>C>dDI9f!q(;t5>gwZC!=g;T+&dcFvj|3}4C6V21K1nxOb`<&M-X(MLm$l{@hj zra0CsatL`I8SItZWG zbU%_%)WCorG^8CT(|Vg41(ou-pD1n0XC>3ux6o#_byQ~qQ2qoZ7PX<1q!wczM4nFYQ)@Ds)SP|qPII`Do20NTuX22+%wW?I$G7jnf zlzoo;e&k;LGZ;RAzHv+Yi)d9Y>djB(vaCW8k~tLIVQ4GI$F#F!lsTZ|3f-5M-0}?M zSw1eC+Z6>669r4{i?UaWf$Aea{Mm-hxlv^E?XdMlyIHP_m-y~)p(Z7gCtmqbTcF^f z0D4<^BtDcM3rfsm-9jo4N+jF)64tJxTLWp^e^ML(3L@_>DaTF68B1JC0pZY`XY zo7z-SFoSUq(l&8VIs5X4*9g~}Zbu3y2(M*~COzthU8%dc&`LQDeT82EV=3{uRGJqK zQ3}}}My}AuFWLA12_SDU(AV!}e3>Q-x-Rm>mT-L@sUMK=eK~L=4D^F<(+7wHEeL0S zxkoAFsyk#eh#W=kGFicHU1lf;?>!Ko$@UD{JqOWtPy{p4^P9#peSORj>KQnpp&@}( zU>QPyREz?%6@(c-06(6AgwJzK@=Kn$CB3*24@@|_cWLzg_g;lq#05wXA_O5GZzMu6 zh{P=Zow{s%K@gpTea4K=Se|bD%@~xyLEx2IAKv;ex$; z!SZuK(wmn_(C0IU<>w_xoR<)Ilwwl1`-`DqDz+aby*c|hdy>*|f2GcTCxvO+4h~v- z`)ad&@ph+u_2piB|DKl{F2&Gmnk`$`@I}V!t5O2l0_Kx!ow+|n0g*WZv z#Z5cstd#mh)=rpi;_q_N3VDNwM2U0a7R2kkDM!K*r6A zt8`-V2CH4X=;75pl)a<2Bjs;(hA> zqzcbUY*qvvj_oj3HWh*`S7I<|GH@XnpjVK3vzq4n`*t)y%H&0i^Rr9U`N}+})^6W? z`;C;~AKEW|`HS}7|L^{+9UL7heT4gZJ32bHGDm*QGD(ls8@~i1!Lupls4kwrvk)UJ zYfEgAK{3jRK%~x_e8Nj9asH1q{C23y!!{pV=#-i5-uUtPJ>oG?^YsCgT)(|7R52>- zz^~AXeAFY91HdzMAD-z$LtnxTbf3ddc1-AunK+Ls7YZu8OL{9PvkJq6#uE%FASmZn z2$ilCL8qx7j>)@+A#eIF;pXsCP;dzAXQ#J_j~RO|l(v1q711$r1(WRj465y%-ar%l zoSt(k@K&Pzs87X9de|LicqUBJ3&NeqXjgK4t9qr`|xPsOfFDil%^lbtnf+CPMuj6vad7?f&SU;HGtcGz{PX%5%%5$qXS?9 zRyU*LGxw zR)nF~VIt?aN+#eHW~EJe2;ek4UaP$S`~UIBieO*pJOj%W1}G#QmS_BlLuaO7RD=Nl zs7f!G#hEJ%VH3xlotfa^M!4hyB>z4g9|o2kgg_wW38qZAlP+!y79L2cP|=0G@Lt zh=lKW+Qt&HKJ+@1pl4PsVL@G3^JE;qUK{Gt z2DHh}h%Yc)*YFB?B(*C|R8CW3`2^gm7syFL01MD=XiA z|E;%f|LlMJzwwm?r)OtU?Dtj14S#8b!f|e=E`?S+wWaGX#Sev#^DMkYJQ}e@zN6qJ z$k;&7Dj;>RLa8!a$&;Yx+r|w1ly|hv=K@P%Knb8uQ3P2XsIxa4_lT z$cFwyDwn~ug|GnhLRgx%1s1UKFKWxrzX6Dca=|LN>WYT&B&C5F`Tm}GL-ZW6?X6%m z5A;BhOkaIT5p-DwH|$+*av01Ga7y_XX4Nx5`+}~y+=kOd3{!-o>d<%G+@AC5P>pIfF z=L=B+c`?Li@MuH&!-jZYybSs(81q~4xaosM;pi7C;V_=?!U}viwPHstaI;b>WU@(F z;Ya$h@4%GFsx?Y1E9^{=>%w&PY0(DdGW35yUW68N+9?wO?d8FHc*d--c}6}jXi1Fn zs5J9z>ky}SegQmI*n*@Lgf4-UIc*47fi~?Hejv2Ntol|O^ri3yrpJHLf?~RVxR6p_ z#1jDYgjQ?^)1}pr8dF#i9BWd3=NCp!C#7V53djqfEI{fN=eM>-~n1X4LF;mm~;GL;MgNF&f!9`|Uk z#KnyQR);Ib0s8dur&5FkSPsP>C5|{S58;wGZevyxWa8$l0EV>8d`hn`-#x1oY$2%A zy?_0>{rCU!Puqb8`04G98ezRnxxA7yW?pUJ5Ib8ERbH1#?Tj7l%Mm(&xCK*|Aa9fs z7kYbO6EhIUOd!OaZ~^S(J9kqNV#jnxr*jR@39GJYA^Xftct3o!Jm7K;N!zZp5?23g z_W7?r{(+RFTPbDNdbks#jU{MjZN$aTBMHEbN40sAlD*ary#>r2Wn$QMR-+!;&OHhb z=gM}Zcx|h5ueXcam3Dr^Tfb}V{Q9AN|MAv}AZPSeR@rvuZcEDXB&Fuq?ZX#I9(W1m z{;KV)EB~z(;cENCKlrk3Y_3U(*zsLpT&c3o-AP_CQ8JsQXVL>g(@oAn4$m>Ol?kvq zk+9<6N=q2N!aZ(zwn8$*VVjM!bO;ZQK&0=%SCn~UV<9x?%in+hef!~uAKdrJ1NVRY z$A9$muYUEb_T`sfx?I%RJh~&LU4Gc139E_l4+>!V?&;~N@BZWdG`7cHtDkX?8~)>) zaVd*~;KMvS|JZ)`{)5v!J3Dn=xYLeo!F~Af!Q0j)qaHL-xM-*67wSt=1f}$H&4j>c`sM^ZlivWfjlmq-=FVK~0<=)Ms3NA@wmp7t>}T!z}0It>j!+_}B;ygd6ln zD=Wf*#~qH{RhfQ9p&3f=w?aGRp^dlAcgWXO^)C;0ocmMTQ=aSFI%9e(nSM99Z4Dll(AQt)s2N^KGxT)hIuT8)fB^U=G2omu`(r@B}xu7ROu8CcUJlND$`WF!Li|+ z$$dM!yw-Sd-Y&0h+JCw_mr``sxZs}mu^%-lWA5zh!o;-XOSzqg@`8M8^d*_VBNNXh z7)WfOtdzyze$~;rGu{3I*G+PY`jI#K3iN?4_xB}p0k^TjPOfkL4Df6^ZIsC~Jc80k z_?^*~#-!3aK>7{G*w}#}{FZobTk;&<<2*L}2XB%N@j-YAnp0-d;An&M=3gq83_yTL zy*rgaI7exrAovF$28_em9R?l`K7)Vq2*U)6amr2}3D*PV0PrV&@`X6$gWGaixB;#- z%lcg&%k}_7DyFG?@F%Z88i@u*fCO>-6o&Z31*=0>U6$(^KX5tx@^g=$gJu7hoi(g^(F4Gtku4 zXM^O)CC#)q?N3|a=Qo4Z53G<3E7L%UvLDl%?iQNA)W*wZ@Bd$lr7R8GT6%^r8JtkQ zKvq(g!_zOQC;sWf44lMEnc~kgkUoP67VWAJVJBbW5SM4nl%=O>AD41O#-u;tpMFcc z#Od<|Fk@eaKFm)+=+fK!XVOUCK+1@0`tFAh?ehA{iiF=BmphXQ%8vqziSnjIj4sbG z*l<=VX-h+y=fR5i!oHA~J@&Bt{5g0j{^#IRVWEq-#CF1zf-Bn0-SiKoPlJ^Cjlq7{ z{-r-Ax5gjS>red&jFmak+2$Y&<~k_e^{6E`L*<}nTUgeOdRn6ib243Ds~w{<%| z?6e7&<<~@FXm5C3h=0O69obVx`b_xN>A3Div&38Af|kl{o?h@J_>}vnAZ3UNB>!bd zzAyRp@DdO9(919&=5kmj6U*?l!OCfS2TNWCZSqhg|o?bzzGyv<2bUJ&x+2O!+kE zC;?)46+wPkO#pdmDUI*+Ro`IT!9ePny8G$_*{KgEK-@Gi(5I8MVtPAuo_@8NLfHh! z!~O`GA@3gef<+I`W3U6>a>XRx5Ie^BJ?$maW z+75-!YZTCxPt&O?2zX|llnG>Z>6b=SPJheTol^r4cF|}mK676Xe`d?E+Mgo;1K($* z1XOwLPo6`2`gx@Wi9A=>j=u)K!bQA=TRrz~A_y&GxK?MU55Zq-(MAD`Qj48>5FeA( zK*A!N@aGF2`0-KvH*elJJb7TE*mF*Yc;N^7pSSE3mvHHuAlqfQk+%=dD~)Q$+7*ER z!D}f`XQyWtdN()MPK)rIedPPbH&?YvM7(SV`z=E9@oJ0O7apZN?o*LD)$fYs2U@)_ z0O8(a;3cfTfiuVYjQ{7Q$b2O9F)JvJz2gnvjmH2!@UjqS`?9*UxSP9c`t44hK{taNH#E z7k-siKqa>6wj5v{bRKRnpUL_qKS9z+KS_B3mwO0W_QHfo_lp9>Ijb~4aO^E7JkS(`T(oU@ITLh(}5(a18zJc^RVam4{|({ zjHCU1*ONDgaR)udKnLP0e6`7-8wrtTM3kd@&Mu$1Nq`lTn_Le5Ey_m0Q!|{`Ehad&gND- z(7^ZVWaya&|AlJo(ON4Ns(We(`3%y?eXg-bne}+oN5%kh->hm~ncw z4WmP3iBPmRrLsTaQ`7Uow3}~}j zg-F}gfQh0%jyaO2t^Thwq)p+t zOj)7tGNim9WeqLk)&u^e85+7x6rMMhXJbu{L`%;39E$Fk_(ckm)QoaU2}E#Xk{3>% z;NiyefW3Wz$QQi$H^i@?qw5virb>v=GTavKypw4olUdt{vpEDV3*h9c+wzRbwlyZ`#ee}da+puE5{T@F27Yr{yhS;#&aZ@*R#rLF zNL~03y*0Wx4)SetLo!D^O`G%fJbYVQ?c)1^-b_#+g=t2)NR2!PL{<~7V9}@SH4ihi zr^AJtI*@;b9Uh0cZs0jQ50gAA-I57l@(CtP{4(}p#-4Db4{a+S)s*@Ub`bD6R6on; z$~P3tlSkw=KJE^Zfu-;%AGzIXeCC(~a)URpQ4~=ck;k0Nqa}@x7Y8s+PinG6s>87{wU#$Qd@20ncoVR7IO*sY8y)lL=pVq=ga)U$PR&*+3M(^e57xe_dT)I}PGf zH;};)fBF}GDJy5N5ZLsGq=ONP3xm~i(h3dLdmNWA+|$T*JYOjBmWdPy zD}ACDRrkuEEKvjj+)WqZoL)VB2Z&$LaXR-NC|mXKQcTScYA4#j=W|qM?j+sY;j(Yq zp0=oRP)1+(QzM+qH8)jk!dS6VK0hvHLESn~VKISvF1u`lA3RaAV)0x7=XDGUXs@_a zq$-5U0=;Acgj}bu$YvM(g;nM%H!nYt0QH6!S@pBxhberJBIrR}ZkU|0(_^go z#p5$wN9CZ6l@DbiRmK3P4K2zd8@!L&v;dcH$Q!Kq1w^Z|E`a*tmbzln{o@xPOur%+ zfN!FYpuZ5udWQN6h#VzdR+#zbJ9d!pgyrIWUbgbY7$QM0mHA$7V9J}ah%)oG@??2% zU;B6e_TN5xYd8^7IU2eO_q>q<@e9FBNQj{@Rr%6x0iKga54bI-o%~Rwk_LVrJVXfm zoR?=5%2y_X3t>URg}|T(9wD7HtAXH#7={kbp-V1;g)N>m!&p^kvPP{&QD!Eti5CSB zg3Db`Ha~@w|0VYzieMU@=QJ`V^^F?c_)b;64hV zCMK$n$fx$M8R10y+ZtO%8bG$BRBr65#Wvey_SD7`r8$!lq_T0yn3q=8H`Lh_mhB@E zN27$wEgIfSS#;YEFC5UJpb~j_tI2#%Cub0XCyPdIOB7JK^Qt}r^}hc25{#Yqz1^hZyymNT9rAX*j0&e*vn7t3O(o2)u1A3$MUygR zWAF&bN;y(@>O&rmL7f%ElN8a+G|)5mS<2N&E7e8H*cE1Yw(L~DnN3+`g9oGt%6yp7 zryr^)(2!CVlHvS%eiyy%Oex694<9|}yNfXo%2AhyuvBxP3*8CX?G76_JUI<4sME zEtHAWkrh$`;cIxqG#J_jS^~ES@+)~*2&6o5OI=FNRvFz7Fb4;oX-CdzLpu~e z{$N?Rm4e-fUwkc+9K-)rKI+0ViQ!j2NPrV7gMdcZd0FOVl56Y^6H~vUPtj>n-|8!= z7ny`ceHvLQOjvjYpkJ~x2(Lg-!ZFE4E+co5G4uuH?jsXSrm9cX#ELQ?BfYAvpB!xB zMmoeNFPG2sgqBqg!r(4N@GpKduRsSWFrAaadGJ%_sXX@HjqqgXM2CziJb>GB9!a0L zfrRVBBP1Aj;+DaPJg8*y_Mo9~U~li!C0+;;SR3+334EnN55 z9YGEQb3TJ191z(-n1qWR6qQugM=1C%k#fo4E98OpukqufF=q zD}vaG2XE2`iN~rPvv3qa;^Ak1^-E0hKoKM?{=FhdTJSg*QA0as_y{$^WxE1@mv^8W z{FHK&CuyMwQVyS^kzc)W&0F5A5U2%BugtU;{Q&yAEtKXmgvKC19I%JpjWQ87<#oDp zV}RmYpD2DPgS;&aU6_!10HjXhcWVSj5(XD`?yCC8TCSz(( zuM~DwTe!3-vcmSYwi1e8Ihx_fk&19W15KUkkaoY7;4htX6Wx6svtBO(wY$a2u4Y zU>lExg={U87Rn@j&37Tf)9@krlDX+eTZ%szj)!(Bl9ow2X@l6Eb_dml6}Eu5WjE;! z6=va=XQ1qP`N-`oB;1g+pJ|T;F2W@a?tOfKewu#JmpkrYnr{L){rNB)A2H-u3FHo=VZ$O4<Rw4o!kAYCANx_qJ&G^p~JY~|-CK>{a0%rsmon#zLMfw)5$1|1*X9t3qC zHkdR)ApUWKNFfx&@ZR~L01~!`J}%*d5y}pu_JTOzvfYg-Vakp0#0f!ghtPxz;Ktis z1rq;9FwA&*sCWzaKL3{>{z0IBjvFgs`F1X! zK;xoh?#a`lazt>FqPsbWo35VX1Awp<>9&=jaJ*&Z}!_S-|frXZTq90w(HNbY2c8M-r3@! z<}C?gRvx*!=0N4#ZDT2-r|0+WdnunEPsi>0uBl@&TiPilaC1jW-JZ=g&H6P`i&AS6 zDi0DWi%yMlCsAP&44=8p^vvoXxX!2c#D~?6v?s!k_Jn4|0|4er7{5Shy$pSrm*OWL zUhy`m7*tw4I!sxDRG#Nu3Z{ghN0j{XSoSG(p@j`vC*6U{n48 zX@Jb}Q!c{BofRJPO#e?hFJTWn6COxff!_W(=+lk8f2JNl`YVX9)EOxNO_QIyc6M>z zzW;dIzCS%{=Tb1PrEJ_vLAaZW{t6Q$*}_FWC~C`Z3ip_BJ$&l954#)&__=O9Ec^S} zlej{jDJO5;PA3}F2As_3R~j!gVEecQ6L8c3jZAzEWMfD2WW*hvlAH7|DTJI2+yUo1*lD|GainB< zb65mtC3jzZ!WeMKsO#3<#~sM?GUDHF4fC8OVH98NNdp?B zZE$l#(tu)$*egt}_F*SYp!}I3Ef@wjyVG9=J2-gG?J(cmFa8}spXqeme)0AD_N!li zt+o)OnJ#PXhchW~vrP?zkL{c9ZreBC-bxYUYMA?Wbs{kj=sL-PO--}o+1`lvD!5r9KVtxxFx-BL*-V-QduTmolrSMLvK?tYb1SD zpV=rEgR|;I8>vC`C*Jp}Af`GgJirPdyh`6v7|$~GtMgL|LmaQBEZQ`ve??pYaTk7N z2cET;AYrPV76OXFkG{afjJy#x0DS{qJvcaQ-+c3p{n=vuhky77_mw~Uvp<`k3k>g3 zU-~q0=~M1c*VpdTJj1VSW$?K?(xb282e^(hNe4S=ftwmw*@jM<=NA{E{mfs9ATPqZ zE{Y6INduX~c}5ggUMOKTlQV+QpOqroiOXi$9xnQojLFs(Y4BnX>2pqo^57o@N@s_Qv8k8s>XPwe_!Br_a0n!O34|XJq zFV*L9ci+b>Ugeyn`IvLfC|gFtmYs7&qy;L$!U2*8%9vMfR8LjZX!$GT`_yx~kg5Jc zq$lH<*8R%}`EqhIm;ZLj_*eO3o~xnndacdP<#YA_eGT1njEjGzYiZMkppJ#Q}P zRy%tlPCI!eaOh(y4{b_$QzxF0_mpQ<<)gmHEFb$}jNq+J+UEMEU7ugI3n}ZDrx!kZ z%8Na$6tW6{%H^vBVFa^Qyk=tZLr-g6UbwG`Z8~oO3mHR0%LJ=< zl@5Kj{K}K^@IoK`2Yax_#i4wHDzn-NH$|fJ z?f`B86(Jl%11MO;G z`s#}>+DNmDiQL#8=2{tEPMD`inUtO=gtgMgS)D6oi5rk-F!?Rl1GpO((}Z52g_*)8 zy`%&5X$%&pRq0ilKaN}NI9_6Gn`6_6 zRkZ1BrF}fRlk#`fzWaXMzW*Qv@a$g77($w@S|$QJqA{y}kL>8EEykLWb8+jbg!j1Z zZauVDQUKqc?6$YBciWqzop!vx)Ao1Q+h|kt5^Jrk@2iOLSe+^4hVRFwbQ=o6mO9fz zyB)I~%$vc=WR=6Y8gzD#+Gy`Uosc+`NrSj}iNOiEgTQr-RXLP6cdh~bl>oJo6+Y3g z`UZjzf7}*AknkveC?i=F3{Qgy;vP)j!OwQ3zkuho2ME)rXB@SZ|cU9qD3ZEu*Di-w)m^8s)*;y$3=;V5mi`5CA2~-=o*!U@dC^US>nk`<={`rkb*}3k;il?`F)rY(is7c5+ zN*;Y!@yU)nQ3!|fQHIzt&FA6;GO`j#(J2FpgxncSFFv063J~)Jer;Z%;`Otz{0+0 zj~=Ke@XX7V1j$zD#qGISeGQ~-=nL4R6Xd!2(R1vf+TaD5WGsI$<@QQ0;jvc$ z9_R6g;tA+OGUPyC&)NO)!^BFEuZ|M0-LujxlY2XPgP2;Q6!{#eb8%9NUkf9Azn#3E z;XrHZ8`D5~~tbC35VRE{MAqDvVOjlgKSQI zOiW~P8KW;8XhNB-Y#*VKo$}+)nbpK~36zIQTr!aG$QaVa{ulrHU;l=HREkd9H!OBC zB_P<_^V|zf!Y4lNAqH-Q2goB8!JWL5FJW9bnfOOp1n{Qk_LR}( z5X6js5Jk|9riRaenXtqM61KPJnXhWptggxdBtB4dD!;jW5X{qA1YN)oj&v+MF$Y`* zzga8A==GbEc6fAPCGg^Q(#|iZ{x zBi9COwfo1-b~6@#Sy5yq0UGbO(f(1}19uPV3lu{0)-X6kIZK^cil>c=r)xDj&smu; z4tB!B>v(d~lohFK*xQ!J-E$6fv%O!4HAPN*DGU`FWL2LM*G>xcj`6 z=uA31Q!ZFGtAT`vU-wxVQan~;(-!b5D=p;9=j|vjWgSbyCvKEJwi!8x##_boPuws_ zH)ou}(|}xTPk+D;EkT}t8VEyz8DvOTnDo{6;8TP&0}m4=6g?{y;^Pf88qosfg@Mag zS|}(2oz+Cwfj=o6Wg!i$<*r(l)n%$%*9Vkjv7g;jU#0?{OZt1*!TwhO(osb{BS zr-92<{yDGeSMix(6ur4+p;iDjzR1t*Grjj0Uyv1d_nHWb4!Z~Y{xlpfhO9~9-npkxq{V3Yg8CMxe=@2r`P;V=Sn8GTX?37JK zhTkx&q%v0+l&gRWTBb*$0^$!g*Ke68L;Gjov~a8Nk^g?F0#oH$q_s#heo+K_EWdKk zI1DCkfP6ot2xdj_nV)2)-AvCRzU?I+Ngp@rkDE$sIp$Se)r*yG*Oaz(`36*Hg65nR zcfOX%Bm;e`%*5k6^C=7E0&^xgZVpQrnUp7VO5GDC^jPP<%R$B=Kaq1K>xy>7MJ6IM ziHrP0K63>YGLLY?WsD&nlMk+*VuCzUJa(hlb@A0y$_L|y@mhbh#klRv} zH286bPi?~)4+gi5b|<=PCVqX|W|IpE+=uq|)u?^_<*^i!!*;yC*^Z7Rl=oRWulD5X zl~vxvm7+CUJC-oz<&G`!0&n<=XC5}%>|s?XWnLr6>KZEziod<5!I$eMxPz%y?xq@u zYRg~396l8tRcW_F+9G^Yt9|9}GlKA!1}C2FKfE36tqA<&4!w<5e4*fiirCa6=4~<$ z+r`sA`vGZ+KK#5qU7Q*thxitZbt^ps6pA21DD98J7DbR%HsIB(SH3_xlM^6$kQNFc z@mTdk7&Eg)2_!sy=32@neVXuWfhNCfbA->U-wziG55kZ#bCnZmvHCX~wl2V_>?nd! zGI2XUJ$IUlXu2T}*iJ&=tw|Vqg;#W|`j+XHhoK$hTXYiOhn=>}b5GZoPz+OHNpBeF zNZY26iG{aThcv0P3NC(Bzd^7|>A?R9+M?E>@Tr`tf$K$T@Cbt(6`)McZBPa$Pokkr z>Y-#^Zwq^chZZCdH`3=v3f@ANn^($IPNyqGMl1t#r7o3o{Tv6+r^R4Ndq4;L*^=f3 z5$etRFs#swrEr~HUba*5+U51FmBGhVP2D)>r8eI^-1qkH=5{H8>pQIOYhcwg+rRWR z?t}HpuV_|ut%(+82PqTJo_OId`txQsFaJGGW)h2)$8WINd3B9qd<{eX-YZ2KOJ z4m9aJ^05;JTFyQDlU=Hd^AgQUxnhg2R;02j2o3OGlqdAAvhjo&SXo0^q|A#xT#8G% zEg-zr0}Cp}R{;JMrgFgQHgQ=~X3Pa9Ea57wN(}F)F4!?~j~P4TviWnVOez1OE>(vr zTgj2K52!Y@zyB9s5zu^yqfEQyfj^gBbkoDV`ip(-rL^pqFp@Fi!LrMZzQ|AMq0sXw zKt3M8Gvz87-)*l7ai62wgRqreVdCKqZFu(W0OA+iLaUN>bz1`RG8gtEcadetV5doC zln!wi+X=&4>Bz%f^%Ew@D0m>enpHw{9NY-Isq#DCPzKi}{l>(qg*Jb4TaWfYO9-E{je+M z6LYRpckx7MY$vI@EBpU?Mqxf@}Di_&?uRb5{Uip&jW?#NVtK)mx_Q1-o1O{c4`-+Cci(>3 zzWw1tyS}~gYW&7%Q_A0{?HwI@RghIu6h2l2Q4k+gNd~di4ax5f^(h84wR3HqOSXGL zsQgvLs#l>`0a;>&7oeq-P!7&tpI@|_GvS3MpPJBYJ}JH;Z%85ETHn+}w7x>*OQHSZ zo6167$^&|{Yd}4#uBzv~K6tGobm z40mLV&vke8a@YamM!1b(aRA8VwrE`U0`dYL;k>JICwYlHP<_aU{OE20r$d=lFWMS_ z58+9|`b%93<1>MS0!#T*X2O8};*Oq?IVzB!k;6=o2)p)|fAJT;apa-km?V&j(cqYY zA2ZE@@q4#~B|ZZV_T=G=g@o&w3;$p$0q{)tRLT{TKW;v3DSwncD(0;yY0CJS0W`oc z5K#llfaaX?G2s2tAN<0D70dgqSZu0eaz4;25$g1P-RE{pwFVuv^R|B<9$0=3oiITT z8&g*5(1(qGXa|N?;M}cK1bGhBMYC+DEmmV;Am`!bgdvZm@&Ua|;w;xA;PX6UDkSfn z%6hJu{>QT$nVNk+thcEYGgbn*W`)_`?16jV&NPspYk;_D_qP{P^fuf3w@2+4U%zc% zeRa~_yg879!KwfkAafQ%okKGnx&sQ}>iVt*&uu+#w!1dcV8fQ6@Btyfl|FQEc#Umn zbqdd*#5bD^9+X;q_ox{fm%VaT4a%5k;SL1vaTlS=8ou-4=WOv>7z~0ze$**#XG93v zPS-5~V2EMKw?GXgcAv)=612AiZmXeX`moDr|9LFMlT?H^Sj9s@gXg{ND!xFOf|sy! zhak!zbz-(kpNPQ1pFtfZkaY5L2l*YJ96Jnv8)3+vG_tBl9^}Ogm-OefQ~as=r)SF& zlB$7eNn7EEJF9@cAJFBT%@sieEa`IRo8DUZf+wpx)$B$5RNi+V;71UHpWCQ!Js__$d`= zg6ywZzY>#)f}=_i(CKsPfpjQy$)oT=nG8PW9nk6s36NCDi)BSnmLYxz!{A|W{{|pj z%At5An@Xm0f9FKXAYY!jxV~v0Pfy#o-+ySo|L)s%CS`0&dy5{s2b!2@B5@#o8;Li0 z*$1Tocrb%^RA1cK#&zA4FZ=~Rc$Y-78#g}lXC;tH#pRV0Kuutz z5E70-aJ0GCxDJN9FL$>_ZL~eo_@Rj>cLdVcT}M~Y^`b9SJ%c5GvFGhz%Co}6QYP^# zdQsmr8`>CP8!>HGe5YzE-*PLy?Ck*d#QCWeLAUGhJd|K?D+nJ@?gcK!DEf5j`aDb_ z{kRA6|CAz#`?8zF_B@{XJixOIm(|V{kn+xzI)PXG_^E2;Mt`IH1cqnTXW$okxn4>S zJD?J_RkbyB0Ow_ve`vzOQe+m&m-|^)H~d0R(D_AZ8K zOPNy+&NC9;irP?bmz8k|S)nkLi?sZSx$p~NR21x$U#%QEf5uS7qy8Xz2kG+}UFZ34 z|INR7wjv0;^qk5AxCcojZgdh5A^;&4Zp5cRJVP+z^$ZsG6rPGQU;(&OXxuIIhjai| zcz8x=_xery<=0=zf71+qui5(c)`sGs6yDCm0?E%E zQud+;xTt53pMuaWj6#DX4rxLc?4b>`3lQE+)0GKDFlojes18#YKg%C+O3H^@wN#}Q zz{az2u-m;06Y#xxs>4i5)s+V6OU?Yxuchowl+VUUeUX(KJ`pFSa5io?*QXjBKB|LU z$#2}=9v`;%U%YO=_{ID7#TO^-=!6^8QT9cT^+ylz4O=hd@_8w(| zms1{vY)PrEo-wn1qz<6?8ygHR)JGjuN*`Z_;UyJ~6jmTj8+qn!w|pz|8ETL%P`PAx z=MthvO5S+DnA6D%?pX9Zv!Qr{W z3_xM@j2C6Xw7-x=H$u9N^bon_1N&0)eWvr`qJ8(_hxXkMAKEGHCOM1TMsAD-MUa(c z&Ii`Z14;8aG0$YZ6aBw2PI*K^|a#@{JQ!2J$ry&mi&;H|iNhFcANH@jC9=8G$Eo!@tT} zFMk{z9aZ>o>t5>|h!E6b| zP3@~D;T)kAHw3QmK^w3q;iZW*IqSHfh=^)ADMN@E-th?NSI|hh9;Pq*(x&&eBe3Ft4({ir1vTO zxsb4*ij#7tPXmO7CMZ+z9AUhgC!kN#*V2E8gWX%TQpD0X5Jo`C3*XYW`hFU@fSq*N zE~dW|CW>bI3MT1L4)Wl+@6#zWWr<=MNFL-z91wfz986h3o_`AZ@Snm@f!S5%qP(|v zQbxE#PfFoTodQ~3-dwjIPCvHu%ZqkBY!Ug)GlSMJK!&fD^NC_e+R*AH#E&#ShduOp z#GX1XWAEqTOlD~8&o!!@K>96h#lXkvAZ1Eej`idoL6Ew;uk)<(6Q7p}Ob_xQJ;KQ( zK4w;-b9R(TLM95Hv`8jFYs%ou=~Z;bi^IMBc5-+$AHRxc8HnrUH+TsdKzJ}^t`)$V zoTLm<0{e1dqKFc&#~z;h^`@eXlzWcl;+-SSoJ8olt`cLg1dE{$^)Nb$(JW1UE(m-}ZuSovM16kB# zdfQV59;@4KI?n1m-D z82Ohn#01iYVCuB?w}10Dzo9VE`~%Ab2&U2zxIj7q{pujv+VD4T* z+eMpY7RKw)XtNZX^BF9Adg+slR3>H(zL{Sp&#d5akeB6sULc^@Y!zxQuh}E##Q2oh z%rkQiq5CYDW~2w2iN1M#+>Uot{^_j<$rk_+Hew11BPHgoPPRRLkXr>n;9)9xv*n|x z|Aa&q^MO250Jd~UL%x-ky+b?9f%u{W_a2F|il;x7wPrfSl!T!jc;-;DR~86J$_P!K z`8tN;D`o$@ysmU8AnE$W3en21&#Mf$Qly%misquNFViLrFIL!Hp=6TYfsSX=tGQMd0tJC&$^?jRs{KwXAKDLwfmG-Mw zuiLNRe%=1?DW^AKJFcxk3K-Qs6jS*bdb$$D-9MmEb_i-)6hu zo5WlTGg)nCS8EzTQRKHZtCC`|x!cw^Sv3@IGTW00FZj5S>h$;sO;He7jgr!$PREit zGbC>zc*Z@T+Gbq?1D}y%#unc8b`H9Ur4iJJs)1^oqL>gmDIAC5;gzSg4pr=@4gFKv zPoVOD6p|*ZL=q)#gIWzxC-2(|Kbm>SxbNK6zyVxo9jFE(akpE@^Ina4lA>)t}_us0Ma+N+DJ3kosl}0 z%EpQ;t2n+6MzmnXZi6$W@<$1{zT&K*l=3lm?5(OjIM%`4ht&_M&v)N_=TFGNTi<^B zod*0%wV(R6_-$=fWrSzdUQeP8*O`p(m~^PlQu0j-c%K=u%ArEGd)h<_|C8ELOkg^Z zPh?yG8dV>K{!*>*niUiw z?%{;KWAWHTZE&rL*>~p`?VBIY+wXojZRcYteUi^J)%$U4NA=%nmzv1!Z|%3Wja~5z z_knJ?9IWb>{FE%94OEVs)AM%m{b^g9KDCkRyn3sN!krZB58t)f#Z`N})THiOa{PAE z)^Dfslfrp**B(UQ^|8i@rm4^3qMHauq^wyg3OlkDZGE=o;4xo z|3v(I_Z^Lo@T6ohD@(Z1udb(3HWhaID1MV%yjME+ilfkNimX(ll+2_)$P4j@Xa^0M za6X}Qs@~Ln&8t&#qfI;(Ec!Gu#e5}RF2pVr*+n9=c2KRS@F4wX!QZS>W*n|9d?Bo1 zmSF5-M@4Rf5>7Z)P!-V=WBTB%Z{*%WVZsj;J<1mxi0d zih0_q(gI1Zc(stS`a ztUSdQ^$KLX`5=Cuin3J?_R(5wM5)gd9S{~iZm~E>~HVYk%SFRMAVoY zj5+Ej8{!fA=#$#y@IZ1wiY$~wCS!-*4Zr7Xz<#7<{qPzHRiLg=(bM2AC=C{1PuETJ+Z1W`2Kynf{^uq|(`6fYeAaT<+$tUsVb~K!4u>2hOvAfGPU;$y2uF4A7 zoz5xRL03QXXRNm7uCsI}>VqRAN5NZm&Q7gJV!Z+aq z_z!!^Kd-BmJp@AWcjEMj|1uBuX<)u|##K$eS&Cz8zj) zRk@Oa#x^m1g<~1?bEWP!U*%Z?Hp(*RjTzJ#piK|)7m75rfKPbK*H=6#EiYWiyg5HN zU&BMbz?!XDm8o)IC50@(82Bhxvy^_C@X)@E^xCLiY z8iAgEeUtR*>A}y>+@!6~?Ek=CJ%OVofqLk12xjK=O6hCC`X@f^2VPw;L+t}0wEKn zmi|IRSYZ+}OxD}=q*>{61Veh9IfXyV2hzvX|GY>DpCFewzJc=Qg&e0s!bxkvJCp(5 z#zY>n^Fe&v;8V&>Sa>k~FLec~E~ShU9v%RwHg*oCja~H~;Ei`5r+cn%Ra-z!DEr&Ni(|2{~@>-@VhIx7$`V z6G&PhdGz-FIT#_}F#Luv2%-2VZpv$B8vyqJN>)I{H6$*WeCV8s7eB)@MX&~nWvDWA zWf@EWd;bh5b^niZuLwd%oK0W3ZEYQh!MPelgT0uFx3Ae=olZGVcG`Bf_?pF9dv&}k znjc8{-WUCM+wl=g;Zg|JG|Pk!r1)vBrPSAzGm7A*`Y~6+Y-(_6N^926FYh#{jI9LL z{8$qU&G37k3vartDj)opItE>rVbVZnz)ZX#ZVspLra>1!&%pm06v6N$119|{{Tm@e zq6jDyER-#T!mHyG_fzNqF!I7ilGbi0eAaG>?h)zEFNTYd2Ed&(F@i62U4OZNyGP zy@jv-E4NKG8v`wmtYk7c^KE8c*fZ}dP37LkQUbXuh|j-q{R>}xVzuf<>GKU^coYrU z>5C`4a;eEB+iCv%r6w*L8^al_b)m~3Dr>^3QkfP#xPB@he2DT|=ZfJuwyojKnf#>m z@?{r=o6}>7M(JzFiO3XiPG6R72S_@kK-ob01SaXA2x9U~8ZJL8V}hjTGIabA@H3n< zxW_Mf(stmz`VBixWvU$|BM4J%+|^Tn$#>bwx35zaL4fma@elvZ!^w@x<~eS?J^2N3 z@1edtGSrVE5(fS!4OZWIk{go~Se+fRnsAhU^7zCmH+c$4Nb!8eQ-S@d(G^m;Uh{TT800DP4m)xSS%*Jy+xdRWT zFd@s-vnhl6o#-)<@3ejS<*^mNFWw)vH*fda@!?k6+g+C;fzn8x2okp6#Y?N(%7@Q> zNhy>9c>lN|CGe@;-95I;+o=YYhc@#JOuWVFiDvsddxz$)D1q=BG-syT(>ye@n}k95 zie+}}J%-<$&JZVQE!#^i{xl@)ryz9gp?CUkp$JlU_{g7B6jCPYhOpOz{Ww>JA9ttm z*}1-NGthFz3!%%3Az$KQfMUB^`@@EB5gHqfHZ$4a71UYBtBMLGpo7)~5fmrmnppNW6p$LX=K4tchcmbZN z|1$L9*4R#RABSFR!`UD4H}#=UGx*x1E^<+Sb)AGLkfLZM)WK3Q=4H(`A&@c*UUR@5 zFWRf;f9y%OrvY1;yw$BIub`lWBhzu?vhOP?aPSXNP`==2R{wlgD}9vhMh0EUI98lc z%GgQZjyHvtd{G(LYCgYg=O0hogg1WGzV|{V-jf?HN^fmLe88K&Ois2pcf3QvYT)k9 zuJY>6|Dga<4#or_`KpF4ABX~w!~U#3bE1HSNDw2NGc zS@cwdVMQ=tTC2|zj{ZVlna3UC@tihcyR?sAyzzXjSm0vZ3R181QR-DV)L(AAUA>4? zX7a;~BAD_R?OXo6B8XhV9zWZMqA$D8{RcPl1(r=@lAfxosC?dGQ+Q}tc~+a&u__c( z(Nuik;~LOWJmBL8<_EPaeQx@$r_)nt>Y0)S{Az>0A;1!qE8_& z@rRF)VekxL(uT#C6&91YuD8k$y>RDTU>4Bqud*U5EQ1v^eza3BW62wNTC)3oe!kFr ztMWiYa^YQxwZHnyzx+*K@Gu>S9cBp81M%y_f=MS80*Onwq=7w*=L*Z2@VEiQ0Z5Mu zCO%=YgN_$~W_peyXa@n=q0M7imGI;X9Gp{leSFm3zkh3i%RO={eAPl>7R+AuJO|?U zBZNLf*yS`Z5q1HdW5&)Zrk)b(|D=na%K4d;&j**F>pioiEeYR^HXUo$e)hfSdevUN-fzGD^%r8Y?e^-JyOXxt z;Q?D<37Ix7zfc&a>7ouI}62g!|?wnRsh+)V4-@ zZD+Lai=nr+cg-I`mw8ZrfY1(rr44^(1&y|fw;vE{4ZS*q@#xhC{id^ z0OfMumOFzRZ(HJz;K+6Y2>+rWBE+~ak;|qd+yD;mV<#R$2DlsFIxh5${0L2xE`o{G zK9mO1=9zr02r7-*>XY)XFqGM=g0d41_sp!<*9Ms-0ZsZAxbh>MdWQ{d2bPC8_(vp0WJRt#O2JyTys5XV4 ze0lRm9kZc4q>m28gcezbN&8byWEe7waD-vpA^iSc-PIb5pLs>)+S%T+Tn!)0{Zv*@ zY@|Q%43v9K@X?*#zklyGM1~R%g%1;XOIZlV#EFUh+TZ;9zp^3-_CzOBkV^D`8{vXv zj@wIq0GVO0Mk}EkhO=D-m8BSxykv(tXh1HArB%FyDfgOriQsCbIzVb?r|+2nZcmD@ zFrEP@J+=h+xH!waeDwLv$%&M~V+&f(Ak@K?sF6W&*{+mnWix{PWC!ubEuCu_fiO>= zd%plo>(|&j^a_Cy?FTn?T*^aSq7Ufs(C-C+wkUxwLE6jUPaHwWB#d8~grmGMmElkh zwreU1-|e09vdHym8&59v{McSg3H}f*@ zqLpJMv?*l}MUaF4>uq+=)iB%e|BR~fGkczU_l1Au@hNyl>lZ-m`XlI_{%aLMyy({MR>5hdgkz%;F_6&5p6l)9JGng1@-cZlMwFhZX8z zg48i>^mEMs&&zJWOYwT_-8O{gAr%rIlprpNMUeBEC{Je9(cG7b3tu}8P>QIENczi9?c}q3rBD%*0hhkI zB_)r^qX%D31S7YV#sdn7!p|mrI`FpLNcq3JzV_XJ9I|IMa8vc&TGIfm^6h94+g#ta z;>WcbD1lxH^m#y#mk=3?$XE5OH@6_+oGw!R{Oqkj$#VFR@cz7fkX={x4fqqqk8zAEY2xQNa>q_zicGSSG1xP{g2)2L=|H8P`}KY@WbMcwKeloCo-oSa zvLYBH?EYSTjSE^tx#XF!@S3-a)ee}HgKM*x0I}uEi*CTM;CaIl~M@hLA8~8ai$~2k}ol%s|{=EW*KPAP|NlE$sLwK5ns-c5pci z&t+DFLkJpQrB^ujZ0EP3j`tvCkFAEcuTI(*Z{J8MQ3I)Q{o!eM?5ZTtPfzHd zRlsF5Pf2h9)G@dWJso;Gpcb(CDR?Qp9)|3nLGScms|X_0qVQ#_3)%qKaifg9h=CGC z`>2*R2#9{r2zN{b3$sW3NE2m+)eTI965zD0xG>;8=UY};GAnjIa*NVO`H~I;Q4~}1 zqMW?Ua(#8>b|X!~BM^DXh_rkrM(GlVmlX2FAuBK{7j%MO43KBA{*)s4Q+|0~hL^&< zguK=3FGyH!sc*?dN#bRl?VZgO)8KY>yum>(@JIDx9_4`_%E{mc)}(oehY3ymO#Fp? z?xygxHwX=5mzVtm__4}Hxk;y10%>c7S1>*^=K)!TKq(sy=SoLvw{4jWz=!)>;;jCy zcI9}@{dD5D)bDPt+qDL<@%3GMRQt0H%`6rzj13^a{gF+U<-B%^rq z6xzivb_nEl(X(Zu6pK0Pd7g&+=WQdJ$36!SCJU%KmhuOtA5%vZL7M~OPQ7DRU8MjH zCSgdP{E7z_d=adR`=6I961n14obn$$1oQCx4fdB1NL|1l@Si)`qVO`|KgXvej8)Lu zzWBqVa#QPZT#O@0D26nJCnlil#_FMDl)~uA?d#Qgc1*-~D1oH8y1r=ND08%7+Kw_~ zr#+EvC~~auVS2K+J(4o1IPyce3=f1S2*bn>ARY22F8;+MC4cctUTGU>z_u{*lX#Sk zv))YX2}>JuRF2ilRT4`ifB<014|p`?J~~Yym@`nUY#73awviGz;_~5hCpu*q|80`_4yQ}fA-;Q zN=aRI3nty7Pj$qE38>3Hd;T<3+|X(cOIry)dLH5hOkY)oEhw?II}FdL+#1^3>DhnO zOz5ut;unYQPyYCA`|``Zc6hKZ0l(2+pYT%1o?laEn`V7Yv!GRGP`e_-u7s-?d~Kx8 zxT{)iODJz?07oI@oS^)q1a6NG#rVf|D{7{fe9TVC~&i|SKsLUu+wi59{8hJ@r=I(&?a|7s&5NX0weeU!UG6A z+>ix5os%bkKk1QfkZ^<{UdoIKQjV-l#@}%UO#CNhMZ91SeQSAu`#If6kUFFuF$2rb zJuJstMpQp{D%tBx9Cz)4?Qki_9RKw|>s32=UG3(So~IjFt}l>qp-;?DA^v@s&+3K{`$&_*9my6efhd1op<=+_ZS{TMPvDe_i+5; zk!bFF1?9llwW>5hltEVHK~|Wz0?0)@^hY@fQ5W%Sfy)OW$_+ zXsalJv>kvuyh3?!=Qs^#s5z&HQid{!TV$n8&b^}$3X>k`OeF}Sqyyv^`fxqk)~FUp ze0Q#%w|DncytVej*?AkYk}cBl?5p(j%zoaQluuu+CV|NZ8CL!u|M&l!Xj}?eDiY#T z2?|L8CJQq#{F7hPLhVVjJ?P+0v_sw{uFf7cfhL2K2z!kQ1SPhg=l#ut`S_7-4#GO7wxZnT&8>jH=U;o<58o)~6;cY5mQyR``h;SfB*OG^urIP31KJ$v|ZcW zU9298*RY?T*Vik^iOejK>5*0@vOMFLbb1VI zq67+1dbpoW-KM=cK5GBnum7n1`j@|GM^d6TVr(iNRz(EePkS552POS4V!vS znLt>+%<2R7=l+Zia9frk<%VS;yVI^xz2?tcl!R(FeS~9M96F-xaV`r*kjsI$eORAWoMFIUuXCwY#-ZOsuc6HF3J{v3O!qLJ zT{}Wp%4}RISx8A4 zya0fyGA6GlR$T`mO~5Z^4v;vYbzsF!d~kzr&ky#OurKdRNd34r2xZ=3QO;Bk#usSJ z7AU;OM+PQRf|y`&$0+P76?QliG=aBfdZM$d>(D0*GzaK+?H(3BD=;?B) z5_LH(G<#^xtLh9o0UCvx+Be& zPt>uF+U;c2?xqq(N^<(JuFlFDBddLCe|2OHqZ-^f(5yPq!Jpu{Drl{aEIL)+xoH3J z3s7}f02k%LS(yKG!%y*Awd<$x=fHCP=Y0fIt(>>u=<6s_^rx(z;6^^smccGG?)&2B zAYq9|e)Lh&L~wyX+AC!uKk`o4z6>?ttI3MPs%orK@{QV*cP3^b4Ecsey>gxNwooN` znigFd^8C*Y_v%;lJuZNyE}W*j(;##q<^1FMh5Cf(pnk`Uo{0@7L7TLUHjtQd&lR+J_arJ4yr#zU6n|24O!%L7fFyW=(z50F3*pv3BFpxBtA!Pyjc&4KeKg#(jKK?1F z^b~Gb7?^)TRbw8dV;E94UL9o4?D2p7scow7_>+$cu&Fq;dPsO)VpLC4Si-aD!Q`vb zt^8;=_>Vg&X@AiCX}3an0=M2DH~i9O)X!xdz~vv1T>wnl0Z5)=G`oj?{0TiFH)w#^ z#blha5PypX3Xj|V!I96_v+Lj$K)L%4P->^}YybY={X5?y2&52c6o8I_os9cR0Jwu` zNEoM&3-tCt;wL|VbRiaI7!x~0To8US&;z9HkJ8VXmUQGV7N8R|vtl;+{>_{A2VZ~T zxA7ikBBONNq z%N(@3+g|Cj+TeTXlok1fFM@tKL?-nOpSdmZ>z)97`9#Mmq#bZQuGhz zv}PsHbROvP92fK=pR|MDx>R2c?_%;@Sd>rFWV?j0lp(8>n7Krn{%m150C83%jBz6^ z-j2Jt<{O?8Z%PM$@(FN|oG0Ako;obo1;8ZT&jINWH}*cQ-tUv(u$7lzXi$E2*Pdvm z_BzsxzplJcpHS(!UyO5VDy3gQP$t#dwa)1NlM(FYDF7$e@TKCwZZ~c*f2a94~tC!biSrLwsa-4(GEq z$JR6F=uo~U_oB%_gN2E#lDm*|ihSv*%8T4&Y+>=BR;VYutt_78x*;opQWO_;mi(2S zy7|jPD1d4UuI`wRM~qLH@ZvxR=xC&jlz9m2@OriqiG6TOym|b=48$Inln>w=>OJ6> zewOh#?p6QldqKYpGt_+^N0_+Kdr_`MfAO>I99@`~FYcY){4m&goYQ7Vhj!|r;{1GI z(#OP(vN~tg$;SXxt~x)i^!O9{3s0f}&n|=7ltl*G)A=eM<;8$jyu3;}c{z*mh?hV{ zyL(oue8x{Y1(5ayq6Cr$rrTWh@JQ+o`t9byAHW`-pdgWr=?jG8nkHW%qkgrwUow+0 zLE1GF=#+(T$0J|)3?tu_2YlX8^|9QAfHXQx0EQvL6g-ESQg|0~cn*ZI!f1iG$1U+G zFcsK4)Ziikz&9y5;LVoKos>Ho7{-wFv%G5tPkB-q@8Ff^_~luaAK|m~rFfA>P@MeiIrQuy zZgv+few62rV2IDThqBF~;)$M`X}4jv&9*Q1Fn;;PTg~P<1IUbL5OOGBD+oYl@KPk! zxZXty;L4~?pSIeK6u|4d)pmLJ)UGEhV(N7xn@oyiLCcnkg)RdU6KyMdY`Jk%fwLSM zK*Zo&5W5Vh#$aeNr-NX51(3RBW$|;!jOitJ@Sg)d-A+G-wCkrZbr0}NJ4JBSHk)Ri z5*nPr!=Fod3BwjLX<$c~Ky#-jjPUs>piiccrYtENkSz_;193;@AOKMW^HmYzA`C&o zCB4{@1vle6$4%MD7wE&WYYN6aoalqNybyY0kax7o!x4(!#T_=@e7L3q{aq?Az$)elY&JZLPslaL;b2e1Ii6_nLEtN zU-}KJ)z}`LZQr=*m zlV>n-ehMfbyy^TrRus?HDk1G4c2-+*y_6>(<~y~)ws>xbwi$Rqi#Hho}ruD zMrrsndrEtQd}QJVVrNwl``-ScpKor*R(^LzdtN~t?d`X{gTsX)2*MP>zM+E44G8qi z_!1^=!h&uzA%u0u>X--rJ}fI03>KI@W^0K!5Q(sqkJvV)FpZ?`vM+vebZpT%)9g>u zKnfI0Cxu3>-k0wsdyjGNp?~hf8HUxExb^lNUS9Tp4r;`KCc(usj8M$*Nz{l3EnWuP zMF&yLxelvP!;ii48R z7S2|?owRm-HEka+Z>0oEm_Mp6to})91nZtJ_`o?!aYJx(V4J(iG*f2^V0vlbVeQ*x z>iCu|WEG;PY3S9j1pZSX;g{p}dHmNvpUzA6pTeJl&344F6*j(CKnZsbQ= zsc$f#q1#A!>eTa1|NPGlF%7Z`nqM5Kc0yzR|8I z8eF+az}Lx$@A#?;?Toz!#ce5bL!bAK0bTyFO_ko=L_7k|wtFKAU*WW~Lo-o!CGM;O za(~)lJGi!inXIq{M;)X9sBEd9>#Q;&o6J`O{f(}l>NC(ZbaegagZYn@ztAZ3OuV!O z7zo|MlRaM&F7|}U_}pV3FJb5#VEpmx(*;9={yFv_by&vK4NN$I^!vQQK3|}>{~SpA zF01mhGAO(I#L$+dl&h>vP-qvgOpCv^#c!HiZPC6~^hir_R9wbRCo?F3sTbcMjuOZl zzsY;<-_;%L{lgQz!pD^_tn3kQnMa6+GRU**B+j*KKO zCOQ=EPCW@ElO9PlkVed^A^w4RV+>=>37-Zw^ud1MyE76u>~-eiYy0rGR<{ z3#whfKHY%b2Bm5K{4Cre?Siz|qTK>@Pa*Y3U~mED`tV}Nmh)&Rc~ahvm5c9Po3?vJ9!mr|>0!#`G8H4f@M4lR68` z3SlYtT;;P6)SziQq=6m(^p8)Wg`Lt04M~T5XhW3GMI*$bl_QD}&^>A~~jF@(hoE_rr(w;qGk$@bSp{(iL$fI8a}+G-x1d)rd>+KD2i)j0 zpToqB9h1J2eiV0rvZPL-!RPQ(VdB2*A4uJn>(htr!+#RQHx4IS&dV$^qtImn8!$KLZw-#;+pNBo{o zQf79-VkZvif@}x#HZks@S(T;IqaA~^BVq8z4+W6zUtSR5xmN;dd!BRrW|c@_fPjIx zW8x0>8G~_8I5Gj^-unZ|FO{ZZAsQ6{c?QFr#K%2~AkTz{7=#Jo<>Bz8&qvGOzJ2S1 z$vlrI^?4WKkp_0I9O%pUlKmx&|1vE5_2C0i0(-xg!U2>!ehVx?nrG_&Iqc(Byk$W= zw3mcn0cPx#4>VK3ZQs%?ifv)e`%G>{(|gU-Q39KkhgI$l94XR9n@Q8V9Y3_|o2dq| z+je$w<7MfY(%`d8n`|c!v#Ko)gKu*+3CrsUONIw{VWxCBpUCz&+xX%K>SUA>a{pY= zrH+&rgeSsp!G9{e6lX!pAGg_m2`s1g-zr^Tx%@nbHuM|pJ#C;T$`$lPP_ar#U%?#+ zZ7E~iKZk_Fq|fCUe8^ z++&glZPc5wr|mEaUv#auEBitL1d^`@>fjJ3kbH?tJ#*y>cG?vM89J#Da@QEaF(4s% zpd@2|(!ft_Rv!J52rr9hBFSWu)j+RMDx7yz5N*OWw*T11_UaIAPkYpWN*zAN;9d49CxhEVnbGvqNLDzHO_0TNOaqFLZcOd;Gh+oXa&2#KQ`VZLq6DMVJ znFV?7?Rid|W$e=m&xCJc_OuM-Iq`l9h`JmH#2$cBhq+mYAZRf3@eV~DjoBolYBlAz)YAvEwB#*h7P97pbYi^KM@XqrqqLUC^LTa9MH#} zlm@s;UQDEjE1ujtJam{_$qwANr5xU?ZKi5>RwKE`(28IP_YwxMr;&SRN`v>1a4-1* zefl8~;Ud&wPW&hrgH2Wlf;@+T!GsN9huEwlU}sf}&m3_*0}Fx(1B5~!r!VJAcFZ2* z_H*G=VSD$N!r-=yedojeIs9({&h8JyFbOz*glTZ*9Cl8YqPqzJCE4ZJ45 zhjw?XcAL!F_3fP$!rOMocj6=rw?^s=V$gMFWONF?0w885ZGBZi=r7R%!<>!BHfWM(Z z^2H22c=i^kWFj+nOs>kH>@K7F(sG@8g#JAcrw5)1_c`dx6*G1)?U%H?6|6~H+J6C( zSr|jSK7P^w>CMC=9oiB4kRRZeL4?F(KxW1539;mAk-Fky#U@3MJV^r{j1maXRGl@b zvQk7^L*9K^Qpebr>m8tc8Pwr7%7i^>B|M4*upFPV1VghPd;ee$KNTm>y?Y9SNdT9B)?)4Ik(U72=RF;X*V_GYV-k zK*(gTo@dZRcsq@`@Y`9?51t3+@pg?AWSVXRET!N>{<_ES*3@dQCU2|pkyL&sTZ>- z*%2Tx1oiCjiEmX(LGo8hmLLQ&~$m^2}jwQkA>hu=i-8$<3{R^5R_On(Dcx>BG9(d0i&2 z*>ln6`0iFhZms?5*S~5Q#KYVCA5*qYh-u&ddmj}Ci!9fCCeB$rG(l4l2>f?T* zGKkhH0X31E{DeLOs(ws)Zmw_J_0^5~`;O~1=4%ov2VXe(_S@gL?|=B#!ub6c@BL=n z$B(D&x4-+nT3mds@{ebamIbHhmm1*dZ^}c(FsdAsiSuOe0z$BqM-)*MMuewYR0V}g zkT;-L>lKH$b{Rv0NtoJ%Z&JJ1=e*@-(gasTE6F6e)mIC|J2KejaU)q`jAPvY~vy&d(VJ@x0OHdfoIlHwDU4SpoeA#L>(-x0<+X#9|& z<|j~gucRRX)cvR;?jC@QdQ=$Pc(b+agrT=U6s1MkL`Pn@E7x+*z=U)`t`Rlpt}AyA z<8v*?hUChXPjnh@}h4OydP#EO}s&E=&Bu{okMNEw=Jo`m9)eV|> z;;MeKw|A%s6K^=z5f{E@53EqA`CWd5LE(kCSExN{G_3u-V_g;c90ga-0d zT^XO4n6W!HRbRSM8%*YSKNAi8@{8JqF=#NKL@)S)W@Id5rJrv+kMFK=DBh%f)HacI z$T!+t)i74O4-W(S8Wy>Mq)}rvXWQj1W>kyFqBJC!P|p3mYn#Y#`d{%S7~Toct|%{- zFM@>Yk@m;bKjp-@hD4>!c@Yc!Lv2DIikP(&*Dqc+6${JltUVr4Mx_Or9BJrxPXvt8I68 zUxU!Dn43>~)sVBku_K1%WdlC##p=afyS&kW&g!3lFN*l%?@}T%b1p>xxTjuV53b_?z5Rbqc&VI$z8;^$p8{wCeE{g($HNbRh6o~7 z-`I-94ALg75VBgIGkpMQ5TEDt-^hXFNxA@TV8Q{(6Cf=9^xs?+lW_1$;$kL`@J!$4 z0o;P|>-_=J0DlS+CV4Jn()k=NhYR%fXP`l{2NWA#i1F1AAJ5v^#kt#siE&Mgpda;< zUG+@8f%Ib!kVF1eo^t;beFD8d*wePprw{Wf=<6GM`ZkCigdc*RgQT%cMcn(m`ZC50 zQU~&hxooFgF?(cNF=2Z;0Lj1Slk|_pbB%536Tvp%ZZDgeYI7Z!v^Ng>-O zrOgaP%D`-VV~zGf8ZR#u93LLGfANQZ*j~RrX-_Jv67;M~7AF%x5K^90!}W3g&lzX_ ztn&5Gp#iIXagP~0(A#^6yI1@M=+g+iWXBAB<841?S~8d8RM>jP9uxGvO4M6S?K)CT z;^QVO?al0aRkP%GU%YQ$fBkja8f|;^i1t`p-)`gSW4pbZX~y!P0qapppxW+9!jl(4 zm@R3>;*W6q@HB4;lfSZ2X3ToRSK0ET&CS%B39*cA!8`B`=(5Xn2N-xO?sNYELksMI z-p;J-bMR8U-tFhWa=d5pm(s#dH5i`s%ujA{kA03qxK9Bzf(FnPMGl0X5hmktZ371o zC~U*>y<6Ia?MMK+5@$=ogFD@l<`{)U=>VZMc?PSGKOgXTCOz`vyQW095_o>*Ezrqi zOvNq4_`Wf5PNe|xy2yjQT1ae8(hL$SO9#!dpWe91U}T|{oYiONaClu6v7 zQ(<4^wU84kjO~s>UzGg;cZK1KmfiiMws&;cws%IBI}cpVqA{v?rWCJ0>VtdiFQFP` zuDsDEENn%gOPf+Q(uUs{51F9j5B&eh`;%wQk|wEU?du} z9>E3(LNYG6=bkcYp&d*MnU!gy|4l2=3sWeb#4tK z5DkT3f;tH99C@BpKq@gbHpXiQYo2*K5A@{35hOmgIfS#kp$=EQinAV=ylN$k-;(Ob zv9m&c%>47up0=OKS>aOz$47^1H;2D2q|wR>()m=LLidlf<%zg99p@Qmw7GaI_Fz4@ z@1`LPM{J1K&_Ej%YI*39TS<{9Iutk#jkt_$8=Q_?2ckuc1y)tWkx}JB9?s@A^3LvV z`{K(l+JmQ0G$|GvUnuAJyDhA>{iCyZG34@E4uZCp3x&%oa^kk{#mQY5QzpBvqGOX1 zRwit!i5#-K0^jn)r8&W>XSz{i_le5*@i#kg^c!$y$0 z(7_jEJXz!BKU*{DfKd-ekRSMu7b4^cQpSs3+mc~tcSm$fVYuGCeIGwLcXTwIN)8(k zj*~Yz8$@{9<^Z+b9!xV2AC3utb5eC$`OVV}5kaN34FX(unS1#Qpw?Wh4WYuQHzY+J z@^dQ?V@_GTk*amFwa#;LA_^9g4|}H&TN&B38*!Y>9G~&_o?uxULF5$-c?4s6gsg8M zj%~aROmAKwIv?}H>B~5M1k$;{HmY2)D6eCOeAp-DD;V;U)?occ-Jy&)==KSh`OJ;x zp)s60zQHy)desqRV~tI7C}WPrTg0V5InH3tMW-ouyzY7N;+sM&ks;GHtcN8tClch@ zN9P%x4*mm@ww=WW*xsT`Imef2Gs7Ierfo zI~ym1npVu;I1JFP67v5yfBav6O=Gn)gpOMX5FniI(Cmt`hDP%N5ym{|Fv2S(oaN8j zO$=EUX-(@8p8xR$e!dNLb{_ZjpFMrlzWU;ec6WC>7TBc}!ZQzQINHeeQ;rek zNI{D{U@Zge1lF=j8*iWu`BO-r+<)SLL&|xk#k4b?vpg2CfpibCxu}n(&%8>PP9R{K zIa*C-F011C6tbk#SV+=xpprZjg9G@Pbj$Nee71p~!8$v?Zil+~I6CIGzWTVlA>7pN zves7Cx8qp`uBPInml{XpQ157T&>My<4Hsq1!MGY4oIv8e%*X^l4`N8Bz{}eQ>VazXv(lF=z)wpDJ-1sp-XV76FFf`03&qc;0pPS1oNsI)>1VaBA5N3IO`Bd6@Q*m(C?o1b^TVBKg zP@H+Jfb|x2K$YM$gw0YqoB`CMQxR3je}Ip=0YJA&Z=4tpRMt?2}&BN%xq*9U7tFvlhFwjAR6)+GcV&_L$#bd$AR7v1i0V;k~X44 z9cw1j0H?o|r}GVzRjhQNdO24o`kc*YzT&2h=QcY&tQn06HK`Huk;lFeKf|VUTqAs$M7?>q`&x zB~fk6g~+Fk09NoE>6D=~9HFH=xDRw0hvrJU(3mKhw3RpYsHo{2t05NrC5noohb zIumWwoSK?!iTbx74jb#pj$rT?qSN>QE9wv_Cry-d)yP#OSDw)ESO8z-hlbN@()oN7 zo6Tk0lC#gF87p#3&?swllY$KVr)xe!!v|DE6Bs) zDSIv!>@!O{2bpyI3Es(6V>PV%Drb}znCT#l!yNF)JB?-8hoNz3dPL{(uzScQ2%YHP zoK97Q-5&^~qGS;N6sjeXBc@$JpP3(bgp6{6`SJj_EBQR|rK4LRu&xvs680MZR z9SK=4Str{fV5AVTqsK_)(6NKHu6<;Ed@#H0?O z&*-aUg?yHqy|9iQ0O_b>=8l+>hw8ZR$jfjSipPoI)*bDI+u;;mYu{l$tjH;YCvyjI z|N1=AjynW5G|w0lPVE@exB!=PNeCys4kxgT07y=qS6;xbx!6 z(cwYxWq+kj_Jp-%UG%`~&;RsK<3!NR3>FljC}&~77&JZQgpT(JAduq->cJvJz!*3| zI+ZNE;p$6m&<>v#3E4!45rBrF;+a4;nnf)newXt3lP7UocxQVnelCkQsNfNABx_W$ zOR+F$TM62Y2d0?-MJ9(KlhAp!oYS*(sMH5tk&y?O&geXY^WkG%O!2RI(AB!2p^rN~ z%f}d|?p+>j@_7ecX@biOxoL8`iZi$n8-wDyQs9j{9ICDDo%ZaD&)d%Ky|%}1!=CV< z`cga73enVUD{GpZyxqIZgSG2zd2OTd8?c;UKo@3N74KIgZL2MgcY2w`8~}|(AOR7mGoE^e-nH=15|8` z8$SlDF?7nJ2hj=jmFW$_A zKW_%YhcbA2+@T@Q?SqD1-Vb43ukcEk%`bSEPamIh1e3<$40TOUW?Y9Uhd+_lphUf> zFFqQ4tpoLyzUUtt6whZaYx81#tVw4)iyQS+$0vc&ddPq+mk!`hZvM}UzyZd7vLP0j z^*=-8Hn4^b(Di6=o!a+IOHRT->uQC@wE|?c_Fy{Rb&pjpM z=>!s=l@s@^%s7Zp9=vFmxrL)>@a^CaWEu1}1srAo@bfzH+Q`%3+=F7R49L&qvDwcq z$Y%SAX^0!0$9nOa1VXhVAIe|x1KQB?0F0G@q8W|m!LS~B1VRSER2gAyua+6a zJ#fm zHbUAV-{~Hmza$wr`SV3O&K`D_JnS%YmGOcfr-5J|jwOG7U59#MTP0JBxAs_jxsIYym&_5Ha|6o!)U=!iYJW?s0Dx_jkBQ`eZ@q%5k7#G9Eu*m{EaSi8lXP+ z?D@&E`29S7uU2iCFZPMg&BRZ{X%SqUoyMu(-JR|B;Qn28N`oY4@9N@AsKuZwX3|xj z8O|m{j{!qHgX2uwO6R^f>=7Nhk4EP?gsu-OPUV3>jn6~YsSvcypPBi*-GG2-k>FimT7T@Gu@2EPvAurx1hUIOEH>SvKN~{cOy0W47&}f7}kC zE_8gGl6GkeAfz7O0EIU^tuNwzdw_N6_KlUsVA|UN8su=;Bl$f|4UH9QzRZwddK@X^ zBew8jljS$Bn~eRr78UF8{qa%z@%8KWR^xGeCVQ>*%EjA-HfJzCQ-L1DKECfqUg!n= zi204SafTm*+LtN338vf1laCKkJNGtkaT<$`X*fD)H_tB{Y0DYfQy8>03sCO zh<&>rL%?}JFEeN-(BS$XgUX9}$~s7#*~&Q_zR?IxUv^vGjPGpE`F(*tGL4K=V7*Nt z`l+}W(K=3>bNfYvDjyD`cr%=jNvlHGES}57FX8kZN09Qm&Vjz2o6z+b zW5xtP2J&#!7^8Yy7mpkY5xfF>!?iWh+ z6@~ju$dcx&)P122`C4M5yp|mrL-a#1S4Zgf`PLV0f}Ai$`xt1&3Aq(6ijjsm7!TRf zL($M0m=E4w$L%-japW63X-I}DY^P{=o|4m2LT(u_Zg7ATSH%~c^r`u^jjgu6xzX-C zcpztBt?g^mj_)J!7{QvZPPX{r>fLbmmX|phT#s9ImzQejn%j~xTHL14VnTOZk*%)q zL+mSUJx>2tWzh5Z+Iq5n&>=6Ha0`sMb=rq8@+gYu6~j^(iP3?|P6uFHVz z#zV&M-oI^I+nepllgBYmoH}rlbbfIj0>rJ|&>JUic{0dP|MB+m8MlHN>p|DN97Gw< z0K$t?E9#KX$^YKo`}X?f>-O!p-^7@I_0?A~Cyx#ev`H_@JMm4 zn6b~S&C|{v5d!3)KWG7T%{;e_3f&5z18IM@KG9H?dE8x(wCjN80}wYlJr6T_*I&gk z5l{W0R3*6%C6UVWf$>;J7px;}naaciyTqbBak0<`n8`cqpEneM;DbI5>(%UJpr>mWSlWV9~nR-%X&*> zzsWj4j6du4GG7!j-HcE2u44dwrC|+#9v1-F>8l1X;s*Dt<{6ylaItx!Oqhz@s*n)#W$|q{D0=aNvy?Oe$Uz&rgWqh+`jz#myVHwClkM zCu{)gf-*iX8T6_T0#yeFXnrcV9oMZqK80VcpC7KC_0zJl*eg(GFdbtu)>GH=gVXB2 z#+D66vtFSly&OVr|KflxF6GC)7Z-+)W@?cva;sU6f`(DN(omRhwk2s|Y%yrrw#$qj z6OT(p^7x=ICm(U^x{QPC7;5}~ufWeSyOTn`u~!tY^l66I}G|hm(Ce$S*q7 z^@@{*A@P-Gyx6g~H$MCf5BLJK$GBq$pz${YX@lRxqzoRc^%L=X^X5&oL%Z+^+aViZ zKJ+8!QKIKk1!M)Q9kcAvk~W&wbc6=;?fLiV3b&ORpn;4K`;+NJE$D%Y6+GlibmIK{ z9C#+0_tNLfx9{RNiQnw)$H%AHz<73$OIUv*1H?L_E5;vvj%`f<`RLSoouWgR)~DkY zYhClI2+cI4&2nA(ov3_x(-%TH(ne1H!1%?G;WRK#0eKd1K&m-R7Aa@N3VlAI#~|b> z{TgK*ki0ri2_t@W9*$l7*uYRX>(87wBfy?l`OWbf(%_8Gto~G44L=6GK7h)<>Sqdp z8V9b?o3Zek;^%q$G3?i^!;gV=L0gIVV}j!?&{FOsB5p z=+Fs1Il&mMtCL@S_E|WCn;YwL0#!#>RD7*lmBk|!f-Hf`;{upCB!n8O;I9OK1G0QJ zK`0~bJR`tWdIje@?4g#!J5K%t<_!=!ZoT&4e2j@|3^;?zBOlz(ydKyvcsnXSI4hnw za~C*jD&zAM+dI2$Yxhpu+|eY`)zab$Z}rM4Sl@^%q6L2C1zI@>$i%5ryo>^GjZ=y# zqpXO3jU(RPQW|kCH64SZ^f&r8IC-9DVB`;1>qfsd9AyL4IQ4!XsJ#BOzy$xfoHArn zl6*L#^T7II4LD?;;h^Dg;oR+P=fln*>(jRoaQ-$_?*3D6T-VBq(^QplVh@nd8fDB0 zy(9mT3r72La(Ht%*Nlvq_|kgF zG{Dq&(f4Y<0O}wg`P4BcP12G!?fYu9m} z1RHqF^NJ664?w^DvZ2v>MOTE(ck;aUs`D3l7d-L+?Tk-_0}Bk}l?bi)KRFUt*D zZ&gQ@i8R0%9lU=Z_R-G6X$S6}BV@@%kF%AYI&YaWXu7e!(&Ag;7$&l>@rq|S4? zPF4g%keMTxuW4IZbS6HlB7_Eqj-NkcL7Ztr;7vq2&$EHQ`0|T*bCC}7VhBg=VKCK> z9YN~)GcDZqiI8$+DT88}t$dL0)HzOhMSur04YkaD0UWRO4B4-gH;}yen_=YxL>{Po zLUcrI_HRZL&K9~G(y=DhM#gDR|6?pM*pfpfTxs*BBF`i7DS_F$ z#Ibl{KF-QO9_XbGvR8E8__E3k$lu!_+W5~26Z~tA4J9!640CYB^rgZLh;fTIhZWKm zqs(Vo_V)K<9M@La;8^2nDE9aFWGD``K9}3>ot>OR!$!p|tC%!!QJQd3@`Vm5=N6=R z!~^iu5&Z#g!znM)lH*)Pitl@J`<^YTZ0m=m$)LwYcQab%u^tctr0;$YIGEdU~{aq%)Y(p;!gj*aqI z@^fa99l8;rLPm5Tjs1y`H-zIY;i2sr&fAoD_Hf{x{Iza|_R05rK_B!v-ijaele#iy z9-BM)G2bSh?^BDx&k*etI6KehXHD<8`SS*_e_~O|z?#mth1mxgA9yn+bS3w1ezvbd zZJ#*%v!Rx`eV0=P#)~!5GjVj~@sGOF?HC{GMDIyctT~yF?#z(4?4c+Lxznll`dq~DSk!hrdX zb5miA@z54PUg{+;oN)vJ{2`nWr+J+0k>|Oa9y*|YZW9!gV*HXD9paUmQZ z$wGZj>xL^f{T=utBW1%xRv)4~$}*2Qs6QdE)0HMRWucZBU7Q5#s|V@>QBFGo=NWFQ zYnYYiM4v)2ANf}P5vKzp;WjG^5Ph%!#I2oa{Fc{N+RoiO?eWv6ZEI&sjv$|g(dM!y zltZXW5?%V!c=7f&SEf8?!DQp@U<@-(GLsEwI>ud#EPnYwg)%{ETob(-2jzQS8J$MX zns2nB2ApT;(^C+0_HqYC2&AXR@aK8SG z){w5>5Ti)+tig!t5A!oOFhcT~^I(p_(kjo7)d^*vu_bs0A{_*`q0!G|)|8F>I0+ababGL^az=*vemfz+k^8Q&gn)|*75p`AZx~PhZ?=uuaJYjFvd8| z{9wYV^vHn-4&eGGFGBJHq`JaBxVoXZ##+vOg~}U1_wEmn`pI`Muz_c?h4?}MeZYYO ziMvniq1@WVHUb_~;Nhdk!H;>yJ{x^jQ-02n-*1P{ncCt)|HmJH4ExJ7iE-j6`%QZ3 zum1TzkI%;-C`jC!1`O&%fU$vc1Yj~+V89&!D0dvN65yG2=~PZ~jD1enVK9X_C(NHX zSrR=RjPIPSueIkmfe-JubspAK9X1c2L?Dwm5Ba$O^=EMYvL8mgXUhyaUx_Rq^f2ZN z@S&XM$J+s?O;Z6L&i|lXyn(5Dw*fp8QbywpasgKTk8Ok(n`u$SBF%BoW+HlOY;Ny_ z6Zq)KlQZ7?+p|DYmOfs0ES_kgE+ys z1#C1}a}JpkIDCx%_4Roe1a5ip{GFXdXt~k^Y1XaO^$T9hkiYR( zXL#divcb{rij3>Q!G1eBJk*@ZHo3L&`t_@jA-)@^@Vy*CK5ygCb+7?qr^1AHI-D9a z%LT$W`<`pZFpJODtD&Z$Gnz+5(*W~)=Gy~U3A6{qUu`_lSm%`c7eS&}VU5SP&qTvZ zI=m3V!{OnatKDm*H??k;HAmuGVG6mGnJ)mT7Bs`S&GV1w1Y}?66NoN-YuLK25b{AY z$9rCWPNgyq=9-Qk5k_9hgMG;OEI;bSiKOY$E`)8s5ysXG>Bt+(ZjQP66xA z?bmV;AY>im2pU{wFg? z3<+{rxj=;QC~3#ByG~Ot9$pqy8iV_3aCxOeZrAPW-v;LGD}2MOjhR8J5PBgT@_E7# zJ@W!bIDyg!4&Q@^kJ`_^{IcD>cRwaQCquHVS`4{xSp-bFi_??1#phf3@d08@P$n)D zkGDnR4dw;Hye-U}VRFXvNpdP_pG_dcna&({4@vjP%8jrC=S`JWV7}Z2AFKa+!<6hp z2+Z9Y9>NMAa|CTr0LIJf8%Ho5wUaPB%w^sv#$gD<5{4shNyI#2d=;V(95C});ZsjT z9K!?>2XcL<4srf?E)aX*=MXV^JKH=DlN%W8oZHxZVEVi7zYQ5QQ=)874kWifd1Qrr zJ}!;ir^EV*wK((>piMAj7qY&gsdT0>dj9$3rw6L_w9~xi+n>RQn;Lf{l9qL)c8Bty z6H;F-h20@ELdCBp9r3oK60wP4%cPsQJ+JUgYjZWmLKkE_+shi3U0{s{C>|$p1B|i_ z8+i}5HOOSFj-c~^TA%n#w~0>2$=xuAl@!i&Kqr|?@en_~Ccm5Sx_k-puqomR=6vK1 zMB18ckNt@9j2o}xyQz#!h0=!Xi+VNo3m_hQmQabI@3a0J$p^Au^Zhn520-N*>+fQC zTX5M0Rh5-DCv(d9gOlKZ$lep<|1fB1^ian5LJ-Zx!a2)H!5W2of#(3se z$j8rydIf=>tV*iPQ$rQeJnfUU*PAp|IcCp>WW zmbI?o#oYk%x$Vn^G^dKp1L#=el(84{Rx)jIHy?1-D7c6?R04yLH1V0$)8xWcv z4U{7c6VYu@PCkNpf*L5J-6{t(Y#azp+{yw`5PbV@I02jnehMH5n0&HN6>47X;}k70 zm3JGMkL&f}$Dr1CA8KeIeG||hd1(qoBjd<(HCx*o@g^r%EBx+eyp>nx1iTp!Hg?9C zpYy}0K*O(0Fu6gGBV$S#$VaUC*+5X=%6~I>y z%+F3*ZQIBx6XE%}?5O(Wabf+UPc{S`?;l?Ln4g&#F36z+6Y^Hl6pZb3;C$<{>eTc# zo=#b=?>?N#F%6?0L}&dN+=gjP=l0Nr=gt)RIYYpwf#%tx`{%xTt{HnLaF&0&BSZU@ z9)vgR4YV`R^Q|;}eb8lI7sj5Bx*r3#Jw;0&qWvLVX^kI)UMGG17^|Ud9J^0QJMK1W zSmkn@GHE2z)=yj*4|~|ici7v=b36Tfb~^xk4CK3ve8$9lNyEps5;@5CT!s!B%S#&C zm;>Ttxmo8R`J`)`@PQw+%q<+ic>IPF!GHa){`;>Xg4mt2@h3htp+NGJ?ouIfHkwQ$ zE68nLj(+{p3CI=wCZBteCkxFYP6k(MD&vZ6MHuG^;&**^(iU`eyR*L9*0pb~FI~6i zPwus!fBCH4ySu5Y-Rrh|aU`2~rpAQVJd`f^cs*ZNPCPe*KgekngUT~&+!l#%HE}DM z=VRiEKtytaazQf*v}g$RkK3IQ7xMhgnd+X&=@A8XRQ=^)V06NwMDYkOe!}1*B%ic- zL(Bd8_%4*%hZnbajPZ{!c&RR-(z5Zv-w4mkGxDWlIaiT2bcZW#zP-k8DU(TAyjT)R zO|tB=l*7j;*rUIvo@gV;#CxiOMVL{|IqnG5m{m2i=7Z zh2u|t6=b3H2si}1IL%9iBi4Fx(mMQ0iRUru5A~*yw|Z%blSQ71sxPQ=2Pk1JHS#ll3 z+}=|jw}?+<df96C9c{z)RaqS;JN5Ii9ctoROd40 zBb$=0;$e$!88_*XIQ4lpiLu}g$NHjleXaF*L3%~&Rhz@oT06d8YhH$Z|R(RVQ zT;Nw8L>xMbaf6BVq0>28nd`9E`?$XlTQ4RX`mxS54KM;>!*4ujI=_K zMz3}4A(hQAn##J&d8MeCf2CLAHB64G$RrqO;sr4EJ;qZ^a~3jQscF`SQPPWr=+&oK zBd&|xm(#}mKt5|LO+%Td%gQGN`4uweD#LYg$-G!?``QQJAFwyCw}sW+wtN3sTiMvv zoL_C*yZ740)~0ley-`~l<9HEEyctJgybwtm+qBAO)+Fa9x07Wzcvg?cU%VD7d;9J2-TUoWcJ)Y3V>p@&nvn^}ganC`$6y)_H4kNkLIxf^K;tsg zf)y%15QvAPMTawi<3>K8mAI=7B%WK6d_Lg-`uctP0|=}0A=LU)a3jAPz%u-O@dGM9 z>$39kIHW;IaCzSz^{+9=7#uAYHt*fLcVbg#f_P4FYQ&K;R~x=krJPeCHb#&%$e0;D z?w$jd4Iu8m7=ao$eXR#nUbWs$(AWQ|PfxDUoU#{lXZUC-qeUAM1aX^f@=`!+$>t6;gO5UBO1aH=1G%PZ77BkZfJe#T>e z|FHe=f4)P=ujf)8GbwlSPG>TuGCeGQO(80Ah6G~@|yR1gk=MZ-fF zXg|Cwlk`6YZt6c^9n^7f+~af`^!$LapB=jWK2BQ|oOWnh_o3DWncK!nWBeG@cHohR zGqV%H+LjSohk$vI=g>424bX$uwZZv@8aFs^s%#2+8G8IFFjb!^g4@Q6rQFpz*99qh zL%y(29Mi~4L?7hQXVyNpigM30$|@RcV;L9LlWisZxcfmq^yI^rxNQsa0nV$uEk_OE z>2Wte@3DjinJp7>%E^zFV&+t^z-DHJO@RgL5pX@%McCR|V+bjO5|dVFp(&GmF+glk z0GkN6i@X8Z5xfm=1KOCXW3((&V49BsJdAyv+I|J6`w*ykAo>K{hV@EWoe(#Hq>9O7 zqt7k5hYudd#?1*}mYv6>O zO<#3E92p7wdW3-cYdY)AJj}Q$nnG3lVoF?ID(b>*}|y2m;7bA-WXlrK@eNWmwNL%28*yF@0D5Bby?Pn8C}S%+X9mnld& z=E3rT^s&d9-^XtQ(^d4m>@mJ)H=t>IsO=H=oPpNs1ay69j8l28Z>VLJwg=C_o8mRE zuiw*7#s9v*yexzJWz5q&CR*x`mo9QI%tvUjNz5boFrDg@@*JyJ``|eF0OJBMKWPK| zM;_(2eMagcA7!?0wsEGZwg`H7!MD~UKjxOoIH|<``jI;NO9;d-ix{Y2!%Lj9+98AU z`h0*oRq5t|V5WC|pa#H`AB^7!mIv-~-|t>uUv2mA-;a(kbmYbDJ<-sak>8k}cQPtY zod(wO%C9f0`JV#4Y*Y1rYF@=&rvRs^#A6KOhEoCc9Yb$CKf7#4rzh=HcS%~90nRcd&r{$lvCetE+d-_9dYWqE!sBLx#&Lha}Hph_6We+be6f+al5f@ zhQ3&LuIIWnZ5n_&HLOs}dNdHHedMX}+7G~Oj=x3`j@7_lq8PCN$7iSQ?Yq79?T;_o zZ@>Gdef#1?d$qUM_Kr1%C(`k`HU;>rx<*qwl{OsN0&Kv7Y{Viq0~r;MMblN@ij+;|gD!Ij zkBZE%Nh~yOf8?Q2F@N)}Sowp{SRV%R99AA5(@&2*)OwCj@$2Cxn#$wv1KdvK=f2SY zCHWAXX6LPc#z*!=`ysb^nXl||)k#CA)blUHIIl;y$#_7+o=H90#jauh4A?O2FErG# ze4w4tDg*T76T%ZPU)rO6*P-0=f_x5ou*I~`^MSVQ<0-yNooWwZ=-0&5wVLVPGw zkLKh0JyhCHfl6H^qUVwevTYp@&6n0C_6Fvj|(eJMG?sNAbBBo_)g+ z$?0Pfu{eAZST|zNi3*+vE_2w+*w-cfDd@JRkTL_bh8q8U!E!imm>L5^ zA2%AN@@|4k`zcuG9QwftJp z>H0#ouXq*-XI`5Zr*NaaNSlE}n9mFf6fP;fNS&|){ z=>&vTzl7Gk$He7E=igKg-UM#Dj)U`VLTF8YQ=BWGmbwO-z<<%o=!fS;z zbO8ON|5Je64r{zZudBXJMT6sgzQH`F(B*yjG5i=n<9SfQGIAG^6G5Ig)#XkcMDZy! zbV(iT8TI32dua1w_%Jv{~x9AB415YA^A#Q;xl3x)T*Y)66WmplEL1#hc zCT`TtTL=KxK>1PyuRO2D_X3|jebTmfHbtAxBwIZEV=xDKGoEeD(uqC^>!H$su16TM zP0;)lpzodtu5aG-<0igS=_x!H4;~DVX0X(zbfT_kcmNeT=}N*$ zrJC?7YjOe~wtM#%w#M$qRWK=K4#W~^n< z0@e>9^QEHo_c1i>RNV?rPnF#UmA0?PI5?cb3QkXz0aNt1;m4rT5ck}p59kPk!IK1`t~21!x-P2x*)_+M+)7C}$qU91_5rHXYKQ?Sv8j zHgXt8c(_l56%AAQ)Pqk&_tofrB40)FC<9FAxOH2xf@ukj&`=lXd60ISMgwIt%+m{A z_6Q!@)MCvK7(Y2DeO)O3{ozsj=EaNl>+im8zm`Mz{@|z`9G=J_l-@6|+o@QconME8 z$R~Qvm6yK>t~O;rd_oA&o4A8BVB9WN`xQbyWJ3}h!-6sg0{(nDrhT8G^ZoX9jZa}; z4$SmOKU4S2Lyv*;E1i+&E#pNh>FB0-k1ngUE`Jhj{I4XN1Wdt&h^98ZA zWzh4x>tNi0pe z?&WvmWFT=AxmsZ|^5*E;Mt)p)bu~Y1Nt@YDg5_}>aGwE}_h`A{>A6z#2!WdKw8Kw{ z*YKx6&!>-j3_YHp*8?Fyc@3w)`sl&=e^)eEZUbrb8*5N;#u;Z2!$g|8gcuBN@q)zZ zm&Xc#4ub@`J=Ueyrq?;Pf_0C>2p{IAPX|p0+NMd!sq@`-ZMU{13!wEn^j&e*eFfe?#6h^? z4aBA8cBaj4Uz^7duU^X;{J#C|ufJ*E{P429dB4{VPc>F5k2h;&8^HWd9c_uTFl_1I z41)C0{Y3@LEt27*kt}1Vp-xeM=O~CCkhEw1^gJZh|oCj9j)OtNuaJtV2 z+*aRag{gWUgIcG?X~$#fJ~{6u8EU@ir@&>u4poO>BJ#Ar#h|>m!(Dlg!Z5Ke-B@QqLF`UTgQ$f>$$YY?7HMG2d z`|tGuP&UO2`K&9~F;BpBu1{Fw(B6aqp?OZB+nj0_#7;T{xW)sn6@uvRT$`P!)Y#w* zihfVd;H!6U+u!^SNASn?>g~Q9L2V{%CE5h}39V&59dxy*O>ZGSUomHEhl@!*Z2}@f zh!N+6$S&Q2L7$Lv_F!8yjZ))?c1Y_f*-Q`9{H?R9Q$vjd<~4;=W9xX2bq<@ZN0*tt zufr{2msjMIFcA)Q4E;QDJGWua+xZoybYyzkuk^0pV-M!phf_e=ZTK;$I_c{XA|HLZ zknOR(0ysfmi_hHg4PDu&c&nbzxFjvMj5mz?{=u`3h55k;n@3yNMtE@HO+Gy8SW*Tb zJBijc`Gl4ihtgmloPyhI98nZ#J3_%*D z)Al%FNSu6k)}5zOkhBGNC*W&CUhj*aNGTZhcwkd&e_L^WGZ=^Oz8t`>e)dKC>dP-0 zpPxI}dl&rq`7(GfhoQ;aTon!Km3Yl>EQD4lA>Y?4Q}7x(Te`59yHO`KyQA;&-fk~ zWdhQDKSAeJG*HKAzLozJO-;ke{0M8iefy4^56G`mFvq>7SzkU0W?ka^aVvqJhhsid z=JgBmJwo$>k8eL<>;Tp{&j;eT`81GvjK6PZeD~dVLAxUZ#m~r*M_YUd88|pRi07zy zMwR)ywX+@lc=!ID#wSk-ZKFJ|2yrx#382s9({{bJynnDCZ5il?NJk#fQa5Q*kI;}N z1|{E6#R0=+ap5RUwMFse z4c>T*R~MA|EkE@URD1M`c917=rVr9Qo(MVG`Nk;-9Sf*e>CEfue14B2 z4vA?!f091iGtfRid75?R<#3$(@FryM1c`&xbGd170CD!51|shA0nJBZ1<)4!66YN> z_tmrp@|OADp88>$$QN3ESAm8%Y~3f)tR*()C>z#Y1@pTJ;6)wxKiX3rpTd#${109O zJMyh_vI(6Jh&uRYz1f)YyTh(){jO;~9vmFC{X<>kYHnXI;sEZnyN{l<-Fpw!zZH#% z<_T+xH9=qHf3VKuH}z!}QjXcY1juuovK*_0_<%n4F22t3Q2YhhR$qj_c<~}+lw9wJ*Q? z5}nT+k(qMSpwTb`0j7bQcL)I2sR&SRK5heAd!}pxYz*;Rm{Kxt;PC49;St8@L>*ae z4<6ocTU#5nA|GH_kTNkSiUk}Wh8EA;&~nTp@+Stbfwq?&?4kCNu+sE(h@0MZDopYJ z6qw=#IKP$?j}1~2oDG1h=#^zQ@pX+wemY`(Ydby+ye=njNoD-vhvt45C23GRw2=sX zm6|65(|t1Zy7(!yecIsssj{1(&V?yNE{8pm4-lUM@~ccnuMfv-+V$MN;ifiR&vk3s zdDNXkfcb6g`)NQvuWj>m9>$6vDCeaT>WA@BK8A*n^^LP+=aBle<&BCw8!o_d(>~=G zL1=+07oppu9G)&iHh6-y4ty;)W!Npt>2_TYpnU+|b|h)D@_+`k4xKhaZ@mJR$L)O# zOm`ES|4rC~Zw%nXO@X$j;j~Z}VPveVHf>Sy2Jy=`Z`<#_|2|(NdHJ@z+COaPB90S5 zT~uE-=|i;SovH293-wibSJ%4WzEr+!2|w2F-)TKQl|DrusK$_&9~|JfT)|WH$3`mt z4vjVcRvh$z&K(CmUg*%!>$WfJfjs7dL+5#nYuirup%GbXy3!fd-2mc-s0$ALah)pD zZD9GQu&-a+1wy8wZMO?losj4JzCHk*L!*Ism=z7>5khJyVGK2Hr zhn>Q9(GI75*gR|#ZBtGf*nj^%?$$uh*x`S1DhVo`lc6%U5v*7p!iv!MKpqHhI_Ql8 zj~7AlhW*(J+M)xT_E3kfajW-jYh$xLx___j?rcTbrLI&N4`d|HYu@pYvS=%M(qbf_ zt&p762=N$pUY6=1cLm6 z1RKM>`w!aVC(qjEPX2}>U+L$z4-OxC;W#|>BTJ?2cur?G!3VMpQ1e0NNY!7}8_<`z zyvA<>xAQTqeFAIQZGikeBA4S{)Xq1UxBKxaeVL-`;#6({3$~oP6ut|T;H|`tN?wl zbGPSuZX13$nE?8+!wC=QkOx}p&V2%{N9QA#(O_8&qz!%iHtgG~SlgQd_N({>4|c79 z`MJZ!rp`9LnzkoBfBWiH`4{t+gZo-}xy*V^E z-s_(+1f2$;g|FoY-A--SG+>`UBKA~l?F0gD2dHfsEo+@$zYkPB0HmE)`&a3zE~e06 z9ajBSfOn;@Fhy^uWsdhD0B_P20r%_hR64!ZJ{R+sd91a+w%L}~H(Fa>i~W&j=Cvut ziC{P(1JrgZ(5Ct0_ZYE3j30nbh(m*4gpY)d0qhUu@PVf4zV^X=qi)zp`A*nt+VUef zv`HG<#vK+8;A{iWPENzNKY8+`E&chQ{%PDA2B~Dj={$r$SQ@3WX>2S3@+%ss;1fD=usP3b+NnZCqflnhdBgcYaqxXP+ws9@-0jHgg$W6YcCzv*rQ`fflcBmEFo z^!%tm^_l)>4%}3Wal2sP<@xV;4SR4NrzGFY;_J;E62o#4rKy+2 zb*VUZA%C`0$;LBM^bK3docu5jLJ8&=WIQp;u^K}IbM?~Z4=4d0a-AHgaYwK77;Hyi z%yKQ{JY}wUzWFCrYdcO8^0JNdYux3&m2TO`eh85d`%69A0bMWZ2-B4mc}0!yz+y<3 z{E}wJ;E}63C!?=I=fylygU$z>26;o>v<8=_2!Ozz^rR66K?r+C(495VK@gy>(;fsi6gs}9_IS<$9melUD&#rA=T9EB zM-T5y=;d~%4kI}1NSZMwtY|q2;ZcF|8dgWJ zmO1WrdK~!<0eK@R>U4F4lsVSVq-2%h$Ta!rJLBe$o-iP5Yy2!9&lQ|&?DBV>PfyR< zv#-8tzxab+wTBNMH?4&*&Z-qgoo55%6EFc$5MkzIn(``7#R^rAbMayL$aDUz^uu`1 zcM3+41yGN?hp=KDV~3i}5t6q4BR(h10L2lU!jI{prcGPxOwFH~XGailUQIKPZw1Yn zDu?Tnw$sEM%6W9r-oJkzw{rnb@>qYi8zlZoCC%nm{-P&*Dp?zefUHaqGKjQv` zhULxE$-HF)5A#HBjacMY9p!Ht&o;a)%g_KFs6Ru_3`9M|rUAaLA3O$dnrA!{XkWBA zg##TM-&o9s-NiNg+bPZlS;MnlX%BfzQBMDfZ1mY_JCn`eR_^(goDtD;LK45#D&hrY z#HXNCC-e?K4GJ%)@JW+pUPhBRTvXD0*cW){A2u1A9pfOhUO}e;hwgvX1Dq<rS3_tIzR#AbOCkkKe8j zo1gv05ggkc!1`gVkUviA)K4yuv1`~N?y%tOVTLKf;F0NID!@X2#%WI(6#z340}Kz<*(zOnKFdcGBq z-8pk*iaI^-2o9mZhe3Je4lW6l{dA;k1I4b88wA1pv8#m58oaG`o00=d3=Bx2O>QzC}89*LH{=T#gx zh4kD%;O`K${Jm@d;@31l-`#(V4>kc{o#F`cLI@CLaq5%x!xdy7mTc3 z%L6TZ_C;@bgNx!vx>BVbjAZmt*}NpeBMf)%-D_LAnno{ss?W5CAH2y!R`{VGWI*OP z#`bmv+?V7|%YOAV+L)IP<#D=eDlOIW^-nkd6BEjOYDM+Tqbj{78L% zk|u4>`p_@xEyOKhR!N@F@?r^kjnlty`eJxhPy7Rw7LD~rXsmj6p5yc3d_AN2F^)Cu zFzYI>~M9{y9%_0BAgKW8M$oI<-Eh(a>1VfT5j?mT)Yt zWwX8-n16=3wWxpe1zobXu^Go_vPGKb=U0nuV|%yl-h0&6x9_y3y^j|~I1S{h8nMLG zS0!mc3p1Fu<<1dw-`qd!2{wl@#NOcua&7|S=XZRv>wwdh`@6q7+T%HVK?N6;k2!BH@H`<^QpK5<9uYyx^`HDK- zJAyqQEu#pd5bPX5==h}o4E^Z|Co-D2E#E|X{ODV&KMW9fEnV@nQ`Hc*Y# zs+>n4-t-G+kc~w1L?R&;bH$F}$H0q)(D4At>%IWQDRm#+|DY*!hB;mXs4FAz*06bL zB*wVW^3?giG;G+BU*f2iutIIiWi_M?198uN!iruG6>EM^Z=AbztR6Cg<_-S-?7ou^NV)a)%Kg(iNonAvO(_$27Px+X3jnnca$cE4pNn_DWVWs4myi zzN3eD>?6ulS8+CJNv<`njq_9+k2Vr+$Kwow2b@SqM<;R=LnqQ5`iu6NSJ6g>Viz>w zc#A?oV%TlkMu&vPfqp2TmAP)F(SOp-)wwdL z^E2(Wt`QvvT?Sok+hDzns65slXnJWcLh~76;19Shag4vUZH%(h%o~6-C*>)3ux-X10WB3=62`c?* zZo^9V_X$({`gZ6aX+p+_J~_>}Fdk4de%y-iqT~{&>dE@(^FYAir$Cj@aYADqkB{NU zpw5LUMDCmVHI-k1bd{r*hqUVur#g4;Ah(b`t~sOF_eTjg7J)t+O$E$e$b}vNjxhk zdjgHoZBobWdX6I#?YckEn%;3}&}p@0E;G=Mf&827UZuMY%>O1dANR4QD}=Mhu|)^P zCm6wR76a%8r;QV+xDBlSa0{5*VdV3r0Nw`X_lggWPvXPVKfHX=zWM&U_S)*C-zWbrQieD`_3O>A)#)%+uVxOz*-l)M|XEhC?SL^pCbU9&yW1ZfKg z6I}X}|LUK9O(9>KUcu`WE-Xu7JTtPStLQ5UA6~E~#HFsjm0rB&V*=-Gxyevo>^HtB zwZiQM4AG^8yp$j^B1_AfY}d!SqLfiz;I(B=3eKfgz5#gE)>d>CekwyF1G6YY^z_lg z_7A@Ls@>b(Xbb13ZB3owdUX}0o@mjYUN-s4ZSg`^@~XG7v?(ca^YUQPXRd5Ld3lpI zUkH)>*DR<3`Mp44K7gA%QekXjT&19VPD0oWC?(8t&_C;Ram^4X8t3C(w2Je11n7jH}NaG|?e1e^n=yPE8oZe2Uvn!hAkSWeOSp zbMd>BjCA>$<9k)%c2t}ON}uG=4$sx|-LoZCUXkppn)BTH;Ea^V4nP(Wv>^YypqV55 z{&Jk0(16;G+d7OJc?x;{f@k(Bp7Vw~n@^zTn?lAsw$H(8J-)z1@bh;{D7pFYu zch>ga^6kOH_UiR3;p?zNeC}v}|44M}?TN0|pFRJqJhQ84D$02p`l7xPeQ<{T)d zkk45jG(VA9OgO~%o4hO9-PUuy zZAtA^aKv<{Dk{0unY&o3ZwjMNV9_pR{xJ_e}CLY>F>lYVC^t zR5oj2dA-FOo;=f~I-JqwbBmhangiT^#(stk5UaQ(L8oGNbgKSJQH#;{+$_&EH~8r> z29@tbqQi5ZljIhn_=V+HJB%Doa-haBKDw=Oz*;hfw7;bJDRrp~8aaBBBfi1_5A<=) z@44%u=$xO5J5d`aqT_;veMIE4)4f_pg!ez}% zY#z1`)Gn$$KXuFn1kTT3A%dSo)cT=KPRg~1Xg(k}-=jnzUYa0^3@j4tiS1^b9IAwT zLdv3?xWufeg%|wd8B!2uM)qxSg*H-;yp*BJ>LT(`F+=d;T5>2q)+fq6ZECxj?^>2j2o80*8!wb$oQtcDA?LXP-R}e%$Ru3pivr zY&eYA3odqn3)wAh_u{Cr*0BYgAYx~Eews9Pif5>o)Y*G?@3!rY&32`>j^6FH_pjc> ziTys$UCaLQ!w~Cg|DEJGm98FqmNpgrEd5{p<-dw&1X&>%5sU?f3J(+GV`g~E8I zLkfx^MblaqVKf%=vm?5O4`%{J@NGag25#}996m>KA!qJLSB*yp@>UOJDzv!R0JpZ+ z+w&)n+oQ)1+U5pES@bMkRsn72AB`-7L!7~tGBrs?Ln{aw2LwVyL8j-+fD#>GK4W$@ zhC@b3-!cqjvJCMNN|eoLEa!irCFJ(YhcIK{wko8tPvje3*~R3;I91^7Ke8^Q<81#g7+`>4*zk*ZIw!$jw*p~rgeRNQJ!~8RNZq$DH zcqsT!0Q^Ds0i(p#?3l;;9eAF1h9Ywy%-9JP9Xfph1pK>%!Xj<3r;kq;f4g811$hU`)M&NQn+H##KL_X?P zbeVbdSmAomJGYNdIf2k7wRfOR=>6MxlW|EKDi5!p$)UQ?Cd{VAbIRB~Y|?@*>TxdO zxk2#`hgE!I4^fv+H6D~-XyZbIU|#eI72lT=6&G2e%V!!v);=DR`ln4@z0x|60~)tm zwIQDzwY>y~-77~jl2J(JGk z(?!fH6|Ll*%FQh~TnceQaY)q(^^Jb0pEye5LBD)~?sgXBOp{OF(ss!Chh93$wLh#6 zjqmaCQ8;oqchDjqk8DB5oe<_9cSEsZ*hoUqfV~1K^W9SBHMR{|?%%&37vB4Oyma?2 zc=C>bZSC4dJ|gpeZ!g;BQJd$_o~O+J{lECDuTdZi5TRL6u~1dWz{g_Mzfg|yVtBLy zB9yXM*0^F=i{GqW=E_VR3*`-fL$@qtZD?~?)s@8}11IN2*C%nM-_DOU5G(EJqetzt z&!4x4>deY&Ud?l5LPx@c(zenp%2<4ZS%}3r03E8Bd1-VrZ??#0eHvs+LyohMZ3az7p?hKa6X~YeXrpZm|xHHCVug?OQB1g)C&^gtsB{rKVZPl~*kz%@I9-ESCSei0RX%z#1>uL(Spz4G3C= z?xS(B`{DE+YX70f$>Y`rK$=rj>Otq*AoQ6NL5v>xl%p3vBNK*8c^I{8T_oZ#eE02l zDyJ?Vf!}R=Ld5$#1VY_Wwa+o(T3M4ZQBt9uxFHqF%(bB3Lu|1 zHRpr0Nt%4m1%QCKG4fOnjUn1qUFugJ!AIrPGkwq`n>ncC4~^TZe1S240xFH`IIjZz zALSeP)w-15R-dyUeqn(V?Rcp~o87_DL5$_W0ndw`#S1}u8p{KoG1UCv*}_9PVF#kU zyjp4}8oOgTbSIbR?L>PHpRqZS({!xxRApyP>qW9?gabKwiw|0BtPXJmwMWHim1w|t zZdPlBg9+v<8@Y^NZtTkAgZiARGf!|1V$b76I@WHCzjPrvu+1zQ^ne*xpipB^$2Caf zUPSqzKmXL{n3m3n;{^7$A?D?IK0j8+pz6Eo-0_+h0uC@M&v>N=QG=l`cbM_)1At5} z_g?Bb0aQm2^jdPc`_%W#besSJwJg(=&ty|9(h(bJ7z6Q=xEcZF&_?`4Sp8R-#+#k- zTuVM2L1F&nBJ*LXt#0aqRTsAFa?bdC8jc|J;qOR>e5O9zLT2VxoO*@?0y&zL*>(Uc zy7<5jLC<=?&SCRTbOC}Bi2Yn|;}S1(_LBS`-C*4F3%c}xHNPyg&|CL+&<@VfsQ zp0X;%glC>J(P1y8GWq?h66t|SnY<9l#NcRsK?a!n>)amEzr3}2p_rc)Q$ciTOv9u|Qeu3?xIZOexzF%~&U2 zP>p37H)NcC5TADf4GfrC&V-a(*U{#YFUNKV+y9~ z7%ER24nkm*bFgks$6`erL*2Z38~P=>586|G(}J1b!D16tq43Y0sn@u?7~eTNrmfH-p3jmSXU z$b|rQ4QG&3K3}ZsuXwih_We6Kfd_3*8`s|6VS6X%a9>X0`@Mtssmp_tv-W!LeS4$1 z^Hwx(RsQx+q0(>m_u4)ujB*YX3TyL#d$- zc@7UxRIYrXL<@TuhaT)PWN0VK6G6ru7eM`E^QV89Iw!t^rlL*8mxPiE$q8SdelgdTLm!Rw2}cll={Jrb zb_QpQQ}K8)Lp0bG?ySI(dBEKb^olb_8MYLg2OncNj;f0jh&>IRNEU1*ZvgY6$br_{ z58ri>S8FE zb;5}g&k<$W5n3|QlV*Nr0jU6DI}C!IS>FeU`{-6NULwN z@>xEZKsd{rFJrvt-y8&LdC1b$VSP9J_$Hmsh& zd4Wn>#!L;MbT6;#lSdgC2D-$1bQw6xA*eD~R&S(0pU>4DZ@)VajQZu|Pk(0d;s`o# z3RODB>9cwJA>z6ETBDY23ZQjgiQ|+ZyY-u{Or9KKyg2cLmcC)o*z`#IH#TYKv(G+@ z6T@&0zxj0-DlYo?#L?E)cFfVk!=rY1a3sE0VMw9hl~Lo%0`TJ2FtV^|(}o?k>}$$L zyIkB7&+_b#b>I_0(|T;BjZq)wOFs28oUK2oOiLJX{+B%XLR;q=`5{Z0iiTLy1)}Z% z$ZOs}%KM=VH>GEc_Jz0*a*Tk&{DT$|xOj;9<>jg~e_%|WT~QY(Y~3Ay4_QO?08zpc)kVQmny#*jU| z3-u}c6FMSPVdzG7n=<8uo;)vr)E#pv=M&@awE*Vxe_0+r%}~en0mrNU9iPvet>sJ; zcUbf2*GxX=c|I8v=H>93u}sto@cYf=<#?aR1ur%Z|HIG!K_7Qa#E+9ZY$0hJ#XLPc ziRT5;6FiN~C4Y$}F3M$RaWdmmFsjc7`Cq?&CA}@=3n?mxH?rUezEnAnMQ{l8t3UV^ z-3Z5W>979V{Ei^EpfI2)I2?x%H)ko+oeX>`PUAFODv^NPA75nwF<4xMuf)+RuQZFL zLN$J(jp2e1A0D?2Iovy2YwhuayX}kTkJ}fYKWUF1Y_^?EzUI&E91W}#%LCg$7<2|T zl&^d#kAESE1iI!0mg|`zcW5NdlpqAEBbe!oS2Sci>FWeFo%#2cJo1LDhz}DdFuOG; z>wIm)EO&lk%u@$X88#s77VVM8T7Xs#Jii@$cF9#Ic}wve#Pgqh)js?DXKj%Ow1(4@ zet{Z;r(l#9{sWFW7=U<{x5jS+)Ab<`bF-7nZH62otuh3}oEheTaD-tj$RB|@2cH35 z&uHfWG!1|p$b@_~?$B}f#j@9OkW!Z!Xkn~3I1fQH@T)ilHJ3PTM!RLx80!zWc5VU; z2!@HPPUw&s9grUmj;t)YA&o)78H5faML8I^BXlK-LEKT-#PS6YhZ@_u3XLSEQ z2Brt*+U&qI4)gRc=Pb??`v;SbT>{DCbd48USZCVQ`85)`KM^AO-swp@(byczQR4fA zahq6pq;UuLHO~8*KgK=bft*MjNlpm4-TWS>??4wJ3g7MRhZFezK>3=BY}9=Jkkdl; z5#|6RiVVc_qCv7qX8IlTX}BB3bAr6w!Ja3Qp}z8=i@8lN9Z$#3=se~fKZhERT?x5G zJkAFJdmd1APTW|>uh%`G5guZh55m$k<`HF*)$N#;mp&93$1qTv$+fBnLW>Nd2|d7D zX+qLs$bYClK=OTp2cqj5g8V`aeF&sl2gn#N2Z{oE_&UTfjPD1-Lyd(lBpCh+2U|G) z`67>G*WSne$4f=atFkj|n{A2p&#!Fh;*vwH>@T#;4eW}>kgp;HZ3TASZ=f)Kca#;jxCe5LP?bGwhRXE%qt+$)}3FLV4IZPVl&}2zuE~ z?x^t6BlGRm%U3baHf2kx&xs`b88hZJc39H3FTeb90Ck6 zw-6A2VBmnWIRlaLz+bat{Z|GN`0n0F!GU%IN%?` zhw>!M;wc{!Hv1o(d0sK<(9c{TyvV~FpZswAqON*&?%ZoX|K+dR<7dzE`9Y1Nc?F9u z&SbW%M#jYY9gR#^-}xVdTF>DW8myC12IW~Um&L_|%46;f`BAsfjDV3D^312lS_fI^ z8w;}{dA%-xns(ia$l3!2$xt0ZWHk@-oPxO$$qjAPV+MBhxZtjNbGi{=z_|Lv@X#)O z1*{ux4H9C!xKfR)OVMz33NLu$9D?L?y8}Kra~Lq5Ud2!?>w*MF5Ib~yd=gi#C&zqO zYbA^pzoE%!vysA!=WQ^mTv5|D$an*E0hvg1>lisGM>96A$Q37w3f&j?oq)J8^9VoG zd36No7XYPsVn5A8L_wF);WTC_s!+$j%HcM~c9cgOmFG=p7-cB{KjehYZ8_iV_Fy_n zC=a>RALghM%GA7oj=cmvvC$gITaMp%Wz)`|p;LUQi{0We7V7gE8>AslULa}FaSM;{ zm@>}%@(E64V7!!a-cA+%@WYGt>h+uU^3B`!`mN^NyFEFJhwa__z4rF~e!NAkOk)55 z|MW>jK~y1pbi!xQG>268Olj)ITvA)a>1Q|uYM0OHgoB`RZb9P^Feei~bO5VUSm#(i zTbH`4K)OeR<8yh^pJ7&KM&t1V2U9Xah

    kU|3@c7eTeg8@kaKwX*;Z+Etl#g(C>0uJWz|HgsJV zvbG0=IY;vQtJo!MBeb-K{RHCFZ@73RA6pqO$qBHD$j1dWUuD3?@hc*Hi+O8vGkEa= zmu>fvoI>pCs^s|9uYMIjN5^+qk$;g!_!NX2L_pB#KpAN|7zRVLX+?3q^S3_yDhPOS zcG@oG{GFZdwd2D#ZGZ3k_U`R(+x>gja{iXu^JgpVt1q|O&%fGkUwpCNo;+S`_wMp> zT5Y7fm%V_)fl)(w;7qx5CM25SBke3&0IETGm6CvaHQgi~Nz0G)-R z6*>-nD$tG*o|P9kLif@NU>V|JXc;7~&eyj#+s<8nona?*XfUm1H@cs-&z6U{`(wHK z@MGY*x5a^8o+{T=dJ1d5DpvlW`)90l$V9(b4@T1Nvt@Q2=b5I`Rh$C1`S%Gu&zst= z;5x|eK4T*=UR(@fBPcV}K0#|IjXGS>Vz^$tdNtY^>&iT-YrDej4NeicH4KeUCoygq z(whKU#;(c*)G=_sda&&M*gIa)eRUo4HM%X(ZCCt#!R=OXdq(Hg(BM8)dB_85eFJ6a z#cL|QJE(E+$)G9-ao%!M<^>WEM=gJ*PIW~F#LdBg`6wl#W|k>;x3aM zcI`p(S^|m3mnyUgUn_pGw9+ob>r6aOwWIT#;PII@P1Wafx zzy9`{_Mg7}F7VgC`=)*K{SWO&Ig4*}A+vYHZ(D1A;n=AMoG5at#0!+%S;@^?j%JBR zI_4uMf6PrBOE5Qe^+r08eHP*XMmMBu)`oRl$H40g{8Z@237E>80=M6T^E@A7jD&Uk zo#%Xq#tJ=cEvF^&4UThC3wS<3>A4g0hq)H>O-kkNphECc&L5wa;UtjT&rJ^B!jg~| zR25!p{#1 z$-}l$jvWNx<#|Cqv><@(1?(Jx@WWx{xDyvZpKgS5ohO+u6Ek z4<0PH=TA4=&px{&=Wnw;yuU8za6{g)Cey`1J3rgXYXA*KTwT)=2I1O9Vm5g=2^2}l zlUG_&dQ0VcQUY|^A>V*O+(nrnIla z#Nmfb)-OO^jBmbpka{&e?I{v*@~IzsS2G?f^Kr}6t@W7;#GOwck(oH)`VIltH;)RG zAp-y}(~@VILPmvd&ro^#b{BgH>6ka?vb*}n>BEv7wK&ni15y}|62<1N`sh#pav{%< zJpM7x@%*|lo=sOCr$juK1gcc5L>V#<&Z2n7cl%;L<8+6q&sg)!sP-&5dfYBP5FQ`$ z9AO(y17+Vdc6{#UMDvDz93CIW90F|vISJ&}F>tDKZohFm4jq7=OB@=IZ`~Rtjr1Wg z19KkEm*<=S(Z9!|0(s0KX=B{zsheY#W5;}~kheHf7V1+kPCAD+ff(1AsyT-W zu|?7j&-EcN|7bJb4%VM@E+jN(IC;k5Yg|xp5(x6mN#*m*JO+?cxqJjbtm&JW(?8;| z7wbRzTEpI{AFTP9qmqfQ=$aONVv8i*s2}cJ_>KxMy3q&nqmM#fq~c_cdeEV7(uC&A z`eNR3$Avt`f^uFC+27l5|L))YyO_H?Lc_NNx3)GzM%rR-Qiof@uiw0m(?@Oz|C4|6 zPujZV;Z}0YFTMbOA;rZfV`xN5abv{e4H%Z&g&e)JW9^n&Aj0FL_igXZi?+OQ)|Rf0 zf})v!U}X8 z7;Y>?d>TGnKvQVAE#Gj{o5Nhm)%^K7g>Hb4l~-UgFkqe-J-U9+hjd@&yjYh4Urni3 z8tj#}zPa7jHaEg(#;*rxWSNwVcaJgt!(;-PEJox4sti*=nd?s>yxb00+cox3+a&Du z)g$cy@b=XdeRf^q&UYE;_A4)-Pgj|%Y@Z6|g`5s6Rxqux&ok6`550V(k)3`3ZkIgt zfdPV_Hw3`*z`UTRj5+|c4_7aKs6AD z2a5BISA^jZs%_=-Od{X@?eS2~D{m(6AMgw!Zy4vTWu8wwR$1(g;Us8W#FaR652uh# z)&15?kYH-8q9FCaJghjcbAWm5byer_oL&WEd-Pw(9Jv^5mgh`O*S0DeYI-V88_Y+y zSIfX!=JFa=xs0_=yn#Ca{D#;_kT@o0CR>h`=eYYq++#;MX_wPy?4NBY z2%sCs30)U3-^w4P-1Zg6@wdPIZScoFa@Pb~Nk};t-n0Qw7dm)(eld^X4=$284@Xb~ z#*sV&B?s^-u6nd6j`rH=;a$h!p z>#RL{ywra6)t&ZV{OUpb{PWHB>Iy+4A6H7;PUcim9oHg`pGS(pm`x<^ z%PSS}^vsz&ngF5)+jX7>T3N=bL^?bLRxHyDj1Q0wKwZNW--?Dl-9umIwB_j0Wzg0B z7)cue9$WlkUgdP}{5dfa@Ea zu6b_Hb#E#MYQE{5cT*W?`JAo*@2P&(`qMDTG~Z?UL^UJF%6xg=YDv*$ZOY5qq$N=x zJO~Xq3`W1XX&EhNMJ|3pmBggcnWa@nHS1;pExwZ=Ha|~EYe5Fv1H%~B|`Lze8!DBb^Jj3 z2@My-?4P8ep$>Y1)<7Jj47xh!qP-#CHjg_nKmPb*w9DS^Tf(F%$5Dhw$Sfca{@7w< zp?&r|aB(~dWKQW%I9h5@-eBO#@qXi@uZ!0b`uZe(66);uO}q%gNnktwp>3`lw1;;u z+n3MR+poUdX}|c{cKiIX#HZN+(`ay^MknS5>h|c&&@Jb=y_L}Y(y$nsC8Zc zQ@}Fyvh{gxpMGFOIPoBkLBx14_RzY0_nSP2&~ghoZks9%5A;fXp7rC()u)8aCwRDR z8!+gh!3o4+L?(Dq?taq_Gyr2vJ<|ci;Y|oyX4f|z^^D{>A26+fwD|$hPK{ZmbDPd1 zG}N|$N(aK*G%mA@pwkulbcM>>{LR-0m`CO1GKV7|hl0|p_&Yjs*zpBf8g0BYXHH`! zT)4`yPoA*>MLAI0AxawL`af)&$4uS;c+)sSuiDzQ6EAg94Eh-}oI{+x({nzrA!h~0 zLr#IX$WhST!ckBr&q4Zy5p>5~TwTqL-R-6Q&3!9zCbu0wkTg69y@o0+FylGH9>}vj z_WA*dJKfhOw4P`?ZiDtnx#;4B3DFoSLj%_m5#)dYw#LwNNptHK-BlzHgf{6@Haquf zVh%Dd9V%6COqq~D0)X+2z)SW3>p&F0Gsa5eiBG`E-=b^<&jrTIAo<7u&R)KJBz`fz zgv?T};hBB$7~!)J0;&=H4jSdfC`&HV*0VCn$a`M9%Ug>o7f3Q?O33YD&O#lxF2 zD@&JcbxD)rG@#{finm>8BB zdI5O`*L57l_5))e|F*ibb`wJ<1LB-k2er~UJrx2qFL}-Lj|D0uZuxIQ*S!hVgSN6h z4F2v;ThTMK&1z1kFvU;`}TXRVS*~?LrR^E?THZ9taIQa4Io;gz%vZo|YeQJ5|R9 z%MPuv_Q&+Kp5tBz#Gyw{(0!oXbH@mMFNfRn9CX_BZU=B4q3H}x--HIY4O&LGQOitg zsC;@l=a1zh%ITT0kP*nOH=M!&Ne2$6WATZQ0fRpb=>AgX>1wuJ^ERf+XiY0Tu=123 z(Y^t>l9%dIui%w+CZKTn8wXCmisPY({57f49L-X(3i93D*oIl>w&OKlB%$gxD zP?Ln4pL~XfmqPOGU>ra>b>j<0IE6UO96CuhvBm)e{1b2SQc|op&6RLi)uuwq=o4+D z4?=(E6&gb7dF=zWF9z%udDu4SDWeW^$h-}%3vXyBqaOCy&sh`l+#h^Fw@*FFu!-D3 z!A8P|`T!0f7uSU3`%aiH%+yIx3`W$XzC1q@YBM<6&j-2>d9eGPoVdfbwtU$h-rH=S zKYP%A!JEKeY__jH+i0IXTZvP^d%M?dd-I~LuU>=`$PfKrU#RnP0XFOb1>!uT! z`8~Q$4GmK?fb)B#z1~n)^n~isw~0Y`Fd25_2ojRVkDsdtnCr1$J-U7_jv0{mF|d4q zWpLPI?N5*H-&8##n|+T=ddDrVL+Y@wDxDW03yB2~ z%-h)K(Vj!2>3~XG^DPhb7zP|Tbb>x`xX?!h^Ch2p7!vA{M;+>N66l|kLzg&o&|2T{ zAWok7&@M*I#*%z^l1CdDJPa7~7=Dz&r#gb;{fjS^^fPmxlk+7CK z?_*eHK@Y}W7SObo#bDYV`aGvyAFQ$G0oVq_uUcYzU2{aS$)n z1Q@4FqUVJ`%=(qWOQqx6naIKBt9+#K8Fq}Z% z2~}Hy2HDihLGIzAi$f{+7rER|;>-=g=ueDd+B>g(fV!R=j#D3dMP1ru z%!w0%lmqZEFY-J$u!|rz5L@WGEba%qLCa!ZTu6hoMSXxYkKDi;J8PL1xkpal64g-& z9~eb)ZLFMbx`lLss9(fy^iyDf)fV;clySZpr-4@&_muxYgUJABa0t`g3xT!d0wbg|js1F_S9;_E5^+5x5D#8oCb)0Lu=iz#luF?b0x_#64U>bwzYFmKoy4-1?#(_#x zWtz$d>3ap!7{)%!ajFhkI%VS3<$ZwIC-LLj9>*_2971^GMGA4!uDK48DA(FdK=SQC z`nSX@@~ep}!{%Of9VqUgZ*xW)NP--qp)8vR;rAfQR$zcsLFM&NsTO=GC&B^3Cfutaa*Im_pYvxG&ayb&hPOofo$D zq8qD%ID?E=Tt7rQdGiUO zb6&{KycxPk9^>aRgs%3Da@$hdO4Hj8VyCE!ZlU2~mps$K6I%*W2U|!8jrVl!_F*sG zE<9|zLGq{%FVfV-cJdZ7^9>YuLk2%{Ne97g3EnT^9=S)-+fFez?z$ z8<=4JK&2v5?vJs;RCt9*AzyKi?9hu60e@#F?wq;q;GsE(Zvy11$(p4$!`3uyF>E@g|%C zk7dQFeE1`evGQ{{SnC+vKC*(9_EVs5s}GGm)UunMXVca|^2QWT-YlxZ_e!-)t04d0hCFGk#TU4LOUe~Z$$ zU!hymRW>2AY--NfFfkXc1I7TIuF4?M{=fhC|31F&$Cc-W_`r|&^Ut2ft%x`kRKFMl zJAr{eybM}iB!TCzfBozB=JmTUZvXfn|Ks?MV92R9d9lsESxg;Zyi!)1T&>4xkpfP1 z;-kRor}Y!xv(p-kjeVF4aRN2a5RzvEFr3UEuLB!SkE_3n2$E+W*0~Kh{WehUG2pBM zaN2PII?HZwnc@0sc5BHYau|_e3QQ}j6``T$@3nRlB42IKd?^DcC(j5t1oF3JZwB~G z>6W-{^U`wm)9t%$fVp;dmM8y!$Bw$-w#*lK%=yh#*##kUert8Tt*@>~L3}HZCCTaC zqUJDbTDCx9^X%W&+RohE>2*LFaGpaT>5Kkxa0QjteYu`hn}fw-pP@He4)^;eSWy40 zJKFLoCu#E_gr@T6c75cX@yYIlyxlGs`Vk;n_~A(7A9($kPutkZxNJk*!i6WOIKMo@ zXMdzw@lhTh7AIdxeufskUo7NZ17rlyQ?{35V!7)n9^g9MLXP%3G$1SUq@Jh|IxZs< zG{oVJEj3`Hu!&EeJPD_av7k*t>;n4_Kkz^va~$UmI&2i{4m>%^0}J49{^Ng)IKLB2 zn>d2seE&^+l8bhE6o=1pt!pkr$Eo0t-~Z75`mg`G{o8;0Z`-=sqwb&m*`Gz9;ulFY zezd>1v?v252k`QoZ+GoW!ADZwdE44tZujqPwa=eFYEPctZx0^cY4`4Kx9uH{8znGK zpaySwMGI4lX+aYjZ<$x=^Zq?XjE5xoJ<#QLe#VHdgaf$HRz<_w#Gjd>!9_6 zSmV(CU7&BTq9>cd`G22aepBs$@%)T5N}R!s=l>)ZeP>c}va+V}^5TPza-*U0G}QP_ zPJczf1#9>lcHBqwK3i>!#|5{EBtFLF&Q}{>(qp@CGn!@PvkTz-^^QcJQphdGE@q&m@ zN%;}9t&2PDarvB}P_(o|y$bL*dQ7bwLtjq3=J)8jP6O5j$Q)vB!K;>82Q`oS(0QH{ zx9#=ZWh`(Kz4u|Gx!B}WG4NwQ#{q<%y0lF`bkwDe`&HW~?KT0+1CY14yvRqL_oUpn zn)vT@#dFl|Y%jK_k2l(vpWkc0{Kb>@^DiH@=g;oRG2Cu<Uc5g434a_W`%tqswT6&@wUjED#2rP3qpg2jeqZt}}(T%zbnIZ9sc& z8#H(fjE26gzTDva%KJ8%dcH;$49JF1v2Gk*n3kjG0roP~yjs@NfH(03e_ybkVlfW} zpo04cFjg2C3=Kwv(~>yBlL3JSop{rv9%w*T_Y*!w8!g%%suf3Y7=+))C|BF|B<2a`fxZEzux()`L(RdRmc8g0Da%r9-I%F?<}NE95)=f%*)TsXq_t**LWKn=Z+6}^LZDX zJdjVn@RNXN7aA9Z@uH6M$cG=ld?j}!>ZhF4xe{_%khGR7%GDNefUyP1cb>szjJM+z zD~;oIZUNSr=P)qJQII;$hmYrJ%sYjE4f4&Hlr*^Um<5nO1SqTPzJ zh3m}_3?Z#7$1C>vP7?yO3p#G7ap(<|*G>6_5JZi1fnHt74@_lGobbZw)6 z(I8G9#t28o&Khy_VyHX;%LQ-rW4^>OV(>=apdVO9-?T#=j1zUNUmGIJXg~%oU<{PI z4sm3vV-7e@Ibb>vT4PODo;`Xzp|_mqhmbUV@;q|fX?UWG3YG|a8thfQS)mb zoObBA0lCe?d>n!%-KugLmn7+!1$oFEU+pD#?O%s=)9>ikVgYnbYu$y;*>*$j2DcmYOfOeBntw>>>LYHk3Td zspn_j-DiOMIFGisUNe;A1cJ1We9^bR`r|LZURynHyRy0bF7T5_YjGO*RHsSA^$o8`^LF5JoB(pW{N+n^?pU3d^S8WsN0b|l z7e?AO-xTB4Q+lfvYlp1ZTJE%=&*$GPUg|RO2N>JXgat;Lg3fo?$0MyVol6hk!JbVi z!K`?Mc&@UmU+aX?AynC1{y@ubW5#XxYc?wlss@&;t(Eo7_Tb^e_W0@ZwyX)jZ#Qz4 z#_>7>zqm9Q?oO!48)W|!2)W$XiF%&2HzAYM=mlV`bb$FgT^H6(2oTndg*t%SukE;9 z`bB73py!(~F{ovvstjyaH4Vh?Yj=5y#27_-$O0x?avi}KFa02-kKz0YJs#E_j}2fT zyrD+B$t85)2k?XUFz3jJXYf*-kXy_=yGQ(y<{g01x^s895D^^9_#g)~ggB+NM!V3! zGp|;UBmD<|@CVVP=flZKen-nj51HT<fSev#;ZHpd6PT$fqvo`EL3Oq?cE+ zFYb4brgLaC|Cl4|F&SmTsVgsXSca^Fb2;Pd@-3eG z6aN*JuPm*`d|%RD#&fo!P+EWKqvRaF38*|;r+gVc`o}t^?lQ84L&?8keGlb5#=nJ2 z{l$@k-w+y=uE-rXO_)IEMN9A+5O4@sPd7pQ_OI4O{Qj@x=K06UE9c*gr^~EIem@^c zK^)1HP8ULP-l_Ge>78#_Yfa*~sSFnsNA3*0ZfrNc_s91f;~6vYj1NDH?m`TCn>*{# zTjo0Ls9X(Y)9ih@cgDKz;y8h|KY-I9x1DbT)-ZH48AqLWia>Tob(d%W~N{>xu{eRq3F#(S+jlLPozj^O?K%k9q2LfhQ9(Be3g z19u|S)kXZ24p$keTuq&JEg{nG|P0`e~fr4uDSAm2Kwb)l(sa-YaJe1nHkdGWl2ddZ^W$FzCSmaD6+?Va}Y z`R8rt?p-;3T0kP_XLYE?q{0!@)J=mlAaGN76QGA$AFzIy+)Oe;qsu_Rd9@5MznVsF zfIQ;f6l(j9I}I&y=$%Jf7g`9Qc=(Fk zpZMUcXfZ4B3%t;3WS2vCqC=CEgQUhh8b@9PCUu>;;}7i*;oSNU4vD5`6Zg2GR}g)( zDPZ)`tK;OG#`J6&$YjnTt2n2lGQ`QR;ZWu@I!H$fIn?r9wTWGr*TDcrG)#%!qU6@f*jnOY2YO4?3H}Lg#Vq@ixFg zHVt9SCpta=>yhG~k9jjanTqj(s8nJH5XTM2kW)JjCN3a?H{bcwI4x?N78xfwf`p0O zx#I2ZCGn91D29YrSK=M~6lx4pK=#gI9uOBT>poseVQeJ}4y2?U|1o4Zu9W5QsUFeD zn1|#s@8pq2$BwhMu7~dpGKbIy`K&YYxL}3er_roIXmHZ7TR38TuE=$`dxFix!}W84 zckkSddeGwtLPH$6;&!p@H~h)x#E_76h@GUJgZ+c{^5x6u1N9>m9Xxm;kC*S_bnvU^ z>+P#AHrkh;ZMM&zuC^x+m)hMO8RxYlF+5TSPBeMXq_7jocP0&`hpeTgL0grv-IB50 zkOR2V_70XL{B?Wv`n^q8i(e83vhdeF&z#ai;#tp3zFOO>zf!h}A-W5Hb=1(4V z&=ml03}kge0Jl$`KMg}1!1(!Ohqym@%2;{4sE^E)W9*2NSHU`{X!(q$Gg$Y8o?pa` zb-sb*QJ=Q0TiS44!2F@DQ29Dtq2^Cv1?PE#L6_DIjy3uPokyGvzu`z==<^8~2lP!GIp`NM;NZZ^@_^`Qb2D{-PN1dE@?tv4Ap?%0 z;@D8?!&@^bFSZr`5NV%z$l7AAWjcRpWR?$dnpoqYX4D4=%=L4?Dd3mCKu#tx>x4D# z@|%!8Fn_&Hg69GUHE{5nlEmR;$yRU+c0iuhF!SZiX>YoKm&T*5 zthc3gUG#14w2kdMZGHECTUy-=TwK|ZgD86-N0F~x@SDKum3)MSI636!HlQOU?RAY)hus9=0S$a{Msf7$4{ebT5W*Mx1^pt=13r7S5)R<~y9;e+>!NL} z@tQNQEFXmvxUlF+Ern`uuCG_bNuKM%YCAdIQA6A9;BccI9;^zN6ZaMr@;sqBvc4l{ za5Eaex{@=wz)8Z12Kg`)QZd>nai9wCxS`hV>(zLLoARfiw%51s_)p>YQ=#u~13>$#O>zQHEjr*B%XW#S7>wTGSUC8;Jy=r@T`kzN;kA;WDRnqRS4K;K|!1WCuOHaWR4Q(3HO?3uA*)o-Eewp`=I^|AR zUFSR*F_uX7Z!Uj8+BV+S7x$r0;|$h(!-t%(>6&Yj)nSkRP34;q$IXb76?dp;h~vt5 z+)HU;{*p_cvhn;LFLHpK07ib`5?>IO6UeiDID?#}=4W8|*|)`2&Aaujwz9R;)};T< zo!xN$jBR;EGRqN!p1X{a9|w~Ic2tgxq4&WN^k>kmqOE?LP6FQ}RL2RcFG!OEa)0Pi90LPEJ zGw@1Zx4HZ0Y~?KmVhz_-4*ZJ3C!y`=<}uo7ZRU#~%;d_uuWe-~H}w`|$@(0=L@z2hZ9se)$ij`lWU( z!7i`GbD7B|@Fxj0;C{TiMVM2jE29Y2aE{ z1`#Tc!E@YD4NRRp24n%87cwa7I!H9q4|z^UTm&{`9#n3@xgDN2al6!qfAmZAv3YA@ zu5E6G<9Bj#t~IjSo<9GqJ^TENcwUeXY>J5%eKZ;MJV7mo+j81KJIDi2W;)AYImkC( zWD2>4HlT5RgWCe(AAJ)r(cK;)liQ1n&}~v?q>Oglruo7XtbKJ|w{u(EZS^<>+w;3n3QK(4i66E1P|Kx@7@QEbsd}PojYN8xQ#*h`0?Xt6Fz*?N+U7$br3)5 z^ZW{Uuy+tLkp~U%`c*#D^61f{;6wXt;yeROACZf1W)Z?0WQ@-=|MM0x8v%Ag+mp(G zoDV7xrYxDiE?LnBI;2hd1+DeU^E5V|)Wg8~mJe6s=#@GEb?Arti+t3L_JqieobVtd z&-0ox=!iTv5I+w@9r8e@0k=sT^qW4zhmbUMl+!+; z>zNjS2knxE4jOdfHYtam5Fl=JJDl8^1|IP9c=T;LL{7_!F3E=$9(D|ApHmWeRh@z6 zPu{ZT37_DChxZD2#ckphWTUUhCse*vA!I!1llpRzF9g*-0`Nd@h$kJgg@Wpq(lU;PRm1F)d|>Ji^?2W0|Nu&3DPc9>WP~{Avd} zQ3dvu<&{;HOMY1#oJd(;tvfMWmR>pe+tP)I*4Ks{zU@2r+KzC2Yg<0yns~^zsf{J= zTeK_fs!dK0B^SFU&n!x2~0<^pU!;UaDT5@A(f}x6B)m_|g7B%tgRs<~d57b?DPN%Ki2)X?S83z0RqJBgi8t z*gW#3i~!2%sK*g!k-W?6{Kg^k9YAir7wBiH-@JY!pX_(-%P+rdpMUmQ`@=u{!?8cC zh2Q@6x7pu~4LZipH^~so0n}C?W#`c(-uUA3y27P)r1^eu)D$ka{gajUX79TF_~xvA z`^{N<@#0z=!BU(Eo}X=s&s}W>_uKCFBdOdQI3t?;<2G|U6z1>WeGJA)I|0Z!h0r?$ z%)@vS)H28WdVTsf_!OGkfIa|qayrgL;OdFj=+ENA#9HvHGI|2>7K}5-23<4ORVMOkzUKvC{^o~# z(9}7EL51F*NdRzYpvT#R2L2c|5aSBH>zi*6j6LPnVU@Xp`MVF68N-Tfq{*jUoHOWw zUgw0g39b259;PErK5dX!bjgdIJ0)98BfaV zm>4Z5fE?}*q2&TSH$c-Gp{+Ot&>76rSo5qyqx(hsqpTbxXdk{fpC51JW}aA9>mBsz zAUflNzTlelvMk=(@WN)E>LP-RBy1-a(eWKTwW)@M$`}y-mZ!>PG&tVp;W%BzDHjeF zZ_H{=WP@U_Je3(m^a0lLia1hW+)fp8s%CT^7%wYAM?LbiW8%wSrr>$M=7Tb$g z$L)t7_uFs2ZSBq5qqe_y(T9!9%1DEzuWb_tX&*2xKt5m|gtwt-9oGCQ zsAYLNFw?E&vJAkCXB~q?zqCNyA#-*t&-+kWKIA!Vr2T5tXoYxSr5k8L^WX}fy2hX# zW-4(WyvJDKq#-Lt$9)UKq7a7-Cyf(9fZB`^hKY~Q!IcI-CefnlM!4;b>)f zo+`UfAmdCvr;>Z0MG$$(;J2RiA;oSFc|l{ckhNHN9Yqs)6zDlG}M6)2+!!3 zWI>-sbjJ8Fj&{1qWBytuV5Y0ggHHv^>b?WiAx@d~2v}d_SFCxQ@)}6Pn-HF$H(Iyn zwnrI;XZgStPNG(3&H!k~kvE1tu6B|MSC)Bqju@AY7lXILvoJMp)oKwLI`2>994~MYvd|uqn#etTSjw86i380*6joGT4 zz@=4v$z$Dlu2GJS#16PVG^gkJ zYfj{2W1v+*#G~)gdfr9xUV$961CR5I^Kkz7^%86jWzezKu|=<6y$W8>o;_>3x){WU zu>O&S`rmx>yWqt<)1aoZQ5e4o%x7S9T`o=Rw3FkNc5=EZqq?bZqrKfBG zu>Ggs?ziv0f8SocK5lz^{9wJ5alPEu*K~!tozGyP0FbL3ItBtBRF%Xag15zMx*}k{ z=H0_h`G5z#hsyId3`=nv;!qD)c=19<2t7}eKh2Y2l$Sb{PHNPIxC|s7`C1?ttTU}z z7TMO$cH7+EiYqxL7$PEN$~pu39b;bl0(!j0aU1f1TJA}IF-*!z512n-9#dH949){9 zt=p*W_dG}g^u2DHm8bJ+{uIzA;Gj86!iz>iig~>-l0n)Wgw%KL!khhWd68kpUzQZ}YAC zc3y4E=&~9D;V3HviSxE8Z>6eIT#%irJrE}r8gAQwrg8nacvG6Vd4QyyKZQK-zKjDS z%oh}J=r|4Bk|TXrdbuA+d~0h*bDDL{Enb|R{PB1YV~>6?@^-Qbo#)@!CT;zpdmc>~ z-*navJe&mtYJ?-t=seKz`UbG`jnwJ$dW6PrU?az+E_^K$Sb2lI5y_juTXHzIH@Di( zmh9d7Mq6K93*1=Uj1W5b!6nhwt1F%ljqhn50}^FSj*AlnK*5| z?M%8lyOy2P_;OJlr*|6jG|&2jBY@LY5QoOtmsR?pxfTz}7PmfS@8g*`<@uB_P6#7C zjXm$me@eERPZ-~z6>^)^AAttXFE|ywYKNy6?f6U=U*~)aP)>+sx@Hb;ZnxEKt=Wz3 zwjA-@wz+dx$nD=d%HL{Ba!jtJ?`Ti`;Tb~SB950z&?i%_^r5cL8fTuy_-i230iOXc zpR)ASh-h&Dxv~dgUY$wOKZY|7O&9=%n8-xS`K;Sb6?k5I%&+!sI6;P5)T{lp8%KYF>q!-cEda(|4Z)l8?j6 z8bcS-6+XxI8gR?uT%uuMkEjW_AN=V5TY3eH0YqsJ7qqYF|7Epnq%j|Fk-E5?x* z69#=6NGGPQJx(if{8stN)UA#90DpW}6NhkZwXKNnx$Gr-7|tNy!;7~~g?6Cg*D!9u z_{lUOngShnK9BZrYm|Fq;FNzQvm-Yng{*X{_ZHM;;O;UNTfFp6}xjf)_mC zO&IdYnd2mn!v&uG+t_U@n?gCyD{{nFVCFU(*ZvFCt2yKlHAZtaA+o>FU4ld3v za~|FVo^y^Tq=w|-2YSxbxjW7&<<)$Td(4Ang+jM6n;$uEYMeUNMgX*F2ah(O^_;5Z zzNoEyq4B(>j5Uc3u`K30$~qwZuw5dgUAMz}x2>ve6JmQT7hqcgTIQvH^MCs;(*g*xf`o6BhRZ|L#;Q2EI{I(Br$R0GG^Eqhkgb9P{*`{oKvvKFj{vXJZSeG zJd#1%j^`z~JrKv{T)Dz0>RX0%;{2v@Mamsk1o}Kr)+*CYNO@1|HUZKAd@D@_$^h~~ z($x0?AWc2w0?n((%G-H0-eZM6pEisMvvL-h+oIV01%qBlnQ4M<-~xzigpogp;kKsq z7JQ`#w*h~*RUd;uSLDZOz(8xv^_p^VLIdCg^368N(JO`w8g9SxohtZ|M>*0!&#hsW zyT{>@pW;#ojU5#AdUS5!fw5iVxg_ZW8hC=Fxn&h?%8*e8AI3d+!e41_r9;Q&U0)WV zFL4VlLg{cY-^2iO6v>ihF&MjkJ_8`ufQRcDEy2FLSk~VQpSQ-BT(Fx;{x6Nha zV(jD)gdL^c(03u9V2Mc{IIP_dF)KXT-VEsfoA-{2p5agke3e2-1IsmF?Pc`C91D+Q-C$b&K`!YK1 zG@h{Yjg+~ZkU2!WpQFr4ZVdyTd*;E~V$BlwvwO^A_;FYRE$i~V)--&`w{77g(zMBi zj&BFUk9^iM4jgpYq{HKE1D@o?8W$}u?{P=q{kwPZd@wKZAp`jR_uq%TC4PK-6#SR| z&Hwy=`Z^|sCe-DX4A0p@J378~NxnO%!Hrv-D34HzyB3ct8LCU#&CMHd2-G|)o_IyT zj-b;~785AbvA|pw)1!l0uh0TDZWwtv?51u&sm5gO`P6is$RK45K5-@kA4Fw<$=B2z zCn@PL=&_(V4cu<`A3kn(?%j(;N*+_FJ_DGtIV~6Y z#tMDCJ_ITcc(PcKq0$&k>rKM4QU|1rK2Y~Igr-7YZm98jn6D4`)B&_^0GeXVK+9am zbfk;F3B=vDmgqPxV|~@JtYeuRAh!|qhWrqqqyyCgY0w~UBTp{wXd|2!%{BCm0l^4i zba)oeA1uXDigtw=;wBF*h zM)L8zY}|>U&!RElG_c82&zSi+27qd0UZMHJ$L#@(18KL1ob-iF2O8@GaGO0)*ZMN8<1vSZ zHk~FUUGojDXH-tm(JrCEvM>*NnV>@tY>q4nkA>G7e2L=-+6koJ){!A((EP+X<2F9O zN)o?J0w3zfp2l346UjUl#<%&z0zPq35mSsdl{sKsaL5LX&j_-fNK-zf$p>*Vxp-l& zs>dM$9y>yY2tmKH)| zBt18xZ-cFMAA1BGhpy_8yn2VsG)C70m~+fG=A-jL9y5T}^UL~%p7qMy!x5y6`picz zk}1P(av=@9*D32=Ee8$xT)Y#~F1`SB-8K)Jvy1$N5?%_Uj0?rn0uh-P<0?ZDj&S2Q0Z-1_-oddv$;0;g&0hQ6w=ddv-@a@wU+uMnBfkH~ zck9;TC55Bo3rz%!4yP{)SNI^TjHaAGgs0;O9G4yHoFZxrW#I%SehPTdryyi!5e+mw z8m97Vd4);?(3c*j@_s7Z)P4m9*AozW^vNOu$ODjt2{ukfi53%QC^xuYAUdO*a0*>! zpbgq~`wn9>QCJst)lF@43aMYQ@+35m3h=i)mKPvxK9pDa0oMbk!1*65zYWaa`f(a` zpRHf8?^_SlGt~OE-+;^da;N*UKHmsfe$ZF5#62f4ARuY?3t$e?XMj9AYvyHy#^~D@ z-mo!{He!sUPrux@Wrh!R0P`fItm?Mv&p@8hbRggme#nD?wi5`j7A=o?AZK;3s7oGo z$Oot5gwRw|0u!8$*If)xw zR?E#3uwHwh4Ug9pdTfm3p%YF;{5&M58>D^eNx5w%eK)$FDQAYHBcJkN4z9@Yi%@vy z-rZOOY`W-dc@@157r)x~0Qarx!00l|--DkEN7Z@P3};1qBVj&>IAXd(GlZ5CK|fPC zg%VQ!TD}cU*kkBL{r39f<<6KJ8#$-Y!7}-g&d-$bMGASac`I9bB+TCm9_$KzrEPF{ z841*%2t7B@;l}`e{KVg=KY8Ao1tWS)XX85G##nFQRiRHCDi3IwqpUyX6d~!_MnAtm z;^-3{5~mKlD5EZO6-N-B0JP*Yf1zhB*LL84+nOd0J$ymWeb=%42IAOW=qOuw`TzU> zULT)cw4;-&_(aUxz4P|s&2f9Tf8I{cm)cu7ghwZ7{19M64X&@{#|$^+^dTtBRyENc zJ$TSQd;GZF)m6mx`9(WXLp)d=Us~6&5%SChLl_EX3Z3O`BY@EPPBXb2kD3Dw2wX7( z1vRgpG9sHHzvi9}f)#+1N*YX>G;Yp=&UwU*0Qt+YfM+r#&Tsk-b^RB0ECcx`5|f^B z36*bAldlOrw5e$mr=DpnC{w-+gfCHJzw=&^>*{UlBqZPfm`ZO}R}t?M)A2o2P?+^%n+4tb7)eVm2vbgz3t z+UxmO`A!Z}e}K#Q^%n)Q-n7ZMvHAY+;#K?Rn{VQZliL%#q;RGyQk;#? zKKm>m&et5GZN5o}k)qH1w9$X~5C5UP`u@i-Nbu$DSm^j{2YK+KPu$jkKhG4AZwHC7 z=i7|*gK;76;OJ0o$PpOyd@NqH&*sj{6)^@vLi%^9KG3FlAR9&)#DF@_{GFx@*ydK5 z_>fKqYa=#78)Vb5k~KOJgNO0_Jij}Jj!7d2{B6K3r;#*to=3||oY2fp(4#%Y$&0p% zePYu#AJ2s~IWw16`IfdFs47eH$$1FUj(Jdic9t6#;Cfjn`{{TE?H|8S1hoh+4pY=zGo%HQdUPb^GWn8hU^y*yw<23N% zlv{3j%kJ_#Z?~_=$+E5R2Q=LtW-#+O-@DXqj{HJ3c;)e)EmK$4?%{MFi=Sll%>JfEP8m zklB*2KtFOLl%NuL)($wGn?ccTscki{6 zBl&J`-?kUu|ImK?@yB?yhl>~98vcWS_+P|D_W%EX`CsJIrER*inGXNb|NVdZ^REw& z&f0rz2=DfVdnavgUxxTZ3*~CDZSrQ&ims4WRAGHnm{*c<>^@u(At-Ng@p|&El)+nF z;n)mHj@yw6!yQy;gQybC?i`Q`kw1WGftqiyLuAN7E%h}(Gnmg0S`BK-m}LyI^Kfj-x?+zptTe-iw`yk8sv*x zaZ0Z!pK|xh4u#wF6+N^;uY3$X{iW=|z5Ao%2>SU(k2CEN#tGE0dBTr=5%M?<_7tS; zxWE=4_=Dz4K5{{4U4f^k*?$1uF@{3owBcLFQ9jgzAAJCqk%!ZwTrwjqb+djtE%2)d zP=2KgO82MAK^z@e4}kLsotL*uXYE#SeZX}{BNG_BWbe?i<%Nd*%1$Alr*RpbjBwyb z9OuZNfQs9>kcGundCYx{xNDgsMRQK`(Z3gr>(pgdDGyBIWWPFB2GE-}Lm{W1`rnX`p>w14M8tMf=FJyl8;4${tS@z&fUk4r$dg2LO z$Mp@=Lw56U9>{!;IZq!8O~p#z=L1etKlqe#LazZFM7QHL$owUZyyP(#&vfxgA8_>U z+}VvX&rxW(fW}USBRTMM-=T@G4Gis`$v)B!z+*JC3vDMC{Je|MWln@z-zO9k*9+587LWZ}-pI z{?TPSzfva`SH)yoib2sB9w|L03kqWHrNVf9|1RIU+TrKq*5h7uIDwiZC;(#-6OVri z$03GE>UeJ8p>WzSdys}hghN?`{2$VWdf(rZ5uiE1Jffa5$9Mtf)%s4GHU@US+5kgC z0`tkl`~)Qbaumvc63GoL5TG4ou>L3~zPXvV zG)d!}kY|kX8R+c%8{h}h4}dc0LHc9B*48{iXsPQls6hTa3^q+rL+UzBoUy1#9;jJ7 zj+4h>P5TjgO1Wm^=jX{P;xv1{M;_f!pJ-YdXe)9g!}(J?IA5z8Z=5@MO`%sdZS>8X z#@tTj1P$jCU568;_Wg5c%8b2HLXCLIcWRJPe8gCEl7qU)9`b3eP$uMieDKEs#e#Fq z&z_tBuRu`0bwKUe8qXzeU55;sYpUa4=0NVa?W}qr7egy@1dt=2MMM_l(3lWch+Zhq zTg`(FqX=CIS!;Fdr^XUGmwDV=4sV0Y$Fc!Dr_84!^BNg*tY>n7Q}h*qaoj8aC`mrZ z!~6oUC0;kQ3yLbz?k6Y3ID!DSa7R87b_!bnKj^psCXY4ECwl(i{yq%up9g^Mco%qxhZE!NkV-xouJQ(c;a~((Wr5r?_?Z$qrYyL#p zzy8br^Ve_Q%K?0U5)L4@gRibNiIz7t={7a=+#aC=IryQZaJ1BM{o{%<1>0#`T7Z10 zmf$T}3rEmSUHr{(A$VsFVZ?_cdSJW)5wI`~V;yERVWA7kxwIjTa>P`g zZDspodH|;x979hBua7x`wZ8MK4BRSbRr+=|hLzh2u^^O>&Z9k%5#;w6qk1e(S)=yk z>9h9m$zxsJ^3iXNQy2lh5k-Qws32Kgi>nyYjHfmLCZ89C!zdecQ{@f06oyO#IIs5A zbsQR8&pe!l&gizCU*&P0AvUq0%=wjfU#AbL3)DIweQ|$k{~R|s-}Q{9O$RE$Wq|vH zzJXpYgVU}D^fWzCZk_aDkDLe+x?aLePUNQ_X$;d5MCb0?>G1Jqj1BcMRBVp!o8L61 z47&hd>JwtT4)*rL5rhZ%7$vS?;muVpp&dd_zOgmXVPv_wqo^5Plrpy?0&*ed{KN0e5K4H*sQK9jUH*!U5j2BHLALE+88YOuoDPMfR=}kv7W#A*v@LJ*% zI*hy0)aNrbyc9}Yf8@;J+-dHsJ#}2DeIJJuCy+fuu@5Sq?uhZO)o5T@#ZkMkZFfz zQwdu!S@0teGEM+VXadTA2*a?xw%qRC*^TD{xeXKxhz?6Jc?(9J&VEW5YO7p-5sZI0 zf>}139MD9lyqiu0NBUW{l3#e4E?|CA2GG5+UV_u0CjsCzA$-73JrRsLgVA`WrX(R5r522*Mbi%K-y5{L=C zGIIh!w`X+!Yua(3r=J4yLxur*ddiHJp^t-80F8MeTaT0ju0Ivl`jroH7P#}g*}4q0 zp&;J#11SUgzVte;;54E6_Fz7JIeF&Ux9M_+;I$^86zzzWYm@kop)mek&B6!pn7Vm@rn{!XOX+0Jk=9#GvQ-K^#SlAQJP> zGV#{2FCb|zJ|#2c(|a6MHhB8NGtc3C3fUCwG|?{ou@goJJ$bZ`gA{V zJNQ+UbOe|2T15wMP!66#MaKPtU-F=CAp1nfs(i|kUz>V_O5+rw1LjgVhm3*BLh~Yu z3kPVFU&jt`oUo1+P}7v-96Rn19LGcSj#o6D=k87QYo5`00Q1E26^QvIJK=s^XdMuT z2D?UB0Y{K>);}RO&5j@!syrqDAMy_m4LKPl!BxsR4lJzHA(G8(N;R zCXaOu9dP%-eF-7Gs+`m2!-IVJ?zg}GO+1Iqvw_f($ERvoEAZmtn2RNzhmDJ-zxZeW z^y|~}rFMR;0g(f!*{BK6RRCA*QX~^D6q5_^>QaV7!q7U7;e-2k+dVlWTe^xz?Y!cw zmO?PiR^`kFK2wi1_|~xN0U00o3_MYYrUn@) zFEl|$n!e_wh$%u5Z3Ruzk*_I9X$P}Bx0Q+6LaA`c@1w zAR{^$+mMq+nROPQCK<*Aplp4ew=}se%(H-;_+{EZnolZ5K95N&XiLc2yfDbyf zBdA73hts#7LjUTc=Nu6Aq-R2>LwBLSoY#QIj?KT`Ms;4^er3)>%L!=8na@up4H%jo zXpP7SFVJ(cB9L-@xGu@#8LA7}I_sD^v`_z`$+m~nOdO@I9X3R_KbBEP^79xJ_Lh2n zJ9kNCIAA=2gY$(xpb1BdzG1u3v)acQ96WQo(}TfPM}$!lB!L=Mg{f47miQ2pAy=n?P=4^tK^W^e znB!3gsv40QU+1CxESuGL8icMwO;cA>a!6H}<;~a6e76Z)4Y$Fq9r*E(vVr=eagH3- zl}`C)ldMvE{P`Dc_s%^nN=;Ce^5fprIXgd#lNEk5Gj_LuCGEr_L3V}WKK2u2!sKR} zX;0D$(QkMRSak&gH4mT;*n`V~DVm$=!5i?xblc8%y{WntTxSY_TA#ey24Ed{fe{Bx zOMTN+nQESaI+X^Tk^^u#ZPYYa+p19Ib~z`4j)N)JOg@i)w4=G|elkbw2y!~d`o~ye z+;}7ezyNW9MP2HE)*m7DSG8eL2Lp?W{_Q7(SFSi59 zCtdZos*RbeZGKt|qaG)h+LVyXb)ly2$m z7qyMxCv@AUL)O$g&!VbN;z9G$lpHZ0zez_d9JlADOR^d7z=}0v(VCy~ZEsEpAtbbE!7sSH99gq+Z+x zX4;7#bC6wEvA|0XU7|jHNSYDJ5I<4Gzc>}8ZIy|!x-A)kkCLkI@Fp}6x31yo@$}eI z?r|br$H)1mq1?RsGOz;qh8l;5L*$@?@bf$XnbSPGNB&3`b#g6Xzu?JSG^f|_!xq9P+EW{pQ!fsv1YslP?9mQ@6L|mrea)}5S$pr_$8&)j z+W(RDcfb2xythGHJk!j@2+rs_7w3v28*OoC7sqt*qT&3l>&it};g<{T3^opb$n%;JRLE~+@?9rUN1B26 z0wGM^$v;rz6JwMg0~p)72`ey$9#5n5Duld4yN(lrfa`#@tgi!3f%)`cJ^;L}hmT>E z0jyAEt!YEu~*mV|<;qe4zVa<44~}SDMPxfRVzGnLqOe zotn098=wr{7)F1mjXF4$yzS;IU*v$6IEE2N5hRU#lugNGu-xzoV=l*p(BoE}7LYWu zU}*h3pwSK>a?@XAG!M!!sPKo+r91_Uw)q;>>p6LyZ`~W64`29G$7|B#Mjt4nU9S8= zWHvoe$HKDK{=frX@MIjJht_=}^gJLROlOcel6Bn{JcvW{TUI*kk562{H89*r@KgVEp&D+8z!fp z4`UdysK#*UaOA?7;}$Nbebi6nMLMIChc~ znK^kBpLkJ(9b9sN>;MiEXR@UuYCFt6I*-<$^+nht`BmqD$H6*J{vRT|P4BRx$BQ;< z`_2c<18`mstYhYk*9icvA(6X|Lp5}g~9}nNw0qL ztvSA(r0L$4m1b&QaCLrl)^@hH+M@^e+hZYzTJhuFF!U8d{1IO%$iJSUW-=67k=GZq zjo%@+C9GVIFg;K_;AlFdrbX~EWd8g_GSaf^x$H_xQ^p)3Gt|a7)lmDCaUULxSIkw$ z6=^S%{s$0uKSKuTm(X<7<5Vvx+SMQ(o(WQgIP z&!(#H_SF$hCmS8MZ{506ajpK3Eq!_O);d|@UxL1!b;+~e{nCGQe?Jz$zxvNb{M*~3 zC$fHMKreGaYP*(37bPKgcR1<6r-DzApbu8Dh z(RXoexb=NeKi+Su&0WcLACv`m>Y8ft@7}0*+Gh1_^-z}`C;daF;(4OP_S2U&ZY4f# zR0l1cK3|D@9Z&kL`=fN-<*eL#t)eKeF09Y>EIs6+p&u!ixs1I$o_71SI-BWdW6*6X zA@jmKR926d7?80_K6MazWE??$@^cJCj~svezr9_!7;AN6Fo&wpIzZOC<@j(xm>+Pg zClzZx`(X6vU#!<=KK}UQt~aO6QTF@XQ~hDhW6Qe3zsJF1bqxIS7r*Ry$$DRqUv~Io zlPfaj;b_a}d^$Kp}h`0df z<>203pIYdVEuHG5jXKfEYAXdL`Kn!Id^7)mrM2MLIS*hTZ)+e!Lv-LGv*YWSws;y_ zo~_hPf|-Z*yCJu3XMIU*>5f%D;@(h8c>P<;#94jjO}LV%gQkClRujq z192$RlXnn=hi06h97=f}?BO2~pX$XrPYBVGCYEDcj^IGOENZ=+TO8xBv<_Ur*+ix>!jcD>W@OpY{)y9fRE<*I2lBqZ+6n3__E5OmL2+j zRf^AMuM?XsWhbP&xBUplhSwd(b+N=x%NMn5ovhFKN^^Y3r%%!^k%@nK{h6_(i?XQ{ zPHd%4nQqdFX}9%y!?DV2HuXD|%jbH;y*9c|Aj{{nDenMSuR`GM#|q&1ArN`}(*0X~ zm2qgBeKxC@>O^I8}ycC|xmxZ1i4vw9I#}(OX-U<*}=cotB-|hO%2C zD?(#0Pj6BCE19M(zv5i;MC^?^R|um|CoQ*PWFzf?HLk@gHNLcsyuL^ILcp@IbRaRr zcVvRp^=^RSf^v`PCL0^-BLmS*{p&DwAa;)YY0sSSzOXVm>rnjgly<9^+R&OC=9s>+ zuJ}u9ct88u&ra_?T5AddGW6JUZ1|ySI_~1BH@BVpZQy*e$Oh4) z;P>Bq@AT0JAD({n_kYxDX|HYXKJ4|)M$qG6Yn+Sa$JH(y)wjwfzt{gK|Li~aX*Njx z=YiAePO$XwcV1s%WzhS8-6sH=SA;t@I|qJmR5zq| z4QWUF*!U2?(7cTgyWG-&=y%>Ja_FMGBUpv1U-5O9ZaV&`yanTWEpDzLT{T+J->DPV zdo}2HAG}-q@={Q6?-j!7NM=)I|lJ}Ouq?i%)SESGbsyu$}5KD z8{}VC7vQmP@#QOs-y_XIN=$pV!Xxa^L;wS@r zU6Kth*+A?xw(bmn$uFCW-%0mH-hDy*TI_5DEm#&E3smb>orR}QmVI)$y2t~4Hoa5) z7k}{=y&1GYYyBc}7Q4Wr`Q+KQxh$-BybHT;1nKhOu7mggjN>Y=&16O1G26JZw5~-;@=JJqyj~I5eI>35{Q-#u;=hjth6}03%RIx&oDU*53GayLs0VWr;a{>BpFNkl zPu4NF=Ezz{c!|E_5@lY{BfmC|r(Vl!1pQ?ubCQ0)uU{a`uXqTnL-AP^XZdI_SpVy}EXFvVv>3iS(?&)D|`u_Ic`rG}@!S8+Vdwq;&Bk0cM{kPYK z)L&roS4!?|$Jw=~&%US~qQ}3!H2u6Lx;ufs_WxxC^yTTx&wgGF{<0KKr$=w!J$>@Q z!_!9}*41<6Z+om+ov^3|%-yZ=e&8jVgMp4X)@6`iH`tMzdf`pHPR^!lQr}M>bgVzh zOj|+nlQ(f}OUwBiij`(#yd>5Yw+$d2&;Or4uW}uPcke&wLA~aM?y9flq-D!WYr^_9 za%f*f%Ht9!w9ZESC!I89LbFa9uy4|aGP&hvU1CYyksri|gCPeWvN4d(m_nCg2KMIx zmje=_7bvd-eVu?~=V)8`lE2h_6K3B)bYeIC5jtY(U83Nqf2^N)lU&N$r(fjLkMdbG zqZ7ZAAa?o_Fg2DoUhKGohH{6FJ^cgxkwx)c3)Xq=gfg~t;c0DFeU;zh3Kqw2ef06^ zul>Ovp1%LxAJkR!$EW*u{gsWImaqP^mHnqHJ!Z2H8R=WE%D%^HC41Ai+D2^pMEm%) zxN3)!rg&^d+!gRRM_zo=+qdr40`Hf}+a1Mzxu!OU9w8Qa4A+mF#lU~nk)_jmo1NU* zbaFs8(aISQ$e7R(AD#47$`2mAbLMLgXyeTrer3Jh>zj1v_Px`+>N`Y6jL)9>iwJd` zdPmMFp?KOLc5OV{swr`MP7eE#sq1*vC%Ge?SqNy6xL??1??4~cJsQuMu53LR0)wM2^m|CtZ(o0?Z*FW8+ zb9u`{$HCX;mtJ^o00cb(<)c3xrY+TmEB#aBbj|#(|D1E!A-ldXVIGC{c4S_@jxz2@ z-h7yIB6dQFJCyhmW7-^qA57hpfy}f6kxReLW5wEUO@io}PxIU(opo#}ThkC*>hPnR zHcokS2FWKDYZWrTW5e8bJS0vw#Gu~sqRvG*-=)y+IY*Zc8D%j5{k!+?)x|)K`9Js1 z{xhGtD7|^TI_H&lUVPm3i#mwEIK6!43jNvXoqM-VA3l0``uL;wPv8FV!@d*v;BGB) z)~X7=Mzu(i0|~9Vq%{)?rr%bUnvC1VX9B;|k}FGlew(UXw1sS_jlE#~g;@>zM1tSiu({B3^m`%&^6kp70m9JH;Czy!-g z&V%ep{r4ElTh|LK+a)~PkT=LS`OFI)Ez5@}TpJP8LBep01 zi1fwlNF0#(*_cEodAKA8;ZLM3LCWE^t~qv)tC}q}Ms`4Jtooav1+vQeD1WU(oY3v5 z3F)p|FIc0U9wX6B-@0o4Z2L&61uPr2d$l33ku}3ZDj$f0$_we2RvvB?n^6&rt@1Oe12vv`?sr5IaE2j8V)}}1PNDOqP(ERO= zpbtsY0cC%ELOqBj8<*H56T684_)iSId9(p5Tk>LV+r>L?m^OWU3xXKh?&gCGebirh zD3DQyY*@?zw&~#|ZjT1t#XQGYecgTv8CPlICzrM<2WgYX&ar=vvj{JwovBZM#+G-e z@w7b~NqrliCE01~USGE8^3CS$Tifv`mX=J}I+~4}W!J-O)P7 zeM4G)>Oc0$WG=F7J5;5Osy+4J>Drn%WKhRx%#=HjRfpecQ5iq?pYuZMJ?Zfq!pJV| zf)hkv$yA$*>8@s;5>NQ}Kg~&~r)B*k34l$T3C_Mc_C-Yeh{8&fgFYWN1PU}=)&@%8qDw|i}*?{5l|VZ%kTwzwnc zZlAwE;t9vEe)-GOpZvW)X*(_i`LQ8%p4T>MwV>BtK0f~NgZ6*@fBet<6Q92F2)H(V zk01ZGuAF~USJ0oIUOoG&M(*k9yPtg2?*e}E;rq22eE0P5?Yi>1d#|qOD)?$x|Ma{Y zVer>PSmibFCSMM!%5=jsSe5zOqv58SnM>CkU8(Zg?CgUeUsLE@ztcYP;w$_q*Zl3) z?va8FaCoyk`AI=`mS>*?=Qh;Y%j1E@QtShG>DS_Mqb6vP$G*=h)?0V(p5FWLj99}-y{U*c)$mf7XCeh^efmCU9+K2eI14tRA z{SG2^DIY0y4ob4}u>lSc`S=V!@gyeH6TZ^Oh-Y5)g&_Wv`Gn|6Bg zX=I|GbV5DEUm%~pn21dH@dHQM#u)xxZnyL7+4h%#%GZ1}tekl#1#%W3k2WlX7Odyv zg?sI$XK}Jow7K(_Ih?#Lc8Cq1ILIOf#=^ptACAF_r`qo-HYnYWdrkhXU**-7`*-g3 z-7>aw2kKX~5#=ZI(0t$v$%`AAXWAppJiZkcZ|sl_(YaBZCvqtMrOIT?r%BTuDobrwo&MCX>${7K@?#OU^u^x3?e5EV zYDx_8TaD=Ro4web((lbv$=xg+b#8w6^L(y8dedfG#|Pb7XLXHpTff7|{3(&`XdgTF-vy8Tf6aEXTpZ9`0I6_H9ji_=E_H}?-d78<*Mo?_t-h7l+N~F|CkWz zm%j72&&R$iSn1lN^0i`dPHjJ(UvmTn;Y%UMExX2Lz7QWfkp=m*`%?Y+7%zlB(^fel*bc-9E>3&>jw*1OI>Z<#e0Z}vt^9M%(a63FuBLRuQQ zIP*G!4W;?)F*Vt~<6UL`+3iolRBZMDeD4@V(O~ zAG~*Z@7;%|d$;Q#tf0LoXkzH@mtKr5XlOQrGv9+@n(5ruSWvb>^s?d+rM>0kV-I&r z2RVekj#UTkf6H6grY>Y7*!e9D=tlooH_KCh<@a`GqBj54ZtG0fEGnC=O8RbH%KEJ) zp;o#ZD82viQU6J~dv!9iyMJ}P7Q2`0u9i)pt94!5zy6}3utEM>#jv2h#^mg4)gS42 z5awXYL6e0wb;$=gpq$9Wm^%3!JgJ*~g}{VO9XZH>JmZ*g&hk-?Eq2%ymxD8U(=UGr zA7YoC@W{p{Oc^N(KXu86()Q^)bl6nF?m<8nZ*ySxv}i&pZL!O7Mbw+ zX2TYT)TYic3J zOzZurwSmffaI87GiiHlIy3o;X+NJFX=wwXAjlv^qyu3F_A1|9fl)qxYe$aP+hHpCR zrStv8^igD)z{{qazr+LNkamXRBYq&i8dcW6kpuoZ?&|xDVfs1bmy+~S*JHH3_bBfj zH)*%4#)PfdZok{+DeX#J>a~S@#tNkBpyjs<@9Kdj>#MnyJ8YFZ*LU6dztSsit$pZ5<_*Rcw*6Zxa`lAc#b?Oa zWxVHnY@M1jjyG$7c|{I<9~I9rW(~7el;>`Tx$?_j{<1HCjZ6F(S8LAFd(yIEb>35N zO`GwUYc_D!pl^Ts+ovyUeG=0LAAE4SfA?PV#iT6er!StLe)5x_^u@QYA^iP6{nL)^ z+u!SK@H}L<}lgFpKwNcfMYrZM>?DD@=~)Xs4oWG136f2(%#Hyy+kWNxdY+4;d7yh#&B9SHA|{9hHX zv+rO)v;K849&yPggfIOj3M?K+s5im98z}V{z(nbfLe?bkt;fU z?Po6sO48&}Ch)AAw!|GuKTirj6h25DkdcA-&Ve?4CO;_$869A29?bH1)93Ux?an?) zI+6O+#pj#AcPQbRJT_cCfAszby%5^i-PtxoWGskmO+7xyd8ET{;t*5X8nPzZ zfaDG%Iea#dwo0`#{S#Z}UNCKvgT#~mOS|cbJM%Yu{fVD8L1LGR)$t%6cFD}xkaGH7 zo5TZ&K}=-4-<5o9q-|*Wn)XrJnZ68}jiur|$TqUYTQN8{s$cO0tM2Nt z8y=f}@R1*Vq>tjOH-4oOoAVv;VBHB^cQAV+x!u7-eG|@W9@`9hgj`~;ClX?w~+`dJ+c!e?*VjZgC-a{{G3Q)g0+ucIxx?BJWP zVsmjzzVF@@fq6OC1;kg5S$VpNi)}pi&22vE<^mST=lF5~?T%n{zIeR8u^M^2w1s^7 zlYDHcyZ+Dr6CZy1>dCK8H=h6c^ufEQ)BoTf`S|od`X7Gp^!wkd&ELJ3r|*99&goul zY-?%vx@S$SJ2hGAs^4ECd3LKdDGsFS$n8qp1ntKKO;s+Z#;>k%+ws~+I*=S7wGk+u z?zPF0t~|w(C|R8ag6~_~{U19u7~QFB5JNg)-Hlv%4V7wa?r6YS$I)G6^W^>2lIk6^ zN3rfOxQp0#%{U#t0H(9XlI}e1(=&Rz7O=Wv zt84x$*J4-;;X9AsJ-zeZyQkYe+f$1Z4>skkpZt6pPNsoR}`0`?7Con$xlA0(+-&Rv5_%|Jfxn__{E!g z;la(CAF0FWUQ4U;bi;b>K-|VdidvBmBwJ^~cvAz5B5A zp4CpNLhd;R6@Q_aZ! z@AkD?Fz>!|djH+`PwzeY;PmjFN2l+6=X-Va{L$&*yYKZKvHp9j)h~X1|G6vS^6%Hk z-amA~<>T!49^5}YtmEv#yN^!yYqN2;7WF%|nBS-cnLhF%sFxLy6{#qR!i ze92p<*s6bftujjei78b6&1*l%Sa*^t9%;$+MSIa&t4{siqIu@nL&nwk+5o$ISsG2= zg>rWd&tpN~2mJi=FHg7bR=?l9-D1zpn=<=l^{a0_`eq&b{`}?bJ7TYM2EmG@A6Zw~ zpI*Cu<94UkxN_6)t$F3Z`_aCk>eU$e^*WvM_b;ias}TXuzt(jxV`?W zMb?Xcw{)GLi=0o&pJMU4-|AS=ZLT{ffBF}-8N7Y^ z^>2QC`gZZY|Gn>=epb96{qTqVUFg63^FKem^YERD@7C$sothi(y?d_&KR$iu+aH}C zz4x&HTFAXx)HTRNL4AZ*he3E2`ENo_D2UE6-?qO2@fY1m--PJS{G?0#Bkvyu-=v=n zOHwprfacY}88F{MTPN+V`bNa&v^$ZF!4YH;J+XzJZ=0!p1l0%3y0V!v)8~;=pLA|Y zBEv6U>XJXw>WAHS;!W(YqluJ{{2&{jY^svRzjEqP;{9C_Td@};p1+E%*ZB?~O@A}q zZ=$IeU8y+dnDqu^+f>N=g{u@rM}N7>b;auB7JYLfbIY8PAK%jG#|LyDZO2mVkkudJRHhT#dwcdftgj&GDFs zjcJE0IXr$6H=a6({M1vAv@30kF7S`SOM6k;9G%D<<-$+Qla4sHHSxvnq}Y%@V){Ur zVu9GVUg&de1v1)|ewqG&PR1rF$~Yd!F7;CfrOsOAj-1zA%zbyM`R6zJ*#! zUwE0L;2p^u_ef#aY;=0=(8};{tU%s$|M%9_GY9Xo(;VVA{uf8gmZE&LE=wQIr zYw|5$`72b`ATkT94$>g7^HxT|RNHM#TZ_LsXdl2cZL(K*ExYoW@-q+0&^Pf0T5m|I zK2O5Y*66=@>1F(8);~4S^>0nv{a_r3S}F9hJ1;l6Tx6V7pN zF-Va&S3OkZbuwNf~zn~Jjd1JyZ! zfI3&U79;(dO@ll4iOKw6ulupC=D+H{m+8GsH(suvzWjW>50kmW7M+fD+bk)Qv8Y+> z#I^p4fdzNHjGfP>yi=RFd}B+>uUP!W9X^~m_(1Zv>xx<2Hh-;Oi??zw;OA!p?O**-hxAz=Wx628;`x0FXqN_wXx+l{v>zz-1)OUW&N;50e_BPa~Rl2 zf2dpW?Q>W?TYS18^&LV_MqF5tRd3zWMjJ)1hWzx;f7ZIzIvrfAin^CqMo8qerJtK6!Ndpf`bjg6}&|wb0fk zI&em}$_Rtw>Uja1(}3~x(Ud6!$|O6x2!%ZsW!es2p(;<&2QKU!aNXA4vyv*O?3Q&fE>_0);n;HJV**1=awcPkYj%yAmO8< zd~AfD12XcVVA_iu;7`9H<&d%iYSxDmL-G^HI8q;-S-zxy2~%gv)1OHFCA+D+La$bu z`jvLlWo?-JoPhByOx{zqkSMRK+`H8QYxAbRE!zFdx;juia&c8^5$Z=lMbF0jY~)zRyP^U34WuYdEK-b5;= zP5Q?o{jG0*t95K9U5V3G=K?EzNPd#Xy%u|ID@NNDBUyd3HV$in*QN
      6aCfN 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 literal 0 HcmV?d00001 diff --git a/docs/team/chujie.md b/docs/team/chujie.md new file mode 100644 index 00000000000..2164a145da7 --- /dev/null +++ b/docs/team/chujie.md @@ -0,0 +1,33 @@ +--- +layout: page +title: Chu Jie's Project Portfolio Page +--- + +### Project: TutorPro Level 1 + +TutorPro - Level 1 is a desktop contact management application used for managing students as a **Private Tutor**. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +Given below are my contributions to the project. + +* **New Feature**: + * + +* **Code contributed**: [RepoSense link]() + +* **Project management**: + * + +* **Enhancements to existing features**: + * + +* **Documentation**: + * README: + * Updated our Developer Guide. + + +* **Community**: + * PRs reviewed (with non-trivial review comments): + * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) + * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) + +* _{you can add/remove categories in the list above}_ \ No newline at end of file From 0299eebc67a1ac72a8efdc8ac4d69f3bfff2cd2d Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Thu, 7 Mar 2024 03:16:54 +0800 Subject: [PATCH 024/189] Update AboutUs.md --- docs/AboutUs.md | 8 ++++---- docs/images/carsten.png | Bin 0 -> 652916 bytes docs/team/carsten.md | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 docs/images/carsten.png create mode 100644 docs/team/carsten.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index a94f528d435..d44c02d132f 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -9,12 +9,12 @@ You can reach us at the email `[insert email]` ## Project team -### Carsten Joe +### Carsten Joe Ng - + -[[github](http://github.com/johndoe)] -[[portfolio](team/johndoe.md)] +[[github](http://github.com/wyrkx)] +[[portfolio](team/carsten.md)] - Role: Team Lead - Responsibilities: UI diff --git a/docs/images/carsten.png b/docs/images/carsten.png new file mode 100644 index 0000000000000000000000000000000000000000..70f72f25b04bc3f70877441f4508980d1cfa60b7 GIT binary patch literal 652916 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 z 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 z z$@4JD!LL2j_lbL(UMSZ--z-r=0!13*aO!I^)FS|0yZ#l6ZKzE$CPoSGjFVehR)=+c zFmSA~W0HDSyJ%%C$H#9KtT|pq9)3Yj|*COf(Z;~WU4laRQ==cSQh#orKH?NVKWwhjQOj``ewI| z!Yb(Y*0+~WEyRpUw$P`&bn;&btzwGa2=f>rU8@UM@bXC}_-68&K0rg%)k__I;^JXw zA_(#I&l$&h*X)7Ucy`+V07tlco4NNR5(P%jnr&dI)cD2LMx5a+6b>E@-Do? zlBFAh4trOr#h_c;3EtE^l6h>36!rW+3h+Hr-sefxrt=Zun7KTHJJ)6(-gahk-0h^Z z)GqaCTTg!`MPIy0134Ah={_LTHHatC^(#XxxXe>G$`c%J&*NS?n%1djA~aGN7>wgR zt9swYT8^y>nL{F>+5|i?KAH5cnNsCe5$GCkfv>b3Kx%JrvkQNndHcuH-n6upUlCs1 z%_7EMcPdE2*BdvD_02a!dvCJJ%OJ|L4dGYUb!BKiF}Ty=X$zR-9F|eTS3k3t*)42t z_`|?A?Wh}zV2y9k?c?;UwwZMGjtMvz!N;v_X`U?Abt`$ih-H+>r{{6<*9YX>Utf8* zvl!J_sZf85KmNMjG~K=8Wx3qx_tD%&A|r2M>sYq3V^z5FgE0qh;Yp#aQ(ZVRFj&XR zeN9}}V-_<-a|(c1;QAkW8s&B*sb}H|Wz`-XjDb3_>GZC$N8fMemH{!%a{9KTVYLdt zsXj8{JJtO*@L%at!i2`fc->jJ-IC3nIzXAuO0dBL(wQ87WUU(jtH0%9dV5w6hi|T? zo6C_$9a}u$A4<_S5-zyXypQB$5WS6KC1x#6JwH`dY3x}J{P5VTc95)61e*m($<1b8 zSiRNq-C7(-rv*n$f1Fi|TZtx^nf_2X{Axy|(>f=TE6?;-+pzGS)tc7w==Srfxs<8O zlh^R3G?DqkV`1^eO<9x7g?z~Xl>Y#9nhp8Lw2u_s8K$?9LqQ^a=IR^#=B-`nH$F&p zJEJ`AtY~JAX&t`LBqux)4l8yq5GJ2s!e{w<4b=gAmF#sPXBmyT$MH8>S+0KF9_U;5 znf?>nv+XXe^(K|}f*256G?sR2r`-p)k(dLL8^5(u4r>#n(!nbYHKNqAD%9p^%YUrhq=)u!!nrJRnU&D+MoTf z)^@IswV+;{VCJ&zZx%($oUf_tRxY7ii&g`i`cvvsm6eR-*9Fz$6%CEw!Yb~y;fVFC zq`SA5$suscr-Ew=-Vd;`O~4%IIjzku^K>k}a9kYcHEfpd#=~JPj9yVt$NipZ7TxCg z5pyPUwYU`9uM=KaUMdI{Si0`pR;AaL?N(Gl1c#0VWcMVV*G0Cq#H_%v;D&C8+O#K; zV~IpVob?rkbi3>IGO-cIjP53u8Kk$jFf5GcJ$uxh6vy6aQr=8uRYGy=&1ZSj+Q`TW z;Bo=tugMOj4TH{GDyKb0O=QWPO+%x3d}X^<@YvF(<;%+mucMCOA1Y+zZG2MA3BIv1 zF%n!M>IObqW2j4YSdQn$F;aMWnQw|eC6un#;8uqrTWPqpRth&Sq3czwtmSLvF~`B{ znwmmm)eKMa@ZgFfk^O3s zM~-U1YhM;@-Z6m`YJ_*rE6Tno$R_djrbi|{tDnNXEt=xj;+Cs-CJ@6R+M}?q9Pt&? z>Ru((E*ZI&QhN2~xhtJ?b~2milXrTnF6EWDJv}Pz#9}f=cARH4mbT%)c+6OIuO#kU z3u6m3V}q7B9965PF~{Yp!2{;{)Shx%#&&W*$i+~R%){nCGaQ-gsfV49k5oT3V=krW~$5;O@uJe~n;i5USiF7Bac~MRyju z?AlI`du3~EsdaYab@qN`OdP2C@%d0`7~LH8)ucA}l0gpUNKU}y=W*_TI=63TWWd4s zd95D_ct!kAtk~%`@?zrhQ5-J(bAnEPD(I)sS`AZEwA=I9u}QXb%J66_kmhYP(HIqA+Ju$$o9WTRX zWe#FuTd2i$7G52RWmYTZZ8*Unt#p=JEULp|ssec8sx>qYxK3C0-6}#5O zo{17ewV(>w&!!KhcMxbY34=LYsK^-RwMK&+iVVYyX8?1WuV`x;dLDS59};8DwFG+g zsT;uQbfCj0k>_Jj5})bjg(0JNKgvZ(~)r!?6< z9zi7ATHFvg-Cn4=N_m3=6+iY`qh}cyquK|sJaXsZoEa>jsa^*aO}r{?l&M|)gAvVp zb7`q6-~sE+XWVFz$&koCqK{~3sAzd5u7c43@-BSNPqj%NjH@GnneWoO`>hF9H^4ad ztm!m;ilqq+-!(Fxg7#KtIR>7bt1jBL6^gQiT=nl-5?Og~$>y3PZg%vpesif)AX^zE z!t?;+J*xG)HN1g3h2u1q?%PVS;}tYx<*07@o5C6w)?+8joE&DQw~Q|%?^PH>J7=M* z@VHa&NV`~)<8*NnU*+`8Q?*2EjnTVjA9U02l1qrnpgHT(qO^h6X9qMF9gTSjSjJ9j z6_D+uk~d}?ri6+1?x4l<*_X!xT z;h##oG5g&1sH0$!obqdEY-cUXzFY1>iM4Ul6h~_AAE#b;#b0R4G-Mtzin6h)w%xho zwON$67f;dSo*aR@cgjzC?DUTf+az&3fPB1SvNV0L1p#t%-nyG<5@}UFY?06knM%l9 zw=G|IS*(>Og@dG>0Ou9Eq}w9GAeub9d;^bK%!2c5gUxnmWBw7|yS)ZIA5ykcE3|is z^ALCq>0Gj&hOmMnv$KviRltm};a06)X=RinuGBn+BduB0HG^-a%QdZ(X7&O5y{90L zTGY|C2h_A1H`IbX#EMy%3~fG`t{G2Ls@5~1v+`j@jF!OdO^Ru}?W7O~wQj=V66^}22z^zRN^u}5vz|Ls~r)Z&8 zJm(~Hium{b3NhesH%IW-itVG?V0N&%kPrA0l70EFuOX8v8?A8PvCd+qYo}wnN;_p(fKhnsU#tnkCzpXcW^?59cWo(RoNigSLG|{ zeSe)pa}kq~*1n=L=10iXgM^wbX);M1$ot0Z_3PTZOEj6j9O{DPW#O4#HqSwt;`DoW z+=Hr+fCEb~x%Cufm16)9q|;ZJ2$Mb!;-8bCHo=-K5L8 zrE<;k@H=vA!M+LJ8MM7CPq>~#70iUjn|VQwwe$s*n(47JN<%2iD|&%mly*GHZclM% z1?9wY7?~#9h9BM)W(-)a&Eu~No<(Lub#T{P$5G0Y=~@xlw56qxfxDl2PjeY=Hpb{3 zLEFpuj~tHGrKw+j=)}lXSakxiV7Y=D#z4g2bvaN=}bW* z+^aDnHf)j)O46F$X19(|GNEvNsyhabX$(iEGgOI|<%q4+%;Fq6?cMWrs>^dK+%R_7 zn8Ea^WLJ(-VQ-mu0-}{g^nO@Uj!qwN$3EWF#4MT}z2hs1a1T5C)2(b;(VcwXJu|^- zxfP*?G(vC`Rj9;I#C>{mR;6L`+^-y1v z%Zw6fl145gK3~YEgI67lrMWcBVYj!G{K1ArM>H|B0^}f&a#&TXsJ7|$v7(abr1Cpd zGfFOP!m@+3cBjo^N{eq3NwzVPy$Goq%)2XqGN(T^GDY%W%6z97C)%fvciGX4gMsqn zocq?1cUKXaG>WoFNIiKg&>DTb%FDG6%-_nNsLHn%>k-6gTP=ZtPc;Ruocq<4vY_q! zDu9~ZWw@8@{Dsal+OJ$Jkj4})=IPJ1No=OhLR5l#_orPap5AXEyYs~bqMJa{LU_Yx zHD_x_1Z}ti<0MemK3r#L$>~(}Ngg{@mAMCi7n4S%7h}8-9o_Lo^qynF;kK*(ht{&~ zCwUnfNXbGmSEgjRU5gtpY|*F=yR}&K_}VA=vxdidY>^WnA&EOiYLrquQZ!6SP&fot z%Xzk=0zqt1s21V6+q8T2rpYGeayh6`Ln45{ZfqK@=9_z>3Ce?tH6iXg*5`HZ!|7M9 zEXlYI$K}Rr8NOTgm44~t1FzP#;gigdYLZvgsMKhh)mO-q7-uINbIlrP@^wc7K2J|- zfzU;$F$ZE}tzXgYV{68^k=UYwNFC}P=7^o%a^uGP;hJDMiB{oqpA+rVDNi=wMD zlwIm_!F%RVW3(#tyq<#F#o67g`RG4h{!uOiIXPKEwe0~IW6*9=|QC_OmEPJee9%I-hj9MA%_ z#m&98F}!CP?NE90`c$*YC-yws4m(yB?dE`aXlE_;MA`&vFONBXrN8uEyiZ zsH3^i{hvV7Y}WG9EK0pqk0knHs6(#{%Y>P&R@?*pBZ^7vzd;#;eCnkgZgHVOn|86LF|mA&Ig>~nKy6Fkin50zp3 zT`Q)K!uHnIFrFfMuEmnBr5^fw9>ze0v?GEZ&{{Zbf zcJe}e&5koyE-s^n)mGXyk8c?1Sxw?dq>ZgE%#N?}pD&tGrtVC)HV&%(C9_EW)f{sw zWf=q_8F zpM-RDmvm?hs-U?Fz5NfTTJCh%(@L<-)MDAjcBoKUee+rRMy;l3Qr=ivZxVHmRUdoU z)=&0Mv#4JirI0*RXK-WB(xJ*ycSXfn8#=D8XRwtT{{YWIH*MgbrB<-FhHF^mA!PYD z$mv=d9*3paG{0@!_rKf& z=y6|^eDU|pv7q%R&%nl3@!$DeQU0*NLx_lzNRLbYv-$Zv4%!HSa54k zR`5-&?U1@-fGBVIXswZ&+WQr)j{A*1HIsiObIn(6VPlaM z;tKf5$)y)`Now9W;f58TYsx;W^x&zC+ZQ;0YJWPqD+q7}q96l6)r`o&C7sA$F7qf*HDCW2Wb4=LW z4Na_S_WBj8&nzls=#Aes=bzfzhN*YvypOg`!3g>_}@F@Fcp{4Ca63nbRY$OkS)|+Xu#~f4KuE}Iw;|4P1Y6u*yP5MDPpW}NUdEz#8X^bCz|0?B;y#xb@!SCy5j9OLfSlRJadZSJYC@1 z%>fLS&TcH%hGEz1L}eO}-V0dVhgMkKXM+1-Q}=gQRcWhR>H<0LqZ7!ygy)}i5dg^Tv0W}n z&@$<~47$jh*8HwQS*+>;m0J z?5-P{#jr3n0Qa*x?Z)uBszc2at|J(QvQAI*tZF;1Qr5;NiLTR4yOk~E$lbvHxveh_yWQED8?G_Wb6n1= zGHTZhSEe}n)~1|iTLrc)XsdV5sMF61g4pK(xY8bmE5 zcOqu(-&t{3mewgpxUI9zyi|YPl7JdZbc5sb?Db;fml2_a7ti>yY;nBkFdcCozG&ZWsem z3YS1S#`1ZUq`J$qb=_8@jvK`=!gfj5b~vg!rl%AVA{=dD$y45=TgYsz+H<*wWnQ_h zFMUkjxfBTQ*F@3nCWdC2va6n)6IL&^R4!fdi+CIoz%$-*Y9`3&NE;rN*DdL;&6j{7BY_Ys&q2SgP;J?#s$-D;XkywW&@ zPFtL08q<%$dNrJBBs;RaoyVNhw7qH4;(Jh7tNe(nyjG-E_RvJ;>P0ei02;z_v$1M7 zF?B5#<7(X6NZ~=rjZYY=SKc6+`D3>U%5@m#x(U2bXKx>o7~T|isw)ngaNc+fvNtCJ zh{@QNtn6Z2+05bO*jEQXHAL37u+AlxB3ZhX?OmO`){-xfc7WUh#}&+KaQ&9*XbSwT zz+=-M)vBrXL}+OfMlKLU`{V8pPtLiY6nJJC^=I-X@|oLl!Km%*b!$74mNJ10j2-o( zW8oY5R#y8~`9ASh=k=;m<#q!ATwG{(LJv8n!1{`YO=f6rx5^n6j|7ZXzNz7DPR0_# z*vJ^<%h!s;z1FST)ore}$Ah(GZ|{GFb;i=v4xdHwHPxJgRlr>1aqaJ1=ZrLauZSKd zmQ5-U%L?t1c3rAZde!h{y7;3|mrilz`9pb;Pu@|-ADwJ}X~m>?k#zVXmKY=XTL^N; z)Y6pwj-Yv!u7!P}_>$J&RD&><*}HGc`PZ#@i^Dn7L zLtOmJE}?L-K?x>9@}hS7*I_rq*yCc?Eb&@DE_hH= z(APo#00<7THL7051duZ1s-Be`h-SO$NoR3!G(Rty!tvUz$Krz4Ah8bV$4=G7++9d# zSS2PWj9@RVKHl&x!lap2^zBK~Qdbe)zP%-#ie5&aCsHWAy^`szFXJ06++?q*s#-kJ z-)Y`NqiO{|dXhWna!okj|uyX##bXLz?sDr3~G_XWmxXPnjspLu$>DpqE6 z&OT$;J*&`kxZ}Eldnv~2c{x^Ys(rsRTvnsuy+^~oB7@3>uI&T)ioT}0X-iH}JrhN1 zm?2iWO^m~Z$MDtr%_`dVJ>hniu0(jNP?J)d?NEzrb;EfW$r$(auAfQq1UJ$M)NsQq zTr-P{G>*nK#+5CG^BXZxI#cw$LE18h?;bH-Jl6|i#f(B$$K5rHt6L;&m$0XnufwPv z549vq+@o`1^D$HzV^l15>GDe)%tXCZ8tSy$a?pLHetU7w@AkjWYa?8>x4D~pD=RR_ zAXc&1k!CX7?E6*Q-khm?XJk?iA#VNl6^;|Ta&}SW~VdD zC~rFr2yQmkt6(R*@e{R@M;hbXy=L3%5w=9C$VWS|Q4Q&FBo4WfGl0X^wWHJRucV2m zRKky)LH%lFxuj)eUDGv4E|fwf4jcG$O}x|9C6OSE?R6lKI2A>_HEg#HduMUws&FD1 z$@di_YZF_^7z$l8^HlR#ZQU7g!!?YK9F|n*Tdirp4&=B_NvkZe-%q%xjT^5uVmU3+ z;cd_WqrF<0jCMKga>`L0mq3ty@#hB>R?^-*W@s&M^&zL}s=1POLe2C8)Yitdvs^_w zz@lBFf$i(>Sh`-HB$o`A>%1`e4?rteyP=otwM5u0ZQ^CJgq46Z43VF{-lmDH=hQE) z?VMyYhTJ&F9kEoSv3PX}B1oCQ2LO6j&xaJYuLPH1#<8|k=eMONxpCaJ;y>SBTHEx6 z2h6zilqFhUcb@U87e zblPpjyIkCj&wA2rUWId#Nv|OB1}g1QlZY;8^Sjq z;rK2z`>1a1i$!y8!bsoH=NbHouHQ|wmPNjF0j9l}%Os7|`u?<*Iyq3PRAh`-QKxCY zxf}ts;<@ELPRP^L#)m~{_ODEK6|WYGzDPSVewD2rpZme|tvGG`urj9~N{(}WLlWCc z^3(lSKT6nJ5X%?}0mtQ5JhHL_o+?#VX$IOk%Z)t+jv1j)09PO0J!*B0nRlF)>9(vz zZdG?Nr>P6bU{6jc=PTKfrN4glH<+rp*mLx#B)So?%|kY%zFEoJ?^dcCMj954z+QIJ zrO;-_O2m^=Tw`%!PeD(P;5I&2&!!Ds@2I4#%{G`7k8cA9Bk`!_kt0pSj=eKbvdJd^ z4m%TrO>0+WAG`0@tp;x7GEA}@3~|Y3l<^WXfnF)MVDI_g12c{|>=CRmw9(w2SsnejW$u0SE;n;i z$))aG^q`(=9Ospc)NLVH$Ojd>CW*H!8z!;ttc-4Vbf7PDIi^-pq~O#H%CYd==AU&B zmy$ZxY}a02RV*kpj>P6o&5Y8i`G+-{*B>z>@~6jecKeQNMX@h)V7KRt;-!L8%beiW zOm|zPF8Kfov;C(EsNTq{jP5K2GETEaj26q1SH3!m^)CYWax3|QyJBYl09Ta+Wd}dHVyEk0JlTHT-U>5=_I*My+~fcScDi5fi{M>T zV}EG8F5GRBGEe7TeMrlyHG)j(H9aC7JzouRVtQ_2xjvPbXRWMiW0vq`PYsR;uB%J< zwc&peT9=DZvYI#fPUc+m>NCYds`yhz@gMJP!bZw6tqTli=qrm~g`Gq;8sbQ~jzyGo z+@u=RhW%&4f%A2*Bk>lUsdzT!j#_BQ+^&NQR&+ldJk1nyD=}e`qk=u@^0lxYqcnk^ zo@j#YR$#f?S(caSc^dgy&N6${H&;d}0|Cx@(Wwmdoi5-sLkBgxZ;hdd4;kUt)qN|4 z&~-e*fsb12?bvxrcX5z#54|S&Y{`^vkIYZoL*Rh;JMntv>cv0ep79RtPRnTGCUQK; zzu+yL4?|x*vYq3c3j4$U3Rwm9)E)@9WKm&mv&WIyivlzG8u(gBL!P3(j|(n%CVb{G za?D#f{>$bmZX19{t$IbwcNbp>Z|{#0t~dI%d4#LAf7u;ty^~+L{{V$wHI!;T$uy}E z-Pb2S;a<%dS)MeHOZYcpm%8VM(gCnX2${d##y^>_b-A;+lHyQuVmQTlf5SaD>>e-D z;I~bPngnICFn4Yr<6gG6i2huN!+d$%kH9tQ-gJE^&{gM{R3uZ*+i3umF3Ao?Db)w`sK}lN*B`m1^qE z;gFKJT<3Y9x%Y*k#XXq z@JQ|}S4p;MCuEVqgsD97k9vf`AKIlOEWKOTj?@8k-4?Z2;~4oy?3`!bs94SBOvlSA ztH2=AT0|~xB}Q|~9jlxk)n3hh$uUu!XV#(a2F%35$|GXL{KaundEvfh1U*;#P?3Sy zN%iSN34?i@vU&miYE2`ttp&nOYQsOg9OVB1D#?pjDRJeF#;;p!g;=%-E1$->>xPa! zL*!*UhVBhMTaTK@TGz%!8RU^v8KAM|q} z;HuzI0)e{Jra8uORBvN@cZ~xQti0{#2CQi_HO>!40-xlwPTA?2wXpebsczC{yth~z zf}=aT{VIamwY;){yKkWtbILHV^4p%Kp}4p&o#zJ?MRI$jHw&1+BO@HqZ3%|il%JTL z%k-zR230EDfq_|`Ofn4N_QzVJn>7s>HXRQSkRazF> z@8&7()A6Y!0_xq>R~rW$(9usMjT@*?yku2!Ue79XwYaSoz)z;b=SPCsAaosS_d>qC_KT-I6$_GRrE6luExh_l;GO-)yIE&V+vrSkw!( zxCD3S6#}vH)6415iVIgCYQH<6k8s#e-s$gHYb(Vps^z3yJC^)_I}qt4IEQN*&8a-nw-mj~C{ zlNz|2rM#HPKHwO|Y1q85D{fo{Ty&~XnP!Y4$K|hcim~?RTQd_VDvkGv!K~Ru2bi_y zLBUhfv>IV`BB3BL;PX%;L%$~lv7No@OWS|5+(9ld8`h*;*3gybj?sv0e4_x=O>{1@ zt<;VWwKDnzxmFnmy;N3oWg8AuZRAiK?0j+=q%n+zPvWfzVm~e<&ph)~A%<0EIRSH; zowuWIUKbtdh3;9AU*|;`QhHP$WaBH(d=ee1ftv71ncl!Gxk<8U>H{gNSHBn8h*V!l!} zH9J|#>AKa$<*`ZQA8TGCVmSQk3s8Al;g)C2fc(KuKs9s3&|cYU3vCJ?-Zldc)cs?@ z_f|G=+*{0-S2*18mLHvWMoFWbevc$>%M&riGDm!R*36pBVT3l!85H9zd8{oDOP+Ns zREBT7qpt5yr8E0BIId)7ERri@YMjz$>t1`}rL+Fh4`2$zyAkd@W7OA8rRxi( z+QMUhI^jl1>Ic%ZsJZnK(p+h4YaZE7$HqV%$GvAmG)TpKu#$g!`qIg(ORAA1&AFI# z9Ac|Urb{LyiGVrh=B{o}bd~WPHkYYhO(H=89mH*14!-8PElBEi^f_xbbTp-N#bwxco6)l(8!O zvI%Z@GkCJ+RJa!ES$xh%t!~=*3sk#NHI(fek;#+S*1BI1cymvi$hd~xEvJmM%blM)j4~bQlNmdyY9ERhH^XhX-S4Br+jFvFjN%oXRW?w_r zwzREp?alT$;*#Ht2^erIjei+hX}X2YysBmqwgV~Rn{n|n#bP@E(m*Z0BXl|8vM7x@ zl2<6{CeiM6{Zl_~Tc10UySdF-w$&tS#Jn zd38ij^f;qs8(K~>YGoG}W(G%!wSx?59w$3b5-%VM$GGt&#qN&n9L1wSx8^-7t(p}^ z33nIz9G@#WUX@E)_;aIbdV9%dd*w!_EUMpmd+5_PdDoDwC0nvtu>e zq}7m)*7H`=^gTFP!!pZ-*qaAmeA6_US60*6Vm@0%^5utI`d6CVLwTm$VrECxb9$4HC%Fe}>)u5CGpQwEGTCr-arp+E)9y(^TthENX+9nu~ z^fX^-S5im{O@=)(YmRZ|E;}7GI_Jzm8`C&76gsuMv%Dw*p*-TKX}0i33rBY**uwnM z1KzRXk}tL~iHVIHs&^mc|Y0}L`w*&aO9MP*QTul_QossQ10QbnLxEzkPr`~G%r;{nl4uiF5S?Ecj?ULoy zVgv6UMtv&wqkZ-@jnxA%?@|8%Ykz4dwYZI135E~*KJ~O`Wn(#RBs${i(l~__qMfS1 z@PGQ%i{h;xT-6|jZSGa#A9+{!e;StG!zV+$k!`0fZrqK>y=>de=%HmhN#l-{e$$sx z97cuUtGgTJmU-G?(`ogt!BoXEqe22H&f{95&Sr(076&7O2(BMcyu8vbTqAIjkm2kGrfRAjy6Bcap$E2rqKI_dFwjM*Tm?f!9GwD&UTH+MG|iI%|# zt=AQ6OS;tHy#2wFWG(WQseE7I{ZCYuIj3_8;O%k6R4?|1aktvWr>$NhL2o2h@(y2+ zD`&(06V#Fhxi`K;m&m~6{qz!AtmHtlhWSud9287!H5dRBeTr3J^KIqbQ$5)5=%>{_n|$G zFteaaI@G#)mmQ0DzAm25)cJ)#VVp3o4)XBpnu1=G-W!do z*ylAv#(pIlmFL-DJ618yDz}Ah9c~08a{@9>I&v#TOWo!r?s`l<9kEE^ns}oUGJV2x z_|}b`oxP0e=GHciPb-h{tSLM@sA>?c#0=g{WN&Qb?exWJN8%~(<77)W+PFZ$4|$$?kR$^GA5Y4(Uh*hpQE*jU zj55i`AB|+$Omyu+Nh7n|9llpnkOf^iHyufq=8e^?8uhQ)rngvz3cGFSeQ5BH!(R{S zw>g&M%yE;P=kfxg)uX$aT0_ioe-a(IsC3;g`#RwzH;m2)E1ZG#tCXacgqwPjM{B3f zBDBh>ArBco{K3+TUfs8_Y?0cz`K8pj z>?y{dYc%ShGK?0+NT~k+vqklbHO=9SNSIOwJoBHeBlx-)t!DG15+e+i+g#85Bp>jS zLnW*M;&0$#z)GmcncSDTQ%%wC>}Qz#*H8x9vICse**r!4lOPk>%46<8HMgW{G5Bsf zjXq{GwZvq@a2M{rIvUBh@eBQrW}y?$ae%u*cCL*Oiuax%lIlR#u#}6t9@QPatnP*dwa`95I-Yw*F+`JByILquN=dT-K#lnTy`wm=WUwCsv4>$*2e_ehZ|I5IW?p`-A5gaFNKiF zqTX0)vMwTI*(lFWoF7h==^B&icXyXMpoa!g^0qpA*FE5yG>60Y5Z*>DS>(v$c6!!@ zyIaFDq>NtOdi^UZ)p?mjmW-EMNR5H|ed?vCTu-HH0^{t(q8}?LQ=WaRq+b(QE}t#6 zyb6c@S;>!@p;ne;f_WFsEX_Ev}o@(%dbomE8k*~TIrT0!nbbKnRTd2x}w_z20Z1CdRJ8pRH^CE&F*~HcN)g*vc}Q69#Mt} zHCJn~1&-D1r;7R)#-0Mxd_^Yhf;r0kvY^I&jd-VuG#jrD-g!4ml~M9I>5BR~7^u`* z8Ow7U&hk#-l>@Z~cad@>V5jCdrMHaTWzdHMs0TEjPnN~gJup_gSq9gI?bA@aP|8UD z_AAo#U1I(#)zg+g^g=fBD~Iqc!s+V5WKzy|4`E%5nwIOR%7DIyIIlAkCY_BVvBP+( z$@HHSBhB*}Ng#T2P~R#w!pkE2g$D+@{{V?_!#0&|cB6c;@Zb)6*PJe!t3w=D=FV1y z{^4Lr`eL`IE5w;@b=KO}=vF*zVf+~F>r!bqk;ioMJ_@#1t!4OUPhDbWY2Bf5oyy!} z+Nrg?(A`WSV)4erRXFo%N!97{Lf6iQMp#+0R2&L*{4J#2J1*vlhE=+X#?!7Ol0TRX z^v!fuSCL&=8+pEda0_*;YAa|4wwtZB<*Zii_glSaP32nQ2;C=acdVF}-WzcYWO;}) z#b;k?lH1%vKP(3XcgLu%Hyg59(dm;zb>_z^mC3>5kxnN_;(F9wQoBLVwP{UxJ1k|RSvGN=wMp6reWFdWdm2bu zOL^25-4h&UqngZSM!Tk+THrsJW9JRG)6%Y6+KVXCOLD|QGJQ=uT+(D~h~$aLi#a<@ zOtK3$jG`6;)Z{m{Ybu%nr*Espt6Jp_CLEPLe=1%70Bm%D{$(7VdRArTnvz^C-K&@- z#^yoO=~X7Vzqg$(6mK8hQNvaVwmxeeU7W_tO=~d2V-iB*u=Sf;i>8lbl-eY}Q~11Z1u`rlivg+{cd2Xf~@6D`z`^tJ>YY`z$j=jOwY* z&~iQM^}HfT_w*UT2DGETni#|pAb8JK?_D0yxW?%7xdrIB63H8{akLztt!Oh{ydc1z zd+!6qbob$8jpS&AVR+4A!yuYZEjc;o2D5cFCQ8h>yDYl@WtRGFLsR_Bw=j5rZki zH&tPZ+K*~+A`k$<&v99LuAdFMyxW4SebGwyB(S#&IuwXOs=v4_qt-Qwy|xdO>rc)%3&iRf#d)=82Z+WV@T{*j_vKFM2&!ca2vf`xViJu zT5z$yZo;uOi{wiieM?S?NuF%wN|Ufu_-X7!Q!ym2?cSBD*qLrFr8n5&7ct416#Tmm zbL~kEsdCJ%#B3L-86454!XmSExpfGQ!DG!-)aKo0O{|0{Zb@E$3S~!P<+ z83MU$iIU@5vA%#gg2OQ~s3*(>@=wzrt#ofR5@~SRso!}wCQ>;>@BJ&7*EJ8YLp7y} zZ4A42w;xmbR*E+@j>n()lFlCz$>KGLj996X79B8pit#(x((6g`=8Ztk<|nBly^q7T zth!dcHd&VLO`PyR?~lh7=e{b^);oNn<~Y=-Oma`Du6oq;H>WE~$B^DBc`ybu$o2xF zWic-&pGvcMulB9QFu!-LQk{$3WBa25yoR}5k5N0TmZO_&Bd=PD>P@kR1d>fj3jXg0 zj`a=0e83T(N|J&joD;=aX^G>tRaHIC2cJH`S)KX<4DR7*FlbTqj`IqJcpIW0d#aNoBCFjb- z9FFvcZnmMZ$SfFV)~n5`B1yr{Ir(dxn^fAtm4W$iaBDp3(C#fHs*9exfTyWzV{&a{ z&XM*Xn>gl{8)+uPJdJ{SH%j7lZ;DzDgCSSBGt57N5Evh9*AK0HYt?m$4Ze|V)*;RV zuPlG1X$W6)Io0LR_bcn$4Gt4=dvzVMD8}a^xgAU6$Aol3e5;#_xqANP5A&}d*E~C} z-dLNBN@=dzLBj7R9{8?0`@?rOaicyGHR?P4E45S5^W}(X*!H{c+Jj1sjF$RU%;5h3 z&qe@$BUx+vRzSq;(HQMH{{UD&z*mS~+kWWEjj;y=RXbM_e6gTldhyOZY5OuhwJwLy zasJX)y2Oj-XwpLGkCpN0`LCBD^l&Rld_^-we-{ zJPh!Cje4hoJY8$zh*l{PHogVw+V#@5OW$Ic#>@#WN?l zr)_JF8%j_TZo48w-NI3KNT2qS`3r&D9Vp^{j>V40IULpje{ zu_mE$1o1ra2;vL`rBol6xfQ=Hm6VdbrlSjK*JN!;{{V#Jq5lBu*E^^!;@o|a-Wh~^ zB#OX>9`)0rIUH&popJD&Nz?Q=HS29n^-Ut=3FU`xFrXhdKDi@`zu{j1={nTbw|Z-= zR`WI?`%8SRy~7^gUuyD;9aB`cv!2c?$)46@kF%~w9C9&UrSRt1X?_`7dx_*HJHoeA z=cQLFk_74}W2o0Y8AIWDCpJ2Z`S0_<*6vE7?yc?b?NIo4;*X4cEhJOeYHdBL@MDp= zVmhhMN`g&#TYIS*Ia)*`W(dfveN#z&UPAWj*6sXiasfWI#ZrVNt2^n`sI)zr502An z*6}8*Z#BEhry==J+5Z6b)YkgbTwNsa5Mss)qi2sw@d2Y>STR!KL^%0FZv1mwwl=d` z!VR{kG%QA07nnrN-?+_dv>j;V)E5~wdbwFQ^Y@QPY8d)XYfk$WlhuRvw6x?Wb7Hw^ZhIHMoTcc z#~ANluwFjXS629Y;%i15yxSRqjAxyuza=#*7Pq;b3hqGVLn+T;UqgVYZ*=kT@w&N( zBCgzVk;o^dbUKEm9rll->4|UTJo6(vFFb?k>sf0L*zX{blr(F}RvaH{=rmmxO~1-8zu_oIL44h?XA6t~lKd)w1+vP1UgH#T=L{K{1F21jvQr{{X9AwVS71Np7mh;Ts$RDqA}oUNzM0UU%SNAt*jwxI4T1&@ve=8r?=veJb^~r32dR!4IBA zbGKKMG>sWXD8I%aCO&Rcq_$_g)FeU`Vdy=2RtB}D?U=eT9#(l;eUF(R z@3)k0oSM;@e9^u$xmaQS3907gb~2mh)aTY&mfz-MvANAtxMB8`V=g$xb6r%H@!Ucq z2m-HK%%8%ka5IMT!OuJ#*51&?M&*4XLuWB8SgY|}g{8z-c#Jkk?cS?f=~nA%h|%o; zaM|xs!D5!T0r#@wo!zURq^@rTW@_Geb?+lmvdI(~$!>DV>SyN+30IR>f_0_K4Hi_VzV9=TZq|M;YTb- zQ&z8o-lCZp2JF2ntdjnla+?sK!8}#zyMK4CMPuo(yb*(pirQO&JR%~vJ6b4l(z+jR0HP&zSh zN`1<#kfRJP-Z4~Fe#+iSeCMrMgb8C{`2j~2aoCcx*qeytmLs&P=N`3*Cai87?DIxr zkvZdx*GmkM#H0h0o|R8fut|Y+j0WqFIjvU4QjasZ+k3$zDvFpOXF2ETQrO8Xmwz&Z z80t?o1-v5J<7OCAIW=LV^6ng}{J>|Lp{2^KSGrB<@@mgTbx7g6%FDaBgYm$@F2vpvy{;52HZZb<7}?Hap$tTwM3g=F8| z8>m^+ND$F z(#V&(Q_7)B#+?0W6lcg<;?Y1P8j2Mb@VMpM9VynIBysL*(9BfwqRtD2SDvfIKk>x}NE z?cExJcJbbs<|NUv``%vwuQU+%6=W@p9zo`>tZ6nfK!1A5g6Ksc44*0IIIC@`B2J}7 zamo5q8YyaqOKYHjoxaqkP-~b~8|C@7?(d40>hR32Su)IiQ|;+YWL8-B0F`J@a@2O> zHC+6-@9HXTtNp~RsV`(}fTfH<2U0%p_NhME{@MQkzG;#>M%S7l7&4q5FnU($b!BNb zBaXSnaF&qAr`wMN>!qg6QIj*4pW(x7vsp^`g&YN`-#-em_$X;t2a+2Irk1@vC>yzo1-ddmq zPb$L|kE&`?4QZIB#ha5|=ZL&3_T^j4b;PW>AP$wrYB5c59@!vJ(2NpzC+S|5Ib7pv z%+ZF)qg0kT6odWa&1YWeqT!@>T%7i#@cgYFpK-e`+4*-Kf~wp2f!1?wz!qbUwbs5O zbu~2e4AMyyYNu!owY{pgk*I4{nyu(-b&lIRk(hBsq|n*Q#zY0l{`M<%U9|{8DGA>U zXrARFeIrpimBCAd5y($mV!BVT{gy-mRXxYdD~r@EwFurcOICFQApbdEi81!Y?5O*CwiMy4~*Ow~^scn0f5x3+sb z#+2i82`ibg)TeAmI3iU%s5k^vLK+HNnw}`L)AZjfeYc!$22*L^QfaofR-!eRF{=&- zrCqhUgH(bTZ$jb&@-XVPqpA2#Jyy&866s}fG9RV~(zaS?9Sp0uPM>ui(}-WDYfV*_ z)Q}D{oZ_)9bp1hp(XOOfRvr|w`KztbZ(z4og7N_^vvAD$827AaxtA|CrAekqBaK-A zU^fOGO;>yAv~nj|Sx3^ZYKv_Y%+X5TKyQ(IW7?>t<&D(I6wG#$gS(|<;+~^VmDt(Q z{8XB}ZnB-vjuZ~G^|CT!c2aWtQYS&(NoK!^L!Vd@DxhVACE>9)m-TYlEuGe%siw!L- zZ8cbK0B&7*BiI@=p9Sic+EU%fqG)r2Htt1SXUePu+8(6$0d3WMrHyfh6{~GDLg=dA zBCs5;M_S6Vw>l1~47XFOBk~n_`F-kLYe8ABT6l-9J{l$cAVNh8_;x=;^B{{RlPY7H*y`#*N@VQd8~dH1b94x~}ZEK-*_Ambk? zu0`%Uf#;gt@*8z{l2yD7g;A0luN9WwCBD<-NN!;(B!i>;yHBq*?J9IZBjV8v%H8pR zeXASA9uTncRkQ8e1^v3rOE}~}?JWNQ#f8WM zrtsC6(Cw1a<~6!RJ6mx5X?2Knt5ti;DVhnSIB1upTB(<7iY47!}N zNBiXRm$PFTt}cChV=Ro{Fc=)w;WX|E}bJ~tuXi<9d-sWE+ zqfN1Gsb1q!W<`NiZ5wy6=CbvB@3O-jFij%}&T@a1CY`B0^5#iONIEDr65I}l&Jo)Y zs5z2R$O^n>soVIefH20pKsmz<8cTbL<8do4^c)?+o2fOnqaY}rT%c!xip|FQi<-pp zc$ryBOfivGqq<3L!zUz+b67q~pO#h02d!O5+E~IzkO9vXpR?32eM*|-t!;xT2^k$t zV1L3xLzhw>=c8GCPHW@#OB)M#Mt(wr zkUdHDuA57|ywz-Fj^re-pS({&TyBHmwVAw&TQ-FEW7iebM$+guHx|j6pBWr;UUng- zz0s|Ny3%AYxf3FyFGXQoy^X{Dv6WvSa7Aob>eEeX={zDSn;;C<9gUCJ?j~USgEu~) z`h6=Eu=%WZb~=l~6-NuykLy=2HCt;|Tb6Xl_Z-(7YjF3gA>AT`Y-K^JjjCDS%GQis zq+U4aJ?kk`=64Qrrtuc6H48H>xKvi;s*Wp)gIJMg+L8ru4n6&=YRb&pua;zEA3>4D zR=V)KH&YoPml)--+O(%0T?lUM&yLo3WqXNkGO{0;Na%mUwxiN-8r08j`_mtEjiy$s}=(Rk`WuT?~@_z25d%raKS!O*8v;eJfQCvi|Kx-z%WT zden0inqfCiIL}(0MYPfRuLzPw{_x181z#6yPjznYmf>M_$z@#gSb8srBbLo0-2VVC zPB=B)+3S{jQD(J;7j6gxBBNP!h6@~UMynY=b$aHlOP4@7mDC01QA=(-eATsQrnE~G zj@geDiQ*{Zv(yB(q1YaF1vR&z-y5wmb(j?L#~I?T{LwUy!)CaNHAMjw3}ba;-doJK z6FRvGoaIkXdXjRtPy46&{c7})Wns@C3_rbN8Clq7P2YrW=JIZ@CTVS$Zbyvc@HJul zSr(V4$pd`b1{Xa=boyH}>0&ts=)pTz6~g$3!Mc{UeJHSnV+Bbp&D-f+QIs3^hH=Y3 zopmh0VVv&g(!0+A+RHMtO9s?D2gPP-zYk{6V@B0v-y!8xS9hlBk=oiSykZ1jl}0-I z)Yho2%MyBGF>D=z!QQ7Z3X zNd~;POPf<(YiM+OoHkw{2`fTFFDz7K=AIJ5)l?{Bh4ij=&%}?yTR`$NjQpVDvNi7% z-PpK}OF|@L&{9;So`b#hI|=ojJ*{R(I6$W-t$C!{r1v)sVWvvgPVa)?WP5X0JVBsq zH+nbPqJ6PSzv|cTR6Y@!Z4TZa?D%%vgY&zNcYEf$<4;SnWx3GXSl_{CAKPGPq{a-4 zded$Rv$c|9zHgQ?7uKEP?-1&D`b;l(6iX=ie|C8$xa~c)yUWLk0|kCJFgV3mE%hXQ zzl^8UZ_?6BQ3^@GU^B<1cY1D@X{OrYBm;5XyBz&1p3#0E-dO6ElReCBF5=9mo-4PP zK?n!hBpG9n0qOWwQY6~c#-$9brMP4rG5$q12|VOk0~|LdfHfN5ProsRjb7zfZsYvvWn{O_yT-e5hB(b; z0MXv0(QpS^)zl;VLn9{zhH`pVa+H*pU_8d-Qnu54RdEP^E*3qGMtv*NJR_#AxXpA> zwVWd*yBv0|8^+!gfmRFmJ0_Ec+x+X?{v7G>>HYzMaJwGe$!}AR39j0e6OX!WMjp~u zIU=#iEUJTKd$OwBaqC!~Ba%xPWHBb=jC{P*a%x((qpKyoy{fX5$IrmPH1*dri+P~U z#Ch{$#&M4I!%cHa=2bT`G@Wtbx7|Enyy!A3r_uGvFQX{nqGGrU9YW())~*&9cG{sJ zmKf(X-D!Rso$TbA+F%G7AJ3{r%VB1^WYL{s}>V1+m z87w=u`OQe4IMpB*rHT2E)4ehD__akpXha3NGYpFAqbCP) zk1FvG!|3j#d%YAC@8$3iuldD!)af;a(T4656y3cIeMhJ0akR0*UM7Khh52#sSRWC5 zC!}kZR{{i2HU-Me1`bDR_NikX?962zW_#?I2UeIR?2soUfsy zCh--E+3GS#$P_T$n1%&$mr$c)jU+AP09@m5PSwO*X*aV@B#stn zPoOvz(wl;_CQ-UG?XM;KLPslzo2XOA6?RFc^MbSNk2wy$zLlw{cy?`jPL5l9FD~W+ z6qfmNJ!<8b!+mn*7|ZMk!y!jFG;>3#idHf-?Ltd?%ri5L<8^K7mlpBCZy^lC@yD$~ zzYXNf^jg5Op#$RjVF zalxuOKBWwnaR}Qd8yP$2*14;FS@iz^5KRe;u+DdN9cp=RsE+#Qd=jn1K(;>d?TWi$ zt0dDHm?X zCXAqMpzvyp(j+Poi5o}pRS9m2u#p(!zq$3TRJ@MkOl6WKXa4nPs0nc@&2JlSWElI) z-n2Bk%V^{BG6_zFyXLcO<%06X;OOcy4{ENqW;I+EE!n8l4uWYRX4>eWH^20!F0Qul zv{6O@QN?qTOxyy*ziLQkl0&;ZiZugf8<~0BFs<`ej-PNOm;!Js9?I!w8(87$X)X=4 zn@$x!yecKJq-A7v(MM>}N+bdI58~-qw@}-`Ah`0DGDkaVD|tzbxpK>l;8a%fSv<(V~96nzAO+{Fy_@`3f);{{TAP(b_wR$~Yha zkzE(%)Q7o4Mk!@Wo=r_EN3wlll#ErA4<%&Z!Q)|26ppZE~hjzTHC^a`H`s%-nD}@sS0-j zr1ab|Tf<>$OQ+b{D;tZ68Ci$R^sZyX)`@*|>uld31e)nDv^P3%Fw9KP!QIdgYN`JK z2=m)%;R9}!xZU3sq<1Y!+8kBBinjV>VL4KFFdtgsJ|JkzZ(}{$DG}~q20QxKt=r5Y zySarU1zY7+Zr-M_JXfU)jUx8ibk5{EaoGCRRoLE}ySeh$h_o300J80`qa|f0YsdA; z&*@yDjBd*eH@$i$xnpr02GT&l@^VK&IR3Tg^IFLiuCg4J;8%%L;yt>52*qvEZS9JJ zcKzWX=Wha~z(wnVPAUli2W|-;?25?HYRTquYQW`qII6x#Uz|35s(9CaJJ15gt-r2D zD(;@jmjRuMh3Ag^^r+)sFSbodZ6EqTbIv)%C$Ul7`mf=XM&rXa%@EqIIW1m|r`oi5 z1aQ1$S0C`AB$L7Va392(HRzV`d1@E&t_f~>)HWnoLttj5+A*|@)0QqcHDhR19CPbZ zb-R@s61<)TQ@T*Gk}Fo>cUDc)d1R>{EkhbP`{psO??amNeRE#DYsuqKVoZMs;=MOe zG07Pnvs?zhq`Ztu4E)_QT0%DoO3KF{b$xy0ZAsV@*BsX^eP^j$Ga)k&c_(qNOSJIp zhab54y7Fsk)57g8)|FHN{5YN;Hi0Bo?8xIm;b{uT5a_$NuZlY8yR9+fKiKTNj;(8n0YHtonYqMfuKvA(CtiKELxmZytS#(pt#Bfa5J|@XVxXGfS+tni z2em(FA634mGvQwe$>IGWAz0o?ayLn{Xg<|@Q1GSZwFyQd1V6=&Yf^6!Owp=GAU}mb z+Qr<15=u56IH+|sH-;X{#}PNc=se=jt2o`%1<3s>3onE>njWU5X&0AQSM@0a( z^%%)sUN5*zFG>;CqqjRsJ4$WdyL?U4Ywp0ju4-H>rr>g<~F6VC^{T zS<1DYj)xsNk0tT{0KoqM68J9H?JV(Xme}T7WFv0`{ocL0*N@&t&+?+>v633UMXzRA zyfSVcC6mgJE4XAH*&@D8_`&eicgd`2N+R9Nu%O|I=Wz5KeziYY`zCbe{G1?+BT-*{6%)T1eVX0n2QS0|7wIv<063EUgY zW^Ct{BDUVml^B7~)|eVd$`)LKN3< zo~k*dk5pz+gu$yZ>JzRG?03adt!)bS1MU7F>Gr#h1eiGrdYbi53H$}H*KKX&ym=xl zGUQ`v9jnXJRFY{v@eBuA?{qJSdZJoIX&ar3#zC%1_=#;3NKid;$M$vjcLWM9V)Nu) zGS9_nC&B*!hW57QS4y>zulJO-aXMC|HQXv%SvH0dHyWj9Y*%j;w{H)~Dyk zb3&|lsmD&-{&g__0A09kPJ8~prfb!8FNCqd;P^FNFa0XY`ZaI1N_MnNdp3Fljy-GX zW4ZG!S)JFxFA(Xvr-m0zzk~fE)D=wp*+1R~x6-=Lv|HS2f;2#}k{4z%_J+s+Ixd#zu|5w*X_6hGdP}H;647_R*eaAjFa>U5-e`bM^gepu%N8 z5_mT2!`h*@xq>)uCWp*c^9II3M^Acf#L0J|#cuFrql~W{5P!TqfBN;=_?p~!^=~x` ztC3-MX){M_q=A->Fg{>UyA1v{!8OCl4md|c_kqrF+ZC)N(ZeX+T+6f2Z*8p1t0|o` z_oNsj+M>LLnWQ-V-~**~qfxlIu@O9BMmZSA<50bJOrY>rs<`d4C}hZ}~cDA&yd zF`b0JPL;8wtk=!HRxzL%z#N}yyewnftW|ndyCz8HDxZIE-Nq^2=1o|sJ-b5T;f%O$ z80V#K>H32$kzIj@-T8+#&)jNLMkDJo8tjzM;7i9slkfZt3OLE|7K@GgoNfe4a z#{DZRTGD3HRy9%@7CbOK)4a)}VY~agvOkqC_Jo?Vr4cC^tW*_{b_xW#_GA zX_FR(w>Eo_Dp@v7Zc2v2o!G}(iBr_1Xe*7|_Bj28t+K9tQPu=t@(L3VWKnya+6_IMm) z=Ju-=vHhOnMnYIP$)%DI#IeAuj>dA_f=4kZkxHvOWS^x-*K*3i)aL_%j`W^c39yU? z?niHG&yMi5)56TaDv-Q&`qt6djZ2qSW?0%-946uW%=*@3@rcA|P?qW&Kdo$8#_btb zIESeq);+^H06C1c3?ZqBRSc47;J8FQg*ZyAE8Zi5M zKYBjd{{T$shTWsM^B5AOVx6#2s2({Ut$vnkJC|sGzTNAv@O;)c(TnS(Y$)R+88xA# z>H2=9ro#-zKisayMaBvBqfc9FVfJKDkpe~tubQ0WC1#ICI|;06S30%Omq~@-iI?|< zfgF!Y>2y8+0Aoa#63vY6?@`(5=K2stj-f9`UvYA32HuSB@CbrfgMtHhlt}07tC4`VkFyrp#x#Ia< z$Z@;5q0h;+w-SVI6ZjNB1kBmV#h z-OY}wZRLTQ5cu8L53PE*dfdw9QdVWyR$W0-Q5ytaRQihP^tsHD0VHja)3rX|%F}fC zgj-%U;|#E{N*{{V1xs}|a$rMZb@D|72ux|P$x zei}2qM`h;~4bR#mk#5ts%~Q~P);n8$Qhh?*VZUI&a2T5AJW=6mm_L631|oj)a%)oJ zC7(%4vpTEDzv|TIH4c-mU0dyfRoiSwD&sl)Yc(ej=P`8Fm0|!`faYP>wmf^BwUAHamcQg8;dJ=;uZ{&M9YC7>VCAGt{1tHq2lUyx4kyAbB$3`}s~bdr)-G@drCqbN zfxhI*haY!8)`B{khsBV|8^I(2q>$h)Itrz#X^_cp=6#wt?lJQGxfI2QJ6of<23M&) zs@$5GyMLPjRA6JhRC$xSEu1TOJ5_6=b!B#KT!IOY9Q$)zeyMeRV|=!nobpK|WPr_) zkZZoW@g}Pc)Y3x=rMxHZk;(ikhVk~U+J()wqxM#eSbRL4Z&j$Ef>%`X% zv2IT&7HJ6Kjz$G~3t8&AOG6yiyKT^I+`Z{dDCje4O>rSyDu<0fhM{j1Jkghe*sAp0 z6xKxc=J?2|6I+JkJu7QV(;Gz5ipUMZGiTnoTvODz>{q;LVMV#)1Z06z+3K#r9R>p~ z4r%M+8#$v8tO^`=JpL62_JkJf!AJT|G9wGYtlF_f_07b-T+SjcK3wrxH+~tG#Jf(V z<71H`oaT!?L9Q+UYgUcP=XW^zS7#2PYMKjMN}gMT{SREO&{A6=l*BV{P)AvOf zctc}xetXpi@)u+!P)X`25u&(h8G~*u+O_PC*uW= zYbh5UjmFb%A(5z;PZRhiYgUr(%5y9PeDR*E^sL)$Cr#Gjj7t)vv9AG67@vCebEZ9_ zxp!FxafSJ^wc;K$)AbEE#4=A}j;K!cDcIMkLcR24OL3MLw)$qFG#3_rbZXcN?N{{Q z49}@wwZu}a5f;k8y)jw39*3%UqVZ+9^AKm}nU@3UUgzQe01xSUO_WH^C2VrUR+y@> zq^`FJ#_r}8i>AG)8=?U8$Qc#Y*xIy+$s;JwBZ`{eT(q&3<4btku+3SERIp{<=y&zw zrF_KdRFk>B#amrIYgvm%(Ur$z&1K(A-ejgk!Ok;^rF-K84xuW+79+}K<%xPo<-0y*`~E!Xd%0Dw=ZsI2Yhu^C_9MtL9} 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/team/carsten.md b/docs/team/carsten.md new file mode 100644 index 00000000000..8011df17891 --- /dev/null +++ b/docs/team/carsten.md @@ -0,0 +1,33 @@ +--- +layout: page +title: Carsten's Project Portfolio Page +--- + +### Project: TutorPro Level 1 + +TutorPro - Level 1 is a desktop contact management application used for managing students as a **Private Tutor**. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +Given below are my contributions to the project. + +* **New Feature**: + * + +* **Code contributed**: [RepoSense link]() + +* **Project management**: + * + +* **Enhancements to existing features**: + * + +* **Documentation**: + * README: + * + + +* **Community**: + * PRs reviewed (with non-trivial review comments): + * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) + * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) + +* _{you can add/remove categories in the list above}_ \ No newline at end of file From b436614f242e5f63c2e59b71cff201b5ce51dca4 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sat, 9 Mar 2024 02:45:45 +0800 Subject: [PATCH 025/189] Cleanup docs --- docs/AboutUs.md | 2 +- docs/DeveloperGuide.md | 4 ++-- docs/team/carsten.md | 4 ++-- docs/team/chujie.md | 2 +- docs/team/xinyuan.md | 10 +++++----- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index d44c02d132f..f5eede2cf17 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -44,4 +44,4 @@ You can reach us at the email `[insert email]` [[portfolio](team/chujie.md)] - Role: Developer -- Responsibilites: Dev Ops \ No newline at end of file +- Responsibilites: Dev Ops diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 53a4b1d97f1..6d3e301b1ec 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -323,12 +323,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli * 3a. The given index is invalid. * 3a1. TutorPro shows an error message. - + Use case resumes at step 2. * 3b. The given student does not exist in the list. * 3b1. TutorPro displays an error message. - + Use case resumes at step 2. **Use case: Find a student** diff --git a/docs/team/carsten.md b/docs/team/carsten.md index 8011df17891..8df386f93a3 100644 --- a/docs/team/carsten.md +++ b/docs/team/carsten.md @@ -22,7 +22,7 @@ Given below are my contributions to the project. * **Documentation**: * README: - * + * **Community**: @@ -30,4 +30,4 @@ Given below are my contributions to the project. * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) -* _{you can add/remove categories in the list above}_ \ No newline at end of file +* _{you can add/remove categories in the list above}_ diff --git a/docs/team/chujie.md b/docs/team/chujie.md index 2164a145da7..c48e97080a6 100644 --- a/docs/team/chujie.md +++ b/docs/team/chujie.md @@ -30,4 +30,4 @@ Given below are my contributions to the project. * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) -* _{you can add/remove categories in the list above}_ \ No newline at end of file +* _{you can add/remove categories in the list above}_ diff --git a/docs/team/xinyuan.md b/docs/team/xinyuan.md index c062bffe812..01885d6e216 100644 --- a/docs/team/xinyuan.md +++ b/docs/team/xinyuan.md @@ -9,16 +9,16 @@ TutorPro - Level 1 is a desktop contact management application used for managing Given below are my contributions to the project. -* **New Feature**: - * +* **New Feature**: + * **Code contributed**: [RepoSense link]() * **Project management**: - * + * **Enhancements to existing features**: - * + * **Documentation**: * README: @@ -27,7 +27,7 @@ Given below are my contributions to the project. * Acknowledge the original source of the code. * **Community**: - * PRs reviewed (with non-trivial review comments): + * PRs reviewed (with non-trivial review comments): * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) From 045fb32b744f464ca8866dc810761197aa99ebec Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Mon, 11 Mar 2024 01:57:34 +0800 Subject: [PATCH 026/189] Update Tarin's name to be correct format --- .../{TarinPairorProfile.png => tarinpairor.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/images/{TarinPairorProfile.png => tarinpairor.png} (100%) diff --git a/docs/images/TarinPairorProfile.png b/docs/images/tarinpairor.png similarity index 100% rename from docs/images/TarinPairorProfile.png rename to docs/images/tarinpairor.png From ed545568bf8657ef78600adfe47409c5b552afbf Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Mon, 11 Mar 2024 02:04:08 +0800 Subject: [PATCH 027/189] Change Tarin image width --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index f5eede2cf17..7bc5993b0be 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -21,7 +21,7 @@ You can reach us at the email `[insert email]` ### Pairor Tarin - + [[github](http://github.com/TarinPairor)] [[portfolio](team/johndoe.md)] From 0f09475fed2d5505740a614df0a0a54be44051ac Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Mon, 11 Mar 2024 03:22:28 +0800 Subject: [PATCH 028/189] Refactored packages --- docs/images/{carsten.png => wyrkx.png} | Bin .../address => tutorpro}/AppParameters.java | 8 +- .../{seedu/address => tutorpro}/Main.java | 7 +- .../{seedu/address => tutorpro}/MainApp.java | 48 ++-- .../commons/core/Config.java | 4 +- .../commons/core/GuiSettings.java | 4 +- .../commons/core/LogsCenter.java | 2 +- .../commons/core/Version.java | 2 +- .../commons/core/index/Index.java | 4 +- .../exceptions/DataLoadingException.java | 2 +- .../exceptions/IllegalValueException.java | 2 +- .../commons/util/AppUtil.java | 4 +- .../commons/util/CollectionUtil.java | 2 +- .../commons/util/ConfigUtil.java | 6 +- .../commons/util/FileUtil.java | 2 +- .../commons/util/JsonUtil.java | 6 +- .../commons/util/StringUtil.java | 4 +- .../commons/util/ToStringBuilder.java | 2 +- .../address => tutorpro}/logic/Logic.java | 17 +- .../logic/LogicManager.java | 24 +- .../address => tutorpro}/logic/Messages.java | 6 +- .../logic/commands/AddCommand.java | 22 +- .../logic/commands/ClearCommand.java | 6 +- .../logic/commands/Command.java | 6 +- .../logic/commands/CommandResult.java | 4 +- .../logic/commands/DeleteCommand.java | 14 +- .../logic/commands/EditCommand.java | 39 ++-- .../logic/commands/ExitCommand.java | 4 +- .../logic/commands/FindCommand.java | 10 +- .../logic/commands/HelpCommand.java | 4 +- .../logic/commands/ListCommand.java | 7 +- .../commands/exceptions/CommandException.java | 2 +- .../logic/parser/AddCommandParser.java | 30 +-- .../logic/parser/AddressBookParser.java | 28 +-- .../logic/parser/ArgumentMultimap.java | 6 +- .../logic/parser/ArgumentTokenizer.java | 2 +- .../logic/parser/CliSyntax.java | 2 +- .../logic/parser/DeleteCommandParser.java | 10 +- .../logic/parser/EditCommandParser.java | 25 +-- .../logic/parser/FindCommandParser.java | 10 +- .../logic/parser/Parser.java | 6 +- .../logic/parser/ParserUtil.java | 18 +- .../logic/parser/Prefix.java | 2 +- .../parser/exceptions/ParseException.java | 4 +- .../model/AddressBook.java | 8 +- .../address => tutorpro}/model/Model.java | 6 +- .../model/ModelManager.java | 15 +- .../model/ReadOnlyAddressBook.java | 4 +- .../model/ReadOnlyUserPrefs.java | 4 +- .../address => tutorpro}/model/UserPrefs.java | 4 +- .../model/person/Address.java | 8 +- .../model/person/Email.java | 8 +- .../model/person/Name.java | 8 +- .../person/NameContainsKeywordsPredicate.java | 6 +- .../model/person/Person.java | 11 +- .../model/person/Phone.java | 8 +- .../model/person/UniquePersonList.java | 13 +- .../exceptions/DuplicatePersonException.java | 2 +- .../exceptions/PersonNotFoundException.java | 2 +- .../address => tutorpro}/model/tag/Tag.java | 8 +- .../model/util/SampleDataUtil.java | 18 +- .../storage/AddressBookStorage.java | 9 +- .../storage/JsonAdaptedPerson.java | 16 +- .../storage/JsonAdaptedTag.java | 6 +- .../storage/JsonAddressBookStorage.java | 14 +- .../storage/JsonSerializableAddressBook.java | 10 +- .../storage/JsonUserPrefsStorage.java | 10 +- .../address => tutorpro}/storage/Storage.java | 10 +- .../storage/StorageManager.java | 12 +- .../storage/UserPrefsStorage.java | 12 +- .../address => tutorpro}/ui/CommandBox.java | 11 +- .../address => tutorpro}/ui/HelpWindow.java | 4 +- .../address => tutorpro}/ui/MainWindow.java | 16 +- .../address => tutorpro}/ui/PersonCard.java | 4 +- .../ui/PersonListPanel.java | 6 +- .../ui/ResultDisplay.java | 2 +- .../ui/StatusBarFooter.java | 2 +- .../{seedu/address => tutorpro}/ui/Ui.java | 2 +- .../address => tutorpro}/ui/UiManager.java | 10 +- .../address => tutorpro}/ui/UiPart.java | 4 +- .../logic/commands/ClearCommandTest.java | 32 --- .../commands/EditPersonDescriptorTest.java | 71 ------ .../logic/commands/ExitCommandTest.java | 20 -- .../logic/parser/AddCommandParserTest.java | 196 ----------------- .../logic/parser/EditCommandParserTest.java | 208 ------------------ .../address/model/person/PersonTest.java | 99 --------- .../java/seedu/address/model/tag/TagTest.java | 26 --- .../seedu/address/testutil/PersonUtil.java | 62 ------ .../AppParametersTest.java | 2 +- .../commons/core/ConfigTest.java | 2 +- .../commons/core/GuiSettingsTest.java | 2 +- .../commons/core/VersionTest.java | 7 +- .../commons/core/index/IndexTest.java | 9 +- .../commons/util/AppUtilTest.java | 11 +- .../commons/util/CollectionUtilTest.java | 15 +- .../commons/util/ConfigUtilTest.java | 17 +- .../commons/util/FileUtilTest.java | 7 +- .../commons/util/JsonUtilTest.java | 6 +- .../commons/util/StringUtilTest.java | 15 +- .../logic/LogicManagerTest.java | 46 ++-- .../commands/AddCommandIntegrationTest.java | 25 +-- .../logic/commands/AddCommandTest.java | 33 +-- .../logic/commands/ClearCommandTest.java | 32 +++ .../logic/commands/CommandResultTest.java | 2 +- .../logic/commands/CommandTestUtil.java | 61 +++-- .../logic/commands/DeleteCommandTest.java | 53 +++-- .../logic/commands/EditCommandTest.java | 111 +++++----- .../commands/EditPersonDescriptorTest.java | 64 ++++++ .../logic/commands/ExitCommandTest.java | 19 ++ .../logic/commands/FindCommandTest.java | 29 ++- .../logic/commands/HelpCommandTest.java | 11 +- .../logic/commands/ListCommandTest.java | 20 +- .../logic/parser/AddCommandParserTest.java | 165 ++++++++++++++ .../logic/parser/AddressBookParserTest.java | 53 +++-- .../logic/parser/ArgumentTokenizerTest.java | 2 +- .../logic/parser/CommandParserTestUtil.java | 11 +- .../logic/parser/DeleteCommandParserTest.java | 15 +- .../logic/parser/EditCommandParserTest.java | 177 +++++++++++++++ .../logic/parser/FindCommandParserTest.java | 14 +- .../logic/parser/ParserUtilTest.java | 20 +- .../model/AddressBookTest.java | 42 ++-- .../model/ModelManagerTest.java | 42 ++-- .../model/UserPrefsTest.java | 9 +- .../model/person/AddressTest.java | 11 +- .../model/person/EmailTest.java | 11 +- .../NameContainsKeywordsPredicateTest.java | 4 +- .../model/person/NameTest.java | 11 +- .../tutorpro/model/person/PersonTest.java | 100 +++++++++ .../model/person/PhoneTest.java | 11 +- .../model/person/UniquePersonListTest.java | 94 ++++---- src/test/java/tutorpro/model/tag/TagTest.java | 27 +++ .../storage/JsonAdaptedPersonTest.java | 59 ++--- .../storage/JsonAddressBookStorageTest.java | 36 ++- .../JsonSerializableAddressBookTest.java | 17 +- .../storage/JsonUserPrefsStorageTest.java | 19 +- .../storage/StorageManagerTest.java | 14 +- .../testutil/AddressBookBuilder.java | 6 +- .../address => tutorpro}/testutil/Assert.java | 2 +- .../testutil/EditPersonDescriptorBuilder.java | 28 +-- .../testutil/PersonBuilder.java | 16 +- .../java/tutorpro/testutil/PersonUtil.java | 57 +++++ .../testutil/SerializableTestClass.java | 2 +- .../testutil/TestUtil.java | 8 +- .../testutil/TypicalIndexes.java | 4 +- .../testutil/TypicalPersons.java | 26 +-- .../ui/TestFxmlObject.java | 2 +- .../address => tutorpro}/ui/UiPartTest.java | 6 +- .../resources/view/UiPartTest/validFile.fxml | 2 +- .../view/UiPartTest/validFileWithFxRoot.fxml | 4 +- 149 files changed, 1542 insertions(+), 1608 deletions(-) rename docs/images/{carsten.png => wyrkx.png} (100%) rename src/main/java/{seedu/address => tutorpro}/AppParameters.java (92%) rename src/main/java/{seedu/address => tutorpro}/Main.java (93%) rename src/main/java/{seedu/address => tutorpro}/MainApp.java (85%) rename src/main/java/{seedu/address => tutorpro}/commons/core/Config.java (94%) rename src/main/java/{seedu/address => tutorpro}/commons/core/GuiSettings.java (96%) rename src/main/java/{seedu/address => tutorpro}/commons/core/LogsCenter.java (99%) rename src/main/java/{seedu/address => tutorpro}/commons/core/Version.java (98%) rename src/main/java/{seedu/address => tutorpro}/commons/core/index/Index.java (95%) rename src/main/java/{seedu/address => tutorpro}/commons/exceptions/DataLoadingException.java (82%) rename src/main/java/{seedu/address => tutorpro}/commons/exceptions/IllegalValueException.java (93%) rename src/main/java/{seedu/address => tutorpro}/commons/util/AppUtil.java (94%) rename src/main/java/{seedu/address => tutorpro}/commons/util/CollectionUtil.java (96%) rename src/main/java/{seedu/address => tutorpro}/commons/util/ConfigUtil.java (77%) rename src/main/java/{seedu/address => tutorpro}/commons/util/FileUtil.java (98%) rename src/main/java/{seedu/address => tutorpro}/commons/util/JsonUtil.java (97%) rename src/main/java/{seedu/address => tutorpro}/commons/util/StringUtil.java (95%) rename src/main/java/{seedu/address => tutorpro}/commons/util/ToStringBuilder.java (97%) rename src/main/java/{seedu/address => tutorpro}/logic/Logic.java (73%) rename src/main/java/{seedu/address => tutorpro}/logic/LogicManager.java (80%) rename src/main/java/{seedu/address => tutorpro}/logic/Messages.java (93%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/AddCommand.java (78%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/ClearCommand.java (80%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/Command.java (78%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/CommandResult.java (95%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/DeleteCommand.java (85%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/EditCommand.java (88%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/ExitCommand.java (84%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/FindCommand.java (87%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/HelpCommand.java (88%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/ListCommand.java (67%) rename src/main/java/{seedu/address => tutorpro}/logic/commands/exceptions/CommandException.java (89%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/AddCommandParser.java (71%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/AddressBookParser.java (76%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/ArgumentMultimap.java (95%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/ArgumentTokenizer.java (99%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/CliSyntax.java (92%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/DeleteCommandParser.java (74%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/EditCommandParser.java (78%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/FindCommandParser.java (75%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/Parser.java (72%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/ParserUtil.java (90%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/Prefix.java (95%) rename src/main/java/{seedu/address => tutorpro}/logic/parser/exceptions/ParseException.java (73%) rename src/main/java/{seedu/address => tutorpro}/model/AddressBook.java (95%) rename src/main/java/{seedu/address => tutorpro}/model/Model.java (95%) rename src/main/java/{seedu/address => tutorpro}/model/ModelManager.java (91%) rename src/main/java/{seedu/address => tutorpro}/model/ReadOnlyAddressBook.java (81%) rename src/main/java/{seedu/address => tutorpro}/model/ReadOnlyUserPrefs.java (70%) rename src/main/java/{seedu/address => tutorpro}/model/UserPrefs.java (96%) rename src/main/java/{seedu/address => tutorpro}/model/person/Address.java (87%) rename src/main/java/{seedu/address => tutorpro}/model/person/Email.java (93%) rename src/main/java/{seedu/address => tutorpro}/model/person/Name.java (88%) rename src/main/java/{seedu/address => tutorpro}/model/person/NameContainsKeywordsPredicate.java (89%) rename src/main/java/{seedu/address => tutorpro}/model/person/Person.java (90%) rename src/main/java/{seedu/address => tutorpro}/model/person/Phone.java (86%) rename src/main/java/{seedu/address => tutorpro}/model/person/UniquePersonList.java (91%) rename src/main/java/{seedu/address => tutorpro}/model/person/exceptions/DuplicatePersonException.java (87%) rename src/main/java/{seedu/address => tutorpro}/model/person/exceptions/PersonNotFoundException.java (75%) rename src/main/java/{seedu/address => tutorpro}/model/tag/Tag.java (86%) rename src/main/java/{seedu/address => tutorpro}/model/util/SampleDataUtil.java (85%) rename src/main/java/{seedu/address => tutorpro}/storage/AddressBookStorage.java (84%) rename src/main/java/{seedu/address => tutorpro}/storage/JsonAdaptedPerson.java (91%) rename src/main/java/{seedu/address => tutorpro}/storage/JsonAdaptedTag.java (89%) rename src/main/java/{seedu/address => tutorpro}/storage/JsonAddressBookStorage.java (86%) rename src/main/java/{seedu/address => tutorpro}/storage/JsonSerializableAddressBook.java (89%) rename src/main/java/{seedu/address => tutorpro}/storage/JsonUserPrefsStorage.java (83%) rename src/main/java/{seedu/address => tutorpro}/storage/Storage.java (73%) rename src/main/java/{seedu/address => tutorpro}/storage/StorageManager.java (89%) rename src/main/java/{seedu/address => tutorpro}/storage/UserPrefsStorage.java (69%) rename src/main/java/{seedu/address => tutorpro}/ui/CommandBox.java (89%) rename src/main/java/{seedu/address => tutorpro}/ui/HelpWindow.java (97%) rename src/main/java/{seedu/address => tutorpro}/ui/MainWindow.java (93%) rename src/main/java/{seedu/address => tutorpro}/ui/PersonCard.java (96%) rename src/main/java/{seedu/address => tutorpro}/ui/PersonListPanel.java (92%) rename src/main/java/{seedu/address => tutorpro}/ui/ResultDisplay.java (95%) rename src/main/java/{seedu/address => tutorpro}/ui/StatusBarFooter.java (96%) rename src/main/java/{seedu/address => tutorpro}/ui/Ui.java (86%) rename src/main/java/{seedu/address => tutorpro}/ui/UiManager.java (94%) rename src/main/java/{seedu/address => tutorpro}/ui/UiPart.java (97%) delete mode 100644 src/test/java/seedu/address/logic/commands/ClearCommandTest.java delete mode 100644 src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java delete mode 100644 src/test/java/seedu/address/logic/commands/ExitCommandTest.java delete mode 100644 src/test/java/seedu/address/logic/parser/AddCommandParserTest.java delete mode 100644 src/test/java/seedu/address/logic/parser/EditCommandParserTest.java delete mode 100644 src/test/java/seedu/address/model/person/PersonTest.java delete mode 100644 src/test/java/seedu/address/model/tag/TagTest.java delete mode 100644 src/test/java/seedu/address/testutil/PersonUtil.java rename src/test/java/{seedu/address => tutorpro}/AppParametersTest.java (99%) rename src/test/java/{seedu/address => tutorpro}/commons/core/ConfigTest.java (95%) rename src/test/java/{seedu/address => tutorpro}/commons/core/GuiSettingsTest.java (93%) rename src/test/java/{seedu/address => tutorpro}/commons/core/VersionTest.java (95%) rename src/test/java/{seedu/address => tutorpro}/commons/core/index/IndexTest.java (87%) rename src/test/java/{seedu/address => tutorpro}/commons/util/AppUtilTest.java (63%) rename src/test/java/{seedu/address => tutorpro}/commons/util/CollectionUtilTest.java (88%) rename src/test/java/{seedu/address => tutorpro}/commons/util/ConfigUtilTest.java (85%) rename src/test/java/{seedu/address => tutorpro}/commons/util/FileUtilTest.java (68%) rename src/test/java/{seedu/address => tutorpro}/commons/util/JsonUtilTest.java (92%) rename src/test/java/{seedu/address => tutorpro}/commons/util/StringUtilTest.java (88%) rename src/test/java/{seedu/address => tutorpro}/logic/LogicManagerTest.java (84%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/AddCommandIntegrationTest.java (55%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/AddCommandTest.java (87%) create mode 100644 src/test/java/tutorpro/logic/commands/ClearCommandTest.java rename src/test/java/{seedu/address => tutorpro}/logic/commands/CommandResultTest.java (98%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/CommandTestUtil.java (65%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/DeleteCommandTest.java (63%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/EditCommandTest.java (50%) create mode 100644 src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java create mode 100644 src/test/java/tutorpro/logic/commands/ExitCommandTest.java rename src/test/java/{seedu/address => tutorpro}/logic/commands/FindCommandTest.java (73%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/HelpCommandTest.java (55%) rename src/test/java/{seedu/address => tutorpro}/logic/commands/ListCommandTest.java (56%) create mode 100644 src/test/java/tutorpro/logic/parser/AddCommandParserTest.java rename src/test/java/{seedu/address => tutorpro}/logic/parser/AddressBookParserTest.java (60%) rename src/test/java/{seedu/address => tutorpro}/logic/parser/ArgumentTokenizerTest.java (99%) rename src/test/java/{seedu/address => tutorpro}/logic/parser/CommandParserTestUtil.java (78%) rename src/test/java/{seedu/address => tutorpro}/logic/parser/DeleteCommandParserTest.java (53%) create mode 100644 src/test/java/tutorpro/logic/parser/EditCommandParserTest.java rename src/test/java/{seedu/address => tutorpro}/logic/parser/FindCommandParserTest.java (58%) rename src/test/java/{seedu/address => tutorpro}/logic/parser/ParserUtilTest.java (93%) rename src/test/java/{seedu/address => tutorpro}/model/AddressBookTest.java (61%) rename src/test/java/{seedu/address => tutorpro}/model/ModelManagerTest.java (72%) rename src/test/java/{seedu/address => tutorpro}/model/UserPrefsTest.java (53%) rename src/test/java/{seedu/address => tutorpro}/model/person/AddressTest.java (79%) rename src/test/java/{seedu/address => tutorpro}/model/person/EmailTest.java (91%) rename src/test/java/{seedu/address => tutorpro}/model/person/NameContainsKeywordsPredicateTest.java (97%) rename src/test/java/{seedu/address => tutorpro}/model/person/NameTest.java (82%) create mode 100644 src/test/java/tutorpro/model/person/PersonTest.java rename src/test/java/{seedu/address => tutorpro}/model/person/PhoneTest.java (81%) rename src/test/java/{seedu/address => tutorpro}/model/person/UniquePersonListTest.java (51%) create mode 100644 src/test/java/tutorpro/model/tag/TagTest.java rename src/test/java/{seedu/address => tutorpro}/storage/JsonAdaptedPersonTest.java (56%) rename src/test/java/{seedu/address => tutorpro}/storage/JsonAddressBookStorageTest.java (72%) rename src/test/java/{seedu/address => tutorpro}/storage/JsonSerializableAddressBookTest.java (78%) rename src/test/java/{seedu/address => tutorpro}/storage/JsonUserPrefsStorageTest.java (86%) rename src/test/java/{seedu/address => tutorpro}/storage/StorageManagerTest.java (86%) rename src/test/java/{seedu/address => tutorpro}/testutil/AddressBookBuilder.java (86%) rename src/test/java/{seedu/address => tutorpro}/testutil/Assert.java (97%) rename src/test/java/{seedu/address => tutorpro}/testutil/EditPersonDescriptorBuilder.java (75%) rename src/test/java/{seedu/address => tutorpro}/testutil/PersonBuilder.java (88%) create mode 100644 src/test/java/tutorpro/testutil/PersonUtil.java rename src/test/java/{seedu/address => tutorpro}/testutil/SerializableTestClass.java (98%) rename src/test/java/{seedu/address => tutorpro}/testutil/TestUtil.java (90%) rename src/test/java/{seedu/address => tutorpro}/testutil/TypicalIndexes.java (81%) rename src/test/java/{seedu/address => tutorpro}/testutil/TypicalPersons.java (78%) rename src/test/java/{seedu/address => tutorpro}/ui/TestFxmlObject.java (97%) rename src/test/java/{seedu/address => tutorpro}/ui/UiPartTest.java (97%) diff --git a/docs/images/carsten.png b/docs/images/wyrkx.png similarity index 100% rename from docs/images/carsten.png rename to docs/images/wyrkx.png diff --git a/src/main/java/seedu/address/AppParameters.java b/src/main/java/tutorpro/AppParameters.java similarity index 92% rename from src/main/java/seedu/address/AppParameters.java rename to src/main/java/tutorpro/AppParameters.java index 3d603622d4e..c9900e490b9 100644 --- a/src/main/java/seedu/address/AppParameters.java +++ b/src/main/java/tutorpro/AppParameters.java @@ -1,4 +1,4 @@ -package seedu.address; +package tutorpro; import java.nio.file.Path; import java.nio.file.Paths; @@ -7,9 +7,9 @@ import java.util.logging.Logger; import javafx.application.Application; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.util.FileUtil; -import seedu.address.commons.util.ToStringBuilder; +import tutorpro.commons.core.LogsCenter; +import tutorpro.commons.util.FileUtil; +import tutorpro.commons.util.ToStringBuilder; /** * Represents the parsed command-line parameters given to the application. diff --git a/src/main/java/seedu/address/Main.java b/src/main/java/tutorpro/Main.java similarity index 93% rename from src/main/java/seedu/address/Main.java rename to src/main/java/tutorpro/Main.java index ec1b7958746..f3005f2453a 100644 --- a/src/main/java/seedu/address/Main.java +++ b/src/main/java/tutorpro/Main.java @@ -1,9 +1,9 @@ -package seedu.address; +package tutorpro; import java.util.logging.Logger; import javafx.application.Application; -import seedu.address.commons.core.LogsCenter; +import tutorpro.commons.core.LogsCenter; /** * The main entry point to the application. @@ -35,6 +35,9 @@ public static void main(String[] args) { // the user (if looking at the log output) that the said warning appearing in the log // can be ignored. + if (!(args instanceof String[])) { + ; + } logger.warning("The warning about Unsupported JavaFX configuration below can be ignored."); Application.launch(MainApp.class, args); } diff --git a/src/main/java/seedu/address/MainApp.java b/src/main/java/tutorpro/MainApp.java similarity index 85% rename from src/main/java/seedu/address/MainApp.java rename to src/main/java/tutorpro/MainApp.java index 3d6bd06d5af..9a879ad6836 100644 --- a/src/main/java/seedu/address/MainApp.java +++ b/src/main/java/tutorpro/MainApp.java @@ -1,4 +1,4 @@ -package seedu.address; +package tutorpro; import java.io.IOException; import java.nio.file.Path; @@ -7,29 +7,29 @@ import javafx.application.Application; import javafx.stage.Stage; -import seedu.address.commons.core.Config; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.core.Version; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.commons.util.ConfigUtil; -import seedu.address.commons.util.StringUtil; -import seedu.address.logic.Logic; -import seedu.address.logic.LogicManager; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; -import seedu.address.model.util.SampleDataUtil; -import seedu.address.storage.AddressBookStorage; -import seedu.address.storage.JsonAddressBookStorage; -import seedu.address.storage.JsonUserPrefsStorage; -import seedu.address.storage.Storage; -import seedu.address.storage.StorageManager; -import seedu.address.storage.UserPrefsStorage; -import seedu.address.ui.Ui; -import seedu.address.ui.UiManager; +import tutorpro.commons.core.Config; +import tutorpro.commons.core.LogsCenter; +import tutorpro.commons.core.Version; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.commons.util.ConfigUtil; +import tutorpro.commons.util.StringUtil; +import tutorpro.logic.Logic; +import tutorpro.logic.LogicManager; +import tutorpro.model.AddressBook; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.ReadOnlyUserPrefs; +import tutorpro.model.UserPrefs; +import tutorpro.model.util.SampleDataUtil; +import tutorpro.storage.AddressBookStorage; +import tutorpro.storage.JsonAddressBookStorage; +import tutorpro.storage.JsonUserPrefsStorage; +import tutorpro.storage.Storage; +import tutorpro.storage.StorageManager; +import tutorpro.storage.UserPrefsStorage; +import tutorpro.ui.Ui; +import tutorpro.ui.UiManager; /** * Runs the application. diff --git a/src/main/java/seedu/address/commons/core/Config.java b/src/main/java/tutorpro/commons/core/Config.java similarity index 94% rename from src/main/java/seedu/address/commons/core/Config.java rename to src/main/java/tutorpro/commons/core/Config.java index 485f85a5e05..b4d96dd83e9 100644 --- a/src/main/java/seedu/address/commons/core/Config.java +++ b/src/main/java/tutorpro/commons/core/Config.java @@ -1,11 +1,11 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Objects; import java.util.logging.Level; -import seedu.address.commons.util.ToStringBuilder; +import tutorpro.commons.util.ToStringBuilder; /** * Config values used by the app diff --git a/src/main/java/seedu/address/commons/core/GuiSettings.java b/src/main/java/tutorpro/commons/core/GuiSettings.java similarity index 96% rename from src/main/java/seedu/address/commons/core/GuiSettings.java rename to src/main/java/tutorpro/commons/core/GuiSettings.java index a97a86ee8d7..921a7b477ce 100644 --- a/src/main/java/seedu/address/commons/core/GuiSettings.java +++ b/src/main/java/tutorpro/commons/core/GuiSettings.java @@ -1,10 +1,10 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import java.awt.Point; import java.io.Serializable; import java.util.Objects; -import seedu.address.commons.util.ToStringBuilder; +import tutorpro.commons.util.ToStringBuilder; /** * A Serializable class that contains the GUI settings. diff --git a/src/main/java/seedu/address/commons/core/LogsCenter.java b/src/main/java/tutorpro/commons/core/LogsCenter.java similarity index 99% rename from src/main/java/seedu/address/commons/core/LogsCenter.java rename to src/main/java/tutorpro/commons/core/LogsCenter.java index 8cf8e15a0f0..18d8fc9b34a 100644 --- a/src/main/java/seedu/address/commons/core/LogsCenter.java +++ b/src/main/java/tutorpro/commons/core/LogsCenter.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import static java.util.Objects.requireNonNull; diff --git a/src/main/java/seedu/address/commons/core/Version.java b/src/main/java/tutorpro/commons/core/Version.java similarity index 98% rename from src/main/java/seedu/address/commons/core/Version.java rename to src/main/java/tutorpro/commons/core/Version.java index 491d24559b4..837e19c1e4a 100644 --- a/src/main/java/seedu/address/commons/core/Version.java +++ b/src/main/java/tutorpro/commons/core/Version.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/seedu/address/commons/core/index/Index.java b/src/main/java/tutorpro/commons/core/index/Index.java similarity index 95% rename from src/main/java/seedu/address/commons/core/index/Index.java rename to src/main/java/tutorpro/commons/core/index/Index.java index dd170d8b68d..dd4435575b9 100644 --- a/src/main/java/seedu/address/commons/core/index/Index.java +++ b/src/main/java/tutorpro/commons/core/index/Index.java @@ -1,6 +1,6 @@ -package seedu.address.commons.core.index; +package tutorpro.commons.core.index; -import seedu.address.commons.util.ToStringBuilder; +import tutorpro.commons.util.ToStringBuilder; /** * Represents a zero-based or one-based index. diff --git a/src/main/java/seedu/address/commons/exceptions/DataLoadingException.java b/src/main/java/tutorpro/commons/exceptions/DataLoadingException.java similarity index 82% rename from src/main/java/seedu/address/commons/exceptions/DataLoadingException.java rename to src/main/java/tutorpro/commons/exceptions/DataLoadingException.java index 9904ba47afe..e79d506b783 100644 --- a/src/main/java/seedu/address/commons/exceptions/DataLoadingException.java +++ b/src/main/java/tutorpro/commons/exceptions/DataLoadingException.java @@ -1,4 +1,4 @@ -package seedu.address.commons.exceptions; +package tutorpro.commons.exceptions; /** * Represents an error during loading of data from a file. diff --git a/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java b/src/main/java/tutorpro/commons/exceptions/IllegalValueException.java similarity index 93% rename from src/main/java/seedu/address/commons/exceptions/IllegalValueException.java rename to src/main/java/tutorpro/commons/exceptions/IllegalValueException.java index 19124db485c..b8a6a075b6a 100644 --- a/src/main/java/seedu/address/commons/exceptions/IllegalValueException.java +++ b/src/main/java/tutorpro/commons/exceptions/IllegalValueException.java @@ -1,4 +1,4 @@ -package seedu.address.commons.exceptions; +package tutorpro.commons.exceptions; /** * Signals that some given data does not fulfill some constraints. diff --git a/src/main/java/seedu/address/commons/util/AppUtil.java b/src/main/java/tutorpro/commons/util/AppUtil.java similarity index 94% rename from src/main/java/seedu/address/commons/util/AppUtil.java rename to src/main/java/tutorpro/commons/util/AppUtil.java index 87aa89c0326..704a6cf50b2 100644 --- a/src/main/java/seedu/address/commons/util/AppUtil.java +++ b/src/main/java/tutorpro/commons/util/AppUtil.java @@ -1,9 +1,9 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static java.util.Objects.requireNonNull; import javafx.scene.image.Image; -import seedu.address.MainApp; +import tutorpro.MainApp; /** * A container for App specific utility functions diff --git a/src/main/java/seedu/address/commons/util/CollectionUtil.java b/src/main/java/tutorpro/commons/util/CollectionUtil.java similarity index 96% rename from src/main/java/seedu/address/commons/util/CollectionUtil.java rename to src/main/java/tutorpro/commons/util/CollectionUtil.java index eafe4dfd681..b27ea7e8fa1 100644 --- a/src/main/java/seedu/address/commons/util/CollectionUtil.java +++ b/src/main/java/tutorpro/commons/util/CollectionUtil.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static java.util.Objects.requireNonNull; diff --git a/src/main/java/seedu/address/commons/util/ConfigUtil.java b/src/main/java/tutorpro/commons/util/ConfigUtil.java similarity index 77% rename from src/main/java/seedu/address/commons/util/ConfigUtil.java rename to src/main/java/tutorpro/commons/util/ConfigUtil.java index 7b829c3c4cc..50bc763607c 100644 --- a/src/main/java/seedu/address/commons/util/ConfigUtil.java +++ b/src/main/java/tutorpro/commons/util/ConfigUtil.java @@ -1,11 +1,11 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.core.Config; -import seedu.address.commons.exceptions.DataLoadingException; +import tutorpro.commons.core.Config; +import tutorpro.commons.exceptions.DataLoadingException; /** * A class for accessing the Config File. diff --git a/src/main/java/seedu/address/commons/util/FileUtil.java b/src/main/java/tutorpro/commons/util/FileUtil.java similarity index 98% rename from src/main/java/seedu/address/commons/util/FileUtil.java rename to src/main/java/tutorpro/commons/util/FileUtil.java index b1e2767cdd9..0ded9b2fd11 100644 --- a/src/main/java/seedu/address/commons/util/FileUtil.java +++ b/src/main/java/tutorpro/commons/util/FileUtil.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import java.io.IOException; import java.nio.file.Files; diff --git a/src/main/java/seedu/address/commons/util/JsonUtil.java b/src/main/java/tutorpro/commons/util/JsonUtil.java similarity index 97% rename from src/main/java/seedu/address/commons/util/JsonUtil.java rename to src/main/java/tutorpro/commons/util/JsonUtil.java index 100cb16c395..085d247f787 100644 --- a/src/main/java/seedu/address/commons/util/JsonUtil.java +++ b/src/main/java/tutorpro/commons/util/JsonUtil.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static java.util.Objects.requireNonNull; @@ -20,8 +20,8 @@ import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.exceptions.DataLoadingException; +import tutorpro.commons.core.LogsCenter; +import tutorpro.commons.exceptions.DataLoadingException; /** * Converts a Java object instance to JSON and vice versa diff --git a/src/main/java/seedu/address/commons/util/StringUtil.java b/src/main/java/tutorpro/commons/util/StringUtil.java similarity index 95% rename from src/main/java/seedu/address/commons/util/StringUtil.java rename to src/main/java/tutorpro/commons/util/StringUtil.java index 61cc8c9a1cb..8352743bfd9 100644 --- a/src/main/java/seedu/address/commons/util/StringUtil.java +++ b/src/main/java/tutorpro/commons/util/StringUtil.java @@ -1,7 +1,7 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static tutorpro.commons.util.AppUtil.checkArgument; import java.io.PrintWriter; import java.io.StringWriter; diff --git a/src/main/java/seedu/address/commons/util/ToStringBuilder.java b/src/main/java/tutorpro/commons/util/ToStringBuilder.java similarity index 97% rename from src/main/java/seedu/address/commons/util/ToStringBuilder.java rename to src/main/java/tutorpro/commons/util/ToStringBuilder.java index d979b926734..0c36345d031 100644 --- a/src/main/java/seedu/address/commons/util/ToStringBuilder.java +++ b/src/main/java/tutorpro/commons/util/ToStringBuilder.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; /** * Builds a string representation of an object that is suitable as the return value of {@link Object#toString()}. diff --git a/src/main/java/seedu/address/logic/Logic.java b/src/main/java/tutorpro/logic/Logic.java similarity index 73% rename from src/main/java/seedu/address/logic/Logic.java rename to src/main/java/tutorpro/logic/Logic.java index 92cd8fa605a..bad82b4a7e6 100644 --- a/src/main/java/seedu/address/logic/Logic.java +++ b/src/main/java/tutorpro/logic/Logic.java @@ -1,14 +1,15 @@ -package seedu.address.logic; +package tutorpro.logic; import java.nio.file.Path; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Person; +import tutorpro.commons.core.GuiSettings; +import tutorpro.logic.commands.CommandResult; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.person.Person; +import tutorpro.model.Model; /** * API of the Logic component @@ -26,7 +27,7 @@ public interface Logic { /** * Returns the AddressBook. * - * @see seedu.address.model.Model#getAddressBook() + * @see Model#getAddressBook() */ ReadOnlyAddressBook getAddressBook(); diff --git a/src/main/java/seedu/address/logic/LogicManager.java b/src/main/java/tutorpro/logic/LogicManager.java similarity index 80% rename from src/main/java/seedu/address/logic/LogicManager.java rename to src/main/java/tutorpro/logic/LogicManager.java index 5aa3b91c7d0..121d322cc36 100644 --- a/src/main/java/seedu/address/logic/LogicManager.java +++ b/src/main/java/tutorpro/logic/LogicManager.java @@ -1,4 +1,4 @@ -package seedu.address.logic; +package tutorpro.logic; import java.io.IOException; import java.nio.file.AccessDeniedException; @@ -6,17 +6,17 @@ import java.util.logging.Logger; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.core.LogsCenter; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.AddressBookParser; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.Model; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Person; -import seedu.address.storage.Storage; +import tutorpro.commons.core.GuiSettings; +import tutorpro.commons.core.LogsCenter; +import tutorpro.logic.commands.Command; +import tutorpro.logic.commands.CommandResult; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.logic.parser.AddressBookParser; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.Model; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.person.Person; +import tutorpro.storage.Storage; /** * The main LogicManager of the app. diff --git a/src/main/java/seedu/address/logic/Messages.java b/src/main/java/tutorpro/logic/Messages.java similarity index 93% rename from src/main/java/seedu/address/logic/Messages.java rename to src/main/java/tutorpro/logic/Messages.java index ecd32c31b53..d72f23c729f 100644 --- a/src/main/java/seedu/address/logic/Messages.java +++ b/src/main/java/tutorpro/logic/Messages.java @@ -1,11 +1,11 @@ -package seedu.address.logic; +package tutorpro.logic; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import seedu.address.logic.parser.Prefix; -import seedu.address.model.person.Person; +import tutorpro.logic.parser.Prefix; +import tutorpro.model.person.Person; /** * Container for user visible messages. diff --git a/src/main/java/seedu/address/logic/commands/AddCommand.java b/src/main/java/tutorpro/logic/commands/AddCommand.java similarity index 78% rename from src/main/java/seedu/address/logic/commands/AddCommand.java rename to src/main/java/tutorpro/logic/commands/AddCommand.java index 5d7185a9680..a85e36eb6a7 100644 --- a/src/main/java/seedu/address/logic/commands/AddCommand.java +++ b/src/main/java/tutorpro/logic/commands/AddCommand.java @@ -1,17 +1,17 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; +import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Person; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.logic.Messages; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.model.Model; +import tutorpro.model.person.Person; /** * Adds a person to the address book. diff --git a/src/main/java/seedu/address/logic/commands/ClearCommand.java b/src/main/java/tutorpro/logic/commands/ClearCommand.java similarity index 80% rename from src/main/java/seedu/address/logic/commands/ClearCommand.java rename to src/main/java/tutorpro/logic/commands/ClearCommand.java index 9c86b1fa6e4..f524178980c 100644 --- a/src/main/java/seedu/address/logic/commands/ClearCommand.java +++ b/src/main/java/tutorpro/logic/commands/ClearCommand.java @@ -1,9 +1,9 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; +import tutorpro.model.AddressBook; +import tutorpro.model.Model; /** * Clears the address book. diff --git a/src/main/java/seedu/address/logic/commands/Command.java b/src/main/java/tutorpro/logic/commands/Command.java similarity index 78% rename from src/main/java/seedu/address/logic/commands/Command.java rename to src/main/java/tutorpro/logic/commands/Command.java index 64f18992160..11deb5226ea 100644 --- a/src/main/java/seedu/address/logic/commands/Command.java +++ b/src/main/java/tutorpro/logic/commands/Command.java @@ -1,7 +1,7 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.model.Model; /** * Represents a command with hidden internal logic and the ability to be executed. diff --git a/src/main/java/seedu/address/logic/commands/CommandResult.java b/src/main/java/tutorpro/logic/commands/CommandResult.java similarity index 95% rename from src/main/java/seedu/address/logic/commands/CommandResult.java rename to src/main/java/tutorpro/logic/commands/CommandResult.java index 249b6072d0d..c42170b67ba 100644 --- a/src/main/java/seedu/address/logic/commands/CommandResult.java +++ b/src/main/java/tutorpro/logic/commands/CommandResult.java @@ -1,10 +1,10 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; import java.util.Objects; -import seedu.address.commons.util.ToStringBuilder; +import tutorpro.commons.util.ToStringBuilder; /** * Represents the result of a command execution. diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/tutorpro/logic/commands/DeleteCommand.java similarity index 85% rename from src/main/java/seedu/address/logic/commands/DeleteCommand.java rename to src/main/java/tutorpro/logic/commands/DeleteCommand.java index 1135ac19b74..e7e88b8a3ec 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/tutorpro/logic/commands/DeleteCommand.java @@ -1,15 +1,15 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; import java.util.List; -import seedu.address.commons.core.index.Index; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Person; +import tutorpro.commons.core.index.Index; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.logic.Messages; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.model.Model; +import tutorpro.model.person.Person; /** * Deletes a person identified using it's displayed index from the address book. diff --git a/src/main/java/seedu/address/logic/commands/EditCommand.java b/src/main/java/tutorpro/logic/commands/EditCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/EditCommand.java rename to src/main/java/tutorpro/logic/commands/EditCommand.java index 4b581c7331e..1429a848255 100644 --- a/src/main/java/seedu/address/logic/commands/EditCommand.java +++ b/src/main/java/tutorpro/logic/commands/EditCommand.java @@ -1,12 +1,11 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; +import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; +import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Collections; import java.util.HashSet; @@ -15,18 +14,18 @@ import java.util.Optional; import java.util.Set; -import seedu.address.commons.core.index.Index; -import seedu.address.commons.util.CollectionUtil; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.commons.core.index.Index; +import tutorpro.commons.util.CollectionUtil; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.logic.Messages; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.model.Model; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; /** * Edits the details of an existing person in the address book. @@ -84,7 +83,7 @@ public CommandResult execute(Model model) throws CommandException { } model.setPerson(personToEdit, editedPerson); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + model.updateFilteredPersonList(Model.PREDICATE_SHOW_ALL_PERSONS); return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson))); } diff --git a/src/main/java/seedu/address/logic/commands/ExitCommand.java b/src/main/java/tutorpro/logic/commands/ExitCommand.java similarity index 84% rename from src/main/java/seedu/address/logic/commands/ExitCommand.java rename to src/main/java/tutorpro/logic/commands/ExitCommand.java index 3dd85a8ba90..ad7938a8492 100644 --- a/src/main/java/seedu/address/logic/commands/ExitCommand.java +++ b/src/main/java/tutorpro/logic/commands/ExitCommand.java @@ -1,6 +1,6 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; -import seedu.address.model.Model; +import tutorpro.model.Model; /** * Terminates the program. diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/tutorpro/logic/commands/FindCommand.java similarity index 87% rename from src/main/java/seedu/address/logic/commands/FindCommand.java rename to src/main/java/tutorpro/logic/commands/FindCommand.java index 72b9eddd3a7..ea6f8f51e80 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/tutorpro/logic/commands/FindCommand.java @@ -1,11 +1,11 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.model.Model; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.logic.Messages; +import tutorpro.model.Model; +import tutorpro.model.person.NameContainsKeywordsPredicate; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/tutorpro/logic/commands/HelpCommand.java similarity index 88% rename from src/main/java/seedu/address/logic/commands/HelpCommand.java rename to src/main/java/tutorpro/logic/commands/HelpCommand.java index bf824f91bd0..744fee07216 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/tutorpro/logic/commands/HelpCommand.java @@ -1,6 +1,6 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; -import seedu.address.model.Model; +import tutorpro.model.Model; /** * Format full help instructions for every command for display. diff --git a/src/main/java/seedu/address/logic/commands/ListCommand.java b/src/main/java/tutorpro/logic/commands/ListCommand.java similarity index 67% rename from src/main/java/seedu/address/logic/commands/ListCommand.java rename to src/main/java/tutorpro/logic/commands/ListCommand.java index 84be6ad2596..a959be954fe 100644 --- a/src/main/java/seedu/address/logic/commands/ListCommand.java +++ b/src/main/java/tutorpro/logic/commands/ListCommand.java @@ -1,9 +1,8 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import seedu.address.model.Model; +import tutorpro.model.Model; /** * Lists all persons in the address book to the user. @@ -18,7 +17,7 @@ public class ListCommand extends Command { @Override public CommandResult execute(Model model) { requireNonNull(model); - model.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + model.updateFilteredPersonList(Model.PREDICATE_SHOW_ALL_PERSONS); return new CommandResult(MESSAGE_SUCCESS); } } diff --git a/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java b/src/main/java/tutorpro/logic/commands/exceptions/CommandException.java similarity index 89% rename from src/main/java/seedu/address/logic/commands/exceptions/CommandException.java rename to src/main/java/tutorpro/logic/commands/exceptions/CommandException.java index a16bd14f2cd..a30a824d12c 100644 --- a/src/main/java/seedu/address/logic/commands/exceptions/CommandException.java +++ b/src/main/java/tutorpro/logic/commands/exceptions/CommandException.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands.exceptions; +package tutorpro.logic.commands.exceptions; /** * Represents an error which occurs during execution of a {@link Command}. diff --git a/src/main/java/seedu/address/logic/parser/AddCommandParser.java b/src/main/java/tutorpro/logic/parser/AddCommandParser.java similarity index 71% rename from src/main/java/seedu/address/logic/parser/AddCommandParser.java rename to src/main/java/tutorpro/logic/parser/AddCommandParser.java index 4ff1a97ed77..9a3caddf4b4 100644 --- a/src/main/java/seedu/address/logic/parser/AddCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/AddCommandParser.java @@ -1,23 +1,23 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; +import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; import java.util.stream.Stream; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.logic.commands.AddCommand; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; /** * Parses input arguments and creates a new AddCommand object diff --git a/src/main/java/seedu/address/logic/parser/AddressBookParser.java b/src/main/java/tutorpro/logic/parser/AddressBookParser.java similarity index 76% rename from src/main/java/seedu/address/logic/parser/AddressBookParser.java rename to src/main/java/tutorpro/logic/parser/AddressBookParser.java index 3149ee07e0b..710f5bdd421 100644 --- a/src/main/java/seedu/address/logic/parser/AddressBookParser.java +++ b/src/main/java/tutorpro/logic/parser/AddressBookParser.java @@ -1,23 +1,23 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.Messages.MESSAGE_UNKNOWN_COMMAND; +import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static tutorpro.logic.Messages.MESSAGE_UNKNOWN_COMMAND; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import seedu.address.commons.core.LogsCenter; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.Command; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.parser.exceptions.ParseException; +import tutorpro.commons.core.LogsCenter; +import tutorpro.logic.commands.AddCommand; +import tutorpro.logic.commands.ClearCommand; +import tutorpro.logic.commands.Command; +import tutorpro.logic.commands.DeleteCommand; +import tutorpro.logic.commands.EditCommand; +import tutorpro.logic.commands.ExitCommand; +import tutorpro.logic.commands.FindCommand; +import tutorpro.logic.commands.HelpCommand; +import tutorpro.logic.commands.ListCommand; +import tutorpro.logic.parser.exceptions.ParseException; /** * Parses user input. diff --git a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java b/src/main/java/tutorpro/logic/parser/ArgumentMultimap.java similarity index 95% rename from src/main/java/seedu/address/logic/parser/ArgumentMultimap.java rename to src/main/java/tutorpro/logic/parser/ArgumentMultimap.java index 21e26887a83..fa8b136d201 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java +++ b/src/main/java/tutorpro/logic/parser/ArgumentMultimap.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import java.util.ArrayList; import java.util.HashMap; @@ -7,8 +7,8 @@ import java.util.Optional; import java.util.stream.Stream; -import seedu.address.logic.Messages; -import seedu.address.logic.parser.exceptions.ParseException; +import tutorpro.logic.Messages; +import tutorpro.logic.parser.exceptions.ParseException; /** * Stores mapping of prefixes to their respective arguments. diff --git a/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java b/src/main/java/tutorpro/logic/parser/ArgumentTokenizer.java similarity index 99% rename from src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java rename to src/main/java/tutorpro/logic/parser/ArgumentTokenizer.java index 5c9aebfa488..14b77c1f999 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentTokenizer.java +++ b/src/main/java/tutorpro/logic/parser/ArgumentTokenizer.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/tutorpro/logic/parser/CliSyntax.java similarity index 92% rename from src/main/java/seedu/address/logic/parser/CliSyntax.java rename to src/main/java/tutorpro/logic/parser/CliSyntax.java index 75b1a9bf119..e68a61c7b68 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/tutorpro/logic/parser/CliSyntax.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; /** * Contains Command Line Interface (CLI) syntax definitions common to multiple commands diff --git a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java b/src/main/java/tutorpro/logic/parser/DeleteCommandParser.java similarity index 74% rename from src/main/java/seedu/address/logic/parser/DeleteCommandParser.java rename to src/main/java/tutorpro/logic/parser/DeleteCommandParser.java index 3527fe76a3e..4f96557238a 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/DeleteCommandParser.java @@ -1,10 +1,10 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.parser.exceptions.ParseException; +import tutorpro.commons.core.index.Index; +import tutorpro.logic.commands.DeleteCommand; +import tutorpro.logic.parser.exceptions.ParseException; /** * Parses input arguments and creates a new DeleteCommand object diff --git a/src/main/java/seedu/address/logic/parser/EditCommandParser.java b/src/main/java/tutorpro/logic/parser/EditCommandParser.java similarity index 78% rename from src/main/java/seedu/address/logic/parser/EditCommandParser.java rename to src/main/java/tutorpro/logic/parser/EditCommandParser.java index 46b3309a78b..92d6080d471 100644 --- a/src/main/java/seedu/address/logic/parser/EditCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/EditCommandParser.java @@ -1,23 +1,22 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; +import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; +import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; +import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Collection; import java.util.Collections; import java.util.Optional; import java.util.Set; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.tag.Tag; +import tutorpro.commons.core.index.Index; +import tutorpro.logic.commands.EditCommand; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.tag.Tag; /** * Parses input arguments and creates a new EditCommand object @@ -44,7 +43,7 @@ public EditCommand parse(String args) throws ParseException { argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS); - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); + EditCommand.EditPersonDescriptor editPersonDescriptor = new EditCommand.EditPersonDescriptor(); if (argMultimap.getValue(PREFIX_NAME).isPresent()) { editPersonDescriptor.setName(ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get())); diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/tutorpro/logic/parser/FindCommandParser.java similarity index 75% rename from src/main/java/seedu/address/logic/parser/FindCommandParser.java rename to src/main/java/tutorpro/logic/parser/FindCommandParser.java index 2867bde857b..973bcfa7883 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/FindCommandParser.java @@ -1,12 +1,12 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import java.util.Arrays; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import tutorpro.logic.commands.FindCommand; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.person.NameContainsKeywordsPredicate; /** * Parses input arguments and creates a new FindCommand object diff --git a/src/main/java/seedu/address/logic/parser/Parser.java b/src/main/java/tutorpro/logic/parser/Parser.java similarity index 72% rename from src/main/java/seedu/address/logic/parser/Parser.java rename to src/main/java/tutorpro/logic/parser/Parser.java index d6551ad8e3f..ed94434af33 100644 --- a/src/main/java/seedu/address/logic/parser/Parser.java +++ b/src/main/java/tutorpro/logic/parser/Parser.java @@ -1,7 +1,7 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; -import seedu.address.logic.commands.Command; -import seedu.address.logic.parser.exceptions.ParseException; +import tutorpro.logic.commands.Command; +import tutorpro.logic.parser.exceptions.ParseException; /** * Represents a Parser that is able to parse user input into a {@code Command} of type {@code T}. diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/tutorpro/logic/parser/ParserUtil.java similarity index 90% rename from src/main/java/seedu/address/logic/parser/ParserUtil.java rename to src/main/java/tutorpro/logic/parser/ParserUtil.java index b117acb9c55..6f9c83e12e0 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/tutorpro/logic/parser/ParserUtil.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import static java.util.Objects.requireNonNull; @@ -6,14 +6,14 @@ import java.util.HashSet; import java.util.Set; -import seedu.address.commons.core.index.Index; -import seedu.address.commons.util.StringUtil; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.commons.core.index.Index; +import tutorpro.commons.util.StringUtil; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; /** * Contains utility methods used for parsing strings in the various *Parser classes. diff --git a/src/main/java/seedu/address/logic/parser/Prefix.java b/src/main/java/tutorpro/logic/parser/Prefix.java similarity index 95% rename from src/main/java/seedu/address/logic/parser/Prefix.java rename to src/main/java/tutorpro/logic/parser/Prefix.java index 348b7686c8a..6aa3e086a92 100644 --- a/src/main/java/seedu/address/logic/parser/Prefix.java +++ b/src/main/java/tutorpro/logic/parser/Prefix.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; /** * A prefix that marks the beginning of an argument in an arguments string. diff --git a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java b/src/main/java/tutorpro/logic/parser/exceptions/ParseException.java similarity index 73% rename from src/main/java/seedu/address/logic/parser/exceptions/ParseException.java rename to src/main/java/tutorpro/logic/parser/exceptions/ParseException.java index 158a1a54c1c..4a38a5c13c3 100644 --- a/src/main/java/seedu/address/logic/parser/exceptions/ParseException.java +++ b/src/main/java/tutorpro/logic/parser/exceptions/ParseException.java @@ -1,6 +1,6 @@ -package seedu.address.logic.parser.exceptions; +package tutorpro.logic.parser.exceptions; -import seedu.address.commons.exceptions.IllegalValueException; +import tutorpro.commons.exceptions.IllegalValueException; /** * Represents a parse error encountered by a parser. diff --git a/src/main/java/seedu/address/model/AddressBook.java b/src/main/java/tutorpro/model/AddressBook.java similarity index 95% rename from src/main/java/seedu/address/model/AddressBook.java rename to src/main/java/tutorpro/model/AddressBook.java index 73397161e84..ac6bec5b7d0 100644 --- a/src/main/java/seedu/address/model/AddressBook.java +++ b/src/main/java/tutorpro/model/AddressBook.java @@ -1,13 +1,13 @@ -package seedu.address.model; +package tutorpro.model; import static java.util.Objects.requireNonNull; import java.util.List; import javafx.collections.ObservableList; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Person; -import seedu.address.model.person.UniquePersonList; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.model.person.Person; +import tutorpro.model.person.UniquePersonList; /** * Wraps all data at the address-book level diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/tutorpro/model/Model.java similarity index 95% rename from src/main/java/seedu/address/model/Model.java rename to src/main/java/tutorpro/model/Model.java index d54df471c1f..64e015318c5 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/tutorpro/model/Model.java @@ -1,11 +1,11 @@ -package seedu.address.model; +package tutorpro.model; import java.nio.file.Path; import java.util.function.Predicate; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.model.person.Person; +import tutorpro.commons.core.GuiSettings; +import tutorpro.model.person.Person; /** * The API of the Model component. diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/tutorpro/model/ModelManager.java similarity index 91% rename from src/main/java/seedu/address/model/ModelManager.java rename to src/main/java/tutorpro/model/ModelManager.java index 57bc563fde6..fc40132b44c 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/tutorpro/model/ModelManager.java @@ -1,7 +1,7 @@ -package seedu.address.model; +package tutorpro.model; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.nio.file.Path; import java.util.function.Predicate; @@ -9,9 +9,10 @@ import javafx.collections.ObservableList; import javafx.collections.transformation.FilteredList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; +import tutorpro.commons.core.GuiSettings; +import tutorpro.commons.core.LogsCenter; +import tutorpro.model.person.Person; +import tutorpro.commons.util.CollectionUtil; /** * Represents the in-memory model of the address book data. @@ -27,7 +28,7 @@ public class ModelManager implements Model { * Initializes a ModelManager with the given addressBook and userPrefs. */ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs) { - requireAllNonNull(addressBook, userPrefs); + CollectionUtil.requireAllNonNull(addressBook, userPrefs); logger.fine("Initializing with address book: " + addressBook + " and user prefs " + userPrefs); @@ -106,7 +107,7 @@ public void addPerson(Person person) { @Override public void setPerson(Person target, Person editedPerson) { - requireAllNonNull(target, editedPerson); + CollectionUtil.requireAllNonNull(target, editedPerson); addressBook.setPerson(target, editedPerson); } diff --git a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java b/src/main/java/tutorpro/model/ReadOnlyAddressBook.java similarity index 81% rename from src/main/java/seedu/address/model/ReadOnlyAddressBook.java rename to src/main/java/tutorpro/model/ReadOnlyAddressBook.java index 6ddc2cd9a29..6c8b0dfa018 100644 --- a/src/main/java/seedu/address/model/ReadOnlyAddressBook.java +++ b/src/main/java/tutorpro/model/ReadOnlyAddressBook.java @@ -1,7 +1,7 @@ -package seedu.address.model; +package tutorpro.model; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; +import tutorpro.model.person.Person; /** * Unmodifiable view of an address book diff --git a/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java b/src/main/java/tutorpro/model/ReadOnlyUserPrefs.java similarity index 70% rename from src/main/java/seedu/address/model/ReadOnlyUserPrefs.java rename to src/main/java/tutorpro/model/ReadOnlyUserPrefs.java index befd58a4c73..8653e4343af 100644 --- a/src/main/java/seedu/address/model/ReadOnlyUserPrefs.java +++ b/src/main/java/tutorpro/model/ReadOnlyUserPrefs.java @@ -1,8 +1,8 @@ -package seedu.address.model; +package tutorpro.model; import java.nio.file.Path; -import seedu.address.commons.core.GuiSettings; +import tutorpro.commons.core.GuiSettings; /** * Unmodifiable view of user prefs. diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/tutorpro/model/UserPrefs.java similarity index 96% rename from src/main/java/seedu/address/model/UserPrefs.java rename to src/main/java/tutorpro/model/UserPrefs.java index 6be655fb4c7..20c7a12dc71 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/tutorpro/model/UserPrefs.java @@ -1,4 +1,4 @@ -package seedu.address.model; +package tutorpro.model; import static java.util.Objects.requireNonNull; @@ -6,7 +6,7 @@ import java.nio.file.Paths; import java.util.Objects; -import seedu.address.commons.core.GuiSettings; +import tutorpro.commons.core.GuiSettings; /** * Represents User's preferences. diff --git a/src/main/java/seedu/address/model/person/Address.java b/src/main/java/tutorpro/model/person/Address.java similarity index 87% rename from src/main/java/seedu/address/model/person/Address.java rename to src/main/java/tutorpro/model/person/Address.java index 469a2cc9a1e..74bef8db921 100644 --- a/src/main/java/seedu/address/model/person/Address.java +++ b/src/main/java/tutorpro/model/person/Address.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package tutorpro.model.person; + +import tutorpro.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static tutorpro.commons.util.AppUtil.checkArgument; /** * Represents a Person's address in the address book. @@ -26,7 +28,7 @@ public class Address { */ public Address(String address) { requireNonNull(address); - checkArgument(isValidAddress(address), MESSAGE_CONSTRAINTS); + AppUtil.checkArgument(isValidAddress(address), MESSAGE_CONSTRAINTS); value = address; } diff --git a/src/main/java/seedu/address/model/person/Email.java b/src/main/java/tutorpro/model/person/Email.java similarity index 93% rename from src/main/java/seedu/address/model/person/Email.java rename to src/main/java/tutorpro/model/person/Email.java index c62e512bc29..867def6817f 100644 --- a/src/main/java/seedu/address/model/person/Email.java +++ b/src/main/java/tutorpro/model/person/Email.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package tutorpro.model.person; + +import tutorpro.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static tutorpro.commons.util.AppUtil.checkArgument; /** * Represents a Person's email in the address book. @@ -40,7 +42,7 @@ public class Email { */ public Email(String email) { requireNonNull(email); - checkArgument(isValidEmail(email), MESSAGE_CONSTRAINTS); + AppUtil.checkArgument(isValidEmail(email), MESSAGE_CONSTRAINTS); value = email; } diff --git a/src/main/java/seedu/address/model/person/Name.java b/src/main/java/tutorpro/model/person/Name.java similarity index 88% rename from src/main/java/seedu/address/model/person/Name.java rename to src/main/java/tutorpro/model/person/Name.java index 173f15b9b00..07d91c62927 100644 --- a/src/main/java/seedu/address/model/person/Name.java +++ b/src/main/java/tutorpro/model/person/Name.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package tutorpro.model.person; + +import tutorpro.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static tutorpro.commons.util.AppUtil.checkArgument; /** * Represents a Person's name in the address book. @@ -27,7 +29,7 @@ public class Name { */ public Name(String name) { requireNonNull(name); - checkArgument(isValidName(name), MESSAGE_CONSTRAINTS); + AppUtil.checkArgument(isValidName(name), MESSAGE_CONSTRAINTS); fullName = name; } diff --git a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java similarity index 89% rename from src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java rename to src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java index 62d19be2977..b1b2359b282 100644 --- a/src/main/java/seedu/address/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java @@ -1,10 +1,10 @@ -package seedu.address.model.person; +package tutorpro.model.person; import java.util.List; import java.util.function.Predicate; -import seedu.address.commons.util.StringUtil; -import seedu.address.commons.util.ToStringBuilder; +import tutorpro.commons.util.StringUtil; +import tutorpro.commons.util.ToStringBuilder; /** * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/tutorpro/model/person/Person.java similarity index 90% rename from src/main/java/seedu/address/model/person/Person.java rename to src/main/java/tutorpro/model/person/Person.java index abe8c46b535..740572fabc7 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/tutorpro/model/person/Person.java @@ -1,14 +1,15 @@ -package seedu.address.model.person; +package tutorpro.model.person; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.util.Collections; import java.util.HashSet; import java.util.Objects; import java.util.Set; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.tag.Tag; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.model.tag.Tag; +import tutorpro.commons.util.CollectionUtil; /** * Represents a Person in the address book. @@ -29,7 +30,7 @@ public class Person { * Every field must be present and not null. */ public Person(Name name, Phone phone, Email email, Address address, Set tags) { - requireAllNonNull(name, phone, email, address, tags); + CollectionUtil.requireAllNonNull(name, phone, email, address, tags); this.name = name; this.phone = phone; this.email = email; diff --git a/src/main/java/seedu/address/model/person/Phone.java b/src/main/java/tutorpro/model/person/Phone.java similarity index 86% rename from src/main/java/seedu/address/model/person/Phone.java rename to src/main/java/tutorpro/model/person/Phone.java index d733f63d739..b972cdd27f8 100644 --- a/src/main/java/seedu/address/model/person/Phone.java +++ b/src/main/java/tutorpro/model/person/Phone.java @@ -1,7 +1,9 @@ -package seedu.address.model.person; +package tutorpro.model.person; + +import tutorpro.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static tutorpro.commons.util.AppUtil.checkArgument; /** * Represents a Person's phone number in the address book. @@ -22,7 +24,7 @@ public class Phone { */ public Phone(String phone) { requireNonNull(phone); - checkArgument(isValidPhone(phone), MESSAGE_CONSTRAINTS); + AppUtil.checkArgument(isValidPhone(phone), MESSAGE_CONSTRAINTS); value = phone; } diff --git a/src/main/java/seedu/address/model/person/UniquePersonList.java b/src/main/java/tutorpro/model/person/UniquePersonList.java similarity index 91% rename from src/main/java/seedu/address/model/person/UniquePersonList.java rename to src/main/java/tutorpro/model/person/UniquePersonList.java index cc0a68d79f9..43fc753a9f0 100644 --- a/src/main/java/seedu/address/model/person/UniquePersonList.java +++ b/src/main/java/tutorpro/model/person/UniquePersonList.java @@ -1,15 +1,16 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; +import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.util.Iterator; import java.util.List; import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.model.person.exceptions.PersonNotFoundException; +import tutorpro.model.person.exceptions.DuplicatePersonException; +import tutorpro.model.person.exceptions.PersonNotFoundException; +import tutorpro.commons.util.CollectionUtil; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. @@ -54,7 +55,7 @@ public void add(Person toAdd) { * The person identity of {@code editedPerson} must not be the same as another existing person in the list. */ public void setPerson(Person target, Person editedPerson) { - requireAllNonNull(target, editedPerson); + CollectionUtil.requireAllNonNull(target, editedPerson); int index = internalList.indexOf(target); if (index == -1) { @@ -89,7 +90,7 @@ public void setPersons(UniquePersonList replacement) { * {@code persons} must not contain duplicate persons. */ public void setPersons(List persons) { - requireAllNonNull(persons); + CollectionUtil.requireAllNonNull(persons); if (!personsAreUnique(persons)) { throw new DuplicatePersonException(); } diff --git a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java b/src/main/java/tutorpro/model/person/exceptions/DuplicatePersonException.java similarity index 87% rename from src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java rename to src/main/java/tutorpro/model/person/exceptions/DuplicatePersonException.java index d7290f59442..bc03f20d02d 100644 --- a/src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java +++ b/src/main/java/tutorpro/model/person/exceptions/DuplicatePersonException.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.exceptions; +package tutorpro.model.person.exceptions; /** * Signals that the operation will result in duplicate Persons (Persons are considered duplicates if they have the same diff --git a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java b/src/main/java/tutorpro/model/person/exceptions/PersonNotFoundException.java similarity index 75% rename from src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java rename to src/main/java/tutorpro/model/person/exceptions/PersonNotFoundException.java index fa764426ca7..733d5ff0d86 100644 --- a/src/main/java/seedu/address/model/person/exceptions/PersonNotFoundException.java +++ b/src/main/java/tutorpro/model/person/exceptions/PersonNotFoundException.java @@ -1,4 +1,4 @@ -package seedu.address.model.person.exceptions; +package tutorpro.model.person.exceptions; /** * Signals that the operation is unable to find the specified person. diff --git a/src/main/java/seedu/address/model/tag/Tag.java b/src/main/java/tutorpro/model/tag/Tag.java similarity index 86% rename from src/main/java/seedu/address/model/tag/Tag.java rename to src/main/java/tutorpro/model/tag/Tag.java index f1a0d4e233b..a4a5c3a1e18 100644 --- a/src/main/java/seedu/address/model/tag/Tag.java +++ b/src/main/java/tutorpro/model/tag/Tag.java @@ -1,7 +1,9 @@ -package seedu.address.model.tag; +package tutorpro.model.tag; + +import tutorpro.commons.util.AppUtil; import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.AppUtil.checkArgument; +import static tutorpro.commons.util.AppUtil.checkArgument; /** * Represents a Tag in the address book. @@ -21,7 +23,7 @@ public class Tag { */ public Tag(String tagName) { requireNonNull(tagName); - checkArgument(isValidTagName(tagName), MESSAGE_CONSTRAINTS); + AppUtil.checkArgument(isValidTagName(tagName), MESSAGE_CONSTRAINTS); this.tagName = tagName; } diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java similarity index 85% rename from src/main/java/seedu/address/model/util/SampleDataUtil.java rename to src/main/java/tutorpro/model/util/SampleDataUtil.java index 1806da4facf..a6cc9dd503d 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -1,17 +1,17 @@ -package seedu.address.model.util; +package tutorpro.model.util; import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.model.AddressBook; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; /** * Contains utility methods for populating {@code AddressBook} with sample data. diff --git a/src/main/java/seedu/address/storage/AddressBookStorage.java b/src/main/java/tutorpro/storage/AddressBookStorage.java similarity index 84% rename from src/main/java/seedu/address/storage/AddressBookStorage.java rename to src/main/java/tutorpro/storage/AddressBookStorage.java index f2e015105ae..75cbb7f6bd8 100644 --- a/src/main/java/seedu/address/storage/AddressBookStorage.java +++ b/src/main/java/tutorpro/storage/AddressBookStorage.java @@ -1,14 +1,15 @@ -package seedu.address.storage; +package tutorpro.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.ReadOnlyAddressBook; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.AddressBook; /** - * Represents a storage for {@link seedu.address.model.AddressBook}. + * Represents a storage for {@link AddressBook}. */ public interface AddressBookStorage { diff --git a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java b/src/main/java/tutorpro/storage/JsonAdaptedPerson.java similarity index 91% rename from src/main/java/seedu/address/storage/JsonAdaptedPerson.java rename to src/main/java/tutorpro/storage/JsonAdaptedPerson.java index bd1ca0f56c8..52ac7f34c5d 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedPerson.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedPerson.java @@ -1,4 +1,4 @@ -package seedu.address.storage; +package tutorpro.storage; import java.util.ArrayList; import java.util.HashSet; @@ -9,13 +9,13 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; /** * Jackson-friendly version of {@link Person}. diff --git a/src/main/java/seedu/address/storage/JsonAdaptedTag.java b/src/main/java/tutorpro/storage/JsonAdaptedTag.java similarity index 89% rename from src/main/java/seedu/address/storage/JsonAdaptedTag.java rename to src/main/java/tutorpro/storage/JsonAdaptedTag.java index 0df22bdb754..90bb4c11a26 100644 --- a/src/main/java/seedu/address/storage/JsonAdaptedTag.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedTag.java @@ -1,10 +1,10 @@ -package seedu.address.storage; +package tutorpro.storage; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.tag.Tag; +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.tag.Tag; /** * Jackson-friendly version of {@link Tag}. diff --git a/src/main/java/seedu/address/storage/JsonAddressBookStorage.java b/src/main/java/tutorpro/storage/JsonAddressBookStorage.java similarity index 86% rename from src/main/java/seedu/address/storage/JsonAddressBookStorage.java rename to src/main/java/tutorpro/storage/JsonAddressBookStorage.java index 41e06f264e1..46b217c6f1e 100644 --- a/src/main/java/seedu/address/storage/JsonAddressBookStorage.java +++ b/src/main/java/tutorpro/storage/JsonAddressBookStorage.java @@ -1,4 +1,4 @@ -package seedu.address.storage; +package tutorpro.storage; import static java.util.Objects.requireNonNull; @@ -7,12 +7,12 @@ import java.util.Optional; import java.util.logging.Logger; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.commons.util.FileUtil; -import seedu.address.commons.util.JsonUtil; -import seedu.address.model.ReadOnlyAddressBook; +import tutorpro.commons.core.LogsCenter; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.commons.util.FileUtil; +import tutorpro.commons.util.JsonUtil; +import tutorpro.model.ReadOnlyAddressBook; /** * A class to access AddressBook data stored as a json file on the hard disk. diff --git a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java b/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java similarity index 89% rename from src/main/java/seedu/address/storage/JsonSerializableAddressBook.java rename to src/main/java/tutorpro/storage/JsonSerializableAddressBook.java index 5efd834091d..8d37830167b 100644 --- a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java +++ b/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java @@ -1,4 +1,4 @@ -package seedu.address.storage; +package tutorpro.storage; import java.util.ArrayList; import java.util.List; @@ -8,10 +8,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.person.Person; +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.AddressBook; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.person.Person; /** * An Immutable AddressBook that is serializable to JSON format. diff --git a/src/main/java/seedu/address/storage/JsonUserPrefsStorage.java b/src/main/java/tutorpro/storage/JsonUserPrefsStorage.java similarity index 83% rename from src/main/java/seedu/address/storage/JsonUserPrefsStorage.java rename to src/main/java/tutorpro/storage/JsonUserPrefsStorage.java index 48a9754807d..e54292d302c 100644 --- a/src/main/java/seedu/address/storage/JsonUserPrefsStorage.java +++ b/src/main/java/tutorpro/storage/JsonUserPrefsStorage.java @@ -1,13 +1,13 @@ -package seedu.address.storage; +package tutorpro.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.commons.util.JsonUtil; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.commons.util.JsonUtil; +import tutorpro.model.ReadOnlyUserPrefs; +import tutorpro.model.UserPrefs; /** * A class to access UserPrefs stored in the hard disk as a json file diff --git a/src/main/java/seedu/address/storage/Storage.java b/src/main/java/tutorpro/storage/Storage.java similarity index 73% rename from src/main/java/seedu/address/storage/Storage.java rename to src/main/java/tutorpro/storage/Storage.java index 9fba0c7a1d6..6382611dc6b 100644 --- a/src/main/java/seedu/address/storage/Storage.java +++ b/src/main/java/tutorpro/storage/Storage.java @@ -1,13 +1,13 @@ -package seedu.address.storage; +package tutorpro.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.ReadOnlyUserPrefs; +import tutorpro.model.UserPrefs; /** * API of the Storage component diff --git a/src/main/java/seedu/address/storage/StorageManager.java b/src/main/java/tutorpro/storage/StorageManager.java similarity index 89% rename from src/main/java/seedu/address/storage/StorageManager.java rename to src/main/java/tutorpro/storage/StorageManager.java index 8b84a9024d5..29f575114e2 100644 --- a/src/main/java/seedu/address/storage/StorageManager.java +++ b/src/main/java/tutorpro/storage/StorageManager.java @@ -1,15 +1,15 @@ -package seedu.address.storage; +package tutorpro.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; import java.util.logging.Logger; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import tutorpro.commons.core.LogsCenter; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.ReadOnlyUserPrefs; +import tutorpro.model.UserPrefs; /** * Manages storage of AddressBook data in local storage. diff --git a/src/main/java/seedu/address/storage/UserPrefsStorage.java b/src/main/java/tutorpro/storage/UserPrefsStorage.java similarity index 69% rename from src/main/java/seedu/address/storage/UserPrefsStorage.java rename to src/main/java/tutorpro/storage/UserPrefsStorage.java index e94ca422ea8..4e805e39c4b 100644 --- a/src/main/java/seedu/address/storage/UserPrefsStorage.java +++ b/src/main/java/tutorpro/storage/UserPrefsStorage.java @@ -1,15 +1,15 @@ -package seedu.address.storage; +package tutorpro.storage; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.UserPrefs; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.model.ReadOnlyUserPrefs; +import tutorpro.model.UserPrefs; /** - * Represents a storage for {@link seedu.address.model.UserPrefs}. + * Represents a storage for {@link UserPrefs}. */ public interface UserPrefsStorage { @@ -27,7 +27,7 @@ public interface UserPrefsStorage { Optional readUserPrefs() throws DataLoadingException; /** - * Saves the given {@link seedu.address.model.ReadOnlyUserPrefs} to the storage. + * Saves the given {@link ReadOnlyUserPrefs} to the storage. * @param userPrefs cannot be null. * @throws IOException if there was any problem writing to the file. */ diff --git a/src/main/java/seedu/address/ui/CommandBox.java b/src/main/java/tutorpro/ui/CommandBox.java similarity index 89% rename from src/main/java/seedu/address/ui/CommandBox.java rename to src/main/java/tutorpro/ui/CommandBox.java index 9e75478664b..47de8d1a86a 100644 --- a/src/main/java/seedu/address/ui/CommandBox.java +++ b/src/main/java/tutorpro/ui/CommandBox.java @@ -1,12 +1,13 @@ -package seedu.address.ui; +package tutorpro.ui; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.TextField; import javafx.scene.layout.Region; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; +import tutorpro.logic.commands.CommandResult; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.logic.Logic; /** * The UI component that is responsible for receiving user command inputs. @@ -77,7 +78,7 @@ public interface CommandExecutor { /** * Executes the command and returns the result. * - * @see seedu.address.logic.Logic#execute(String) + * @see Logic#execute(String) */ CommandResult execute(String commandText) throws CommandException, ParseException; } diff --git a/src/main/java/seedu/address/ui/HelpWindow.java b/src/main/java/tutorpro/ui/HelpWindow.java similarity index 97% rename from src/main/java/seedu/address/ui/HelpWindow.java rename to src/main/java/tutorpro/ui/HelpWindow.java index 3f16b2fcf26..60c11c6cf40 100644 --- a/src/main/java/seedu/address/ui/HelpWindow.java +++ b/src/main/java/tutorpro/ui/HelpWindow.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.util.logging.Logger; @@ -8,7 +8,7 @@ import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; import javafx.stage.Stage; -import seedu.address.commons.core.LogsCenter; +import tutorpro.commons.core.LogsCenter; /** * Controller for a help page diff --git a/src/main/java/seedu/address/ui/MainWindow.java b/src/main/java/tutorpro/ui/MainWindow.java similarity index 93% rename from src/main/java/seedu/address/ui/MainWindow.java rename to src/main/java/tutorpro/ui/MainWindow.java index 79e74ef37c0..84ea0d302e3 100644 --- a/src/main/java/seedu/address/ui/MainWindow.java +++ b/src/main/java/tutorpro/ui/MainWindow.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.util.logging.Logger; @@ -10,12 +10,12 @@ import javafx.scene.input.KeyEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.core.LogsCenter; -import seedu.address.logic.Logic; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; +import tutorpro.commons.core.GuiSettings; +import tutorpro.commons.core.LogsCenter; +import tutorpro.logic.Logic; +import tutorpro.logic.commands.CommandResult; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.logic.parser.exceptions.ParseException; /** * The Main Window. Provides the basic application layout containing @@ -170,7 +170,7 @@ public PersonListPanel getPersonListPanel() { /** * Executes the command and returns the result. * - * @see seedu.address.logic.Logic#execute(String) + * @see Logic#execute(String) */ private CommandResult executeCommand(String commandText) throws CommandException, ParseException { try { diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/tutorpro/ui/PersonCard.java similarity index 96% rename from src/main/java/seedu/address/ui/PersonCard.java rename to src/main/java/tutorpro/ui/PersonCard.java index 094c42cda82..611c3d3cb08 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/tutorpro/ui/PersonCard.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.util.Comparator; @@ -7,7 +7,7 @@ import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Region; -import seedu.address.model.person.Person; +import tutorpro.model.person.Person; /** * An UI component that displays information of a {@code Person}. diff --git a/src/main/java/seedu/address/ui/PersonListPanel.java b/src/main/java/tutorpro/ui/PersonListPanel.java similarity index 92% rename from src/main/java/seedu/address/ui/PersonListPanel.java rename to src/main/java/tutorpro/ui/PersonListPanel.java index f4c501a897b..20bd78d50c8 100644 --- a/src/main/java/seedu/address/ui/PersonListPanel.java +++ b/src/main/java/tutorpro/ui/PersonListPanel.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.util.logging.Logger; @@ -7,8 +7,8 @@ import javafx.scene.control.ListCell; import javafx.scene.control.ListView; import javafx.scene.layout.Region; -import seedu.address.commons.core.LogsCenter; -import seedu.address.model.person.Person; +import tutorpro.commons.core.LogsCenter; +import tutorpro.model.person.Person; /** * Panel containing the list of persons. diff --git a/src/main/java/seedu/address/ui/ResultDisplay.java b/src/main/java/tutorpro/ui/ResultDisplay.java similarity index 95% rename from src/main/java/seedu/address/ui/ResultDisplay.java rename to src/main/java/tutorpro/ui/ResultDisplay.java index 7d98e84eedf..030da346069 100644 --- a/src/main/java/seedu/address/ui/ResultDisplay.java +++ b/src/main/java/tutorpro/ui/ResultDisplay.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import static java.util.Objects.requireNonNull; diff --git a/src/main/java/seedu/address/ui/StatusBarFooter.java b/src/main/java/tutorpro/ui/StatusBarFooter.java similarity index 96% rename from src/main/java/seedu/address/ui/StatusBarFooter.java rename to src/main/java/tutorpro/ui/StatusBarFooter.java index b577f829423..ff50fbeb097 100644 --- a/src/main/java/seedu/address/ui/StatusBarFooter.java +++ b/src/main/java/tutorpro/ui/StatusBarFooter.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.nio.file.Path; import java.nio.file.Paths; diff --git a/src/main/java/seedu/address/ui/Ui.java b/src/main/java/tutorpro/ui/Ui.java similarity index 86% rename from src/main/java/seedu/address/ui/Ui.java rename to src/main/java/tutorpro/ui/Ui.java index 17aa0b494fe..2f18e444dc6 100644 --- a/src/main/java/seedu/address/ui/Ui.java +++ b/src/main/java/tutorpro/ui/Ui.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import javafx.stage.Stage; diff --git a/src/main/java/seedu/address/ui/UiManager.java b/src/main/java/tutorpro/ui/UiManager.java similarity index 94% rename from src/main/java/seedu/address/ui/UiManager.java rename to src/main/java/tutorpro/ui/UiManager.java index fdf024138bc..ef5a6fd0c55 100644 --- a/src/main/java/seedu/address/ui/UiManager.java +++ b/src/main/java/tutorpro/ui/UiManager.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.util.logging.Logger; @@ -7,10 +7,10 @@ import javafx.scene.control.Alert.AlertType; import javafx.scene.image.Image; import javafx.stage.Stage; -import seedu.address.MainApp; -import seedu.address.commons.core.LogsCenter; -import seedu.address.commons.util.StringUtil; -import seedu.address.logic.Logic; +import tutorpro.MainApp; +import tutorpro.commons.core.LogsCenter; +import tutorpro.commons.util.StringUtil; +import tutorpro.logic.Logic; /** * The manager of the UI component. diff --git a/src/main/java/seedu/address/ui/UiPart.java b/src/main/java/tutorpro/ui/UiPart.java similarity index 97% rename from src/main/java/seedu/address/ui/UiPart.java rename to src/main/java/tutorpro/ui/UiPart.java index fc820e01a9c..025b5b02e3c 100644 --- a/src/main/java/seedu/address/ui/UiPart.java +++ b/src/main/java/tutorpro/ui/UiPart.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import static java.util.Objects.requireNonNull; @@ -6,7 +6,7 @@ import java.net.URL; import javafx.fxml.FXMLLoader; -import seedu.address.MainApp; +import tutorpro.MainApp; /** * Represents a distinct part of the UI. e.g. Windows, dialogs, panels, status bars, etc. diff --git a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java b/src/test/java/seedu/address/logic/commands/ClearCommandTest.java deleted file mode 100644 index 80d9110c03a..00000000000 --- a/src/test/java/seedu/address/logic/commands/ClearCommandTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package seedu.address.logic.commands; - -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; - -import org.junit.jupiter.api.Test; - -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; - -public class ClearCommandTest { - - @Test - public void execute_emptyAddressBook_success() { - Model model = new ModelManager(); - Model expectedModel = new ModelManager(); - - assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); - } - - @Test - public void execute_nonEmptyAddressBook_success() { - Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - expectedModel.setAddressBook(new AddressBook()); - - assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); - } - -} diff --git a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java b/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java deleted file mode 100644 index b17c1f3d5c2..00000000000 --- a/src/test/java/seedu/address/logic/commands/EditPersonDescriptorTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package seedu.address.logic.commands; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; - -import org.junit.jupiter.api.Test; - -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.testutil.EditPersonDescriptorBuilder; - -public class EditPersonDescriptorTest { - - @Test - public void equals() { - // same values -> returns true - EditPersonDescriptor descriptorWithSameValues = new EditPersonDescriptor(DESC_AMY); - assertTrue(DESC_AMY.equals(descriptorWithSameValues)); - - // same object -> returns true - assertTrue(DESC_AMY.equals(DESC_AMY)); - - // null -> returns false - assertFalse(DESC_AMY.equals(null)); - - // different types -> returns false - assertFalse(DESC_AMY.equals(5)); - - // different values -> returns false - assertFalse(DESC_AMY.equals(DESC_BOB)); - - // different name -> returns false - EditPersonDescriptor editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withName(VALID_NAME_BOB).build(); - assertFalse(DESC_AMY.equals(editedAmy)); - - // different phone -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withPhone(VALID_PHONE_BOB).build(); - assertFalse(DESC_AMY.equals(editedAmy)); - - // different email -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withEmail(VALID_EMAIL_BOB).build(); - assertFalse(DESC_AMY.equals(editedAmy)); - - // different address -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withAddress(VALID_ADDRESS_BOB).build(); - assertFalse(DESC_AMY.equals(editedAmy)); - - // different tags -> returns false - editedAmy = new EditPersonDescriptorBuilder(DESC_AMY).withTags(VALID_TAG_HUSBAND).build(); - assertFalse(DESC_AMY.equals(editedAmy)); - } - - @Test - public void toStringMethod() { - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); - String expected = EditPersonDescriptor.class.getCanonicalName() + "{name=" - + editPersonDescriptor.getName().orElse(null) + ", phone=" - + editPersonDescriptor.getPhone().orElse(null) + ", email=" - + editPersonDescriptor.getEmail().orElse(null) + ", address=" - + editPersonDescriptor.getAddress().orElse(null) + ", tags=" - + editPersonDescriptor.getTags().orElse(null) + "}"; - assertEquals(expected, editPersonDescriptor.toString()); - } -} diff --git a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java b/src/test/java/seedu/address/logic/commands/ExitCommandTest.java deleted file mode 100644 index 9533c473875..00000000000 --- a/src/test/java/seedu/address/logic/commands/ExitCommandTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package seedu.address.logic.commands; - -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT; - -import org.junit.jupiter.api.Test; - -import seedu.address.model.Model; -import seedu.address.model.ModelManager; - -public class ExitCommandTest { - private Model model = new ModelManager(); - private Model expectedModel = new ModelManager(); - - @Test - public void execute_exit_success() { - CommandResult expectedCommandResult = new CommandResult(MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); - assertCommandSuccess(new ExitCommand(), model, expectedCommandResult, expectedModel); - } -} diff --git a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java b/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java deleted file mode 100644 index 5bc11d3cdaa..00000000000 --- a/src/test/java/seedu/address/logic/parser/AddCommandParserTest.java +++ /dev/null @@ -1,196 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_ADDRESS_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_NAME_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_PHONE_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_TAG_DESC; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_NON_EMPTY; -import static seedu.address.logic.commands.CommandTestUtil.PREAMBLE_WHITESPACE; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_HUSBAND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalPersons.AMY; -import static seedu.address.testutil.TypicalPersons.BOB; - -import org.junit.jupiter.api.Test; - -import seedu.address.logic.Messages; -import seedu.address.logic.commands.AddCommand; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; -import seedu.address.testutil.PersonBuilder; - -public class AddCommandParserTest { - private AddCommandParser parser = new AddCommandParser(); - - @Test - public void parse_allFieldsPresent_success() { - Person expectedPerson = new PersonBuilder(BOB).withTags(VALID_TAG_FRIEND).build(); - - // whitespace only preamble - assertParseSuccess(parser, PREAMBLE_WHITESPACE + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND, new AddCommand(expectedPerson)); - - - // multiple tags - all accepted - Person expectedPersonMultipleTags = new PersonBuilder(BOB).withTags(VALID_TAG_FRIEND, VALID_TAG_HUSBAND) - .build(); - assertParseSuccess(parser, - NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, - new AddCommand(expectedPersonMultipleTags)); - } - - @Test - public void parse_repeatedNonTagValue_failure() { - String validExpectedPersonString = NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_FRIEND; - - // multiple names - assertParseFailure(parser, NAME_DESC_AMY + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME)); - - // multiple phones - assertParseFailure(parser, PHONE_DESC_AMY + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); - - // multiple emails - assertParseFailure(parser, EMAIL_DESC_AMY + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_EMAIL)); - - // multiple addresses - assertParseFailure(parser, ADDRESS_DESC_AMY + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); - - // multiple fields repeated - assertParseFailure(parser, - validExpectedPersonString + PHONE_DESC_AMY + EMAIL_DESC_AMY + NAME_DESC_AMY + ADDRESS_DESC_AMY - + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME, PREFIX_ADDRESS, PREFIX_EMAIL, PREFIX_PHONE)); - - // invalid value followed by valid value - - // invalid name - assertParseFailure(parser, INVALID_NAME_DESC + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME)); - - // invalid email - assertParseFailure(parser, INVALID_EMAIL_DESC + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_EMAIL)); - - // invalid phone - assertParseFailure(parser, INVALID_PHONE_DESC + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); - - // invalid address - assertParseFailure(parser, INVALID_ADDRESS_DESC + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); - - // valid value followed by invalid value - - // invalid name - assertParseFailure(parser, validExpectedPersonString + INVALID_NAME_DESC, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_NAME)); - - // invalid email - assertParseFailure(parser, validExpectedPersonString + INVALID_EMAIL_DESC, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_EMAIL)); - - // invalid phone - assertParseFailure(parser, validExpectedPersonString + INVALID_PHONE_DESC, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); - - // invalid address - assertParseFailure(parser, validExpectedPersonString + INVALID_ADDRESS_DESC, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_ADDRESS)); - } - - @Test - public void parse_optionalFieldsMissing_success() { - // zero tags - Person expectedPerson = new PersonBuilder(AMY).withTags().build(); - assertParseSuccess(parser, NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY, - new AddCommand(expectedPerson)); - } - - @Test - public void parse_compulsoryFieldMissing_failure() { - String expectedMessage = String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE); - - // missing name prefix - assertParseFailure(parser, VALID_NAME_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, - expectedMessage); - - // missing phone prefix - assertParseFailure(parser, NAME_DESC_BOB + VALID_PHONE_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB, - expectedMessage); - - // missing email prefix - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + VALID_EMAIL_BOB + ADDRESS_DESC_BOB, - expectedMessage); - - // missing address prefix - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + VALID_ADDRESS_BOB, - expectedMessage); - - // all prefixes missing - assertParseFailure(parser, VALID_NAME_BOB + VALID_PHONE_BOB + VALID_EMAIL_BOB + VALID_ADDRESS_BOB, - expectedMessage); - } - - @Test - public void parse_invalidValue_failure() { - // invalid name - assertParseFailure(parser, INVALID_NAME_DESC + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Name.MESSAGE_CONSTRAINTS); - - // invalid phone - assertParseFailure(parser, NAME_DESC_BOB + INVALID_PHONE_DESC + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Phone.MESSAGE_CONSTRAINTS); - - // invalid email - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + INVALID_EMAIL_DESC + ADDRESS_DESC_BOB - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Email.MESSAGE_CONSTRAINTS); - - // invalid address - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + INVALID_ADDRESS_DESC - + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, Address.MESSAGE_CONSTRAINTS); - - // invalid tag - assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB - + INVALID_TAG_DESC + VALID_TAG_FRIEND, Tag.MESSAGE_CONSTRAINTS); - - // two invalid values, only first invalid value reported - assertParseFailure(parser, INVALID_NAME_DESC + PHONE_DESC_BOB + EMAIL_DESC_BOB + INVALID_ADDRESS_DESC, - Name.MESSAGE_CONSTRAINTS); - - // non-empty preamble - assertParseFailure(parser, PREAMBLE_NON_EMPTY + NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB - + ADDRESS_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND, - String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); - } -} diff --git a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java b/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java deleted file mode 100644 index cc7175172d4..00000000000 --- a/src/test/java/seedu/address/logic/parser/EditCommandParserTest.java +++ /dev/null @@ -1,208 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_ADDRESS_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_EMAIL_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_NAME_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_PHONE_DESC; -import static seedu.address.logic.commands.CommandTestUtil.INVALID_TAG_DESC; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.TAG_DESC_HUSBAND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_THIRD_PERSON; - -import org.junit.jupiter.api.Test; - -import seedu.address.commons.core.index.Index; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; -import seedu.address.testutil.EditPersonDescriptorBuilder; - -public class EditCommandParserTest { - - private static final String TAG_EMPTY = " " + PREFIX_TAG; - - private static final String MESSAGE_INVALID_FORMAT = - String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE); - - private EditCommandParser parser = new EditCommandParser(); - - @Test - public void parse_missingParts_failure() { - // no index specified - assertParseFailure(parser, VALID_NAME_AMY, MESSAGE_INVALID_FORMAT); - - // no field specified - assertParseFailure(parser, "1", EditCommand.MESSAGE_NOT_EDITED); - - // no index and no field specified - assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); - } - - @Test - public void parse_invalidPreamble_failure() { - // negative index - assertParseFailure(parser, "-5" + NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); - - // zero index - assertParseFailure(parser, "0" + NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); - - // invalid arguments being parsed as preamble - assertParseFailure(parser, "1 some random string", MESSAGE_INVALID_FORMAT); - - // invalid prefix being parsed as preamble - assertParseFailure(parser, "1 i/ string", MESSAGE_INVALID_FORMAT); - } - - @Test - public void parse_invalidValue_failure() { - assertParseFailure(parser, "1" + INVALID_NAME_DESC, Name.MESSAGE_CONSTRAINTS); // invalid name - assertParseFailure(parser, "1" + INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); // invalid phone - assertParseFailure(parser, "1" + INVALID_EMAIL_DESC, Email.MESSAGE_CONSTRAINTS); // invalid email - assertParseFailure(parser, "1" + INVALID_ADDRESS_DESC, Address.MESSAGE_CONSTRAINTS); // invalid address - assertParseFailure(parser, "1" + INVALID_TAG_DESC, Tag.MESSAGE_CONSTRAINTS); // invalid tag - - // invalid phone followed by valid email - assertParseFailure(parser, "1" + INVALID_PHONE_DESC + EMAIL_DESC_AMY, Phone.MESSAGE_CONSTRAINTS); - - // while parsing {@code PREFIX_TAG} alone will reset the tags of the {@code Person} being edited, - // parsing it together with a valid tag results in error - assertParseFailure(parser, "1" + TAG_DESC_FRIEND + TAG_DESC_HUSBAND + TAG_EMPTY, Tag.MESSAGE_CONSTRAINTS); - assertParseFailure(parser, "1" + TAG_DESC_FRIEND + TAG_EMPTY + TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); - assertParseFailure(parser, "1" + TAG_EMPTY + TAG_DESC_FRIEND + TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); - - // multiple invalid values, but only the first invalid value is captured - assertParseFailure(parser, "1" + INVALID_NAME_DESC + INVALID_EMAIL_DESC + VALID_ADDRESS_AMY + VALID_PHONE_AMY, - Name.MESSAGE_CONSTRAINTS); - } - - @Test - public void parse_allFieldsSpecified_success() { - Index targetIndex = INDEX_SECOND_PERSON; - String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + TAG_DESC_HUSBAND - + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + NAME_DESC_AMY + TAG_DESC_FRIEND; - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) - .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) - .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); - - assertParseSuccess(parser, userInput, expectedCommand); - } - - @Test - public void parse_someFieldsSpecified_success() { - Index targetIndex = INDEX_FIRST_PERSON; - String userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + EMAIL_DESC_AMY; - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_BOB) - .withEmail(VALID_EMAIL_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); - - assertParseSuccess(parser, userInput, expectedCommand); - } - - @Test - public void parse_oneFieldSpecified_success() { - // name - Index targetIndex = INDEX_THIRD_PERSON; - String userInput = targetIndex.getOneBased() + NAME_DESC_AMY; - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY).build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); - assertParseSuccess(parser, userInput, expectedCommand); - - // phone - userInput = targetIndex.getOneBased() + PHONE_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withPhone(VALID_PHONE_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); - assertParseSuccess(parser, userInput, expectedCommand); - - // email - userInput = targetIndex.getOneBased() + EMAIL_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withEmail(VALID_EMAIL_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); - assertParseSuccess(parser, userInput, expectedCommand); - - // address - userInput = targetIndex.getOneBased() + ADDRESS_DESC_AMY; - descriptor = new EditPersonDescriptorBuilder().withAddress(VALID_ADDRESS_AMY).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); - assertParseSuccess(parser, userInput, expectedCommand); - - // tags - userInput = targetIndex.getOneBased() + TAG_DESC_FRIEND; - descriptor = new EditPersonDescriptorBuilder().withTags(VALID_TAG_FRIEND).build(); - expectedCommand = new EditCommand(targetIndex, descriptor); - assertParseSuccess(parser, userInput, expectedCommand); - } - - @Test - public void parse_multipleRepeatedFields_failure() { - // More extensive testing of duplicate parameter detections is done in - // AddCommandParserTest#parse_repeatedNonTagValue_failure() - - // valid followed by invalid - Index targetIndex = INDEX_FIRST_PERSON; - String userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + PHONE_DESC_BOB; - - assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); - - // invalid followed by valid - userInput = targetIndex.getOneBased() + PHONE_DESC_BOB + INVALID_PHONE_DESC; - - assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE)); - - // mulltiple valid fields repeated - userInput = targetIndex.getOneBased() + PHONE_DESC_AMY + ADDRESS_DESC_AMY + EMAIL_DESC_AMY - + TAG_DESC_FRIEND + PHONE_DESC_AMY + ADDRESS_DESC_AMY + EMAIL_DESC_AMY + TAG_DESC_FRIEND - + PHONE_DESC_BOB + ADDRESS_DESC_BOB + EMAIL_DESC_BOB + TAG_DESC_HUSBAND; - - assertParseFailure(parser, userInput, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS)); - - // multiple invalid values - userInput = targetIndex.getOneBased() + INVALID_PHONE_DESC + INVALID_ADDRESS_DESC + INVALID_EMAIL_DESC - + INVALID_PHONE_DESC + INVALID_ADDRESS_DESC + INVALID_EMAIL_DESC; - - assertParseFailure(parser, userInput, - Messages.getErrorMessageForDuplicatePrefixes(PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS)); - } - - @Test - public void parse_resetTags_success() { - Index targetIndex = INDEX_THIRD_PERSON; - String userInput = targetIndex.getOneBased() + TAG_EMPTY; - - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withTags().build(); - EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); - - assertParseSuccess(parser, userInput, expectedCommand); - } -} diff --git a/src/test/java/seedu/address/model/person/PersonTest.java b/src/test/java/seedu/address/model/person/PersonTest.java deleted file mode 100644 index 31a10d156c9..00000000000 --- a/src/test/java/seedu/address/model/person/PersonTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package seedu.address.model.person; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BOB; - -import org.junit.jupiter.api.Test; - -import seedu.address.testutil.PersonBuilder; - -public class PersonTest { - - @Test - public void asObservableList_modifyList_throwsUnsupportedOperationException() { - Person person = new PersonBuilder().build(); - assertThrows(UnsupportedOperationException.class, () -> person.getTags().remove(0)); - } - - @Test - public void isSamePerson() { - // same object -> returns true - assertTrue(ALICE.isSamePerson(ALICE)); - - // null -> returns false - assertFalse(ALICE.isSamePerson(null)); - - // same name, all other attributes different -> returns true - Person editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) - .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); - assertTrue(ALICE.isSamePerson(editedAlice)); - - // different name, all other attributes same -> returns false - editedAlice = new PersonBuilder(ALICE).withName(VALID_NAME_BOB).build(); - assertFalse(ALICE.isSamePerson(editedAlice)); - - // name differs in case, all other attributes same -> returns false - Person editedBob = new PersonBuilder(BOB).withName(VALID_NAME_BOB.toLowerCase()).build(); - assertFalse(BOB.isSamePerson(editedBob)); - - // name has trailing spaces, all other attributes same -> returns false - String nameWithTrailingSpaces = VALID_NAME_BOB + " "; - editedBob = new PersonBuilder(BOB).withName(nameWithTrailingSpaces).build(); - assertFalse(BOB.isSamePerson(editedBob)); - } - - @Test - public void equals() { - // same values -> returns true - Person aliceCopy = new PersonBuilder(ALICE).build(); - assertTrue(ALICE.equals(aliceCopy)); - - // same object -> returns true - assertTrue(ALICE.equals(ALICE)); - - // null -> returns false - assertFalse(ALICE.equals(null)); - - // different type -> returns false - assertFalse(ALICE.equals(5)); - - // different person -> returns false - assertFalse(ALICE.equals(BOB)); - - // different name -> returns false - Person editedAlice = new PersonBuilder(ALICE).withName(VALID_NAME_BOB).build(); - assertFalse(ALICE.equals(editedAlice)); - - // different phone -> returns false - editedAlice = new PersonBuilder(ALICE).withPhone(VALID_PHONE_BOB).build(); - assertFalse(ALICE.equals(editedAlice)); - - // different email -> returns false - editedAlice = new PersonBuilder(ALICE).withEmail(VALID_EMAIL_BOB).build(); - assertFalse(ALICE.equals(editedAlice)); - - // different address -> returns false - editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).build(); - assertFalse(ALICE.equals(editedAlice)); - - // different tags -> returns false - editedAlice = new PersonBuilder(ALICE).withTags(VALID_TAG_HUSBAND).build(); - assertFalse(ALICE.equals(editedAlice)); - } - - @Test - public void toStringMethod() { - String expected = Person.class.getCanonicalName() + "{name=" + ALICE.getName() + ", phone=" + ALICE.getPhone() - + ", email=" + ALICE.getEmail() + ", address=" + ALICE.getAddress() + ", tags=" + ALICE.getTags() + "}"; - assertEquals(expected, ALICE.toString()); - } -} diff --git a/src/test/java/seedu/address/model/tag/TagTest.java b/src/test/java/seedu/address/model/tag/TagTest.java deleted file mode 100644 index 64d07d79ee2..00000000000 --- a/src/test/java/seedu/address/model/tag/TagTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package seedu.address.model.tag; - -import static seedu.address.testutil.Assert.assertThrows; - -import org.junit.jupiter.api.Test; - -public class TagTest { - - @Test - public void constructor_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new Tag(null)); - } - - @Test - public void constructor_invalidTagName_throwsIllegalArgumentException() { - String invalidTagName = ""; - assertThrows(IllegalArgumentException.class, () -> new Tag(invalidTagName)); - } - - @Test - public void isValidTagName() { - // null tag name - assertThrows(NullPointerException.class, () -> Tag.isValidTagName(null)); - } - -} diff --git a/src/test/java/seedu/address/testutil/PersonUtil.java b/src/test/java/seedu/address/testutil/PersonUtil.java deleted file mode 100644 index 90849945183..00000000000 --- a/src/test/java/seedu/address/testutil/PersonUtil.java +++ /dev/null @@ -1,62 +0,0 @@ -package seedu.address.testutil; - -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; - -import java.util.Set; - -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Person; -import seedu.address.model.tag.Tag; - -/** - * A utility class for Person. - */ -public class PersonUtil { - - /** - * Returns an add command string for adding the {@code person}. - */ - public static String getAddCommand(Person person) { - return AddCommand.COMMAND_WORD + " " + getPersonDetails(person); - } - - /** - * Returns the part of command string for the given {@code person}'s details. - */ - public static String getPersonDetails(Person person) { - StringBuilder sb = new StringBuilder(); - sb.append(PREFIX_NAME + person.getName().fullName + " "); - sb.append(PREFIX_PHONE + person.getPhone().value + " "); - sb.append(PREFIX_EMAIL + person.getEmail().value + " "); - sb.append(PREFIX_ADDRESS + person.getAddress().value + " "); - person.getTags().stream().forEach( - s -> sb.append(PREFIX_TAG + s.tagName + " ") - ); - return sb.toString(); - } - - /** - * Returns the part of command string for the given {@code EditPersonDescriptor}'s details. - */ - public static String getEditPersonDescriptorDetails(EditPersonDescriptor descriptor) { - StringBuilder sb = new StringBuilder(); - descriptor.getName().ifPresent(name -> sb.append(PREFIX_NAME).append(name.fullName).append(" ")); - descriptor.getPhone().ifPresent(phone -> sb.append(PREFIX_PHONE).append(phone.value).append(" ")); - descriptor.getEmail().ifPresent(email -> sb.append(PREFIX_EMAIL).append(email.value).append(" ")); - descriptor.getAddress().ifPresent(address -> sb.append(PREFIX_ADDRESS).append(address.value).append(" ")); - if (descriptor.getTags().isPresent()) { - Set tags = descriptor.getTags().get(); - if (tags.isEmpty()) { - sb.append(PREFIX_TAG); - } else { - tags.forEach(s -> sb.append(PREFIX_TAG).append(s.tagName).append(" ")); - } - } - return sb.toString(); - } -} diff --git a/src/test/java/seedu/address/AppParametersTest.java b/src/test/java/tutorpro/AppParametersTest.java similarity index 99% rename from src/test/java/seedu/address/AppParametersTest.java rename to src/test/java/tutorpro/AppParametersTest.java index 133cc008bce..b5e704058f4 100644 --- a/src/test/java/seedu/address/AppParametersTest.java +++ b/src/test/java/tutorpro/AppParametersTest.java @@ -1,4 +1,4 @@ -package seedu.address; +package tutorpro; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/seedu/address/commons/core/ConfigTest.java b/src/test/java/tutorpro/commons/core/ConfigTest.java similarity index 95% rename from src/test/java/seedu/address/commons/core/ConfigTest.java rename to src/test/java/tutorpro/commons/core/ConfigTest.java index d3ba2a52a89..817db797a6b 100644 --- a/src/test/java/seedu/address/commons/core/ConfigTest.java +++ b/src/test/java/tutorpro/commons/core/ConfigTest.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/src/test/java/seedu/address/commons/core/GuiSettingsTest.java b/src/test/java/tutorpro/commons/core/GuiSettingsTest.java similarity index 93% rename from src/test/java/seedu/address/commons/core/GuiSettingsTest.java rename to src/test/java/tutorpro/commons/core/GuiSettingsTest.java index b7876c4349d..7f06d15e678 100644 --- a/src/test/java/seedu/address/commons/core/GuiSettingsTest.java +++ b/src/test/java/tutorpro/commons/core/GuiSettingsTest.java @@ -1,4 +1,4 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/seedu/address/commons/core/VersionTest.java b/src/test/java/tutorpro/commons/core/VersionTest.java similarity index 95% rename from src/test/java/seedu/address/commons/core/VersionTest.java rename to src/test/java/tutorpro/commons/core/VersionTest.java index 495cd231554..8563535bf7e 100644 --- a/src/test/java/seedu/address/commons/core/VersionTest.java +++ b/src/test/java/tutorpro/commons/core/VersionTest.java @@ -1,10 +1,11 @@ -package seedu.address.commons.core; +package tutorpro.commons.core; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class VersionTest { @@ -17,7 +18,7 @@ public void versionParsing_acceptableVersionString_parsedVersionCorrectly() { @Test public void versionParsing_wrongVersionString_throwIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, () -> Version.fromString("This is not a version string")); + Assert.assertThrows(IllegalArgumentException.class, () -> Version.fromString("This is not a version string")); } @Test diff --git a/src/test/java/seedu/address/commons/core/index/IndexTest.java b/src/test/java/tutorpro/commons/core/index/IndexTest.java similarity index 87% rename from src/test/java/seedu/address/commons/core/index/IndexTest.java rename to src/test/java/tutorpro/commons/core/index/IndexTest.java index fc395ab964b..a291fbca183 100644 --- a/src/test/java/seedu/address/commons/core/index/IndexTest.java +++ b/src/test/java/tutorpro/commons/core/index/IndexTest.java @@ -1,18 +1,19 @@ -package seedu.address.commons.core.index; +package tutorpro.commons.core.index; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class IndexTest { @Test public void createOneBasedIndex() { // invalid index - assertThrows(IndexOutOfBoundsException.class, () -> Index.fromOneBased(0)); + Assert.assertThrows(IndexOutOfBoundsException.class, () -> Index.fromOneBased(0)); // check equality using the same base assertEquals(1, Index.fromOneBased(1).getOneBased()); @@ -26,7 +27,7 @@ public void createOneBasedIndex() { @Test public void createZeroBasedIndex() { // invalid index - assertThrows(IndexOutOfBoundsException.class, () -> Index.fromZeroBased(-1)); + Assert.assertThrows(IndexOutOfBoundsException.class, () -> Index.fromZeroBased(-1)); // check equality using the same base assertEquals(0, Index.fromZeroBased(0).getZeroBased()); diff --git a/src/test/java/seedu/address/commons/util/AppUtilTest.java b/src/test/java/tutorpro/commons/util/AppUtilTest.java similarity index 63% rename from src/test/java/seedu/address/commons/util/AppUtilTest.java rename to src/test/java/tutorpro/commons/util/AppUtilTest.java index 594de1e6365..3520a59c3bb 100644 --- a/src/test/java/seedu/address/commons/util/AppUtilTest.java +++ b/src/test/java/tutorpro/commons/util/AppUtilTest.java @@ -1,9 +1,10 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class AppUtilTest { @@ -14,7 +15,7 @@ public void getImage_exitingImage() { @Test public void getImage_nullGiven_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> AppUtil.getImage(null)); + Assert.assertThrows(NullPointerException.class, () -> AppUtil.getImage(null)); } @Test @@ -25,12 +26,12 @@ public void checkArgument_true_nothingHappens() { @Test public void checkArgument_falseWithoutErrorMessage_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, () -> AppUtil.checkArgument(false)); + Assert.assertThrows(IllegalArgumentException.class, () -> AppUtil.checkArgument(false)); } @Test public void checkArgument_falseWithErrorMessage_throwsIllegalArgumentException() { String errorMessage = "error message"; - assertThrows(IllegalArgumentException.class, errorMessage, () -> AppUtil.checkArgument(false, errorMessage)); + Assert.assertThrows(IllegalArgumentException.class, errorMessage, () -> AppUtil.checkArgument(false, errorMessage)); } } diff --git a/src/test/java/seedu/address/commons/util/CollectionUtilTest.java b/src/test/java/tutorpro/commons/util/CollectionUtilTest.java similarity index 88% rename from src/test/java/seedu/address/commons/util/CollectionUtilTest.java rename to src/test/java/tutorpro/commons/util/CollectionUtilTest.java index b467a3dc025..94c05f27e97 100644 --- a/src/test/java/seedu/address/commons/util/CollectionUtilTest.java +++ b/src/test/java/tutorpro/commons/util/CollectionUtilTest.java @@ -1,9 +1,9 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; +import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collection; @@ -11,6 +11,7 @@ import java.util.List; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class CollectionUtilTest { @Test @@ -87,7 +88,7 @@ public void isAnyNonNull() { * if {@code objects} or any element of {@code objects} is null. */ private void assertNullPointerExceptionThrown(Object... objects) { - assertThrows(NullPointerException.class, () -> requireAllNonNull(objects)); + Assert.assertThrows(NullPointerException.class, () -> CollectionUtil.requireAllNonNull(objects)); } /** @@ -95,14 +96,14 @@ private void assertNullPointerExceptionThrown(Object... objects) { * if {@code collection} or any element of {@code collection} is null. */ private void assertNullPointerExceptionThrown(Collection collection) { - assertThrows(NullPointerException.class, () -> requireAllNonNull(collection)); + Assert.assertThrows(NullPointerException.class, () -> CollectionUtil.requireAllNonNull(collection)); } private void assertNullPointerExceptionNotThrown(Object... objects) { - requireAllNonNull(objects); + CollectionUtil.requireAllNonNull(objects); } private void assertNullPointerExceptionNotThrown(Collection collection) { - requireAllNonNull(collection); + CollectionUtil.requireAllNonNull(collection); } } diff --git a/src/test/java/seedu/address/commons/util/ConfigUtilTest.java b/src/test/java/tutorpro/commons/util/ConfigUtilTest.java similarity index 85% rename from src/test/java/seedu/address/commons/util/ConfigUtilTest.java rename to src/test/java/tutorpro/commons/util/ConfigUtilTest.java index 69d7b89cfd8..0376c8cb6e3 100644 --- a/src/test/java/seedu/address/commons/util/ConfigUtilTest.java +++ b/src/test/java/tutorpro/commons/util/ConfigUtilTest.java @@ -1,8 +1,8 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -13,8 +13,9 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.core.Config; -import seedu.address.commons.exceptions.DataLoadingException; +import tutorpro.commons.core.Config; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.testutil.Assert; public class ConfigUtilTest { @@ -25,7 +26,7 @@ public class ConfigUtilTest { @Test public void read_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> read(null)); + Assert.assertThrows(NullPointerException.class, () -> read(null)); } @Test @@ -35,7 +36,7 @@ public void read_missingFile_emptyResult() throws DataLoadingException { @Test public void read_notJsonFormat_exceptionThrown() { - assertThrows(DataLoadingException.class, () -> read("NotJsonFormatConfig.json")); + Assert.assertThrows(DataLoadingException.class, () -> read("NotJsonFormatConfig.json")); } @Test @@ -75,12 +76,12 @@ private Optional read(String configFileInTestDataFolder) throws DataLoad @Test public void save_nullConfig_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> save(null, "SomeFile.json")); + Assert.assertThrows(NullPointerException.class, () -> save(null, "SomeFile.json")); } @Test public void save_nullFile_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> save(new Config(), null)); + Assert.assertThrows(NullPointerException.class, () -> save(new Config(), null)); } @Test diff --git a/src/test/java/seedu/address/commons/util/FileUtilTest.java b/src/test/java/tutorpro/commons/util/FileUtilTest.java similarity index 68% rename from src/test/java/seedu/address/commons/util/FileUtilTest.java rename to src/test/java/tutorpro/commons/util/FileUtilTest.java index 1fe5478c756..3c82579bf97 100644 --- a/src/test/java/seedu/address/commons/util/FileUtilTest.java +++ b/src/test/java/tutorpro/commons/util/FileUtilTest.java @@ -1,10 +1,11 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class FileUtilTest { @@ -17,7 +18,7 @@ public void isValidPath() { assertFalse(FileUtil.isValidPath("a\0")); // null path -> throws NullPointerException - assertThrows(NullPointerException.class, () -> FileUtil.isValidPath(null)); + Assert.assertThrows(NullPointerException.class, () -> FileUtil.isValidPath(null)); } } diff --git a/src/test/java/seedu/address/commons/util/JsonUtilTest.java b/src/test/java/tutorpro/commons/util/JsonUtilTest.java similarity index 92% rename from src/test/java/seedu/address/commons/util/JsonUtilTest.java rename to src/test/java/tutorpro/commons/util/JsonUtilTest.java index d4907539dee..d51e886447f 100644 --- a/src/test/java/seedu/address/commons/util/JsonUtilTest.java +++ b/src/test/java/tutorpro/commons/util/JsonUtilTest.java @@ -1,4 +1,4 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; -import seedu.address.testutil.SerializableTestClass; -import seedu.address.testutil.TestUtil; +import tutorpro.testutil.SerializableTestClass; +import tutorpro.testutil.TestUtil; /** * Tests JSON Read and Write diff --git a/src/test/java/seedu/address/commons/util/StringUtilTest.java b/src/test/java/tutorpro/commons/util/StringUtilTest.java similarity index 88% rename from src/test/java/seedu/address/commons/util/StringUtilTest.java rename to src/test/java/tutorpro/commons/util/StringUtilTest.java index c56d407bf3f..a9336f9eb0a 100644 --- a/src/test/java/seedu/address/commons/util/StringUtilTest.java +++ b/src/test/java/tutorpro/commons/util/StringUtilTest.java @@ -1,12 +1,13 @@ -package seedu.address.commons.util; +package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import java.io.FileNotFoundException; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class StringUtilTest { @@ -56,24 +57,24 @@ public void isNonZeroUnsignedInteger() { @Test public void containsWordIgnoreCase_nullWord_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase("typical sentence", null)); + Assert.assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase("typical sentence", null)); } @Test public void containsWordIgnoreCase_emptyWord_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, "Word parameter cannot be empty", () + Assert.assertThrows(IllegalArgumentException.class, "Word parameter cannot be empty", () -> StringUtil.containsWordIgnoreCase("typical sentence", " ")); } @Test public void containsWordIgnoreCase_multipleWords_throwsIllegalArgumentException() { - assertThrows(IllegalArgumentException.class, "Word parameter should be a single word", () + Assert.assertThrows(IllegalArgumentException.class, "Word parameter should be a single word", () -> StringUtil.containsWordIgnoreCase("typical sentence", "aaa BBB")); } @Test public void containsWordIgnoreCase_nullSentence_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase(null, "abc")); + Assert.assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase(null, "abc")); } /* @@ -137,7 +138,7 @@ public void getDetails_exceptionGiven() { @Test public void getDetails_nullGiven_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> StringUtil.getDetails(null)); + Assert.assertThrows(NullPointerException.class, () -> StringUtil.getDetails(null)); } } diff --git a/src/test/java/seedu/address/logic/LogicManagerTest.java b/src/test/java/tutorpro/logic/LogicManagerTest.java similarity index 84% rename from src/test/java/seedu/address/logic/LogicManagerTest.java rename to src/test/java/tutorpro/logic/LogicManagerTest.java index baf8ce336a2..4c8713a4522 100644 --- a/src/test/java/seedu/address/logic/LogicManagerTest.java +++ b/src/test/java/tutorpro/logic/LogicManagerTest.java @@ -1,14 +1,14 @@ -package seedu.address.logic; +package tutorpro.logic; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.logic.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; -import static seedu.address.logic.Messages.MESSAGE_UNKNOWN_COMMAND; -import static seedu.address.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.NAME_DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.PHONE_DESC_AMY; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.AMY; +import static tutorpro.logic.Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX; +import static tutorpro.logic.Messages.MESSAGE_UNKNOWN_COMMAND; +import static tutorpro.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; +import static tutorpro.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; +import static tutorpro.logic.commands.CommandTestUtil.NAME_DESC_AMY; +import static tutorpro.logic.commands.CommandTestUtil.PHONE_DESC_AMY; +import static tutorpro.testutil.Assert.assertThrows; +import static tutorpro.testutil.TypicalPersons.AMY; import java.io.IOException; import java.nio.file.AccessDeniedException; @@ -18,20 +18,20 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.CommandResult; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.storage.JsonAddressBookStorage; -import seedu.address.storage.JsonUserPrefsStorage; -import seedu.address.storage.StorageManager; -import seedu.address.testutil.PersonBuilder; +import tutorpro.logic.commands.AddCommand; +import tutorpro.logic.commands.CommandResult; +import tutorpro.logic.commands.ListCommand; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.UserPrefs; +import tutorpro.model.person.Person; +import tutorpro.storage.JsonAddressBookStorage; +import tutorpro.storage.JsonUserPrefsStorage; +import tutorpro.storage.StorageManager; +import tutorpro.testutil.PersonBuilder; public class LogicManagerTest { private static final IOException DUMMY_IO_EXCEPTION = new IOException("dummy IO exception"); diff --git a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java similarity index 55% rename from src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java rename to src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java index 162a0c86031..9f376760d37 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java @@ -1,18 +1,17 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import seedu.address.logic.Messages; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.PersonBuilder; +import tutorpro.logic.Messages; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.UserPrefs; +import tutorpro.model.person.Person; +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.TypicalPersons; /** * Contains integration tests (interaction with the Model) for {@code AddCommand}. @@ -23,7 +22,7 @@ public class AddCommandIntegrationTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); } @Test @@ -33,7 +32,7 @@ public void execute_newPerson_success() { Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); expectedModel.addPerson(validPerson); - assertCommandSuccess(new AddCommand(validPerson), model, + CommandTestUtil.assertCommandSuccess(new AddCommand(validPerson), model, String.format(AddCommand.MESSAGE_SUCCESS, Messages.format(validPerson)), expectedModel); } @@ -41,7 +40,7 @@ public void execute_newPerson_success() { @Test public void execute_duplicatePerson_throwsCommandException() { Person personInList = model.getAddressBook().getPersonList().get(0); - assertCommandFailure(new AddCommand(personInList), model, + CommandTestUtil.assertCommandFailure(new AddCommand(personInList), model, AddCommand.MESSAGE_DUPLICATE_PERSON); } diff --git a/src/test/java/seedu/address/logic/commands/AddCommandTest.java b/src/test/java/tutorpro/logic/commands/AddCommandTest.java similarity index 87% rename from src/test/java/seedu/address/logic/commands/AddCommandTest.java rename to src/test/java/tutorpro/logic/commands/AddCommandTest.java index 90e8253f48e..675158c71af 100644 --- a/src/test/java/seedu/address/logic/commands/AddCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandTest.java @@ -1,11 +1,10 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static java.util.Objects.requireNonNull; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; +import static tutorpro.testutil.Assert.assertThrows; import java.nio.file.Path; import java.util.ArrayList; @@ -15,21 +14,23 @@ import org.junit.jupiter.api.Test; import javafx.collections.ObservableList; -import seedu.address.commons.core.GuiSettings; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.ReadOnlyUserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.PersonBuilder; +import tutorpro.commons.core.GuiSettings; +import tutorpro.logic.Messages; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.model.AddressBook; +import tutorpro.model.Model; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.ReadOnlyUserPrefs; +import tutorpro.model.person.Person; +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class AddCommandTest { @Test public void constructor_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new AddCommand(null)); + Assert.assertThrows(NullPointerException.class, () -> new AddCommand(null)); } @Test @@ -50,7 +51,7 @@ public void execute_duplicatePerson_throwsCommandException() { AddCommand addCommand = new AddCommand(validPerson); ModelStub modelStub = new ModelStubWithPerson(validPerson); - assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); + Assert.assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); } @Test @@ -79,8 +80,8 @@ public void equals() { @Test public void toStringMethod() { - AddCommand addCommand = new AddCommand(ALICE); - String expected = AddCommand.class.getCanonicalName() + "{toAdd=" + ALICE + "}"; + AddCommand addCommand = new AddCommand(TypicalPersons.ALICE); + String expected = AddCommand.class.getCanonicalName() + "{toAdd=" + TypicalPersons.ALICE + "}"; assertEquals(expected, addCommand.toString()); } diff --git a/src/test/java/tutorpro/logic/commands/ClearCommandTest.java b/src/test/java/tutorpro/logic/commands/ClearCommandTest.java new file mode 100644 index 00000000000..6889e92e6a4 --- /dev/null +++ b/src/test/java/tutorpro/logic/commands/ClearCommandTest.java @@ -0,0 +1,32 @@ +package tutorpro.logic.commands; + +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; + +import org.junit.jupiter.api.Test; + +import tutorpro.model.AddressBook; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.UserPrefs; +import tutorpro.testutil.TypicalPersons; + +public class ClearCommandTest { + + @Test + public void execute_emptyAddressBook_success() { + Model model = new ModelManager(); + Model expectedModel = new ModelManager(); + + CommandTestUtil.assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); + } + + @Test + public void execute_nonEmptyAddressBook_success() { + Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + Model expectedModel = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + expectedModel.setAddressBook(new AddressBook()); + + CommandTestUtil.assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); + } + +} diff --git a/src/test/java/seedu/address/logic/commands/CommandResultTest.java b/src/test/java/tutorpro/logic/commands/CommandResultTest.java similarity index 98% rename from src/test/java/seedu/address/logic/commands/CommandResultTest.java rename to src/test/java/tutorpro/logic/commands/CommandResultTest.java index 7b8c7cd4546..3924d976be7 100644 --- a/src/test/java/seedu/address/logic/commands/CommandResultTest.java +++ b/src/test/java/tutorpro/logic/commands/CommandResultTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java similarity index 65% rename from src/test/java/seedu/address/logic/commands/CommandTestUtil.java rename to src/test/java/tutorpro/logic/commands/CommandTestUtil.java index 643a1d08069..44c3700c9c2 100644 --- a/src/test/java/seedu/address/logic/commands/CommandTestUtil.java +++ b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java @@ -1,25 +1,22 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.person.NameContainsKeywordsPredicate; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; +import tutorpro.commons.core.index.Index; +import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.model.AddressBook; +import tutorpro.model.Model; +import tutorpro.model.person.NameContainsKeywordsPredicate; +import tutorpro.model.person.Person; +import tutorpro.testutil.EditPersonDescriptorBuilder; +import tutorpro.logic.parser.CliSyntax; +import tutorpro.testutil.Assert; /** * Contains helper methods for testing commands. @@ -37,22 +34,22 @@ public class CommandTestUtil { public static final String VALID_TAG_HUSBAND = "husband"; public static final String VALID_TAG_FRIEND = "friend"; - public static final String NAME_DESC_AMY = " " + PREFIX_NAME + VALID_NAME_AMY; - public static final String NAME_DESC_BOB = " " + PREFIX_NAME + VALID_NAME_BOB; - public static final String PHONE_DESC_AMY = " " + PREFIX_PHONE + VALID_PHONE_AMY; - public static final String PHONE_DESC_BOB = " " + PREFIX_PHONE + VALID_PHONE_BOB; - public static final String EMAIL_DESC_AMY = " " + PREFIX_EMAIL + VALID_EMAIL_AMY; - public static final String EMAIL_DESC_BOB = " " + PREFIX_EMAIL + VALID_EMAIL_BOB; - public static final String ADDRESS_DESC_AMY = " " + PREFIX_ADDRESS + VALID_ADDRESS_AMY; - public static final String ADDRESS_DESC_BOB = " " + PREFIX_ADDRESS + VALID_ADDRESS_BOB; - public static final String TAG_DESC_FRIEND = " " + PREFIX_TAG + VALID_TAG_FRIEND; - public static final String TAG_DESC_HUSBAND = " " + PREFIX_TAG + VALID_TAG_HUSBAND; - - public static final String INVALID_NAME_DESC = " " + PREFIX_NAME + "James&"; // '&' not allowed in names - public static final String INVALID_PHONE_DESC = " " + PREFIX_PHONE + "911a"; // 'a' not allowed in phones - public static final String INVALID_EMAIL_DESC = " " + PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol - public static final String INVALID_ADDRESS_DESC = " " + PREFIX_ADDRESS; // empty string not allowed for addresses - public static final String INVALID_TAG_DESC = " " + PREFIX_TAG + "hubby*"; // '*' not allowed in tags + public static final String NAME_DESC_AMY = " " + CliSyntax.PREFIX_NAME + VALID_NAME_AMY; + public static final String NAME_DESC_BOB = " " + CliSyntax.PREFIX_NAME + VALID_NAME_BOB; + public static final String PHONE_DESC_AMY = " " + CliSyntax.PREFIX_PHONE + VALID_PHONE_AMY; + public static final String PHONE_DESC_BOB = " " + CliSyntax.PREFIX_PHONE + VALID_PHONE_BOB; + public static final String EMAIL_DESC_AMY = " " + CliSyntax.PREFIX_EMAIL + VALID_EMAIL_AMY; + public static final String EMAIL_DESC_BOB = " " + CliSyntax.PREFIX_EMAIL + VALID_EMAIL_BOB; + public static final String ADDRESS_DESC_AMY = " " + CliSyntax.PREFIX_ADDRESS + VALID_ADDRESS_AMY; + public static final String ADDRESS_DESC_BOB = " " + CliSyntax.PREFIX_ADDRESS + VALID_ADDRESS_BOB; + public static final String TAG_DESC_FRIEND = " " + CliSyntax.PREFIX_TAG + VALID_TAG_FRIEND; + public static final String TAG_DESC_HUSBAND = " " + CliSyntax.PREFIX_TAG + VALID_TAG_HUSBAND; + + public static final String INVALID_NAME_DESC = " " + CliSyntax.PREFIX_NAME + "James&"; // '&' not allowed in names + public static final String INVALID_PHONE_DESC = " " + CliSyntax.PREFIX_PHONE + "911a"; // 'a' not allowed in phones + public static final String INVALID_EMAIL_DESC = " " + CliSyntax.PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol + public static final String INVALID_ADDRESS_DESC = " " + CliSyntax.PREFIX_ADDRESS; // empty string not allowed for addresses + public static final String INVALID_TAG_DESC = " " + CliSyntax.PREFIX_TAG + "hubby*"; // '*' not allowed in tags public static final String PREAMBLE_WHITESPACE = "\t \r \n"; public static final String PREAMBLE_NON_EMPTY = "NonEmptyPreamble"; @@ -75,7 +72,7 @@ public class CommandTestUtil { * - the {@code actualModel} matches {@code expectedModel} */ public static void assertCommandSuccess(Command command, Model actualModel, CommandResult expectedCommandResult, - Model expectedModel) { + Model expectedModel) { try { CommandResult result = command.execute(actualModel); assertEquals(expectedCommandResult, result); @@ -107,7 +104,7 @@ public static void assertCommandFailure(Command command, Model actualModel, Stri AddressBook expectedAddressBook = new AddressBook(actualModel.getAddressBook()); List expectedFilteredList = new ArrayList<>(actualModel.getFilteredPersonList()); - assertThrows(CommandException.class, expectedMessage, () -> command.execute(actualModel)); + Assert.assertThrows(CommandException.class, expectedMessage, () -> command.execute(actualModel)); assertEquals(expectedAddressBook, actualModel.getAddressBook()); assertEquals(expectedFilteredList, actualModel.getFilteredPersonList()); } diff --git a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java b/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java similarity index 63% rename from src/test/java/seedu/address/logic/commands/DeleteCommandTest.java rename to src/test/java/tutorpro/logic/commands/DeleteCommandTest.java index b6f332eabca..8f3b3c663cd 100644 --- a/src/test/java/seedu/address/logic/commands/DeleteCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java @@ -1,23 +1,20 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.Messages; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; +import tutorpro.commons.core.index.Index; +import tutorpro.logic.Messages; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.UserPrefs; +import tutorpro.model.person.Person; +import tutorpro.testutil.TypicalIndexes; +import tutorpro.testutil.TypicalPersons; /** * Contains integration tests (interaction with the Model) and unit tests for @@ -25,12 +22,12 @@ */ public class DeleteCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); + Person personToDelete = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + DeleteCommand deleteCommand = new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON); String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, Messages.format(personToDelete)); @@ -38,7 +35,7 @@ public void execute_validIndexUnfilteredList_success() { ModelManager expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); expectedModel.deletePerson(personToDelete); - assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); + CommandTestUtil.assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); } @Test @@ -46,15 +43,15 @@ public void execute_invalidIndexUnfilteredList_throwsCommandException() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); - assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + CommandTestUtil.assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void execute_validIndexFilteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); - Person personToDelete = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - DeleteCommand deleteCommand = new DeleteCommand(INDEX_FIRST_PERSON); + Person personToDelete = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + DeleteCommand deleteCommand = new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON); String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, Messages.format(personToDelete)); @@ -63,32 +60,32 @@ public void execute_validIndexFilteredList_success() { expectedModel.deletePerson(personToDelete); showNoPerson(expectedModel); - assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); + CommandTestUtil.assertCommandSuccess(deleteCommand, model, expectedMessage, expectedModel); } @Test public void execute_invalidIndexFilteredList_throwsCommandException() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + Index outOfBoundIndex = TypicalIndexes.INDEX_SECOND_PERSON; // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); - assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + CommandTestUtil.assertCommandFailure(deleteCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - DeleteCommand deleteFirstCommand = new DeleteCommand(INDEX_FIRST_PERSON); - DeleteCommand deleteSecondCommand = new DeleteCommand(INDEX_SECOND_PERSON); + DeleteCommand deleteFirstCommand = new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON); + DeleteCommand deleteSecondCommand = new DeleteCommand(TypicalIndexes.INDEX_SECOND_PERSON); // same object -> returns true assertTrue(deleteFirstCommand.equals(deleteFirstCommand)); // same values -> returns true - DeleteCommand deleteFirstCommandCopy = new DeleteCommand(INDEX_FIRST_PERSON); + DeleteCommand deleteFirstCommandCopy = new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON); assertTrue(deleteFirstCommand.equals(deleteFirstCommandCopy)); // different types -> returns false diff --git a/src/test/java/seedu/address/logic/commands/EditCommandTest.java b/src/test/java/tutorpro/logic/commands/EditCommandTest.java similarity index 50% rename from src/test/java/seedu/address/logic/commands/EditCommandTest.java rename to src/test/java/tutorpro/logic/commands/EditCommandTest.java index 469dd97daa7..eb0913cb69b 100644 --- a/src/test/java/seedu/address/logic/commands/EditCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/EditCommandTest.java @@ -1,52 +1,43 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.DESC_AMY; -import static seedu.address.logic.commands.CommandTestUtil.DESC_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandFailure; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalIndexes.INDEX_SECOND_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.index.Index; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.AddressBook; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; +import tutorpro.commons.core.index.Index; +import tutorpro.logic.Messages; +import tutorpro.model.AddressBook; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.UserPrefs; +import tutorpro.model.person.Person; +import tutorpro.testutil.EditPersonDescriptorBuilder; +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.TypicalIndexes; +import tutorpro.testutil.TypicalPersons; /** * Contains integration tests (interaction with the Model) and unit tests for EditCommand. */ public class EditCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { Person editedPerson = new PersonBuilder().build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, descriptor); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); + EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, descriptor); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + CommandTestUtil.assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test @@ -55,11 +46,11 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) - .withTags(VALID_TAG_HUSBAND).build(); + Person editedPerson = personInList.withName(CommandTestUtil.VALID_NAME_BOB).withPhone(CommandTestUtil.VALID_PHONE_BOB) + .withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) - .withPhone(VALID_PHONE_BOB).withTags(VALID_TAG_HUSBAND).build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB) + .withPhone(CommandTestUtil.VALID_PHONE_BOB).withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); @@ -67,66 +58,66 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(lastPerson, editedPerson); - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + CommandTestUtil.assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test public void execute_noFieldSpecifiedUnfilteredList_success() { - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, new EditPersonDescriptor()); - Person editedPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); + EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, new EditCommand.EditPersonDescriptor()); + Person editedPerson = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + CommandTestUtil.assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test public void execute_filteredList_success() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); - Person personInFilteredList = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - Person editedPerson = new PersonBuilder(personInFilteredList).withName(VALID_NAME_BOB).build(); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + Person personInFilteredList = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + Person editedPerson = new PersonBuilder(personInFilteredList).withName(CommandTestUtil.VALID_NAME_BOB).build(); + EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, + new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build()); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); - assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); + CommandTestUtil.assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @Test public void execute_duplicatePersonUnfilteredList_failure() { - Person firstPerson = model.getFilteredPersonList().get(INDEX_FIRST_PERSON.getZeroBased()); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); - EditCommand editCommand = new EditCommand(INDEX_SECOND_PERSON, descriptor); + Person firstPerson = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); + EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_SECOND_PERSON, descriptor); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + CommandTestUtil.assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); } @Test public void execute_duplicatePersonFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); // edit person in filtered list into a duplicate in address book - Person personInList = model.getAddressBook().getPersonList().get(INDEX_SECOND_PERSON.getZeroBased()); - EditCommand editCommand = new EditCommand(INDEX_FIRST_PERSON, + Person personInList = model.getAddressBook().getPersonList().get(TypicalIndexes.INDEX_SECOND_PERSON.getZeroBased()); + EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder(personInList).build()); - assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); + CommandTestUtil.assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); } @Test public void execute_invalidPersonIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build(); EditCommand editCommand = new EditCommand(outOfBoundIndex, descriptor); - assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + CommandTestUtil.assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } /** @@ -135,24 +126,24 @@ public void execute_invalidPersonIndexUnfilteredList_failure() { */ @Test public void execute_invalidPersonIndexFilteredList_failure() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); - Index outOfBoundIndex = INDEX_SECOND_PERSON; + CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); + Index outOfBoundIndex = TypicalIndexes.INDEX_SECOND_PERSON; // ensures that outOfBoundIndex is still in bounds of address book list assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); EditCommand editCommand = new EditCommand(outOfBoundIndex, - new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB).build()); + new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build()); - assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); + CommandTestUtil.assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } @Test public void equals() { - final EditCommand standardCommand = new EditCommand(INDEX_FIRST_PERSON, DESC_AMY); + final EditCommand standardCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, CommandTestUtil.DESC_AMY); // same values -> returns true - EditPersonDescriptor copyDescriptor = new EditPersonDescriptor(DESC_AMY); - EditCommand commandWithSameValues = new EditCommand(INDEX_FIRST_PERSON, copyDescriptor); + EditCommand.EditPersonDescriptor copyDescriptor = new EditCommand.EditPersonDescriptor(CommandTestUtil.DESC_AMY); + EditCommand commandWithSameValues = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, copyDescriptor); assertTrue(standardCommand.equals(commandWithSameValues)); // same object -> returns true @@ -165,16 +156,16 @@ public void equals() { assertFalse(standardCommand.equals(new ClearCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_SECOND_PERSON, DESC_AMY))); + assertFalse(standardCommand.equals(new EditCommand(TypicalIndexes.INDEX_SECOND_PERSON, CommandTestUtil.DESC_AMY))); // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditCommand(INDEX_FIRST_PERSON, DESC_BOB))); + assertFalse(standardCommand.equals(new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, CommandTestUtil.DESC_BOB))); } @Test public void toStringMethod() { Index index = Index.fromOneBased(1); - EditPersonDescriptor editPersonDescriptor = new EditPersonDescriptor(); + EditCommand.EditPersonDescriptor editPersonDescriptor = new EditCommand.EditPersonDescriptor(); EditCommand editCommand = new EditCommand(index, editPersonDescriptor); String expected = EditCommand.class.getCanonicalName() + "{index=" + index + ", editPersonDescriptor=" + editPersonDescriptor + "}"; diff --git a/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java b/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java new file mode 100644 index 00000000000..d6c61d37c21 --- /dev/null +++ b/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java @@ -0,0 +1,64 @@ +package tutorpro.logic.commands; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.EditPersonDescriptorBuilder; + +public class EditPersonDescriptorTest { + + @Test + public void equals() { + // same values -> returns true + EditCommand.EditPersonDescriptor descriptorWithSameValues = new EditCommand.EditPersonDescriptor(CommandTestUtil.DESC_AMY); + Assertions.assertTrue(CommandTestUtil.DESC_AMY.equals(descriptorWithSameValues)); + + // same object -> returns true + Assertions.assertTrue(CommandTestUtil.DESC_AMY.equals(CommandTestUtil.DESC_AMY)); + + // null -> returns false + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(null)); + + // different types -> returns false + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(5)); + + // different values -> returns false + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(CommandTestUtil.DESC_BOB)); + + // different name -> returns false + EditCommand.EditPersonDescriptor editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withName(CommandTestUtil.VALID_NAME_BOB).build(); + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); + + // different phone -> returns false + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withPhone(CommandTestUtil.VALID_PHONE_BOB).build(); + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); + + // different email -> returns false + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withEmail(CommandTestUtil.VALID_EMAIL_BOB).build(); + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); + + // different address -> returns false + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withAddress(CommandTestUtil.VALID_ADDRESS_BOB).build(); + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); + + // different tags -> returns false + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); + Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); + } + + @Test + public void toStringMethod() { + EditCommand.EditPersonDescriptor editPersonDescriptor = new EditCommand.EditPersonDescriptor(); + String expected = EditCommand.EditPersonDescriptor.class.getCanonicalName() + "{name=" + + editPersonDescriptor.getName().orElse(null) + ", phone=" + + editPersonDescriptor.getPhone().orElse(null) + ", email=" + + editPersonDescriptor.getEmail().orElse(null) + ", address=" + + editPersonDescriptor.getAddress().orElse(null) + ", tags=" + + editPersonDescriptor.getTags().orElse(null) + "}"; + assertEquals(expected, editPersonDescriptor.toString()); + } +} diff --git a/src/test/java/tutorpro/logic/commands/ExitCommandTest.java b/src/test/java/tutorpro/logic/commands/ExitCommandTest.java new file mode 100644 index 00000000000..7eb17f264e7 --- /dev/null +++ b/src/test/java/tutorpro/logic/commands/ExitCommandTest.java @@ -0,0 +1,19 @@ +package tutorpro.logic.commands; + +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; + +import org.junit.jupiter.api.Test; + +import tutorpro.model.Model; +import tutorpro.model.ModelManager; + +public class ExitCommandTest { + private Model model = new ModelManager(); + private Model expectedModel = new ModelManager(); + + @Test + public void execute_exit_success() { + CommandResult expectedCommandResult = new CommandResult(ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); + CommandTestUtil.assertCommandSuccess(new ExitCommand(), model, expectedCommandResult, expectedModel); + } +} diff --git a/src/test/java/seedu/address/logic/commands/FindCommandTest.java b/src/test/java/tutorpro/logic/commands/FindCommandTest.java similarity index 73% rename from src/test/java/seedu/address/logic/commands/FindCommandTest.java rename to src/test/java/tutorpro/logic/commands/FindCommandTest.java index b8b7dbba91a..96865d9f4ce 100644 --- a/src/test/java/seedu/address/logic/commands/FindCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/FindCommandTest.java @@ -1,31 +1,28 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.Messages.MESSAGE_PERSONS_LISTED_OVERVIEW; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.testutil.TypicalPersons.CARL; -import static seedu.address.testutil.TypicalPersons.ELLE; -import static seedu.address.testutil.TypicalPersons.FIONA; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import java.util.Arrays; import java.util.Collections; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.UserPrefs; +import tutorpro.model.person.NameContainsKeywordsPredicate; +import tutorpro.logic.Messages; +import tutorpro.testutil.TypicalPersons; /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. */ public class FindCommandTest { - private Model model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); - private Model expectedModel = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + private Model expectedModel = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); @Test public void equals() { @@ -56,7 +53,7 @@ public void equals() { @Test public void execute_zeroKeywords_noPersonFound() { - String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 0); + String expectedMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 0); NameContainsKeywordsPredicate predicate = preparePredicate(" "); FindCommand command = new FindCommand(predicate); expectedModel.updateFilteredPersonList(predicate); @@ -66,12 +63,12 @@ public void execute_zeroKeywords_noPersonFound() { @Test public void execute_multipleKeywords_multiplePersonsFound() { - String expectedMessage = String.format(MESSAGE_PERSONS_LISTED_OVERVIEW, 3); + String expectedMessage = String.format(Messages.MESSAGE_PERSONS_LISTED_OVERVIEW, 3); NameContainsKeywordsPredicate predicate = preparePredicate("Kurz Elle Kunz"); FindCommand command = new FindCommand(predicate); expectedModel.updateFilteredPersonList(predicate); assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(Arrays.asList(CARL, ELLE, FIONA), model.getFilteredPersonList()); + assertEquals(Arrays.asList(TypicalPersons.CARL, TypicalPersons.ELLE, TypicalPersons.FIONA), model.getFilteredPersonList()); } @Test diff --git a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java b/src/test/java/tutorpro/logic/commands/HelpCommandTest.java similarity index 55% rename from src/test/java/seedu/address/logic/commands/HelpCommandTest.java rename to src/test/java/tutorpro/logic/commands/HelpCommandTest.java index 4904fc4352e..55f2224ab52 100644 --- a/src/test/java/seedu/address/logic/commands/HelpCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/HelpCommandTest.java @@ -1,12 +1,11 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.HelpCommand.SHOWING_HELP_MESSAGE; +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; public class HelpCommandTest { private Model model = new ModelManager(); @@ -14,7 +13,7 @@ public class HelpCommandTest { @Test public void execute_help_success() { - CommandResult expectedCommandResult = new CommandResult(SHOWING_HELP_MESSAGE, true, false); + CommandResult expectedCommandResult = new CommandResult(HelpCommand.SHOWING_HELP_MESSAGE, true, false); assertCommandSuccess(new HelpCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/seedu/address/logic/commands/ListCommandTest.java b/src/test/java/tutorpro/logic/commands/ListCommandTest.java similarity index 56% rename from src/test/java/seedu/address/logic/commands/ListCommandTest.java rename to src/test/java/tutorpro/logic/commands/ListCommandTest.java index 435ff1f7275..fe24397e819 100644 --- a/src/test/java/seedu/address/logic/commands/ListCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/ListCommandTest.java @@ -1,16 +1,16 @@ -package seedu.address.logic.commands; +package tutorpro.logic.commands; -import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess; -import static seedu.address.logic.commands.CommandTestUtil.showPersonAtIndex; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +import static tutorpro.logic.commands.CommandTestUtil.showPersonAtIndex; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import seedu.address.model.Model; -import seedu.address.model.ModelManager; -import seedu.address.model.UserPrefs; +import tutorpro.model.Model; +import tutorpro.model.ModelManager; +import tutorpro.model.UserPrefs; +import tutorpro.testutil.TypicalIndexes; +import tutorpro.testutil.TypicalPersons; /** * Contains integration tests (interaction with the Model) and unit tests for ListCommand. @@ -22,7 +22,7 @@ public class ListCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(getTypicalAddressBook(), new UserPrefs()); + model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); } @@ -33,7 +33,7 @@ public void execute_listIsNotFiltered_showsSameList() { @Test public void execute_listIsFiltered_showsEverything() { - showPersonAtIndex(model, INDEX_FIRST_PERSON); + showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); assertCommandSuccess(new ListCommand(), model, ListCommand.MESSAGE_SUCCESS, expectedModel); } } diff --git a/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java b/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java new file mode 100644 index 00000000000..adf8797b49f --- /dev/null +++ b/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java @@ -0,0 +1,165 @@ +package tutorpro.logic.parser; + +import org.junit.jupiter.api.Test; + +import tutorpro.logic.Messages; +import tutorpro.logic.commands.AddCommand; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; +import tutorpro.testutil.PersonBuilder; +import tutorpro.logic.commands.CommandTestUtil; +import tutorpro.testutil.TypicalPersons; + +public class AddCommandParserTest { + private AddCommandParser parser = new AddCommandParser(); + + @Test + public void parse_allFieldsPresent_success() { + Person expectedPerson = new PersonBuilder(TypicalPersons.BOB).withTags(CommandTestUtil.VALID_TAG_FRIEND).build(); + + // whitespace only preamble + CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.PREAMBLE_WHITESPACE + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + + // multiple tags - all accepted + Person expectedPersonMultipleTags = new PersonBuilder(TypicalPersons.BOB).withTags(CommandTestUtil.VALID_TAG_FRIEND, CommandTestUtil.VALID_TAG_HUSBAND) + .build(); + CommandParserTestUtil.assertParseSuccess(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + new AddCommand(expectedPersonMultipleTags)); + } + + @Test + public void parse_repeatedNonTagValue_failure() { + String validExpectedPersonString = CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND; + + // multiple names + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_AMY + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME)); + + // multiple phones + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.PHONE_DESC_AMY + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + + // multiple emails + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.EMAIL_DESC_AMY + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_EMAIL)); + + // multiple addresses + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.ADDRESS_DESC_AMY + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_ADDRESS)); + + // multiple fields repeated + CommandParserTestUtil.assertParseFailure(parser, + validExpectedPersonString + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME, CliSyntax.PREFIX_ADDRESS, CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_PHONE)); + + // invalid value followed by valid value + + // invalid name + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME)); + + // invalid email + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_EMAIL_DESC + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_EMAIL)); + + // invalid phone + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_PHONE_DESC + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + + // invalid address + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_ADDRESS_DESC + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_ADDRESS)); + + // valid value followed by invalid value + + // invalid name + CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_NAME_DESC, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME)); + + // invalid email + CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_EMAIL_DESC, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_EMAIL)); + + // invalid phone + CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_PHONE_DESC, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + + // invalid address + CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_ADDRESS_DESC, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_ADDRESS)); + } + + @Test + public void parse_optionalFieldsMissing_success() { + // zero tags + Person expectedPerson = new PersonBuilder(TypicalPersons.AMY).withTags().build(); + CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY, + new AddCommand(expectedPerson)); + } + + @Test + public void parse_compulsoryFieldMissing_failure() { + String expectedMessage = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE); + + // missing name prefix + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.VALID_NAME_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB, + expectedMessage); + + // missing phone prefix + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.VALID_PHONE_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB, + expectedMessage); + + // missing email prefix + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.VALID_EMAIL_BOB + CommandTestUtil.ADDRESS_DESC_BOB, + expectedMessage); + + // missing address prefix + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.VALID_ADDRESS_BOB, + expectedMessage); + + // all prefixes missing + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.VALID_NAME_BOB + CommandTestUtil.VALID_PHONE_BOB + CommandTestUtil.VALID_EMAIL_BOB + CommandTestUtil.VALID_ADDRESS_BOB, + expectedMessage); + } + + @Test + public void parse_invalidValue_failure() { + // invalid name + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Name.MESSAGE_CONSTRAINTS); + + // invalid phone + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Phone.MESSAGE_CONSTRAINTS); + + // invalid email + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.INVALID_EMAIL_DESC + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Email.MESSAGE_CONSTRAINTS); + + // invalid address + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Address.MESSAGE_CONSTRAINTS); + + // invalid tag + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.INVALID_TAG_DESC + CommandTestUtil.VALID_TAG_FRIEND, Tag.MESSAGE_CONSTRAINTS); + + // two invalid values, only first invalid value reported + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC, + Name.MESSAGE_CONSTRAINTS); + + // non-empty preamble + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.PREAMBLE_NON_EMPTY + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); + } +} diff --git a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java similarity index 60% rename from src/test/java/seedu/address/logic/parser/AddressBookParserTest.java rename to src/test/java/tutorpro/logic/parser/AddressBookParserTest.java index 5a1ab3dbc0c..1fbaf3f177c 100644 --- a/src/test/java/seedu/address/logic/parser/AddressBookParserTest.java +++ b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java @@ -1,11 +1,8 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.Messages.MESSAGE_UNKNOWN_COMMAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.List; @@ -13,21 +10,23 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.AddCommand; -import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.EditCommand; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.logic.commands.ExitCommand; -import seedu.address.logic.commands.FindCommand; -import seedu.address.logic.commands.HelpCommand; -import seedu.address.logic.commands.ListCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.NameContainsKeywordsPredicate; -import seedu.address.model.person.Person; -import seedu.address.testutil.EditPersonDescriptorBuilder; -import seedu.address.testutil.PersonBuilder; -import seedu.address.testutil.PersonUtil; +import tutorpro.logic.commands.AddCommand; +import tutorpro.logic.commands.ClearCommand; +import tutorpro.logic.commands.DeleteCommand; +import tutorpro.logic.commands.EditCommand; +import tutorpro.logic.commands.ExitCommand; +import tutorpro.logic.commands.FindCommand; +import tutorpro.logic.commands.HelpCommand; +import tutorpro.logic.commands.ListCommand; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.person.NameContainsKeywordsPredicate; +import tutorpro.model.person.Person; +import tutorpro.testutil.EditPersonDescriptorBuilder; +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.PersonUtil; +import tutorpro.logic.Messages; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalIndexes; public class AddressBookParserTest { @@ -49,17 +48,17 @@ public void parseCommand_clear() throws Exception { @Test public void parseCommand_delete() throws Exception { DeleteCommand command = (DeleteCommand) parser.parseCommand( - DeleteCommand.COMMAND_WORD + " " + INDEX_FIRST_PERSON.getOneBased()); - assertEquals(new DeleteCommand(INDEX_FIRST_PERSON), command); + DeleteCommand.COMMAND_WORD + " " + TypicalIndexes.INDEX_FIRST_PERSON.getOneBased()); + assertEquals(new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON), command); } @Test public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); - EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " - + INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); - assertEquals(new EditCommand(INDEX_FIRST_PERSON, descriptor), command); + + TypicalIndexes.INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); + assertEquals(new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, descriptor), command); } @Test @@ -90,12 +89,12 @@ public void parseCommand_list() throws Exception { @Test public void parseCommand_unrecognisedInput_throwsParseException() { - assertThrows(ParseException.class, String.format(MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), () + Assert.assertThrows(ParseException.class, String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), () -> parser.parseCommand("")); } @Test public void parseCommand_unknownCommand_throwsParseException() { - assertThrows(ParseException.class, MESSAGE_UNKNOWN_COMMAND, () -> parser.parseCommand("unknownCommand")); + Assert.assertThrows(ParseException.class, Messages.MESSAGE_UNKNOWN_COMMAND, () -> parser.parseCommand("unknownCommand")); } } diff --git a/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java b/src/test/java/tutorpro/logic/parser/ArgumentTokenizerTest.java similarity index 99% rename from src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java rename to src/test/java/tutorpro/logic/parser/ArgumentTokenizerTest.java index c97308935f5..c92c1c23b4e 100644 --- a/src/test/java/seedu/address/logic/parser/ArgumentTokenizerTest.java +++ b/src/test/java/tutorpro/logic/parser/ArgumentTokenizerTest.java @@ -1,4 +1,4 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java b/src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java similarity index 78% rename from src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java rename to src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java index 9bf1ccf1cef..1a7a7624c94 100644 --- a/src/test/java/seedu/address/logic/parser/CommandParserTestUtil.java +++ b/src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java @@ -1,9 +1,10 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; -import seedu.address.logic.commands.Command; -import seedu.address.logic.parser.exceptions.ParseException; +import org.junit.jupiter.api.Assertions; +import tutorpro.logic.commands.Command; +import tutorpro.logic.parser.exceptions.ParseException; /** * Contains helper methods for testing command parsers. @@ -15,7 +16,7 @@ public class CommandParserTestUtil { * equals to {@code expectedCommand}. */ public static void assertParseSuccess(Parser parser, String userInput, - Command expectedCommand) { + Command expectedCommand) { try { Command command = parser.parse(userInput); assertEquals(expectedCommand, command); @@ -33,7 +34,7 @@ public static void assertParseFailure(Parser parser, String u parser.parse(userInput); throw new AssertionError("The expected ParseException was not thrown."); } catch (ParseException pe) { - assertEquals(expectedMessage, pe.getMessage()); + Assertions.assertEquals(expectedMessage, pe.getMessage()); } } } diff --git a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java b/src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java similarity index 53% rename from src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java rename to src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java index 6a40e14a649..65539b5fdbd 100644 --- a/src/test/java/seedu/address/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java @@ -1,13 +1,10 @@ -package seedu.address.logic.parser; - -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +package tutorpro.logic.parser; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.DeleteCommand; +import tutorpro.logic.commands.DeleteCommand; +import tutorpro.logic.Messages; +import tutorpro.testutil.TypicalIndexes; /** * As we are only doing white-box testing, our test cases do not cover path variations @@ -22,11 +19,11 @@ public class DeleteCommandParserTest { @Test public void parse_validArgs_returnsDeleteCommand() { - assertParseSuccess(parser, "1", new DeleteCommand(INDEX_FIRST_PERSON)); + CommandParserTestUtil.assertParseSuccess(parser, "1", new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON)); } @Test public void parse_invalidArgs_throwsParseException() { - assertParseFailure(parser, "a", String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); + CommandParserTestUtil.assertParseFailure(parser, "a", String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java b/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java new file mode 100644 index 00000000000..506eea38597 --- /dev/null +++ b/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java @@ -0,0 +1,177 @@ +package tutorpro.logic.parser; + +import org.junit.jupiter.api.Test; + +import tutorpro.commons.core.index.Index; +import tutorpro.logic.Messages; +import tutorpro.logic.commands.EditCommand; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; +import tutorpro.testutil.EditPersonDescriptorBuilder; +import tutorpro.logic.commands.CommandTestUtil; +import tutorpro.testutil.TypicalIndexes; + +public class EditCommandParserTest { + + private static final String TAG_EMPTY = " " + CliSyntax.PREFIX_TAG; + + private static final String MESSAGE_INVALID_FORMAT = + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE); + + private EditCommandParser parser = new EditCommandParser(); + + @Test + public void parse_missingParts_failure() { + // no index specified + CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.VALID_NAME_AMY, MESSAGE_INVALID_FORMAT); + + // no field specified + CommandParserTestUtil.assertParseFailure(parser, "1", EditCommand.MESSAGE_NOT_EDITED); + + // no index and no field specified + CommandParserTestUtil.assertParseFailure(parser, "", MESSAGE_INVALID_FORMAT); + } + + @Test + public void parse_invalidPreamble_failure() { + // negative index + CommandParserTestUtil.assertParseFailure(parser, "-5" + CommandTestUtil.NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); + + // zero index + CommandParserTestUtil.assertParseFailure(parser, "0" + CommandTestUtil.NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); + + // invalid arguments being parsed as preamble + CommandParserTestUtil.assertParseFailure(parser, "1 some random string", MESSAGE_INVALID_FORMAT); + + // invalid prefix being parsed as preamble + CommandParserTestUtil.assertParseFailure(parser, "1 i/ string", MESSAGE_INVALID_FORMAT); + } + + @Test + public void parse_invalidValue_failure() { + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_NAME_DESC, Name.MESSAGE_CONSTRAINTS); // invalid name + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); // invalid phone + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_EMAIL_DESC, Email.MESSAGE_CONSTRAINTS); // invalid email + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_ADDRESS_DESC, Address.MESSAGE_CONSTRAINTS); // invalid address + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_TAG_DESC, Tag.MESSAGE_CONSTRAINTS); // invalid tag + + // invalid phone followed by valid email + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.EMAIL_DESC_AMY, Phone.MESSAGE_CONSTRAINTS); + + // while parsing {@code PREFIX_TAG} alone will reset the tags of the {@code Person} being edited, + // parsing it together with a valid tag results in error + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.TAG_DESC_HUSBAND + TAG_EMPTY, Tag.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.TAG_DESC_FRIEND + TAG_EMPTY + CommandTestUtil.TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, "1" + TAG_EMPTY + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); + + // multiple invalid values, but only the first invalid value is captured + CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.INVALID_EMAIL_DESC + CommandTestUtil.VALID_ADDRESS_AMY + CommandTestUtil.VALID_PHONE_AMY, + Name.MESSAGE_CONSTRAINTS); + } + + @Test + public void parse_allFieldsSpecified_success() { + Index targetIndex = TypicalIndexes.INDEX_SECOND_PERSON; + String userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND + + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND; + + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_AMY) + .withPhone(CommandTestUtil.VALID_PHONE_BOB).withEmail(CommandTestUtil.VALID_EMAIL_AMY).withAddress(CommandTestUtil.VALID_ADDRESS_AMY) + .withTags(CommandTestUtil.VALID_TAG_HUSBAND, CommandTestUtil.VALID_TAG_FRIEND).build(); + EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_someFieldsSpecified_success() { + Index targetIndex = TypicalIndexes.INDEX_FIRST_PERSON; + String userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_AMY; + + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(CommandTestUtil.VALID_PHONE_BOB) + .withEmail(CommandTestUtil.VALID_EMAIL_AMY).build(); + EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_oneFieldSpecified_success() { + // name + Index targetIndex = TypicalIndexes.INDEX_THIRD_PERSON; + String userInput = targetIndex.getOneBased() + CommandTestUtil.NAME_DESC_AMY; + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_AMY).build(); + EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + + // phone + userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_AMY; + descriptor = new EditPersonDescriptorBuilder().withPhone(CommandTestUtil.VALID_PHONE_AMY).build(); + expectedCommand = new EditCommand(targetIndex, descriptor); + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + + // email + userInput = targetIndex.getOneBased() + CommandTestUtil.EMAIL_DESC_AMY; + descriptor = new EditPersonDescriptorBuilder().withEmail(CommandTestUtil.VALID_EMAIL_AMY).build(); + expectedCommand = new EditCommand(targetIndex, descriptor); + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + + // address + userInput = targetIndex.getOneBased() + CommandTestUtil.ADDRESS_DESC_AMY; + descriptor = new EditPersonDescriptorBuilder().withAddress(CommandTestUtil.VALID_ADDRESS_AMY).build(); + expectedCommand = new EditCommand(targetIndex, descriptor); + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + + // tags + userInput = targetIndex.getOneBased() + CommandTestUtil.TAG_DESC_FRIEND; + descriptor = new EditPersonDescriptorBuilder().withTags(CommandTestUtil.VALID_TAG_FRIEND).build(); + expectedCommand = new EditCommand(targetIndex, descriptor); + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + } + + @Test + public void parse_multipleRepeatedFields_failure() { + // More extensive testing of duplicate parameter detections is done in + // AddCommandParserTest#parse_repeatedNonTagValue_failure() + + // valid followed by invalid + Index targetIndex = TypicalIndexes.INDEX_FIRST_PERSON; + String userInput = targetIndex.getOneBased() + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.PHONE_DESC_BOB; + + CommandParserTestUtil.assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + + // invalid followed by valid + userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.INVALID_PHONE_DESC; + + CommandParserTestUtil.assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + + // mulltiple valid fields repeated + userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND; + + CommandParserTestUtil.assertParseFailure(parser, userInput, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE, CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_ADDRESS)); + + // multiple invalid values + userInput = targetIndex.getOneBased() + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.INVALID_ADDRESS_DESC + CommandTestUtil.INVALID_EMAIL_DESC + + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.INVALID_ADDRESS_DESC + CommandTestUtil.INVALID_EMAIL_DESC; + + CommandParserTestUtil.assertParseFailure(parser, userInput, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE, CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_ADDRESS)); + } + + @Test + public void parse_resetTags_success() { + Index targetIndex = TypicalIndexes.INDEX_THIRD_PERSON; + String userInput = targetIndex.getOneBased() + TAG_EMPTY; + + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withTags().build(); + EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); + + CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); + } +} diff --git a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java b/src/test/java/tutorpro/logic/parser/FindCommandParserTest.java similarity index 58% rename from src/test/java/seedu/address/logic/parser/FindCommandParserTest.java rename to src/test/java/tutorpro/logic/parser/FindCommandParserTest.java index d92e64d12f9..968b7c26ac6 100644 --- a/src/test/java/seedu/address/logic/parser/FindCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/FindCommandParserTest.java @@ -1,15 +1,15 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseFailure; -import static seedu.address.logic.parser.CommandParserTestUtil.assertParseSuccess; +import static tutorpro.logic.parser.CommandParserTestUtil.assertParseFailure; +import static tutorpro.logic.parser.CommandParserTestUtil.assertParseSuccess; import java.util.Arrays; import org.junit.jupiter.api.Test; -import seedu.address.logic.commands.FindCommand; -import seedu.address.model.person.NameContainsKeywordsPredicate; +import tutorpro.logic.commands.FindCommand; +import tutorpro.model.person.NameContainsKeywordsPredicate; +import tutorpro.logic.Messages; public class FindCommandParserTest { @@ -17,7 +17,7 @@ public class FindCommandParserTest { @Test public void parse_emptyArg_throwsParseException() { - assertParseFailure(parser, " ", String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + assertParseFailure(parser, " ", String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } @Test diff --git a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java b/src/test/java/tutorpro/logic/parser/ParserUtilTest.java similarity index 93% rename from src/test/java/seedu/address/logic/parser/ParserUtilTest.java rename to src/test/java/tutorpro/logic/parser/ParserUtilTest.java index 4256788b1a7..3c4959bfa49 100644 --- a/src/test/java/seedu/address/logic/parser/ParserUtilTest.java +++ b/src/test/java/tutorpro/logic/parser/ParserUtilTest.java @@ -1,10 +1,10 @@ -package seedu.address.logic.parser; +package tutorpro.logic.parser; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalIndexes.INDEX_FIRST_PERSON; +import static tutorpro.logic.parser.ParserUtil.MESSAGE_INVALID_INDEX; +import static tutorpro.testutil.Assert.assertThrows; +import static tutorpro.testutil.TypicalIndexes.INDEX_FIRST_PERSON; import java.util.Arrays; import java.util.Collections; @@ -13,12 +13,12 @@ import org.junit.jupiter.api.Test; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; public class ParserUtilTest { private static final String INVALID_NAME = "R@chel"; diff --git a/src/test/java/seedu/address/model/AddressBookTest.java b/src/test/java/tutorpro/model/AddressBookTest.java similarity index 61% rename from src/test/java/seedu/address/model/AddressBookTest.java rename to src/test/java/tutorpro/model/AddressBookTest.java index 68c8c5ba4d5..8c3a91adea2 100644 --- a/src/test/java/seedu/address/model/AddressBookTest.java +++ b/src/test/java/tutorpro/model/AddressBookTest.java @@ -1,13 +1,11 @@ -package seedu.address.model; +package tutorpro.model; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collection; @@ -18,9 +16,11 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import seedu.address.model.person.Person; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.testutil.PersonBuilder; +import tutorpro.model.person.Person; +import tutorpro.model.person.exceptions.DuplicatePersonException; +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class AddressBookTest { @@ -33,12 +33,12 @@ public void constructor() { @Test public void resetData_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> addressBook.resetData(null)); + Assert.assertThrows(NullPointerException.class, () -> addressBook.resetData(null)); } @Test public void resetData_withValidReadOnlyAddressBook_replacesData() { - AddressBook newData = getTypicalAddressBook(); + AddressBook newData = TypicalPersons.getTypicalAddressBook(); addressBook.resetData(newData); assertEquals(newData, addressBook); } @@ -46,41 +46,41 @@ public void resetData_withValidReadOnlyAddressBook_replacesData() { @Test public void resetData_withDuplicatePersons_throwsDuplicatePersonException() { // Two persons with the same identity fields - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) .build(); - List newPersons = Arrays.asList(ALICE, editedAlice); + List newPersons = Arrays.asList(TypicalPersons.ALICE, editedAlice); AddressBookStub newData = new AddressBookStub(newPersons); - assertThrows(DuplicatePersonException.class, () -> addressBook.resetData(newData)); + Assert.assertThrows(DuplicatePersonException.class, () -> addressBook.resetData(newData)); } @Test public void hasPerson_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> addressBook.hasPerson(null)); + Assert.assertThrows(NullPointerException.class, () -> addressBook.hasPerson(null)); } @Test public void hasPerson_personNotInAddressBook_returnsFalse() { - assertFalse(addressBook.hasPerson(ALICE)); + assertFalse(addressBook.hasPerson(TypicalPersons.ALICE)); } @Test public void hasPerson_personInAddressBook_returnsTrue() { - addressBook.addPerson(ALICE); - assertTrue(addressBook.hasPerson(ALICE)); + addressBook.addPerson(TypicalPersons.ALICE); + assertTrue(addressBook.hasPerson(TypicalPersons.ALICE)); } @Test public void hasPerson_personWithSameIdentityFieldsInAddressBook_returnsTrue() { - addressBook.addPerson(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) + addressBook.addPerson(TypicalPersons.ALICE); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) .build(); assertTrue(addressBook.hasPerson(editedAlice)); } @Test public void getPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> addressBook.getPersonList().remove(0)); + Assert.assertThrows(UnsupportedOperationException.class, () -> addressBook.getPersonList().remove(0)); } @Test diff --git a/src/test/java/seedu/address/model/ModelManagerTest.java b/src/test/java/tutorpro/model/ModelManagerTest.java similarity index 72% rename from src/test/java/seedu/address/model/ModelManagerTest.java rename to src/test/java/tutorpro/model/ModelManagerTest.java index 2cf1418d116..774d709437a 100644 --- a/src/test/java/seedu/address/model/ModelManagerTest.java +++ b/src/test/java/tutorpro/model/ModelManagerTest.java @@ -1,22 +1,22 @@ -package seedu.address.model; +package tutorpro.model; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BENSON; +import static tutorpro.testutil.Assert.assertThrows; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.commons.core.GuiSettings; -import seedu.address.model.person.NameContainsKeywordsPredicate; -import seedu.address.testutil.AddressBookBuilder; +import tutorpro.commons.core.GuiSettings; +import tutorpro.model.person.NameContainsKeywordsPredicate; +import tutorpro.testutil.AddressBookBuilder; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class ModelManagerTest { @@ -25,13 +25,13 @@ public class ModelManagerTest { @Test public void constructor() { assertEquals(new UserPrefs(), modelManager.getUserPrefs()); - assertEquals(new GuiSettings(), modelManager.getGuiSettings()); + Assertions.assertEquals(new GuiSettings(), modelManager.getGuiSettings()); assertEquals(new AddressBook(), new AddressBook(modelManager.getAddressBook())); } @Test public void setUserPrefs_nullUserPrefs_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> modelManager.setUserPrefs(null)); + Assert.assertThrows(NullPointerException.class, () -> modelManager.setUserPrefs(null)); } @Test @@ -50,19 +50,19 @@ public void setUserPrefs_validUserPrefs_copiesUserPrefs() { @Test public void setGuiSettings_nullGuiSettings_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> modelManager.setGuiSettings(null)); + Assert.assertThrows(NullPointerException.class, () -> modelManager.setGuiSettings(null)); } @Test public void setGuiSettings_validGuiSettings_setsGuiSettings() { GuiSettings guiSettings = new GuiSettings(1, 2, 3, 4); modelManager.setGuiSettings(guiSettings); - assertEquals(guiSettings, modelManager.getGuiSettings()); + Assertions.assertEquals(guiSettings, modelManager.getGuiSettings()); } @Test public void setAddressBookFilePath_nullPath_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> modelManager.setAddressBookFilePath(null)); + Assert.assertThrows(NullPointerException.class, () -> modelManager.setAddressBookFilePath(null)); } @Test @@ -74,28 +74,28 @@ public void setAddressBookFilePath_validPath_setsAddressBookFilePath() { @Test public void hasPerson_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> modelManager.hasPerson(null)); + Assert.assertThrows(NullPointerException.class, () -> modelManager.hasPerson(null)); } @Test public void hasPerson_personNotInAddressBook_returnsFalse() { - assertFalse(modelManager.hasPerson(ALICE)); + assertFalse(modelManager.hasPerson(TypicalPersons.ALICE)); } @Test public void hasPerson_personInAddressBook_returnsTrue() { - modelManager.addPerson(ALICE); - assertTrue(modelManager.hasPerson(ALICE)); + modelManager.addPerson(TypicalPersons.ALICE); + assertTrue(modelManager.hasPerson(TypicalPersons.ALICE)); } @Test public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () -> modelManager.getFilteredPersonList().remove(0)); + Assert.assertThrows(UnsupportedOperationException.class, () -> modelManager.getFilteredPersonList().remove(0)); } @Test public void equals() { - AddressBook addressBook = new AddressBookBuilder().withPerson(ALICE).withPerson(BENSON).build(); + AddressBook addressBook = new AddressBookBuilder().withPerson(TypicalPersons.ALICE).withPerson(TypicalPersons.BENSON).build(); AddressBook differentAddressBook = new AddressBook(); UserPrefs userPrefs = new UserPrefs(); @@ -117,12 +117,12 @@ public void equals() { assertFalse(modelManager.equals(new ModelManager(differentAddressBook, userPrefs))); // different filteredList -> returns false - String[] keywords = ALICE.getName().fullName.split("\\s+"); + String[] keywords = TypicalPersons.ALICE.getName().fullName.split("\\s+"); modelManager.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(keywords))); assertFalse(modelManager.equals(new ModelManager(addressBook, userPrefs))); // resets modelManager to initial state for upcoming tests - modelManager.updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); + modelManager.updateFilteredPersonList(Model.PREDICATE_SHOW_ALL_PERSONS); // different userPrefs -> returns false UserPrefs differentUserPrefs = new UserPrefs(); diff --git a/src/test/java/seedu/address/model/UserPrefsTest.java b/src/test/java/tutorpro/model/UserPrefsTest.java similarity index 53% rename from src/test/java/seedu/address/model/UserPrefsTest.java rename to src/test/java/tutorpro/model/UserPrefsTest.java index b1307a70d52..b9c355ece49 100644 --- a/src/test/java/seedu/address/model/UserPrefsTest.java +++ b/src/test/java/tutorpro/model/UserPrefsTest.java @@ -1,21 +1,22 @@ -package seedu.address.model; +package tutorpro.model; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class UserPrefsTest { @Test public void setGuiSettings_nullGuiSettings_throwsNullPointerException() { UserPrefs userPref = new UserPrefs(); - assertThrows(NullPointerException.class, () -> userPref.setGuiSettings(null)); + Assert.assertThrows(NullPointerException.class, () -> userPref.setGuiSettings(null)); } @Test public void setAddressBookFilePath_nullPath_throwsNullPointerException() { UserPrefs userPrefs = new UserPrefs(); - assertThrows(NullPointerException.class, () -> userPrefs.setAddressBookFilePath(null)); + Assert.assertThrows(NullPointerException.class, () -> userPrefs.setAddressBookFilePath(null)); } } diff --git a/src/test/java/seedu/address/model/person/AddressTest.java b/src/test/java/tutorpro/model/person/AddressTest.java similarity index 79% rename from src/test/java/seedu/address/model/person/AddressTest.java rename to src/test/java/tutorpro/model/person/AddressTest.java index 314885eca26..5bae81dea3a 100644 --- a/src/test/java/seedu/address/model/person/AddressTest.java +++ b/src/test/java/tutorpro/model/person/AddressTest.java @@ -1,28 +1,29 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class AddressTest { @Test public void constructor_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new Address(null)); + Assert.assertThrows(NullPointerException.class, () -> new Address(null)); } @Test public void constructor_invalidAddress_throwsIllegalArgumentException() { String invalidAddress = ""; - assertThrows(IllegalArgumentException.class, () -> new Address(invalidAddress)); + Assert.assertThrows(IllegalArgumentException.class, () -> new Address(invalidAddress)); } @Test public void isValidAddress() { // null address - assertThrows(NullPointerException.class, () -> Address.isValidAddress(null)); + Assert.assertThrows(NullPointerException.class, () -> Address.isValidAddress(null)); // invalid addresses assertFalse(Address.isValidAddress("")); // empty string diff --git a/src/test/java/seedu/address/model/person/EmailTest.java b/src/test/java/tutorpro/model/person/EmailTest.java similarity index 91% rename from src/test/java/seedu/address/model/person/EmailTest.java rename to src/test/java/tutorpro/model/person/EmailTest.java index f08cdff0a64..7a4266d2a2d 100644 --- a/src/test/java/seedu/address/model/person/EmailTest.java +++ b/src/test/java/tutorpro/model/person/EmailTest.java @@ -1,28 +1,29 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class EmailTest { @Test public void constructor_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new Email(null)); + Assert.assertThrows(NullPointerException.class, () -> new Email(null)); } @Test public void constructor_invalidEmail_throwsIllegalArgumentException() { String invalidEmail = ""; - assertThrows(IllegalArgumentException.class, () -> new Email(invalidEmail)); + Assert.assertThrows(IllegalArgumentException.class, () -> new Email(invalidEmail)); } @Test public void isValidEmail() { // null email - assertThrows(NullPointerException.class, () -> Email.isValidEmail(null)); + Assert.assertThrows(NullPointerException.class, () -> Email.isValidEmail(null)); // blank email assertFalse(Email.isValidEmail("")); // empty string diff --git a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java similarity index 97% rename from src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java rename to src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java index 6b3fd90ade7..d7c46ad378a 100644 --- a/src/test/java/seedu/address/model/person/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java @@ -1,4 +1,4 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test; -import seedu.address.testutil.PersonBuilder; +import tutorpro.testutil.PersonBuilder; public class NameContainsKeywordsPredicateTest { diff --git a/src/test/java/seedu/address/model/person/NameTest.java b/src/test/java/tutorpro/model/person/NameTest.java similarity index 82% rename from src/test/java/seedu/address/model/person/NameTest.java rename to src/test/java/tutorpro/model/person/NameTest.java index 94e3dd726bd..5abf8056a26 100644 --- a/src/test/java/seedu/address/model/person/NameTest.java +++ b/src/test/java/tutorpro/model/person/NameTest.java @@ -1,28 +1,29 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class NameTest { @Test public void constructor_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new Name(null)); + Assert.assertThrows(NullPointerException.class, () -> new Name(null)); } @Test public void constructor_invalidName_throwsIllegalArgumentException() { String invalidName = ""; - assertThrows(IllegalArgumentException.class, () -> new Name(invalidName)); + Assert.assertThrows(IllegalArgumentException.class, () -> new Name(invalidName)); } @Test public void isValidName() { // null name - assertThrows(NullPointerException.class, () -> Name.isValidName(null)); + Assert.assertThrows(NullPointerException.class, () -> Name.isValidName(null)); // invalid name assertFalse(Name.isValidName("")); // empty string diff --git a/src/test/java/tutorpro/model/person/PersonTest.java b/src/test/java/tutorpro/model/person/PersonTest.java new file mode 100644 index 00000000000..5b8499904cb --- /dev/null +++ b/src/test/java/tutorpro/model/person/PersonTest.java @@ -0,0 +1,100 @@ +package tutorpro.model.person; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static tutorpro.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; + +public class PersonTest { + + @Test + public void asObservableList_modifyList_throwsUnsupportedOperationException() { + Person person = new PersonBuilder().build(); + Assert.assertThrows(UnsupportedOperationException.class, () -> person.getTags().remove(0)); + } + + @Test + public void isSamePerson() { + // same object -> returns true + Assertions.assertTrue(TypicalPersons.ALICE.isSamePerson(TypicalPersons.ALICE)); + + // null -> returns false + Assertions.assertFalse(TypicalPersons.ALICE.isSamePerson(null)); + + // same name, all other attributes different -> returns true + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) + .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); + Assertions.assertTrue(TypicalPersons.ALICE.isSamePerson(editedAlice)); + + // different name, all other attributes same -> returns false + editedAlice = new PersonBuilder(TypicalPersons.ALICE).withName(VALID_NAME_BOB).build(); + Assertions.assertFalse(TypicalPersons.ALICE.isSamePerson(editedAlice)); + + // name differs in case, all other attributes same -> returns false + Person editedBob = new PersonBuilder(TypicalPersons.BOB).withName(VALID_NAME_BOB.toLowerCase()).build(); + Assertions.assertFalse(TypicalPersons.BOB.isSamePerson(editedBob)); + + // name has trailing spaces, all other attributes same -> returns false + String nameWithTrailingSpaces = VALID_NAME_BOB + " "; + editedBob = new PersonBuilder(TypicalPersons.BOB).withName(nameWithTrailingSpaces).build(); + Assertions.assertFalse(TypicalPersons.BOB.isSamePerson(editedBob)); + } + + @Test + public void equals() { + // same values -> returns true + Person aliceCopy = new PersonBuilder(TypicalPersons.ALICE).build(); + Assertions.assertTrue(TypicalPersons.ALICE.equals(aliceCopy)); + + // same object -> returns true + Assertions.assertTrue(TypicalPersons.ALICE.equals(TypicalPersons.ALICE)); + + // null -> returns false + Assertions.assertFalse(TypicalPersons.ALICE.equals(null)); + + // different type -> returns false + Assertions.assertFalse(TypicalPersons.ALICE.equals(5)); + + // different person -> returns false + Assertions.assertFalse(TypicalPersons.ALICE.equals(TypicalPersons.BOB)); + + // different name -> returns false + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withName(VALID_NAME_BOB).build(); + Assertions.assertFalse(TypicalPersons.ALICE.equals(editedAlice)); + + // different phone -> returns false + editedAlice = new PersonBuilder(TypicalPersons.ALICE).withPhone(VALID_PHONE_BOB).build(); + Assertions.assertFalse(TypicalPersons.ALICE.equals(editedAlice)); + + // different email -> returns false + editedAlice = new PersonBuilder(TypicalPersons.ALICE).withEmail(VALID_EMAIL_BOB).build(); + Assertions.assertFalse(TypicalPersons.ALICE.equals(editedAlice)); + + // different address -> returns false + editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).build(); + Assertions.assertFalse(TypicalPersons.ALICE.equals(editedAlice)); + + // different tags -> returns false + editedAlice = new PersonBuilder(TypicalPersons.ALICE).withTags(VALID_TAG_HUSBAND).build(); + Assertions.assertFalse(TypicalPersons.ALICE.equals(editedAlice)); + } + + @Test + public void toStringMethod() { + String expected = Person.class.getCanonicalName() + "{name=" + TypicalPersons.ALICE.getName() + ", phone=" + TypicalPersons.ALICE.getPhone() + + ", email=" + TypicalPersons.ALICE.getEmail() + ", address=" + TypicalPersons.ALICE.getAddress() + ", tags=" + TypicalPersons.ALICE.getTags() + "}"; + Assertions.assertEquals(expected, TypicalPersons.ALICE.toString()); + } +} diff --git a/src/test/java/seedu/address/model/person/PhoneTest.java b/src/test/java/tutorpro/model/person/PhoneTest.java similarity index 81% rename from src/test/java/seedu/address/model/person/PhoneTest.java rename to src/test/java/tutorpro/model/person/PhoneTest.java index deaaa5ba190..d138e2fbf28 100644 --- a/src/test/java/seedu/address/model/person/PhoneTest.java +++ b/src/test/java/tutorpro/model/person/PhoneTest.java @@ -1,28 +1,29 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; public class PhoneTest { @Test public void constructor_null_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> new Phone(null)); + Assert.assertThrows(NullPointerException.class, () -> new Phone(null)); } @Test public void constructor_invalidPhone_throwsIllegalArgumentException() { String invalidPhone = ""; - assertThrows(IllegalArgumentException.class, () -> new Phone(invalidPhone)); + Assert.assertThrows(IllegalArgumentException.class, () -> new Phone(invalidPhone)); } @Test public void isValidPhone() { // null phone number - assertThrows(NullPointerException.class, () -> Phone.isValidPhone(null)); + Assert.assertThrows(NullPointerException.class, () -> Phone.isValidPhone(null)); // invalid phone numbers assertFalse(Phone.isValidPhone("")); // empty string diff --git a/src/test/java/seedu/address/model/person/UniquePersonListTest.java b/src/test/java/tutorpro/model/person/UniquePersonListTest.java similarity index 51% rename from src/test/java/seedu/address/model/person/UniquePersonListTest.java rename to src/test/java/tutorpro/model/person/UniquePersonListTest.java index 17ae501df08..fcff6485826 100644 --- a/src/test/java/seedu/address/model/person/UniquePersonListTest.java +++ b/src/test/java/tutorpro/model/person/UniquePersonListTest.java @@ -1,13 +1,11 @@ -package seedu.address.model.person; +package tutorpro.model.person; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collections; @@ -15,9 +13,11 @@ import org.junit.jupiter.api.Test; -import seedu.address.model.person.exceptions.DuplicatePersonException; -import seedu.address.model.person.exceptions.PersonNotFoundException; -import seedu.address.testutil.PersonBuilder; +import tutorpro.model.person.exceptions.DuplicatePersonException; +import tutorpro.model.person.exceptions.PersonNotFoundException; +import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class UniquePersonListTest { @@ -25,69 +25,69 @@ public class UniquePersonListTest { @Test public void contains_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.contains(null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.contains(null)); } @Test public void contains_personNotInList_returnsFalse() { - assertFalse(uniquePersonList.contains(ALICE)); + assertFalse(uniquePersonList.contains(TypicalPersons.ALICE)); } @Test public void contains_personInList_returnsTrue() { - uniquePersonList.add(ALICE); - assertTrue(uniquePersonList.contains(ALICE)); + uniquePersonList.add(TypicalPersons.ALICE); + assertTrue(uniquePersonList.contains(TypicalPersons.ALICE)); } @Test public void contains_personWithSameIdentityFieldsInList_returnsTrue() { - uniquePersonList.add(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) + uniquePersonList.add(TypicalPersons.ALICE); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) .build(); assertTrue(uniquePersonList.contains(editedAlice)); } @Test public void add_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.add(null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.add(null)); } @Test public void add_duplicatePerson_throwsDuplicatePersonException() { - uniquePersonList.add(ALICE); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.add(ALICE)); + uniquePersonList.add(TypicalPersons.ALICE); + Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.add(TypicalPersons.ALICE)); } @Test public void setPerson_nullTargetPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(null, ALICE)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(null, TypicalPersons.ALICE)); } @Test public void setPerson_nullEditedPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(ALICE, null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(TypicalPersons.ALICE, null)); } @Test public void setPerson_targetPersonNotInList_throwsPersonNotFoundException() { - assertThrows(PersonNotFoundException.class, () -> uniquePersonList.setPerson(ALICE, ALICE)); + Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.ALICE)); } @Test public void setPerson_editedPersonIsSamePerson_success() { - uniquePersonList.add(ALICE); - uniquePersonList.setPerson(ALICE, ALICE); + uniquePersonList.add(TypicalPersons.ALICE); + uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.ALICE); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(ALICE); + expectedUniquePersonList.add(TypicalPersons.ALICE); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPerson_editedPersonHasSameIdentity_success() { - uniquePersonList.add(ALICE); - Person editedAlice = new PersonBuilder(ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) + uniquePersonList.add(TypicalPersons.ALICE); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) .build(); - uniquePersonList.setPerson(ALICE, editedAlice); + uniquePersonList.setPerson(TypicalPersons.ALICE, editedAlice); UniquePersonList expectedUniquePersonList = new UniquePersonList(); expectedUniquePersonList.add(editedAlice); assertEquals(expectedUniquePersonList, uniquePersonList); @@ -95,76 +95,76 @@ public void setPerson_editedPersonHasSameIdentity_success() { @Test public void setPerson_editedPersonHasDifferentIdentity_success() { - uniquePersonList.add(ALICE); - uniquePersonList.setPerson(ALICE, BOB); + uniquePersonList.add(TypicalPersons.ALICE); + uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.BOB); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(BOB); + expectedUniquePersonList.add(TypicalPersons.BOB); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPerson_editedPersonHasNonUniqueIdentity_throwsDuplicatePersonException() { - uniquePersonList.add(ALICE); - uniquePersonList.add(BOB); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPerson(ALICE, BOB)); + uniquePersonList.add(TypicalPersons.ALICE); + uniquePersonList.add(TypicalPersons.BOB); + Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.BOB)); } @Test public void remove_nullPerson_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.remove(null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.remove(null)); } @Test public void remove_personDoesNotExist_throwsPersonNotFoundException() { - assertThrows(PersonNotFoundException.class, () -> uniquePersonList.remove(ALICE)); + Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList.remove(TypicalPersons.ALICE)); } @Test public void remove_existingPerson_removesPerson() { - uniquePersonList.add(ALICE); - uniquePersonList.remove(ALICE); + uniquePersonList.add(TypicalPersons.ALICE); + uniquePersonList.remove(TypicalPersons.ALICE); UniquePersonList expectedUniquePersonList = new UniquePersonList(); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPersons_nullUniquePersonList_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((UniquePersonList) null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((UniquePersonList) null)); } @Test public void setPersons_uniquePersonList_replacesOwnListWithProvidedUniquePersonList() { - uniquePersonList.add(ALICE); + uniquePersonList.add(TypicalPersons.ALICE); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(BOB); + expectedUniquePersonList.add(TypicalPersons.BOB); uniquePersonList.setPersons(expectedUniquePersonList); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPersons_nullList_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); } @Test public void setPersons_list_replacesOwnListWithProvidedList() { - uniquePersonList.add(ALICE); - List personList = Collections.singletonList(BOB); + uniquePersonList.add(TypicalPersons.ALICE); + List personList = Collections.singletonList(TypicalPersons.BOB); uniquePersonList.setPersons(personList); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(BOB); + expectedUniquePersonList.add(TypicalPersons.BOB); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPersons_listWithDuplicatePersons_throwsDuplicatePersonException() { - List listWithDuplicatePersons = Arrays.asList(ALICE, ALICE); - assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPersons(listWithDuplicatePersons)); + List listWithDuplicatePersons = Arrays.asList(TypicalPersons.ALICE, TypicalPersons.ALICE); + Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPersons(listWithDuplicatePersons)); } @Test public void asUnmodifiableObservableList_modifyList_throwsUnsupportedOperationException() { - assertThrows(UnsupportedOperationException.class, () + Assert.assertThrows(UnsupportedOperationException.class, () -> uniquePersonList.asUnmodifiableObservableList().remove(0)); } diff --git a/src/test/java/tutorpro/model/tag/TagTest.java b/src/test/java/tutorpro/model/tag/TagTest.java new file mode 100644 index 00000000000..543f6ca5119 --- /dev/null +++ b/src/test/java/tutorpro/model/tag/TagTest.java @@ -0,0 +1,27 @@ +package tutorpro.model.tag; + +import static tutorpro.testutil.Assert.assertThrows; + +import org.junit.jupiter.api.Test; +import tutorpro.testutil.Assert; + +public class TagTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Tag(null)); + } + + @Test + public void constructor_invalidTagName_throwsIllegalArgumentException() { + String invalidTagName = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Tag(invalidTagName)); + } + + @Test + public void isValidTagName() { + // null tag name + Assert.assertThrows(NullPointerException.class, () -> Tag.isValidTagName(null)); + } + +} diff --git a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java b/src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java similarity index 56% rename from src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java rename to src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java index 83b11331cdb..1cdd907c735 100644 --- a/src/test/java/seedu/address/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java @@ -1,21 +1,22 @@ -package seedu.address.storage; +package tutorpro.storage; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.storage.JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.BENSON; +import static tutorpro.testutil.Assert.assertThrows; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Phone; +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class JsonAdaptedPersonTest { private static final String INVALID_NAME = "R@chel"; @@ -24,18 +25,18 @@ public class JsonAdaptedPersonTest { private static final String INVALID_EMAIL = "example.com"; private static final String INVALID_TAG = "#friend"; - private static final String VALID_NAME = BENSON.getName().toString(); - private static final String VALID_PHONE = BENSON.getPhone().toString(); - private static final String VALID_EMAIL = BENSON.getEmail().toString(); - private static final String VALID_ADDRESS = BENSON.getAddress().toString(); - private static final List VALID_TAGS = BENSON.getTags().stream() + private static final String VALID_NAME = TypicalPersons.BENSON.getName().toString(); + private static final String VALID_PHONE = TypicalPersons.BENSON.getPhone().toString(); + private static final String VALID_EMAIL = TypicalPersons.BENSON.getEmail().toString(); + private static final String VALID_ADDRESS = TypicalPersons.BENSON.getAddress().toString(); + private static final List VALID_TAGS = TypicalPersons.BENSON.getTags().stream() .map(JsonAdaptedTag::new) .collect(Collectors.toList()); @Test public void toModelType_validPersonDetails_returnsPerson() throws Exception { - JsonAdaptedPerson person = new JsonAdaptedPerson(BENSON); - assertEquals(BENSON, person.toModelType()); + JsonAdaptedPerson person = new JsonAdaptedPerson(TypicalPersons.BENSON); + Assertions.assertEquals(TypicalPersons.BENSON, person.toModelType()); } @Test @@ -43,14 +44,14 @@ public void toModelType_invalidName_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Name.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullName_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test @@ -58,14 +59,14 @@ public void toModelType_invalidPhone_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Phone.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullPhone_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test @@ -73,14 +74,14 @@ public void toModelType_invalidEmail_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, VALID_TAGS); String expectedMessage = Email.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullEmail_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test @@ -88,14 +89,14 @@ public void toModelType_invalidAddress_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, VALID_TAGS); String expectedMessage = Address.MESSAGE_CONSTRAINTS; - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test public void toModelType_nullAddress_throwsIllegalValueException() { JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); - String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); - assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @Test @@ -104,7 +105,7 @@ public void toModelType_invalidTags_throwsIllegalValueException() { invalidTags.add(new JsonAdaptedTag(INVALID_TAG)); JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, invalidTags); - assertThrows(IllegalValueException.class, person::toModelType); + Assert.assertThrows(IllegalValueException.class, person::toModelType); } } diff --git a/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java b/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java similarity index 72% rename from src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java rename to src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java index 4e5ce9200c8..4536eb07a03 100644 --- a/src/test/java/seedu/address/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java @@ -1,12 +1,8 @@ -package seedu.address.storage; +package tutorpro.storage; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static seedu.address.testutil.Assert.assertThrows; -import static seedu.address.testutil.TypicalPersons.ALICE; -import static seedu.address.testutil.TypicalPersons.HOON; -import static seedu.address.testutil.TypicalPersons.IDA; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; +import static tutorpro.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -15,9 +11,11 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.model.AddressBook; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class JsonAddressBookStorageTest { private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); @@ -27,7 +25,7 @@ public class JsonAddressBookStorageTest { @Test public void readAddressBook_nullFilePath_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> readAddressBook(null)); + Assert.assertThrows(NullPointerException.class, () -> readAddressBook(null)); } private java.util.Optional readAddressBook(String filePath) throws Exception { @@ -47,23 +45,23 @@ public void read_missingFile_emptyResult() throws Exception { @Test public void read_notJsonFormat_exceptionThrown() { - assertThrows(DataLoadingException.class, () -> readAddressBook("notJsonFormatAddressBook.json")); + Assert.assertThrows(DataLoadingException.class, () -> readAddressBook("notJsonFormatAddressBook.json")); } @Test public void readAddressBook_invalidPersonAddressBook_throwDataLoadingException() { - assertThrows(DataLoadingException.class, () -> readAddressBook("invalidPersonAddressBook.json")); + Assert.assertThrows(DataLoadingException.class, () -> readAddressBook("invalidPersonAddressBook.json")); } @Test public void readAddressBook_invalidAndValidPersonAddressBook_throwDataLoadingException() { - assertThrows(DataLoadingException.class, () -> readAddressBook("invalidAndValidPersonAddressBook.json")); + Assert.assertThrows(DataLoadingException.class, () -> readAddressBook("invalidAndValidPersonAddressBook.json")); } @Test public void readAndSaveAddressBook_allInOrder_success() throws Exception { Path filePath = testFolder.resolve("TempAddressBook.json"); - AddressBook original = getTypicalAddressBook(); + AddressBook original = TypicalPersons.getTypicalAddressBook(); JsonAddressBookStorage jsonAddressBookStorage = new JsonAddressBookStorage(filePath); // Save in new file and read back @@ -72,14 +70,14 @@ public void readAndSaveAddressBook_allInOrder_success() throws Exception { assertEquals(original, new AddressBook(readBack)); // Modify data, overwrite exiting file, and read back - original.addPerson(HOON); - original.removePerson(ALICE); + original.addPerson(TypicalPersons.HOON); + original.removePerson(TypicalPersons.ALICE); jsonAddressBookStorage.saveAddressBook(original, filePath); readBack = jsonAddressBookStorage.readAddressBook(filePath).get(); assertEquals(original, new AddressBook(readBack)); // Save and read without specifying file path - original.addPerson(IDA); + original.addPerson(TypicalPersons.IDA); jsonAddressBookStorage.saveAddressBook(original); // file path not specified readBack = jsonAddressBookStorage.readAddressBook().get(); // file path not specified assertEquals(original, new AddressBook(readBack)); @@ -88,7 +86,7 @@ public void readAndSaveAddressBook_allInOrder_success() throws Exception { @Test public void saveAddressBook_nullAddressBook_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> saveAddressBook(null, "SomeFile.json")); + Assert.assertThrows(NullPointerException.class, () -> saveAddressBook(null, "SomeFile.json")); } /** @@ -105,6 +103,6 @@ private void saveAddressBook(ReadOnlyAddressBook addressBook, String filePath) { @Test public void saveAddressBook_nullFilePath_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> saveAddressBook(new AddressBook(), null)); + Assert.assertThrows(NullPointerException.class, () -> saveAddressBook(new AddressBook(), null)); } } diff --git a/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java b/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java similarity index 78% rename from src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java rename to src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java index 188c9058d20..44df46a9e36 100644 --- a/src/test/java/seedu/address/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java @@ -1,17 +1,18 @@ -package seedu.address.storage; +package tutorpro.storage; import static org.junit.jupiter.api.Assertions.assertEquals; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import java.nio.file.Path; import java.nio.file.Paths; import org.junit.jupiter.api.Test; -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.commons.util.JsonUtil; -import seedu.address.model.AddressBook; -import seedu.address.testutil.TypicalPersons; +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.commons.util.JsonUtil; +import tutorpro.model.AddressBook; +import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.Assert; public class JsonSerializableAddressBookTest { @@ -33,14 +34,14 @@ public void toModelType_typicalPersonsFile_success() throws Exception { public void toModelType_invalidPersonFile_throwsIllegalValueException() throws Exception { JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(INVALID_PERSON_FILE, JsonSerializableAddressBook.class).get(); - assertThrows(IllegalValueException.class, dataFromFile::toModelType); + Assert.assertThrows(IllegalValueException.class, dataFromFile::toModelType); } @Test public void toModelType_duplicatePersons_throwsIllegalValueException() throws Exception { JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(DUPLICATE_PERSON_FILE, JsonSerializableAddressBook.class).get(); - assertThrows(IllegalValueException.class, JsonSerializableAddressBook.MESSAGE_DUPLICATE_PERSON, + Assert.assertThrows(IllegalValueException.class, JsonSerializableAddressBook.MESSAGE_DUPLICATE_PERSON, dataFromFile::toModelType); } diff --git a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java b/src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java similarity index 86% rename from src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java rename to src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java index ed0a413526a..35c38ecdaba 100644 --- a/src/test/java/seedu/address/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java @@ -1,8 +1,8 @@ -package seedu.address.storage; +package tutorpro.storage; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -12,9 +12,10 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.core.GuiSettings; -import seedu.address.commons.exceptions.DataLoadingException; -import seedu.address.model.UserPrefs; +import tutorpro.commons.core.GuiSettings; +import tutorpro.commons.exceptions.DataLoadingException; +import tutorpro.model.UserPrefs; +import tutorpro.testutil.Assert; public class JsonUserPrefsStorageTest { @@ -25,7 +26,7 @@ public class JsonUserPrefsStorageTest { @Test public void readUserPrefs_nullFilePath_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> readUserPrefs(null)); + Assert.assertThrows(NullPointerException.class, () -> readUserPrefs(null)); } private Optional readUserPrefs(String userPrefsFileInTestDataFolder) throws DataLoadingException { @@ -40,7 +41,7 @@ public void readUserPrefs_missingFile_emptyResult() throws DataLoadingException @Test public void readUserPrefs_notJsonFormat_exceptionThrown() { - assertThrows(DataLoadingException.class, () -> readUserPrefs("NotJsonFormatUserPrefs.json")); + Assert.assertThrows(DataLoadingException.class, () -> readUserPrefs("NotJsonFormatUserPrefs.json")); } private Path addToTestDataPathIfNotNull(String userPrefsFileInTestDataFolder) { @@ -79,12 +80,12 @@ private UserPrefs getTypicalUserPrefs() { @Test public void savePrefs_nullPrefs_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> saveUserPrefs(null, "SomeFile.json")); + Assert.assertThrows(NullPointerException.class, () -> saveUserPrefs(null, "SomeFile.json")); } @Test public void saveUserPrefs_nullFilePath_throwsNullPointerException() { - assertThrows(NullPointerException.class, () -> saveUserPrefs(new UserPrefs(), null)); + Assert.assertThrows(NullPointerException.class, () -> saveUserPrefs(new UserPrefs(), null)); } /** diff --git a/src/test/java/seedu/address/storage/StorageManagerTest.java b/src/test/java/tutorpro/storage/StorageManagerTest.java similarity index 86% rename from src/test/java/seedu/address/storage/StorageManagerTest.java rename to src/test/java/tutorpro/storage/StorageManagerTest.java index 99a16548970..18b47bff097 100644 --- a/src/test/java/seedu/address/storage/StorageManagerTest.java +++ b/src/test/java/tutorpro/storage/StorageManagerTest.java @@ -1,8 +1,7 @@ -package seedu.address.storage; +package tutorpro.storage; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.TypicalPersons.getTypicalAddressBook; import java.nio.file.Path; @@ -10,10 +9,11 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import seedu.address.commons.core.GuiSettings; -import seedu.address.model.AddressBook; -import seedu.address.model.ReadOnlyAddressBook; -import seedu.address.model.UserPrefs; +import tutorpro.commons.core.GuiSettings; +import tutorpro.model.AddressBook; +import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.UserPrefs; +import tutorpro.testutil.TypicalPersons; public class StorageManagerTest { @@ -54,7 +54,7 @@ public void addressBookReadSave() throws Exception { * {@link JsonAddressBookStorage} class. * More extensive testing of UserPref saving/reading is done in {@link JsonAddressBookStorageTest} class. */ - AddressBook original = getTypicalAddressBook(); + AddressBook original = TypicalPersons.getTypicalAddressBook(); storageManager.saveAddressBook(original); ReadOnlyAddressBook retrieved = storageManager.readAddressBook().get(); assertEquals(original, new AddressBook(retrieved)); diff --git a/src/test/java/seedu/address/testutil/AddressBookBuilder.java b/src/test/java/tutorpro/testutil/AddressBookBuilder.java similarity index 86% rename from src/test/java/seedu/address/testutil/AddressBookBuilder.java rename to src/test/java/tutorpro/testutil/AddressBookBuilder.java index d53799fd110..c4d882c93c2 100644 --- a/src/test/java/seedu/address/testutil/AddressBookBuilder.java +++ b/src/test/java/tutorpro/testutil/AddressBookBuilder.java @@ -1,7 +1,7 @@ -package seedu.address.testutil; +package tutorpro.testutil; -import seedu.address.model.AddressBook; -import seedu.address.model.person.Person; +import tutorpro.model.AddressBook; +import tutorpro.model.person.Person; /** * A utility class to help with building Addressbook objects. diff --git a/src/test/java/seedu/address/testutil/Assert.java b/src/test/java/tutorpro/testutil/Assert.java similarity index 97% rename from src/test/java/seedu/address/testutil/Assert.java rename to src/test/java/tutorpro/testutil/Assert.java index 9863093bd6e..66d8b640a64 100644 --- a/src/test/java/seedu/address/testutil/Assert.java +++ b/src/test/java/tutorpro/testutil/Assert.java @@ -1,4 +1,4 @@ -package seedu.address.testutil; +package tutorpro.testutil; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.function.Executable; diff --git a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java b/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java similarity index 75% rename from src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java rename to src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java index 4584bd5044e..64fc39998b3 100644 --- a/src/test/java/seedu/address/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java @@ -1,37 +1,37 @@ -package seedu.address.testutil; +package tutorpro.testutil; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import seedu.address.logic.commands.EditCommand.EditPersonDescriptor; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; +import tutorpro.logic.commands.EditCommand; /** * A utility class to help with building EditPersonDescriptor objects. */ public class EditPersonDescriptorBuilder { - private EditPersonDescriptor descriptor; + private EditCommand.EditPersonDescriptor descriptor; public EditPersonDescriptorBuilder() { - descriptor = new EditPersonDescriptor(); + descriptor = new EditCommand.EditPersonDescriptor(); } - public EditPersonDescriptorBuilder(EditPersonDescriptor descriptor) { - this.descriptor = new EditPersonDescriptor(descriptor); + public EditPersonDescriptorBuilder(EditCommand.EditPersonDescriptor descriptor) { + this.descriptor = new EditCommand.EditPersonDescriptor(descriptor); } /** * Returns an {@code EditPersonDescriptor} with fields containing {@code person}'s details */ public EditPersonDescriptorBuilder(Person person) { - descriptor = new EditPersonDescriptor(); + descriptor = new EditCommand.EditPersonDescriptor(); descriptor.setName(person.getName()); descriptor.setPhone(person.getPhone()); descriptor.setEmail(person.getEmail()); @@ -81,7 +81,7 @@ public EditPersonDescriptorBuilder withTags(String... tags) { return this; } - public EditPersonDescriptor build() { + public EditCommand.EditPersonDescriptor build() { return descriptor; } } diff --git a/src/test/java/seedu/address/testutil/PersonBuilder.java b/src/test/java/tutorpro/testutil/PersonBuilder.java similarity index 88% rename from src/test/java/seedu/address/testutil/PersonBuilder.java rename to src/test/java/tutorpro/testutil/PersonBuilder.java index 6be381d39ba..2ba7f298249 100644 --- a/src/test/java/seedu/address/testutil/PersonBuilder.java +++ b/src/test/java/tutorpro/testutil/PersonBuilder.java @@ -1,15 +1,15 @@ -package seedu.address.testutil; +package tutorpro.testutil; import java.util.HashSet; import java.util.Set; -import seedu.address.model.person.Address; -import seedu.address.model.person.Email; -import seedu.address.model.person.Name; -import seedu.address.model.person.Person; -import seedu.address.model.person.Phone; -import seedu.address.model.tag.Tag; -import seedu.address.model.util.SampleDataUtil; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; +import tutorpro.model.util.SampleDataUtil; /** * A utility class to help with building Person objects. diff --git a/src/test/java/tutorpro/testutil/PersonUtil.java b/src/test/java/tutorpro/testutil/PersonUtil.java new file mode 100644 index 00000000000..af34f1f1066 --- /dev/null +++ b/src/test/java/tutorpro/testutil/PersonUtil.java @@ -0,0 +1,57 @@ +package tutorpro.testutil; + +import java.util.Set; + +import tutorpro.logic.commands.AddCommand; +import tutorpro.model.person.Person; +import tutorpro.model.tag.Tag; +import tutorpro.logic.commands.EditCommand; +import tutorpro.logic.parser.CliSyntax; + +/** + * A utility class for Person. + */ +public class PersonUtil { + + /** + * Returns an add command string for adding the {@code person}. + */ + public static String getAddCommand(Person person) { + return AddCommand.COMMAND_WORD + " " + getPersonDetails(person); + } + + /** + * Returns the part of command string for the given {@code person}'s details. + */ + public static String getPersonDetails(Person person) { + StringBuilder sb = new StringBuilder(); + sb.append(CliSyntax.PREFIX_NAME + person.getName().fullName + " "); + sb.append(CliSyntax.PREFIX_PHONE + person.getPhone().value + " "); + sb.append(CliSyntax.PREFIX_EMAIL + person.getEmail().value + " "); + sb.append(CliSyntax.PREFIX_ADDRESS + person.getAddress().value + " "); + person.getTags().stream().forEach( + s -> sb.append(CliSyntax.PREFIX_TAG + s.tagName + " ") + ); + return sb.toString(); + } + + /** + * Returns the part of command string for the given {@code EditPersonDescriptor}'s details. + */ + public static String getEditPersonDescriptorDetails(EditCommand.EditPersonDescriptor descriptor) { + StringBuilder sb = new StringBuilder(); + descriptor.getName().ifPresent(name -> sb.append(CliSyntax.PREFIX_NAME).append(name.fullName).append(" ")); + descriptor.getPhone().ifPresent(phone -> sb.append(CliSyntax.PREFIX_PHONE).append(phone.value).append(" ")); + descriptor.getEmail().ifPresent(email -> sb.append(CliSyntax.PREFIX_EMAIL).append(email.value).append(" ")); + descriptor.getAddress().ifPresent(address -> sb.append(CliSyntax.PREFIX_ADDRESS).append(address.value).append(" ")); + if (descriptor.getTags().isPresent()) { + Set tags = descriptor.getTags().get(); + if (tags.isEmpty()) { + sb.append(CliSyntax.PREFIX_TAG); + } else { + tags.forEach(s -> sb.append(CliSyntax.PREFIX_TAG).append(s.tagName).append(" ")); + } + } + return sb.toString(); + } +} diff --git a/src/test/java/seedu/address/testutil/SerializableTestClass.java b/src/test/java/tutorpro/testutil/SerializableTestClass.java similarity index 98% rename from src/test/java/seedu/address/testutil/SerializableTestClass.java rename to src/test/java/tutorpro/testutil/SerializableTestClass.java index f5a66340489..ce46ec1893d 100644 --- a/src/test/java/seedu/address/testutil/SerializableTestClass.java +++ b/src/test/java/tutorpro/testutil/SerializableTestClass.java @@ -1,4 +1,4 @@ -package seedu.address.testutil; +package tutorpro.testutil; import java.time.LocalDateTime; import java.util.ArrayList; diff --git a/src/test/java/seedu/address/testutil/TestUtil.java b/src/test/java/tutorpro/testutil/TestUtil.java similarity index 90% rename from src/test/java/seedu/address/testutil/TestUtil.java rename to src/test/java/tutorpro/testutil/TestUtil.java index 896d103eb0b..dbc5be58db1 100644 --- a/src/test/java/seedu/address/testutil/TestUtil.java +++ b/src/test/java/tutorpro/testutil/TestUtil.java @@ -1,13 +1,13 @@ -package seedu.address.testutil; +package tutorpro.testutil; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import seedu.address.commons.core.index.Index; -import seedu.address.model.Model; -import seedu.address.model.person.Person; +import tutorpro.commons.core.index.Index; +import tutorpro.model.Model; +import tutorpro.model.person.Person; /** * A utility class for test cases. diff --git a/src/test/java/seedu/address/testutil/TypicalIndexes.java b/src/test/java/tutorpro/testutil/TypicalIndexes.java similarity index 81% rename from src/test/java/seedu/address/testutil/TypicalIndexes.java rename to src/test/java/tutorpro/testutil/TypicalIndexes.java index 1e613937657..1e9710ceae7 100644 --- a/src/test/java/seedu/address/testutil/TypicalIndexes.java +++ b/src/test/java/tutorpro/testutil/TypicalIndexes.java @@ -1,6 +1,6 @@ -package seedu.address.testutil; +package tutorpro.testutil; -import seedu.address.commons.core.index.Index; +import tutorpro.commons.core.index.Index; /** * A utility class containing a list of {@code Index} objects to be used in tests. diff --git a/src/test/java/seedu/address/testutil/TypicalPersons.java b/src/test/java/tutorpro/testutil/TypicalPersons.java similarity index 78% rename from src/test/java/seedu/address/testutil/TypicalPersons.java rename to src/test/java/tutorpro/testutil/TypicalPersons.java index fec76fb7129..8ad0ad51a80 100644 --- a/src/test/java/seedu/address/testutil/TypicalPersons.java +++ b/src/test/java/tutorpro/testutil/TypicalPersons.java @@ -1,22 +1,22 @@ -package seedu.address.testutil; +package tutorpro.testutil; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_AMY; -import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; -import static seedu.address.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; +import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import seedu.address.model.AddressBook; -import seedu.address.model.person.Person; +import tutorpro.model.AddressBook; +import tutorpro.model.person.Person; /** * A utility class containing a list of {@code Person} objects to be used in tests. diff --git a/src/test/java/seedu/address/ui/TestFxmlObject.java b/src/test/java/tutorpro/ui/TestFxmlObject.java similarity index 97% rename from src/test/java/seedu/address/ui/TestFxmlObject.java rename to src/test/java/tutorpro/ui/TestFxmlObject.java index 93f40f1276a..43e53a97c11 100644 --- a/src/test/java/seedu/address/ui/TestFxmlObject.java +++ b/src/test/java/tutorpro/ui/TestFxmlObject.java @@ -1,4 +1,4 @@ -package seedu.address.ui; +package tutorpro.ui; import java.util.Objects; diff --git a/src/test/java/seedu/address/ui/UiPartTest.java b/src/test/java/tutorpro/ui/UiPartTest.java similarity index 97% rename from src/test/java/seedu/address/ui/UiPartTest.java rename to src/test/java/tutorpro/ui/UiPartTest.java index 33d82d911b8..3bd0f738e1a 100644 --- a/src/test/java/seedu/address/ui/UiPartTest.java +++ b/src/test/java/tutorpro/ui/UiPartTest.java @@ -1,8 +1,8 @@ -package seedu.address.ui; +package tutorpro.ui; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static seedu.address.testutil.Assert.assertThrows; +import static tutorpro.testutil.Assert.assertThrows; import java.net.URL; import java.nio.file.Path; @@ -11,7 +11,7 @@ import org.junit.jupiter.api.io.TempDir; import javafx.fxml.FXML; -import seedu.address.MainApp; +import tutorpro.MainApp; public class UiPartTest { diff --git a/src/test/resources/view/UiPartTest/validFile.fxml b/src/test/resources/view/UiPartTest/validFile.fxml index bab836af0db..df4414a8819 100644 --- a/src/test/resources/view/UiPartTest/validFile.fxml +++ b/src/test/resources/view/UiPartTest/validFile.fxml @@ -1,4 +1,4 @@ - + Hello World! diff --git a/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml b/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml index 1a8b2c9e4d3..af14c3ad2d4 100644 --- a/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml +++ b/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml @@ -1,6 +1,6 @@ - + Hello World! From 16ff2fe2611a6cfeafa63225052dd38e73199509 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 13:29:42 +0800 Subject: [PATCH 029/189] Aboutus.md: fix carsten and tarin's image --- docs/AboutUs.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 7bc5993b0be..a751348c336 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -11,7 +11,7 @@ You can reach us at the email `[insert email]` ### Carsten Joe Ng - + [[github](http://github.com/wyrkx)] [[portfolio](team/carsten.md)] @@ -21,10 +21,10 @@ You can reach us at the email `[insert email]` ### Pairor Tarin - + [[github](http://github.com/TarinPairor)] -[[portfolio](team/johndoe.md)] +[[portfolio](team/tarinpairor.md)] ### Lee Xin Yuan @@ -34,7 +34,7 @@ You can reach us at the email `[insert email]` [[portfolio](team/xinyuan.md)] - Role: Developer -- Responsibilities: Dev Ops +- Responsibilities: UI~~~~ ### Tee Chu Jie From 1c21284a0903fd4cf873987317e31c7c0fc3b986 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 13:50:01 +0800 Subject: [PATCH 030/189] Fix code to pass checkstyle --- docs/team/tarinpairor.md | 46 +++++++++++++++++++ src/main/java/tutorpro/logic/Logic.java | 2 +- .../java/tutorpro/model/ModelManager.java | 4 +- .../java/tutorpro/model/person/Address.java | 6 +-- .../java/tutorpro/model/person/Email.java | 6 +-- src/main/java/tutorpro/model/person/Name.java | 6 +-- .../java/tutorpro/model/person/Person.java | 4 +- .../java/tutorpro/model/person/Phone.java | 6 +-- .../model/person/UniquePersonList.java | 4 +- src/main/java/tutorpro/model/tag/Tag.java | 6 +-- .../tutorpro/storage/AddressBookStorage.java | 2 +- src/main/java/tutorpro/ui/CommandBox.java | 2 +- 12 files changed, 70 insertions(+), 24 deletions(-) create mode 100644 docs/team/tarinpairor.md diff --git a/docs/team/tarinpairor.md b/docs/team/tarinpairor.md new file mode 100644 index 00000000000..773a07794e2 --- /dev/null +++ b/docs/team/tarinpairor.md @@ -0,0 +1,46 @@ +--- +layout: page +title: John Doe's Project Portfolio Page +--- + +### Project: AddressBook Level 3 + +AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. + +Given below are my contributions to the project. + +* **New Feature**: Added the ability to undo/redo previous commands. + * What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. + * Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. + * Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. + * Credits: *{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}* + +* **New Feature**: Added a history command that allows the user to navigate to previous commands using up/down keys. + +* **Code contributed**: [RepoSense link]() + +* **Project management**: + * Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub + +* **Enhancements to existing features**: + * Updated the GUI color scheme (Pull requests [\#33](), [\#34]()) + * Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]()) + +* **Documentation**: + * User Guide: + * Added documentation for the features `delete` and `find` [\#72]() + * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() + * Developer Guide: + * Added implementation details of the `delete` feature. + +* **Community**: + * PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]() + * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) + * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) + * Some parts of the history feature I added was adopted by several other class mates ([1](), [2]()) + +* **Tools**: + * Integrated a third party library (Natty) to the project ([\#42]()) + * Integrated a new Github plugin (CircleCI) to the team repo + +* _{you can add/remove categories in the list above}_ diff --git a/src/main/java/tutorpro/logic/Logic.java b/src/main/java/tutorpro/logic/Logic.java index bad82b4a7e6..6f82c8c3293 100644 --- a/src/main/java/tutorpro/logic/Logic.java +++ b/src/main/java/tutorpro/logic/Logic.java @@ -8,8 +8,8 @@ import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.ReadOnlyAddressBook; -import tutorpro.model.person.Person; import tutorpro.model.Model; +import tutorpro.model.person.Person; /** * API of the Logic component diff --git a/src/main/java/tutorpro/model/ModelManager.java b/src/main/java/tutorpro/model/ModelManager.java index fc40132b44c..1319b2a36e0 100644 --- a/src/main/java/tutorpro/model/ModelManager.java +++ b/src/main/java/tutorpro/model/ModelManager.java @@ -1,7 +1,7 @@ package tutorpro.model; import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; +//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.nio.file.Path; import java.util.function.Predicate; @@ -11,8 +11,8 @@ import javafx.collections.transformation.FilteredList; import tutorpro.commons.core.GuiSettings; import tutorpro.commons.core.LogsCenter; -import tutorpro.model.person.Person; import tutorpro.commons.util.CollectionUtil; +import tutorpro.model.person.Person; /** * Represents the in-memory model of the address book data. diff --git a/src/main/java/tutorpro/model/person/Address.java b/src/main/java/tutorpro/model/person/Address.java index 74bef8db921..5581148e3cf 100644 --- a/src/main/java/tutorpro/model/person/Address.java +++ b/src/main/java/tutorpro/model/person/Address.java @@ -1,9 +1,9 @@ package tutorpro.model.person; -import tutorpro.commons.util.AppUtil; - import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.AppUtil.checkArgument; +//import static tutorpro.commons.util.AppUtil.checkArgument; + +import tutorpro.commons.util.AppUtil; /** * Represents a Person's address in the address book. diff --git a/src/main/java/tutorpro/model/person/Email.java b/src/main/java/tutorpro/model/person/Email.java index 867def6817f..fa0a366bb40 100644 --- a/src/main/java/tutorpro/model/person/Email.java +++ b/src/main/java/tutorpro/model/person/Email.java @@ -1,9 +1,9 @@ package tutorpro.model.person; -import tutorpro.commons.util.AppUtil; - import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.AppUtil.checkArgument; +//import static tutorpro.commons.util.AppUtil.checkArgument; + +import tutorpro.commons.util.AppUtil; /** * Represents a Person's email in the address book. diff --git a/src/main/java/tutorpro/model/person/Name.java b/src/main/java/tutorpro/model/person/Name.java index 07d91c62927..8e93ff675d3 100644 --- a/src/main/java/tutorpro/model/person/Name.java +++ b/src/main/java/tutorpro/model/person/Name.java @@ -1,9 +1,9 @@ package tutorpro.model.person; -import tutorpro.commons.util.AppUtil; - import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.AppUtil.checkArgument; +//import static tutorpro.commons.util.AppUtil.checkArgument; + +import tutorpro.commons.util.AppUtil; /** * Represents a Person's name in the address book. diff --git a/src/main/java/tutorpro/model/person/Person.java b/src/main/java/tutorpro/model/person/Person.java index 740572fabc7..470c42db739 100644 --- a/src/main/java/tutorpro/model/person/Person.java +++ b/src/main/java/tutorpro/model/person/Person.java @@ -1,15 +1,15 @@ package tutorpro.model.person; -import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; +//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.util.Collections; import java.util.HashSet; import java.util.Objects; import java.util.Set; +import tutorpro.commons.util.CollectionUtil; import tutorpro.commons.util.ToStringBuilder; import tutorpro.model.tag.Tag; -import tutorpro.commons.util.CollectionUtil; /** * Represents a Person in the address book. diff --git a/src/main/java/tutorpro/model/person/Phone.java b/src/main/java/tutorpro/model/person/Phone.java index b972cdd27f8..2770a6b56bd 100644 --- a/src/main/java/tutorpro/model/person/Phone.java +++ b/src/main/java/tutorpro/model/person/Phone.java @@ -1,9 +1,9 @@ package tutorpro.model.person; -import tutorpro.commons.util.AppUtil; - import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.AppUtil.checkArgument; +//import static tutorpro.commons.util.AppUtil.checkArgument; + +import tutorpro.commons.util.AppUtil; /** * Represents a Person's phone number in the address book. diff --git a/src/main/java/tutorpro/model/person/UniquePersonList.java b/src/main/java/tutorpro/model/person/UniquePersonList.java index 43fc753a9f0..d0eb4006143 100644 --- a/src/main/java/tutorpro/model/person/UniquePersonList.java +++ b/src/main/java/tutorpro/model/person/UniquePersonList.java @@ -1,16 +1,16 @@ package tutorpro.model.person; import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; +//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.util.Iterator; import java.util.List; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import tutorpro.commons.util.CollectionUtil; import tutorpro.model.person.exceptions.DuplicatePersonException; import tutorpro.model.person.exceptions.PersonNotFoundException; -import tutorpro.commons.util.CollectionUtil; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. diff --git a/src/main/java/tutorpro/model/tag/Tag.java b/src/main/java/tutorpro/model/tag/Tag.java index a4a5c3a1e18..cf2d9313066 100644 --- a/src/main/java/tutorpro/model/tag/Tag.java +++ b/src/main/java/tutorpro/model/tag/Tag.java @@ -1,9 +1,9 @@ package tutorpro.model.tag; -import tutorpro.commons.util.AppUtil; - import static java.util.Objects.requireNonNull; -import static tutorpro.commons.util.AppUtil.checkArgument; +//import static tutorpro.commons.util.AppUtil.checkArgument; + +import tutorpro.commons.util.AppUtil; /** * Represents a Tag in the address book. diff --git a/src/main/java/tutorpro/storage/AddressBookStorage.java b/src/main/java/tutorpro/storage/AddressBookStorage.java index 75cbb7f6bd8..058de516f07 100644 --- a/src/main/java/tutorpro/storage/AddressBookStorage.java +++ b/src/main/java/tutorpro/storage/AddressBookStorage.java @@ -5,8 +5,8 @@ import java.util.Optional; import tutorpro.commons.exceptions.DataLoadingException; -import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.AddressBook; +import tutorpro.model.ReadOnlyAddressBook; /** * Represents a storage for {@link AddressBook}. diff --git a/src/main/java/tutorpro/ui/CommandBox.java b/src/main/java/tutorpro/ui/CommandBox.java index 47de8d1a86a..d00243e36e1 100644 --- a/src/main/java/tutorpro/ui/CommandBox.java +++ b/src/main/java/tutorpro/ui/CommandBox.java @@ -6,8 +6,8 @@ import javafx.scene.layout.Region; import tutorpro.logic.commands.CommandResult; import tutorpro.logic.commands.exceptions.CommandException; -import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.logic.Logic; +import tutorpro.logic.parser.exceptions.ParseException; /** * The UI component that is responsible for receiving user command inputs. From 7a4dd02344fe4b8ace8e2f8aab8c6181ae4ed3bc Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 14:14:51 +0800 Subject: [PATCH 031/189] Fix import order --- src/main/java/tutorpro/logic/Logic.java | 2 +- src/main/java/tutorpro/ui/CommandBox.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/tutorpro/logic/Logic.java b/src/main/java/tutorpro/logic/Logic.java index bad82b4a7e6..cbe46395fad 100644 --- a/src/main/java/tutorpro/logic/Logic.java +++ b/src/main/java/tutorpro/logic/Logic.java @@ -7,9 +7,9 @@ import tutorpro.logic.commands.CommandResult; import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.person.Person; -import tutorpro.model.Model; /** * API of the Logic component diff --git a/src/main/java/tutorpro/ui/CommandBox.java b/src/main/java/tutorpro/ui/CommandBox.java index 47de8d1a86a..d00243e36e1 100644 --- a/src/main/java/tutorpro/ui/CommandBox.java +++ b/src/main/java/tutorpro/ui/CommandBox.java @@ -6,8 +6,8 @@ import javafx.scene.layout.Region; import tutorpro.logic.commands.CommandResult; import tutorpro.logic.commands.exceptions.CommandException; -import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.logic.Logic; +import tutorpro.logic.parser.exceptions.ParseException; /** * The UI component that is responsible for receiving user command inputs. From 4fff740c581a464b39118f3436638d92dfe50d7b Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 14:27:46 +0800 Subject: [PATCH 032/189] Logic.java: fix import error --- src/main/java/tutorpro/logic/Logic.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/tutorpro/logic/Logic.java b/src/main/java/tutorpro/logic/Logic.java index ab6dbd3a44f..cbe46395fad 100644 --- a/src/main/java/tutorpro/logic/Logic.java +++ b/src/main/java/tutorpro/logic/Logic.java @@ -9,10 +9,6 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; -<<<<<<< HEAD -======= -import tutorpro.model.Model; ->>>>>>> 8b687dab64e7b9193c9522c83dedd53efb089b6f import tutorpro.model.person.Person; /** From 505801ef3ca2a900d07569c698f96e69bd5dea53 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 14:33:01 +0800 Subject: [PATCH 033/189] Logic.java: fix import error #2 --- src/main/java/tutorpro/ui/CommandBox.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tutorpro/ui/CommandBox.java b/src/main/java/tutorpro/ui/CommandBox.java index d00243e36e1..1be692fee81 100644 --- a/src/main/java/tutorpro/ui/CommandBox.java +++ b/src/main/java/tutorpro/ui/CommandBox.java @@ -5,8 +5,8 @@ import javafx.scene.control.TextField; import javafx.scene.layout.Region; import tutorpro.logic.commands.CommandResult; -import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.logic.Logic; +import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.logic.parser.exceptions.ParseException; /** From 08d1edb24ae96bdfbdea20ebc4b82b78d27879bf Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 14:35:55 +0800 Subject: [PATCH 034/189] Logic.java: fix import error #3 --- src/main/java/tutorpro/ui/CommandBox.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tutorpro/ui/CommandBox.java b/src/main/java/tutorpro/ui/CommandBox.java index 1be692fee81..2a22bdc7b9a 100644 --- a/src/main/java/tutorpro/ui/CommandBox.java +++ b/src/main/java/tutorpro/ui/CommandBox.java @@ -4,8 +4,8 @@ import javafx.fxml.FXML; import javafx.scene.control.TextField; import javafx.scene.layout.Region; -import tutorpro.logic.commands.CommandResult; import tutorpro.logic.Logic; +import tutorpro.logic.commands.CommandResult; import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.logic.parser.exceptions.ParseException; From 482c9a6cc5213338969e1591961f1c0776643c18 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 16:58:21 +0800 Subject: [PATCH 035/189] Update image names to github username --- build.gradle | 2 +- docs/AboutUs.md | 8 +- docs/images/{xinyuan.png => agreatdayy.png} | Bin docs/images/{chujie.png => tamagochuuu.png} | Bin src/test/java/tutorpro/AppParametersTest.java | 3 +- .../tutorpro/commons/core/VersionTest.java | 3 +- .../commons/core/index/IndexTest.java | 3 +- .../tutorpro/commons/util/AppUtilTest.java | 6 +- .../commons/util/CollectionUtilTest.java | 5 +- .../tutorpro/commons/util/ConfigUtilTest.java | 2 +- .../tutorpro/commons/util/FileUtilTest.java | 3 +- .../tutorpro/commons/util/StringUtilTest.java | 9 +- .../java/tutorpro/logic/LogicManagerTest.java | 3 +- .../commands/AddCommandIntegrationTest.java | 2 +- .../logic/commands/AddCommandTest.java | 7 +- .../logic/commands/ClearCommandTest.java | 2 +- .../logic/commands/CommandTestUtil.java | 10 +- .../logic/commands/DeleteCommandTest.java | 2 +- .../logic/commands/EditCommandTest.java | 35 +++-- .../commands/EditPersonDescriptorTest.java | 22 +-- .../logic/commands/ExitCommandTest.java | 5 +- .../logic/commands/FindCommandTest.java | 5 +- .../logic/commands/HelpCommandTest.java | 3 +- .../logic/parser/AddCommandParserTest.java | 133 ++++++++++++------ .../logic/parser/AddressBookParserTest.java | 16 ++- .../logic/parser/CommandParserTestUtil.java | 1 + .../logic/parser/DeleteCommandParserTest.java | 10 +- .../logic/parser/EditCommandParserTest.java | 88 ++++++++---- .../logic/parser/FindCommandParserTest.java | 5 +- .../java/tutorpro/model/AddressBookTest.java | 12 +- .../java/tutorpro/model/ModelManagerTest.java | 5 +- .../java/tutorpro/model/UserPrefsTest.java | 3 +- .../tutorpro/model/person/AddressTest.java | 6 +- .../java/tutorpro/model/person/EmailTest.java | 3 +- .../NameContainsKeywordsPredicateTest.java | 12 +- .../java/tutorpro/model/person/NameTest.java | 3 +- .../tutorpro/model/person/PersonTest.java | 18 +-- .../java/tutorpro/model/person/PhoneTest.java | 3 +- .../model/person/UniquePersonListTest.java | 27 ++-- src/test/java/tutorpro/model/tag/TagTest.java | 3 +- .../storage/JsonAdaptedPersonTest.java | 28 ++-- .../storage/JsonAddressBookStorageTest.java | 17 ++- .../JsonSerializableAddressBookTest.java | 16 ++- .../storage/JsonUserPrefsStorageTest.java | 14 +- src/test/java/tutorpro/testutil/Assert.java | 4 +- .../testutil/EditPersonDescriptorBuilder.java | 2 +- .../java/tutorpro/testutil/PersonUtil.java | 7 +- 47 files changed, 367 insertions(+), 209 deletions(-) rename docs/images/{xinyuan.png => agreatdayy.png} (100%) rename docs/images/{chujie.png => tamagochuuu.png} (100%) diff --git a/build.gradle b/build.gradle index a2951cc709e..23a3cf36ce5 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -mainClassName = 'seedu.address.Main' +mainClassName = 'address.Main' sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 diff --git a/docs/AboutUs.md b/docs/AboutUs.md index a751348c336..32bb408cf0d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -5,7 +5,7 @@ title: About Us We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg). -You can reach us at the email `[insert email]` +You can reach us at the email [e0960433@u.nus.edu](e0960433@u.nus.edu) ## Project team @@ -28,17 +28,17 @@ You can reach us at the email `[insert email]` ### Lee Xin Yuan - + [[github](http://github.com/agreatdayy)] [[portfolio](team/xinyuan.md)] - Role: Developer -- Responsibilities: UI~~~~ +- Responsibilities: UI ### Tee Chu Jie - + [[github](https://github.com/tamagochuuu)] [[portfolio](team/chujie.md)] diff --git a/docs/images/xinyuan.png b/docs/images/agreatdayy.png similarity index 100% rename from docs/images/xinyuan.png rename to docs/images/agreatdayy.png diff --git a/docs/images/chujie.png b/docs/images/tamagochuuu.png similarity index 100% rename from docs/images/chujie.png rename to docs/images/tamagochuuu.png diff --git a/src/test/java/tutorpro/AppParametersTest.java b/src/test/java/tutorpro/AppParametersTest.java index b5e704058f4..c4922653bdb 100644 --- a/src/test/java/tutorpro/AppParametersTest.java +++ b/src/test/java/tutorpro/AppParametersTest.java @@ -42,7 +42,8 @@ public void parse_invalidConfigPath_success() { @Test public void toStringMethod() { AppParameters appParameters = new AppParameters(); - String expected = AppParameters.class.getCanonicalName() + "{configPath=" + appParameters.getConfigPath() + "}"; + String expected = AppParameters.class.getCanonicalName() + + "{configPath=" + appParameters.getConfigPath() + "}"; assertEquals(expected, appParameters.toString()); } diff --git a/src/test/java/tutorpro/commons/core/VersionTest.java b/src/test/java/tutorpro/commons/core/VersionTest.java index 8563535bf7e..568ab164045 100644 --- a/src/test/java/tutorpro/commons/core/VersionTest.java +++ b/src/test/java/tutorpro/commons/core/VersionTest.java @@ -2,9 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class VersionTest { diff --git a/src/test/java/tutorpro/commons/core/index/IndexTest.java b/src/test/java/tutorpro/commons/core/index/IndexTest.java index a291fbca183..0cbb94e75a7 100644 --- a/src/test/java/tutorpro/commons/core/index/IndexTest.java +++ b/src/test/java/tutorpro/commons/core/index/IndexTest.java @@ -3,9 +3,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class IndexTest { diff --git a/src/test/java/tutorpro/commons/util/AppUtilTest.java b/src/test/java/tutorpro/commons/util/AppUtilTest.java index 3520a59c3bb..cecb2374532 100644 --- a/src/test/java/tutorpro/commons/util/AppUtilTest.java +++ b/src/test/java/tutorpro/commons/util/AppUtilTest.java @@ -1,9 +1,10 @@ package tutorpro.commons.util; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class AppUtilTest { @@ -32,6 +33,7 @@ public void checkArgument_falseWithoutErrorMessage_throwsIllegalArgumentExceptio @Test public void checkArgument_falseWithErrorMessage_throwsIllegalArgumentException() { String errorMessage = "error message"; - Assert.assertThrows(IllegalArgumentException.class, errorMessage, () -> AppUtil.checkArgument(false, errorMessage)); + Assert.assertThrows(IllegalArgumentException.class, + errorMessage, () -> AppUtil.checkArgument(false, errorMessage)); } } diff --git a/src/test/java/tutorpro/commons/util/CollectionUtilTest.java b/src/test/java/tutorpro/commons/util/CollectionUtilTest.java index 94c05f27e97..080d2ffcd98 100644 --- a/src/test/java/tutorpro/commons/util/CollectionUtilTest.java +++ b/src/test/java/tutorpro/commons/util/CollectionUtilTest.java @@ -2,8 +2,8 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; +//import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collection; @@ -11,6 +11,7 @@ import java.util.List; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class CollectionUtilTest { diff --git a/src/test/java/tutorpro/commons/util/ConfigUtilTest.java b/src/test/java/tutorpro/commons/util/ConfigUtilTest.java index 0376c8cb6e3..0aefa5e412c 100644 --- a/src/test/java/tutorpro/commons/util/ConfigUtilTest.java +++ b/src/test/java/tutorpro/commons/util/ConfigUtilTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; diff --git a/src/test/java/tutorpro/commons/util/FileUtilTest.java b/src/test/java/tutorpro/commons/util/FileUtilTest.java index 3c82579bf97..2f439c79551 100644 --- a/src/test/java/tutorpro/commons/util/FileUtilTest.java +++ b/src/test/java/tutorpro/commons/util/FileUtilTest.java @@ -2,9 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class FileUtilTest { diff --git a/src/test/java/tutorpro/commons/util/StringUtilTest.java b/src/test/java/tutorpro/commons/util/StringUtilTest.java index a9336f9eb0a..2984082c2fc 100644 --- a/src/test/java/tutorpro/commons/util/StringUtilTest.java +++ b/src/test/java/tutorpro/commons/util/StringUtilTest.java @@ -2,11 +2,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.io.FileNotFoundException; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class StringUtilTest { @@ -57,7 +58,8 @@ public void isNonZeroUnsignedInteger() { @Test public void containsWordIgnoreCase_nullWord_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase("typical sentence", null)); + Assert.assertThrows(NullPointerException.class, () -> StringUtil + .containsWordIgnoreCase("typical sentence", null)); } @Test @@ -74,7 +76,8 @@ public void containsWordIgnoreCase_multipleWords_throwsIllegalArgumentException( @Test public void containsWordIgnoreCase_nullSentence_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> StringUtil.containsWordIgnoreCase(null, "abc")); + Assert.assertThrows(NullPointerException.class, () -> StringUtil + .containsWordIgnoreCase(null, "abc")); } /* diff --git a/src/test/java/tutorpro/logic/LogicManagerTest.java b/src/test/java/tutorpro/logic/LogicManagerTest.java index 4c8713a4522..271f9b4edf1 100644 --- a/src/test/java/tutorpro/logic/LogicManagerTest.java +++ b/src/test/java/tutorpro/logic/LogicManagerTest.java @@ -47,7 +47,8 @@ public class LogicManagerTest { public void setUp() { JsonAddressBookStorage addressBookStorage = new JsonAddressBookStorage(temporaryFolder.resolve("addressBook.json")); - JsonUserPrefsStorage userPrefsStorage = new JsonUserPrefsStorage(temporaryFolder.resolve("userPrefs.json")); + JsonUserPrefsStorage userPrefsStorage = + new JsonUserPrefsStorage(temporaryFolder.resolve("userPrefs.json")); StorageManager storage = new StorageManager(addressBookStorage, userPrefsStorage); logic = new LogicManager(model, storage); } diff --git a/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java index 9f376760d37..938dfc33565 100644 --- a/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java @@ -1,6 +1,6 @@ package tutorpro.logic.commands; -import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +//import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/tutorpro/logic/commands/AddCommandTest.java b/src/test/java/tutorpro/logic/commands/AddCommandTest.java index 675158c71af..17d5bb99957 100644 --- a/src/test/java/tutorpro/logic/commands/AddCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandTest.java @@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.nio.file.Path; import java.util.ArrayList; @@ -22,8 +22,8 @@ import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.ReadOnlyUserPrefs; import tutorpro.model.person.Person; -import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.Assert; +import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.TypicalPersons; public class AddCommandTest { @@ -51,7 +51,8 @@ public void execute_duplicatePerson_throwsCommandException() { AddCommand addCommand = new AddCommand(validPerson); ModelStub modelStub = new ModelStubWithPerson(validPerson); - Assert.assertThrows(CommandException.class, AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); + Assert.assertThrows(CommandException.class, + AddCommand.MESSAGE_DUPLICATE_PERSON, () -> addCommand.execute(modelStub)); } @Test diff --git a/src/test/java/tutorpro/logic/commands/ClearCommandTest.java b/src/test/java/tutorpro/logic/commands/ClearCommandTest.java index 6889e92e6a4..9595ad48d56 100644 --- a/src/test/java/tutorpro/logic/commands/ClearCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/ClearCommandTest.java @@ -1,6 +1,6 @@ package tutorpro.logic.commands; -import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +//import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; diff --git a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java index 44c3700c9c2..d4c93ef4f10 100644 --- a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java +++ b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.util.ArrayList; import java.util.Arrays; @@ -10,13 +10,13 @@ import tutorpro.commons.core.index.Index; import tutorpro.logic.commands.exceptions.CommandException; +import tutorpro.logic.parser.CliSyntax; import tutorpro.model.AddressBook; import tutorpro.model.Model; import tutorpro.model.person.NameContainsKeywordsPredicate; import tutorpro.model.person.Person; -import tutorpro.testutil.EditPersonDescriptorBuilder; -import tutorpro.logic.parser.CliSyntax; import tutorpro.testutil.Assert; +import tutorpro.testutil.EditPersonDescriptorBuilder; /** * Contains helper methods for testing commands. @@ -48,7 +48,9 @@ public class CommandTestUtil { public static final String INVALID_NAME_DESC = " " + CliSyntax.PREFIX_NAME + "James&"; // '&' not allowed in names public static final String INVALID_PHONE_DESC = " " + CliSyntax.PREFIX_PHONE + "911a"; // 'a' not allowed in phones public static final String INVALID_EMAIL_DESC = " " + CliSyntax.PREFIX_EMAIL + "bob!yahoo"; // missing '@' symbol - public static final String INVALID_ADDRESS_DESC = " " + CliSyntax.PREFIX_ADDRESS; // empty string not allowed for addresses + + // Invalid address: empty string not allowed for addresses + public static final String INVALID_ADDRESS_DESC = " " + CliSyntax.PREFIX_ADDRESS; public static final String INVALID_TAG_DESC = " " + CliSyntax.PREFIX_TAG + "hubby*"; // '*' not allowed in tags public static final String PREAMBLE_WHITESPACE = "\t \r \n"; diff --git a/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java b/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java index 8f3b3c663cd..91da12e716c 100644 --- a/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +//import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; diff --git a/src/test/java/tutorpro/logic/commands/EditCommandTest.java b/src/test/java/tutorpro/logic/commands/EditCommandTest.java index eb0913cb69b..33d9db6ebe9 100644 --- a/src/test/java/tutorpro/logic/commands/EditCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/EditCommandTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +//import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; @@ -46,11 +46,12 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(CommandTestUtil.VALID_NAME_BOB).withPhone(CommandTestUtil.VALID_PHONE_BOB) - .withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); - - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB) + Person editedPerson = personInList.withName(CommandTestUtil.VALID_NAME_BOB) .withPhone(CommandTestUtil.VALID_PHONE_BOB).withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); + + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder() + .withName(CommandTestUtil.VALID_NAME_BOB).withPhone(CommandTestUtil.VALID_PHONE_BOB) + .withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); @@ -63,7 +64,8 @@ public void execute_someFieldsSpecifiedUnfilteredList_success() { @Test public void execute_noFieldSpecifiedUnfilteredList_success() { - EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, new EditCommand.EditPersonDescriptor()); + EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, + new EditCommand.EditPersonDescriptor()); Person editedPerson = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); @@ -77,7 +79,8 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { public void execute_filteredList_success() { CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); - Person personInFilteredList = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + Person personInFilteredList = model.getFilteredPersonList() + .get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); Person editedPerson = new PersonBuilder(personInFilteredList).withName(CommandTestUtil.VALID_NAME_BOB).build(); EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build()); @@ -104,7 +107,8 @@ public void execute_duplicatePersonFilteredList_failure() { CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); // edit person in filtered list into a duplicate in address book - Person personInList = model.getAddressBook().getPersonList().get(TypicalIndexes.INDEX_SECOND_PERSON.getZeroBased()); + Person personInList = model.getAddressBook().getPersonList() + .get(TypicalIndexes.INDEX_SECOND_PERSON.getZeroBased()); EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder(personInList).build()); @@ -114,7 +118,8 @@ public void execute_duplicatePersonFilteredList_failure() { @Test public void execute_invalidPersonIndexUnfilteredList_failure() { Index outOfBoundIndex = Index.fromOneBased(model.getFilteredPersonList().size() + 1); - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder() + .withName(CommandTestUtil.VALID_NAME_BOB).build(); EditCommand editCommand = new EditCommand(outOfBoundIndex, descriptor); CommandTestUtil.assertCommandFailure(editCommand, model, Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); @@ -139,10 +144,12 @@ public void execute_invalidPersonIndexFilteredList_failure() { @Test public void equals() { - final EditCommand standardCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, CommandTestUtil.DESC_AMY); + final EditCommand standardCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, + CommandTestUtil.DESC_AMY); // same values -> returns true - EditCommand.EditPersonDescriptor copyDescriptor = new EditCommand.EditPersonDescriptor(CommandTestUtil.DESC_AMY); + EditCommand.EditPersonDescriptor copyDescriptor = new EditCommand + .EditPersonDescriptor(CommandTestUtil.DESC_AMY); EditCommand commandWithSameValues = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, copyDescriptor); assertTrue(standardCommand.equals(commandWithSameValues)); @@ -156,10 +163,12 @@ public void equals() { assertFalse(standardCommand.equals(new ClearCommand())); // different index -> returns false - assertFalse(standardCommand.equals(new EditCommand(TypicalIndexes.INDEX_SECOND_PERSON, CommandTestUtil.DESC_AMY))); + assertFalse(standardCommand.equals(new EditCommand(TypicalIndexes.INDEX_SECOND_PERSON, + CommandTestUtil.DESC_AMY))); // different descriptor -> returns false - assertFalse(standardCommand.equals(new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, CommandTestUtil.DESC_BOB))); + assertFalse(standardCommand.equals(new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, + CommandTestUtil.DESC_BOB))); } @Test diff --git a/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java b/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java index d6c61d37c21..63046db005c 100644 --- a/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java @@ -1,8 +1,8 @@ package tutorpro.logic.commands; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +//import static org.junit.jupiter.api.Assertions.assertFalse; +//import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -14,7 +14,8 @@ public class EditPersonDescriptorTest { @Test public void equals() { // same values -> returns true - EditCommand.EditPersonDescriptor descriptorWithSameValues = new EditCommand.EditPersonDescriptor(CommandTestUtil.DESC_AMY); + EditCommand.EditPersonDescriptor descriptorWithSameValues = new EditCommand + .EditPersonDescriptor(CommandTestUtil.DESC_AMY); Assertions.assertTrue(CommandTestUtil.DESC_AMY.equals(descriptorWithSameValues)); // same object -> returns true @@ -30,23 +31,28 @@ public void equals() { Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(CommandTestUtil.DESC_BOB)); // different name -> returns false - EditCommand.EditPersonDescriptor editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withName(CommandTestUtil.VALID_NAME_BOB).build(); + EditCommand.EditPersonDescriptor editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY) + .withName(CommandTestUtil.VALID_NAME_BOB).build(); Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); // different phone -> returns false - editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withPhone(CommandTestUtil.VALID_PHONE_BOB).build(); + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY) + .withPhone(CommandTestUtil.VALID_PHONE_BOB).build(); Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); // different email -> returns false - editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withEmail(CommandTestUtil.VALID_EMAIL_BOB).build(); + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY) + .withEmail(CommandTestUtil.VALID_EMAIL_BOB).build(); Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); // different address -> returns false - editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withAddress(CommandTestUtil.VALID_ADDRESS_BOB).build(); + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY) + .withAddress(CommandTestUtil.VALID_ADDRESS_BOB).build(); Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); // different tags -> returns false - editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY).withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); + editedAmy = new EditPersonDescriptorBuilder(CommandTestUtil.DESC_AMY) + .withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); Assertions.assertFalse(CommandTestUtil.DESC_AMY.equals(editedAmy)); } diff --git a/src/test/java/tutorpro/logic/commands/ExitCommandTest.java b/src/test/java/tutorpro/logic/commands/ExitCommandTest.java index 7eb17f264e7..aabbbd02df9 100644 --- a/src/test/java/tutorpro/logic/commands/ExitCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/ExitCommandTest.java @@ -1,6 +1,6 @@ package tutorpro.logic.commands; -import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +//import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; @@ -13,7 +13,8 @@ public class ExitCommandTest { @Test public void execute_exit_success() { - CommandResult expectedCommandResult = new CommandResult(ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT, false, true); + CommandResult expectedCommandResult = new CommandResult(ExitCommand.MESSAGE_EXIT_ACKNOWLEDGEMENT, + false, true); CommandTestUtil.assertCommandSuccess(new ExitCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/tutorpro/logic/commands/FindCommandTest.java b/src/test/java/tutorpro/logic/commands/FindCommandTest.java index 96865d9f4ce..6b7b2e529b5 100644 --- a/src/test/java/tutorpro/logic/commands/FindCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/FindCommandTest.java @@ -10,11 +10,11 @@ import org.junit.jupiter.api.Test; +import tutorpro.logic.Messages; import tutorpro.model.Model; import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; import tutorpro.model.person.NameContainsKeywordsPredicate; -import tutorpro.logic.Messages; import tutorpro.testutil.TypicalPersons; /** @@ -68,7 +68,8 @@ public void execute_multipleKeywords_multiplePersonsFound() { FindCommand command = new FindCommand(predicate); expectedModel.updateFilteredPersonList(predicate); assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(Arrays.asList(TypicalPersons.CARL, TypicalPersons.ELLE, TypicalPersons.FIONA), model.getFilteredPersonList()); + assertEquals(Arrays.asList(TypicalPersons.CARL, TypicalPersons.ELLE, TypicalPersons.FIONA), + model.getFilteredPersonList()); } @Test diff --git a/src/test/java/tutorpro/logic/commands/HelpCommandTest.java b/src/test/java/tutorpro/logic/commands/HelpCommandTest.java index 55f2224ab52..ccfd3137c8f 100644 --- a/src/test/java/tutorpro/logic/commands/HelpCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/HelpCommandTest.java @@ -13,7 +13,8 @@ public class HelpCommandTest { @Test public void execute_help_success() { - CommandResult expectedCommandResult = new CommandResult(HelpCommand.SHOWING_HELP_MESSAGE, true, false); + CommandResult expectedCommandResult = new CommandResult(HelpCommand.SHOWING_HELP_MESSAGE, + true, false); assertCommandSuccess(new HelpCommand(), model, expectedCommandResult, expectedModel); } } diff --git a/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java b/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java index adf8797b49f..117edd75b99 100644 --- a/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java @@ -4,6 +4,7 @@ import tutorpro.logic.Messages; import tutorpro.logic.commands.AddCommand; +import tutorpro.logic.commands.CommandTestUtil; import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; @@ -11,7 +12,6 @@ import tutorpro.model.person.Phone; import tutorpro.model.tag.Tag; import tutorpro.testutil.PersonBuilder; -import tutorpro.logic.commands.CommandTestUtil; import tutorpro.testutil.TypicalPersons; public class AddCommandParserTest { @@ -19,82 +19,99 @@ public class AddCommandParserTest { @Test public void parse_allFieldsPresent_success() { - Person expectedPerson = new PersonBuilder(TypicalPersons.BOB).withTags(CommandTestUtil.VALID_TAG_FRIEND).build(); + Person expectedPerson = new PersonBuilder(TypicalPersons.BOB) + .withTags(CommandTestUtil.VALID_TAG_FRIEND).build(); // whitespace only preamble - CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.PREAMBLE_WHITESPACE + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.PREAMBLE_WHITESPACE + + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND, new AddCommand(expectedPerson)); // multiple tags - all accepted - Person expectedPersonMultipleTags = new PersonBuilder(TypicalPersons.BOB).withTags(CommandTestUtil.VALID_TAG_FRIEND, CommandTestUtil.VALID_TAG_HUSBAND) - .build(); + Person expectedPersonMultipleTags = new PersonBuilder(TypicalPersons.BOB) + .withTags(CommandTestUtil.VALID_TAG_FRIEND, CommandTestUtil.VALID_TAG_HUSBAND).build(); CommandParserTestUtil.assertParseSuccess(parser, - CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, new AddCommand(expectedPersonMultipleTags)); } @Test public void parse_repeatedNonTagValue_failure() { - String validExpectedPersonString = CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB - + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND; + String validExpectedPersonString = CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND; // multiple names - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_AMY + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_AMY + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME)); // multiple phones - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.PHONE_DESC_AMY + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.PHONE_DESC_AMY + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); // multiple emails - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.EMAIL_DESC_AMY + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.EMAIL_DESC_AMY + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_EMAIL)); // multiple addresses - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.ADDRESS_DESC_AMY + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.ADDRESS_DESC_AMY + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_ADDRESS)); // multiple fields repeated CommandParserTestUtil.assertParseFailure(parser, - validExpectedPersonString + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY - + validExpectedPersonString, - Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME, CliSyntax.PREFIX_ADDRESS, CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_PHONE)); + validExpectedPersonString + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + validExpectedPersonString, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME, CliSyntax.PREFIX_ADDRESS, + CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_PHONE)); // invalid value followed by valid value // invalid name - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.INVALID_NAME_DESC + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME)); // invalid email - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_EMAIL_DESC + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.INVALID_EMAIL_DESC + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_EMAIL)); // invalid phone - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_PHONE_DESC + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.INVALID_PHONE_DESC + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); // invalid address - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_ADDRESS_DESC + validExpectedPersonString, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.INVALID_ADDRESS_DESC + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_ADDRESS)); // valid value followed by invalid value // invalid name - CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_NAME_DESC, + CommandParserTestUtil.assertParseFailure(parser, + validExpectedPersonString + CommandTestUtil.INVALID_NAME_DESC, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME)); // invalid email - CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_EMAIL_DESC, + CommandParserTestUtil.assertParseFailure(parser, + validExpectedPersonString + CommandTestUtil.INVALID_EMAIL_DESC, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_EMAIL)); // invalid phone - CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_PHONE_DESC, + CommandParserTestUtil.assertParseFailure(parser, + validExpectedPersonString + CommandTestUtil.INVALID_PHONE_DESC, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); // invalid address - CommandParserTestUtil.assertParseFailure(parser, validExpectedPersonString + CommandTestUtil.INVALID_ADDRESS_DESC, + CommandParserTestUtil.assertParseFailure(parser, + validExpectedPersonString + CommandTestUtil.INVALID_ADDRESS_DESC, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_ADDRESS)); } @@ -102,7 +119,9 @@ public void parse_repeatedNonTagValue_failure() { public void parse_optionalFieldsMissing_success() { // zero tags Person expectedPerson = new PersonBuilder(TypicalPersons.AMY).withTags().build(); - CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY, + CommandParserTestUtil.assertParseSuccess(parser, + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.PHONE_DESC_AMY + + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY, new AddCommand(expectedPerson)); } @@ -111,55 +130,85 @@ public void parse_compulsoryFieldMissing_failure() { String expectedMessage = String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE); // missing name prefix - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.VALID_NAME_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.VALID_NAME_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB, expectedMessage); // missing phone prefix - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.VALID_PHONE_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.VALID_PHONE_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB, expectedMessage); // missing email prefix - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.VALID_EMAIL_BOB + CommandTestUtil.ADDRESS_DESC_BOB, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.VALID_EMAIL_BOB + CommandTestUtil.ADDRESS_DESC_BOB, expectedMessage); // missing address prefix - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.VALID_ADDRESS_BOB, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.VALID_ADDRESS_BOB, expectedMessage); // all prefixes missing - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.VALID_NAME_BOB + CommandTestUtil.VALID_PHONE_BOB + CommandTestUtil.VALID_EMAIL_BOB + CommandTestUtil.VALID_ADDRESS_BOB, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.VALID_NAME_BOB + CommandTestUtil.VALID_PHONE_BOB + + CommandTestUtil.VALID_EMAIL_BOB + CommandTestUtil.VALID_ADDRESS_BOB, expectedMessage); } @Test public void parse_invalidValue_failure() { // invalid name - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Name.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + Name.MESSAGE_CONSTRAINTS); // invalid phone - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Phone.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.INVALID_PHONE_DESC + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + Phone.MESSAGE_CONSTRAINTS); // invalid email - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.INVALID_EMAIL_DESC + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Email.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.INVALID_EMAIL_DESC + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + Email.MESSAGE_CONSTRAINTS); // invalid address - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, Address.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + Address.MESSAGE_CONSTRAINTS); // invalid tag - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.INVALID_TAG_DESC + CommandTestUtil.VALID_TAG_FRIEND, Tag.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + + CommandTestUtil.INVALID_TAG_DESC + CommandTestUtil.VALID_TAG_FRIEND, + Tag.MESSAGE_CONSTRAINTS); // two invalid values, only first invalid value reported - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC, Name.MESSAGE_CONSTRAINTS); // non-empty preamble - CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.PREAMBLE_NON_EMPTY + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB - + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + CommandParserTestUtil.assertParseFailure(parser, + CommandTestUtil.PREAMBLE_NON_EMPTY + CommandTestUtil.NAME_DESC_BOB + + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND + + CommandTestUtil.TAG_DESC_FRIEND, String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java index 1fbaf3f177c..90e5c373afb 100644 --- a/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java +++ b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.List; @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; +import tutorpro.logic.Messages; import tutorpro.logic.commands.AddCommand; import tutorpro.logic.commands.ClearCommand; import tutorpro.logic.commands.DeleteCommand; @@ -21,11 +22,10 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.person.NameContainsKeywordsPredicate; import tutorpro.model.person.Person; +import tutorpro.testutil.Assert; import tutorpro.testutil.EditPersonDescriptorBuilder; import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.PersonUtil; -import tutorpro.logic.Messages; -import tutorpro.testutil.Assert; import tutorpro.testutil.TypicalIndexes; public class AddressBookParserTest { @@ -57,7 +57,8 @@ public void parseCommand_edit() throws Exception { Person person = new PersonBuilder().build(); EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " - + TypicalIndexes.INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); + + TypicalIndexes.INDEX_FIRST_PERSON.getOneBased() + " " + + PersonUtil.getEditPersonDescriptorDetails(descriptor)); assertEquals(new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, descriptor), command); } @@ -89,12 +90,13 @@ public void parseCommand_list() throws Exception { @Test public void parseCommand_unrecognisedInput_throwsParseException() { - Assert.assertThrows(ParseException.class, String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, HelpCommand.MESSAGE_USAGE), () - -> parser.parseCommand("")); + Assert.assertThrows(ParseException.class, String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, + HelpCommand.MESSAGE_USAGE), () -> parser.parseCommand("")); } @Test public void parseCommand_unknownCommand_throwsParseException() { - Assert.assertThrows(ParseException.class, Messages.MESSAGE_UNKNOWN_COMMAND, () -> parser.parseCommand("unknownCommand")); + Assert.assertThrows(ParseException.class, + Messages.MESSAGE_UNKNOWN_COMMAND, () -> parser.parseCommand("unknownCommand")); } } diff --git a/src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java b/src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java index 1a7a7624c94..f40ae3f2cc6 100644 --- a/src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java +++ b/src/test/java/tutorpro/logic/parser/CommandParserTestUtil.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Assertions; + import tutorpro.logic.commands.Command; import tutorpro.logic.parser.exceptions.ParseException; diff --git a/src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java b/src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java index 65539b5fdbd..449bddc0916 100644 --- a/src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/DeleteCommandParserTest.java @@ -2,13 +2,13 @@ import org.junit.jupiter.api.Test; -import tutorpro.logic.commands.DeleteCommand; import tutorpro.logic.Messages; +import tutorpro.logic.commands.DeleteCommand; import tutorpro.testutil.TypicalIndexes; /** * As we are only doing white-box testing, our test cases do not cover path variations - * outside of the DeleteCommand code. For example, inputs "1" and "1 abc" take the + * outside the DeleteCommand code. For example, inputs "1" and "1 abc" take the * same path through the DeleteCommand, and therefore we test only one of them. * The path variation for those two cases occur inside the ParserUtil, and * therefore should be covered by the ParserUtilTest. @@ -19,11 +19,13 @@ public class DeleteCommandParserTest { @Test public void parse_validArgs_returnsDeleteCommand() { - CommandParserTestUtil.assertParseSuccess(parser, "1", new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON)); + CommandParserTestUtil.assertParseSuccess(parser, "1", + new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON)); } @Test public void parse_invalidArgs_throwsParseException() { - CommandParserTestUtil.assertParseFailure(parser, "a", String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); + CommandParserTestUtil.assertParseFailure(parser, "a", + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, DeleteCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java b/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java index 506eea38597..c3f1af92c5d 100644 --- a/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/EditCommandParserTest.java @@ -4,6 +4,7 @@ import tutorpro.commons.core.index.Index; import tutorpro.logic.Messages; +import tutorpro.logic.commands.CommandTestUtil; import tutorpro.logic.commands.EditCommand; import tutorpro.model.person.Address; import tutorpro.model.person.Email; @@ -11,7 +12,6 @@ import tutorpro.model.person.Phone; import tutorpro.model.tag.Tag; import tutorpro.testutil.EditPersonDescriptorBuilder; -import tutorpro.logic.commands.CommandTestUtil; import tutorpro.testutil.TypicalIndexes; public class EditCommandParserTest { @@ -38,10 +38,12 @@ public void parse_missingParts_failure() { @Test public void parse_invalidPreamble_failure() { // negative index - CommandParserTestUtil.assertParseFailure(parser, "-5" + CommandTestUtil.NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); + CommandParserTestUtil.assertParseFailure(parser, + "-5" + CommandTestUtil.NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); // zero index - CommandParserTestUtil.assertParseFailure(parser, "0" + CommandTestUtil.NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); + CommandParserTestUtil.assertParseFailure(parser, + "0" + CommandTestUtil.NAME_DESC_AMY, MESSAGE_INVALID_FORMAT); // invalid arguments being parsed as preamble CommandParserTestUtil.assertParseFailure(parser, "1 some random string", MESSAGE_INVALID_FORMAT); @@ -52,34 +54,51 @@ public void parse_invalidPreamble_failure() { @Test public void parse_invalidValue_failure() { - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_NAME_DESC, Name.MESSAGE_CONSTRAINTS); // invalid name - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); // invalid phone - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_EMAIL_DESC, Email.MESSAGE_CONSTRAINTS); // invalid email - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_ADDRESS_DESC, Address.MESSAGE_CONSTRAINTS); // invalid address - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_TAG_DESC, Tag.MESSAGE_CONSTRAINTS); // invalid tag + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_NAME_DESC, Name.MESSAGE_CONSTRAINTS); // invalid name + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_PHONE_DESC, Phone.MESSAGE_CONSTRAINTS); // invalid phone + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_EMAIL_DESC, Email.MESSAGE_CONSTRAINTS); // invalid email + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_ADDRESS_DESC, Address.MESSAGE_CONSTRAINTS); // invalid address + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_TAG_DESC, Tag.MESSAGE_CONSTRAINTS); // invalid tag // invalid phone followed by valid email - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.EMAIL_DESC_AMY, Phone.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.EMAIL_DESC_AMY, + Phone.MESSAGE_CONSTRAINTS); // while parsing {@code PREFIX_TAG} alone will reset the tags of the {@code Person} being edited, // parsing it together with a valid tag results in error - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.TAG_DESC_HUSBAND + TAG_EMPTY, Tag.MESSAGE_CONSTRAINTS); - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.TAG_DESC_FRIEND + TAG_EMPTY + CommandTestUtil.TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); - CommandParserTestUtil.assertParseFailure(parser, "1" + TAG_EMPTY + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.TAG_DESC_HUSBAND, Tag.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.TAG_DESC_HUSBAND + TAG_EMPTY, + Tag.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.TAG_DESC_FRIEND + TAG_EMPTY + CommandTestUtil.TAG_DESC_HUSBAND, + Tag.MESSAGE_CONSTRAINTS); + CommandParserTestUtil.assertParseFailure(parser, + "1" + TAG_EMPTY + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.TAG_DESC_HUSBAND, + Tag.MESSAGE_CONSTRAINTS); // multiple invalid values, but only the first invalid value is captured - CommandParserTestUtil.assertParseFailure(parser, "1" + CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.INVALID_EMAIL_DESC + CommandTestUtil.VALID_ADDRESS_AMY + CommandTestUtil.VALID_PHONE_AMY, + CommandParserTestUtil.assertParseFailure(parser, + "1" + CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.INVALID_EMAIL_DESC + + CommandTestUtil.VALID_ADDRESS_AMY + CommandTestUtil.VALID_PHONE_AMY, Name.MESSAGE_CONSTRAINTS); } @Test public void parse_allFieldsSpecified_success() { Index targetIndex = TypicalIndexes.INDEX_SECOND_PERSON; - String userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND - + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND; + String userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.EMAIL_DESC_AMY + + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND; - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_AMY) - .withPhone(CommandTestUtil.VALID_PHONE_BOB).withEmail(CommandTestUtil.VALID_EMAIL_AMY).withAddress(CommandTestUtil.VALID_ADDRESS_AMY) + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder() + .withName(CommandTestUtil.VALID_NAME_AMY).withPhone(CommandTestUtil.VALID_PHONE_BOB) + .withEmail(CommandTestUtil.VALID_EMAIL_AMY).withAddress(CommandTestUtil.VALID_ADDRESS_AMY) .withTags(CommandTestUtil.VALID_TAG_HUSBAND, CommandTestUtil.VALID_TAG_FRIEND).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); @@ -91,7 +110,8 @@ public void parse_someFieldsSpecified_success() { Index targetIndex = TypicalIndexes.INDEX_FIRST_PERSON; String userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_AMY; - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withPhone(CommandTestUtil.VALID_PHONE_BOB) + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder() + .withPhone(CommandTestUtil.VALID_PHONE_BOB) .withEmail(CommandTestUtil.VALID_EMAIL_AMY).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); @@ -103,7 +123,8 @@ public void parse_oneFieldSpecified_success() { // name Index targetIndex = TypicalIndexes.INDEX_THIRD_PERSON; String userInput = targetIndex.getOneBased() + CommandTestUtil.NAME_DESC_AMY; - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_AMY).build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder() + .withName(CommandTestUtil.VALID_NAME_AMY).build(); EditCommand expectedCommand = new EditCommand(targetIndex, descriptor); CommandParserTestUtil.assertParseSuccess(parser, userInput, expectedCommand); @@ -139,29 +160,38 @@ public void parse_multipleRepeatedFields_failure() { // valid followed by invalid Index targetIndex = TypicalIndexes.INDEX_FIRST_PERSON; - String userInput = targetIndex.getOneBased() + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.PHONE_DESC_BOB; + String userInput = targetIndex.getOneBased() + CommandTestUtil.INVALID_PHONE_DESC + + CommandTestUtil.PHONE_DESC_BOB; - CommandParserTestUtil.assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + CommandParserTestUtil.assertParseFailure(parser, userInput, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); // invalid followed by valid userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.INVALID_PHONE_DESC; - CommandParserTestUtil.assertParseFailure(parser, userInput, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); + CommandParserTestUtil.assertParseFailure(parser, userInput, + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE)); // mulltiple valid fields repeated - userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY - + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND - + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND; + userInput = targetIndex.getOneBased() + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND + CommandTestUtil.PHONE_DESC_AMY + + CommandTestUtil.ADDRESS_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + + CommandTestUtil.TAG_DESC_HUSBAND; CommandParserTestUtil.assertParseFailure(parser, userInput, - Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE, CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_ADDRESS)); + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE, CliSyntax.PREFIX_EMAIL, + CliSyntax.PREFIX_ADDRESS)); // multiple invalid values - userInput = targetIndex.getOneBased() + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.INVALID_ADDRESS_DESC + CommandTestUtil.INVALID_EMAIL_DESC - + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.INVALID_ADDRESS_DESC + CommandTestUtil.INVALID_EMAIL_DESC; + userInput = targetIndex.getOneBased() + CommandTestUtil.INVALID_PHONE_DESC + + CommandTestUtil.INVALID_ADDRESS_DESC + CommandTestUtil.INVALID_EMAIL_DESC + + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.INVALID_ADDRESS_DESC + + CommandTestUtil.INVALID_EMAIL_DESC; CommandParserTestUtil.assertParseFailure(parser, userInput, - Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE, CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_ADDRESS)); + Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_PHONE, + CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_ADDRESS)); } @Test diff --git a/src/test/java/tutorpro/logic/parser/FindCommandParserTest.java b/src/test/java/tutorpro/logic/parser/FindCommandParserTest.java index 968b7c26ac6..6c8c2b09259 100644 --- a/src/test/java/tutorpro/logic/parser/FindCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/FindCommandParserTest.java @@ -7,9 +7,9 @@ import org.junit.jupiter.api.Test; +import tutorpro.logic.Messages; import tutorpro.logic.commands.FindCommand; import tutorpro.model.person.NameContainsKeywordsPredicate; -import tutorpro.logic.Messages; public class FindCommandParserTest { @@ -17,7 +17,8 @@ public class FindCommandParserTest { @Test public void parse_emptyArg_throwsParseException() { - assertParseFailure(parser, " ", String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); + assertParseFailure(parser, " ", + String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } @Test diff --git a/src/test/java/tutorpro/model/AddressBookTest.java b/src/test/java/tutorpro/model/AddressBookTest.java index 8c3a91adea2..52e2b2bc3b8 100644 --- a/src/test/java/tutorpro/model/AddressBookTest.java +++ b/src/test/java/tutorpro/model/AddressBookTest.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collection; @@ -18,8 +18,8 @@ import javafx.collections.ObservableList; import tutorpro.model.person.Person; import tutorpro.model.person.exceptions.DuplicatePersonException; -import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.Assert; +import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.TypicalPersons; public class AddressBookTest { @@ -46,8 +46,8 @@ public void resetData_withValidReadOnlyAddressBook_replacesData() { @Test public void resetData_withDuplicatePersons_throwsDuplicatePersonException() { // Two persons with the same identity fields - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); List newPersons = Arrays.asList(TypicalPersons.ALICE, editedAlice); AddressBookStub newData = new AddressBookStub(newPersons); @@ -73,8 +73,8 @@ public void hasPerson_personInAddressBook_returnsTrue() { @Test public void hasPerson_personWithSameIdentityFieldsInAddressBook_returnsTrue() { addressBook.addPerson(TypicalPersons.ALICE); - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); assertTrue(addressBook.hasPerson(editedAlice)); } diff --git a/src/test/java/tutorpro/model/ModelManagerTest.java b/src/test/java/tutorpro/model/ModelManagerTest.java index 774d709437a..1ec5c1ebb79 100644 --- a/src/test/java/tutorpro/model/ModelManagerTest.java +++ b/src/test/java/tutorpro/model/ModelManagerTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.nio.file.Path; import java.nio.file.Paths; @@ -95,7 +95,8 @@ public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException @Test public void equals() { - AddressBook addressBook = new AddressBookBuilder().withPerson(TypicalPersons.ALICE).withPerson(TypicalPersons.BENSON).build(); + AddressBook addressBook = new AddressBookBuilder() + .withPerson(TypicalPersons.ALICE).withPerson(TypicalPersons.BENSON).build(); AddressBook differentAddressBook = new AddressBook(); UserPrefs userPrefs = new UserPrefs(); diff --git a/src/test/java/tutorpro/model/UserPrefsTest.java b/src/test/java/tutorpro/model/UserPrefsTest.java index b9c355ece49..9c6fb9c521a 100644 --- a/src/test/java/tutorpro/model/UserPrefsTest.java +++ b/src/test/java/tutorpro/model/UserPrefsTest.java @@ -1,8 +1,9 @@ package tutorpro.model; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class UserPrefsTest { diff --git a/src/test/java/tutorpro/model/person/AddressTest.java b/src/test/java/tutorpro/model/person/AddressTest.java index 5bae81dea3a..c0353350694 100644 --- a/src/test/java/tutorpro/model/person/AddressTest.java +++ b/src/test/java/tutorpro/model/person/AddressTest.java @@ -2,9 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class AddressTest { @@ -32,7 +33,8 @@ public void isValidAddress() { // valid addresses assertTrue(Address.isValidAddress("Blk 456, Den Road, #01-355")); assertTrue(Address.isValidAddress("-")); // one character - assertTrue(Address.isValidAddress("Leng Inc; 1234 Market St; San Francisco CA 2349879; USA")); // long address + assertTrue(Address + .isValidAddress("Leng Inc; 1234 Market St; San Francisco CA 2349879; USA")); // long address } @Test diff --git a/src/test/java/tutorpro/model/person/EmailTest.java b/src/test/java/tutorpro/model/person/EmailTest.java index 7a4266d2a2d..85eeb842fcd 100644 --- a/src/test/java/tutorpro/model/person/EmailTest.java +++ b/src/test/java/tutorpro/model/person/EmailTest.java @@ -2,9 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class EmailTest { diff --git a/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java index d7c46ad378a..0ca8eb0e828 100644 --- a/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java @@ -19,14 +19,17 @@ public void equals() { List firstPredicateKeywordList = Collections.singletonList("first"); List secondPredicateKeywordList = Arrays.asList("first", "second"); - NameContainsKeywordsPredicate firstPredicate = new NameContainsKeywordsPredicate(firstPredicateKeywordList); - NameContainsKeywordsPredicate secondPredicate = new NameContainsKeywordsPredicate(secondPredicateKeywordList); + NameContainsKeywordsPredicate firstPredicate = + new NameContainsKeywordsPredicate(firstPredicateKeywordList); + NameContainsKeywordsPredicate secondPredicate = + new NameContainsKeywordsPredicate(secondPredicateKeywordList); // same object -> returns true assertTrue(firstPredicate.equals(firstPredicate)); // same values -> returns true - NameContainsKeywordsPredicate firstPredicateCopy = new NameContainsKeywordsPredicate(firstPredicateKeywordList); + NameContainsKeywordsPredicate firstPredicateCopy = + new NameContainsKeywordsPredicate(firstPredicateKeywordList); assertTrue(firstPredicate.equals(firstPredicateCopy)); // different types -> returns false @@ -42,7 +45,8 @@ public void equals() { @Test public void test_nameContainsKeywords_returnsTrue() { // One keyword - NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); + NameContainsKeywordsPredicate predicate = + new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); // Multiple keywords diff --git a/src/test/java/tutorpro/model/person/NameTest.java b/src/test/java/tutorpro/model/person/NameTest.java index 5abf8056a26..e4a56befc0c 100644 --- a/src/test/java/tutorpro/model/person/NameTest.java +++ b/src/test/java/tutorpro/model/person/NameTest.java @@ -2,9 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class NameTest { diff --git a/src/test/java/tutorpro/model/person/PersonTest.java b/src/test/java/tutorpro/model/person/PersonTest.java index 5b8499904cb..fcc7977957d 100644 --- a/src/test/java/tutorpro/model/person/PersonTest.java +++ b/src/test/java/tutorpro/model/person/PersonTest.java @@ -1,20 +1,20 @@ package tutorpro.model.person; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; +//import static org.junit.jupiter.api.Assertions.assertEquals; +//import static org.junit.jupiter.api.Assertions.assertFalse; +//import static org.junit.jupiter.api.Assertions.assertTrue; import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.Assert; +import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.TypicalPersons; public class PersonTest { @@ -34,7 +34,8 @@ public void isSamePerson() { Assertions.assertFalse(TypicalPersons.ALICE.isSamePerson(null)); // same name, all other attributes different -> returns true - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB) .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); Assertions.assertTrue(TypicalPersons.ALICE.isSamePerson(editedAlice)); @@ -93,8 +94,9 @@ public void equals() { @Test public void toStringMethod() { - String expected = Person.class.getCanonicalName() + "{name=" + TypicalPersons.ALICE.getName() + ", phone=" + TypicalPersons.ALICE.getPhone() - + ", email=" + TypicalPersons.ALICE.getEmail() + ", address=" + TypicalPersons.ALICE.getAddress() + ", tags=" + TypicalPersons.ALICE.getTags() + "}"; + String expected = Person.class.getCanonicalName() + "{name=" + TypicalPersons.ALICE.getName() + + ", phone=" + TypicalPersons.ALICE.getPhone() + ", email=" + TypicalPersons.ALICE.getEmail() + + ", address=" + TypicalPersons.ALICE.getAddress() + ", tags=" + TypicalPersons.ALICE.getTags() + "}"; Assertions.assertEquals(expected, TypicalPersons.ALICE.toString()); } } diff --git a/src/test/java/tutorpro/model/person/PhoneTest.java b/src/test/java/tutorpro/model/person/PhoneTest.java index d138e2fbf28..b05eea8045f 100644 --- a/src/test/java/tutorpro/model/person/PhoneTest.java +++ b/src/test/java/tutorpro/model/person/PhoneTest.java @@ -2,9 +2,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class PhoneTest { diff --git a/src/test/java/tutorpro/model/person/UniquePersonListTest.java b/src/test/java/tutorpro/model/person/UniquePersonListTest.java index fcff6485826..3c66a5ce070 100644 --- a/src/test/java/tutorpro/model/person/UniquePersonListTest.java +++ b/src/test/java/tutorpro/model/person/UniquePersonListTest.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.util.Arrays; import java.util.Collections; @@ -15,8 +15,8 @@ import tutorpro.model.person.exceptions.DuplicatePersonException; import tutorpro.model.person.exceptions.PersonNotFoundException; -import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.Assert; +import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.TypicalPersons; public class UniquePersonListTest { @@ -42,8 +42,8 @@ public void contains_personInList_returnsTrue() { @Test public void contains_personWithSameIdentityFieldsInList_returnsTrue() { uniquePersonList.add(TypicalPersons.ALICE); - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); assertTrue(uniquePersonList.contains(editedAlice)); } @@ -60,17 +60,20 @@ public void add_duplicatePerson_throwsDuplicatePersonException() { @Test public void setPerson_nullTargetPerson_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(null, TypicalPersons.ALICE)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList + .setPerson(null, TypicalPersons.ALICE)); } @Test public void setPerson_nullEditedPerson_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPerson(TypicalPersons.ALICE, null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList + .setPerson(TypicalPersons.ALICE, null)); } @Test public void setPerson_targetPersonNotInList_throwsPersonNotFoundException() { - Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.ALICE)); + Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList + .setPerson(TypicalPersons.ALICE, TypicalPersons.ALICE)); } @Test @@ -85,8 +88,8 @@ public void setPerson_editedPersonIsSamePerson_success() { @Test public void setPerson_editedPersonHasSameIdentity_success() { uniquePersonList.add(TypicalPersons.ALICE); - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE).withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND) - .build(); + Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); uniquePersonList.setPerson(TypicalPersons.ALICE, editedAlice); UniquePersonList expectedUniquePersonList = new UniquePersonList(); expectedUniquePersonList.add(editedAlice); @@ -106,7 +109,8 @@ public void setPerson_editedPersonHasDifferentIdentity_success() { public void setPerson_editedPersonHasNonUniqueIdentity_throwsDuplicatePersonException() { uniquePersonList.add(TypicalPersons.ALICE); uniquePersonList.add(TypicalPersons.BOB); - Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.BOB)); + Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList + .setPerson(TypicalPersons.ALICE, TypicalPersons.BOB)); } @Test @@ -159,7 +163,8 @@ public void setPersons_list_replacesOwnListWithProvidedList() { @Test public void setPersons_listWithDuplicatePersons_throwsDuplicatePersonException() { List listWithDuplicatePersons = Arrays.asList(TypicalPersons.ALICE, TypicalPersons.ALICE); - Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.setPersons(listWithDuplicatePersons)); + Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList + .setPersons(listWithDuplicatePersons)); } @Test diff --git a/src/test/java/tutorpro/model/tag/TagTest.java b/src/test/java/tutorpro/model/tag/TagTest.java index 543f6ca5119..6e0db11b7d0 100644 --- a/src/test/java/tutorpro/model/tag/TagTest.java +++ b/src/test/java/tutorpro/model/tag/TagTest.java @@ -1,8 +1,9 @@ package tutorpro.model.tag; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Test; + import tutorpro.testutil.Assert; public class TagTest { diff --git a/src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java b/src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java index 1cdd907c735..b537e695455 100644 --- a/src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java +++ b/src/test/java/tutorpro/storage/JsonAdaptedPersonTest.java @@ -1,7 +1,7 @@ package tutorpro.storage; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static tutorpro.testutil.Assert.assertThrows; +//import static org.junit.jupiter.api.Assertions.assertEquals; +//import static tutorpro.testutil.Assert.assertThrows; import java.util.ArrayList; import java.util.List; @@ -49,8 +49,10 @@ public void toModelType_invalidName_throwsIllegalValueException() { @Test public void toModelType_nullName_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -64,8 +66,10 @@ public void toModelType_invalidPhone_throwsIllegalValueException() { @Test public void toModelType_nullPhone_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -79,8 +83,10 @@ public void toModelType_invalidEmail_throwsIllegalValueException() { @Test public void toModelType_nullEmail_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); - String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } @@ -94,8 +100,10 @@ public void toModelType_invalidAddress_throwsIllegalValueException() { @Test public void toModelType_nullAddress_throwsIllegalValueException() { - JsonAdaptedPerson person = new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); - String expectedMessage = String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); + JsonAdaptedPerson person = + new JsonAdaptedPerson(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedPerson.MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); } diff --git a/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java b/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java index 4536eb07a03..de929582a48 100644 --- a/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -18,7 +18,8 @@ import tutorpro.testutil.TypicalPersons; public class JsonAddressBookStorageTest { - private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); + private static final Path TEST_DATA_FOLDER = + Paths.get("src", "test", "data", "JsonAddressBookStorageTest"); @TempDir public Path testFolder; @@ -45,17 +46,20 @@ public void read_missingFile_emptyResult() throws Exception { @Test public void read_notJsonFormat_exceptionThrown() { - Assert.assertThrows(DataLoadingException.class, () -> readAddressBook("notJsonFormatAddressBook.json")); + Assert.assertThrows(DataLoadingException.class, () -> + readAddressBook("notJsonFormatAddressBook.json")); } @Test public void readAddressBook_invalidPersonAddressBook_throwDataLoadingException() { - Assert.assertThrows(DataLoadingException.class, () -> readAddressBook("invalidPersonAddressBook.json")); + Assert.assertThrows(DataLoadingException.class, () -> + readAddressBook("invalidPersonAddressBook.json")); } @Test public void readAddressBook_invalidAndValidPersonAddressBook_throwDataLoadingException() { - Assert.assertThrows(DataLoadingException.class, () -> readAddressBook("invalidAndValidPersonAddressBook.json")); + Assert.assertThrows(DataLoadingException.class, () -> + readAddressBook("invalidAndValidPersonAddressBook.json")); } @Test @@ -86,7 +90,8 @@ public void readAndSaveAddressBook_allInOrder_success() throws Exception { @Test public void saveAddressBook_nullAddressBook_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> saveAddressBook(null, "SomeFile.json")); + Assert.assertThrows(NullPointerException.class, () -> + saveAddressBook(null, "SomeFile.json")); } /** diff --git a/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java b/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java index 44df46a9e36..d484c35caa5 100644 --- a/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java @@ -1,7 +1,7 @@ package tutorpro.storage; import static org.junit.jupiter.api.Assertions.assertEquals; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.nio.file.Path; import java.nio.file.Paths; @@ -11,15 +11,19 @@ import tutorpro.commons.exceptions.IllegalValueException; import tutorpro.commons.util.JsonUtil; import tutorpro.model.AddressBook; -import tutorpro.testutil.TypicalPersons; import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalPersons; public class JsonSerializableAddressBookTest { - private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonSerializableAddressBookTest"); - private static final Path TYPICAL_PERSONS_FILE = TEST_DATA_FOLDER.resolve("typicalPersonsAddressBook.json"); - private static final Path INVALID_PERSON_FILE = TEST_DATA_FOLDER.resolve("invalidPersonAddressBook.json"); - private static final Path DUPLICATE_PERSON_FILE = TEST_DATA_FOLDER.resolve("duplicatePersonAddressBook.json"); + private static final Path TEST_DATA_FOLDER = + Paths.get("src", "test", "data", "JsonSerializableAddressBookTest"); + private static final Path TYPICAL_PERSONS_FILE = + TEST_DATA_FOLDER.resolve("typicalPersonsAddressBook.json"); + private static final Path INVALID_PERSON_FILE = + TEST_DATA_FOLDER.resolve("invalidPersonAddressBook.json"); + private static final Path DUPLICATE_PERSON_FILE = + TEST_DATA_FOLDER.resolve("duplicatePersonAddressBook.json"); @Test public void toModelType_typicalPersonsFile_success() throws Exception { diff --git a/src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java b/src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java index 35c38ecdaba..9903bc4a816 100644 --- a/src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java +++ b/src/test/java/tutorpro/storage/JsonUserPrefsStorageTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; -import static tutorpro.testutil.Assert.assertThrows; +//import static tutorpro.testutil.Assert.assertThrows; import java.io.IOException; import java.nio.file.Path; @@ -19,7 +19,8 @@ public class JsonUserPrefsStorageTest { - private static final Path TEST_DATA_FOLDER = Paths.get("src", "test", "data", "JsonUserPrefsStorageTest"); + private static final Path TEST_DATA_FOLDER = + Paths.get("src", "test", "data", "JsonUserPrefsStorageTest"); @TempDir public Path testFolder; @@ -41,7 +42,8 @@ public void readUserPrefs_missingFile_emptyResult() throws DataLoadingException @Test public void readUserPrefs_notJsonFormat_exceptionThrown() { - Assert.assertThrows(DataLoadingException.class, () -> readUserPrefs("NotJsonFormatUserPrefs.json")); + Assert.assertThrows(DataLoadingException.class, () -> + readUserPrefs("NotJsonFormatUserPrefs.json")); } private Path addToTestDataPathIfNotNull(String userPrefsFileInTestDataFolder) { @@ -80,12 +82,14 @@ private UserPrefs getTypicalUserPrefs() { @Test public void savePrefs_nullPrefs_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> saveUserPrefs(null, "SomeFile.json")); + Assert.assertThrows(NullPointerException.class, () -> + saveUserPrefs(null, "SomeFile.json")); } @Test public void saveUserPrefs_nullFilePath_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> saveUserPrefs(new UserPrefs(), null)); + Assert.assertThrows(NullPointerException.class, () -> + saveUserPrefs(new UserPrefs(), null)); } /** diff --git a/src/test/java/tutorpro/testutil/Assert.java b/src/test/java/tutorpro/testutil/Assert.java index 66d8b640a64..ded03ecaf55 100644 --- a/src/test/java/tutorpro/testutil/Assert.java +++ b/src/test/java/tutorpro/testutil/Assert.java @@ -10,8 +10,8 @@ public class Assert { /** * Asserts that the {@code executable} throws the {@code expectedType} Exception. - * This is a wrapper method that invokes {@link Assertions#assertThrows(Class, Executable)}, to maintain consistency - * with our custom {@link #assertThrows(Class, String, Executable)} method. + * This is a wrapper method that invokes {@link Assertions#assertThrows(Class, Executable)}, + * to maintain consistency with our custom {@link #assertThrows(Class, String, Executable)} method. * To standardize API calls in this project, users should use this method instead of * {@link Assertions#assertThrows(Class, Executable)}. */ diff --git a/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java b/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java index 64fc39998b3..51531f28e25 100644 --- a/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java @@ -4,13 +4,13 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import tutorpro.logic.commands.EditCommand; import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; import tutorpro.model.person.Person; import tutorpro.model.person.Phone; import tutorpro.model.tag.Tag; -import tutorpro.logic.commands.EditCommand; /** * A utility class to help with building EditPersonDescriptor objects. diff --git a/src/test/java/tutorpro/testutil/PersonUtil.java b/src/test/java/tutorpro/testutil/PersonUtil.java index af34f1f1066..d2a25a5ab25 100644 --- a/src/test/java/tutorpro/testutil/PersonUtil.java +++ b/src/test/java/tutorpro/testutil/PersonUtil.java @@ -3,10 +3,10 @@ import java.util.Set; import tutorpro.logic.commands.AddCommand; -import tutorpro.model.person.Person; -import tutorpro.model.tag.Tag; import tutorpro.logic.commands.EditCommand; import tutorpro.logic.parser.CliSyntax; +import tutorpro.model.person.Person; +import tutorpro.model.tag.Tag; /** * A utility class for Person. @@ -43,7 +43,8 @@ public static String getEditPersonDescriptorDetails(EditCommand.EditPersonDescri descriptor.getName().ifPresent(name -> sb.append(CliSyntax.PREFIX_NAME).append(name.fullName).append(" ")); descriptor.getPhone().ifPresent(phone -> sb.append(CliSyntax.PREFIX_PHONE).append(phone.value).append(" ")); descriptor.getEmail().ifPresent(email -> sb.append(CliSyntax.PREFIX_EMAIL).append(email.value).append(" ")); - descriptor.getAddress().ifPresent(address -> sb.append(CliSyntax.PREFIX_ADDRESS).append(address.value).append(" ")); + descriptor.getAddress().ifPresent(address -> sb.append(CliSyntax.PREFIX_ADDRESS) + .append(address.value).append(" ")); if (descriptor.getTags().isPresent()) { Set tags = descriptor.getTags().get(); if (tags.isEmpty()) { From 97835525c06bc077fece2cd5cb0018afa6e84f54 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Mon, 11 Mar 2024 23:51:15 +0800 Subject: [PATCH 036/189] UIPartTest.java: Fix refactoring problem --- src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml b/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml index af14c3ad2d4..45e7b94ad1c 100644 --- a/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml +++ b/src/test/resources/view/UiPartTest/validFileWithFxRoot.fxml @@ -1,6 +1,6 @@ - Hello World! From dda668b5498c231fd4f91cc8ed86dbdf19d93f24 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Tue, 12 Mar 2024 00:42:47 +0800 Subject: [PATCH 037/189] Small fix: README layout --- README.md | 2 +- docs/AboutUs.md | 2 +- docs/images/{tarinpairor.png => TarinPairor.png} | Bin 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/images/{tarinpairor.png => TarinPairor.png} (100%) diff --git a/README.md b/README.md index a6de81ffc8d..de380de4bfa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S2-CS2103T-F12-3/tp/actions) -[![codecov badge](https://codecov.io/gh/nus-cs2103-AY2324S2/tp/graph/badge.svg?token=PBBJNYE8U5)](https://codecov.io/gh/nus-cs2103-AY2324S2/tp) + ![MockUi](docs/images/mockUI.png) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 32bb408cf0d..d80c6528b97 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -21,7 +21,7 @@ You can reach us at the email [e0960433@u.nus.edu](e0960433@u.nus.edu) ### Pairor Tarin - + [[github](http://github.com/TarinPairor)] [[portfolio](team/tarinpairor.md)] diff --git a/docs/images/tarinpairor.png b/docs/images/TarinPairor.png similarity index 100% rename from docs/images/tarinpairor.png rename to docs/images/TarinPairor.png From 4976c0ca214f0063d6a65f0d1a02f2a02b9fb68e Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Tue, 12 Mar 2024 01:04:03 +0800 Subject: [PATCH 038/189] Update xinyuan.md --- docs/team/xinyuan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/xinyuan.md b/docs/team/xinyuan.md index 01885d6e216..c802ccad99f 100644 --- a/docs/team/xinyuan.md +++ b/docs/team/xinyuan.md @@ -28,7 +28,7 @@ Given below are my contributions to the project. * **Community**: * PRs reviewed (with non-trivial review comments): - * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) + * Contributed to forum discussions (examples: [1](), [2](), [3]()) * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) * _{you can add/remove categories in the list above}_ From 86fa211978e00091ea3bc27be7547750ec60efa4 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 12 Mar 2024 03:46:52 +0800 Subject: [PATCH 039/189] Update tarinpairor.md --- docs/team/tarinpairor.md | 47 +++++++++++++++------------------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/docs/team/tarinpairor.md b/docs/team/tarinpairor.md index 773a07794e2..8f7465385e9 100644 --- a/docs/team/tarinpairor.md +++ b/docs/team/tarinpairor.md @@ -1,46 +1,33 @@ --- layout: page -title: John Doe's Project Portfolio Page +title: Pairor Tarin's Project Portfolio Page --- -### Project: AddressBook Level 3 +### Project: TutorPro Level 1 -AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +TutorPro - Level 1 is a desktop contact management application used for managing students as a **Private Tutor**. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. Given below are my contributions to the project. -* **New Feature**: Added the ability to undo/redo previous commands. - * What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command. - * Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them. - * Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands. - * Credits: *{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}* +- **New Feature**: -* **New Feature**: Added a history command that allows the user to navigate to previous commands using up/down keys. +- **Code contributed**: [RepoSense link]() -* **Code contributed**: [RepoSense link]() +- **Project management**: -* **Project management**: - * Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub +- **Enhancements to existing features**: -* **Enhancements to existing features**: - * Updated the GUI color scheme (Pull requests [\#33](), [\#34]()) - * Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]()) +- **Documentation**: -* **Documentation**: - * User Guide: - * Added documentation for the features `delete` and `find` [\#72]() - * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() - * Developer Guide: - * Added implementation details of the `delete` feature. + - README: + - Made UI mockup of our intended final product. + - Update all contents to match our project. + - Acknowledge the original source of the code. -* **Community**: - * PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]() - * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) - * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) - * Some parts of the history feature I added was adopted by several other class mates ([1](), [2]()) +- **Community**: -* **Tools**: - * Integrated a third party library (Natty) to the project ([\#42]()) - * Integrated a new Github plugin (CircleCI) to the team repo + - PRs reviewed (with non-trivial review comments): + - Contributed to forum discussions (examples: [1](), [2](), [3]()) + - Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) -* _{you can add/remove categories in the list above}_ +- _{you can add/remove categories in the list above}_ From 3d76624cef3fd39cf290b2e2473c87e4f969d6da Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:11:38 +0800 Subject: [PATCH 040/189] Increase Tarin image width to 200px --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 7bc5993b0be..f5eede2cf17 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -21,7 +21,7 @@ You can reach us at the email `[insert email]` ### Pairor Tarin - + [[github](http://github.com/TarinPairor)] [[portfolio](team/johndoe.md)] From 41b84ca7a59280b094f7cd382f4b71402b0d6732 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:17:35 +0800 Subject: [PATCH 041/189] Update Image path name for Tarin --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index f5eede2cf17..671766085ba 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -21,7 +21,7 @@ You can reach us at the email `[insert email]` ### Pairor Tarin - + [[github](http://github.com/TarinPairor)] [[portfolio](team/johndoe.md)] From 07de8644e94857e93ccb8f8ea75c37fa7628f270 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:29:41 +0800 Subject: [PATCH 042/189] Update Tarin image width to 199px --- docs/AboutUs.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index f485373c877..1ec294b5766 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -21,9 +21,7 @@ You can reach us at the email [e0960433@u.nus.edu](e0960433@u.nus.edu) ### Pairor Tarin - - - + [[github](http://github.com/TarinPairor)] [[portfolio](team/tarinpairor.md)] From e6e145c361710366998051c90f6ef835e8223058 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sun, 17 Mar 2024 20:36:46 +0800 Subject: [PATCH 043/189] Add student class --- src/main/java/tutorpro/model/person/Person.java | 5 +++++ src/main/java/tutorpro/model/person/Student.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 src/main/java/tutorpro/model/person/Student.java diff --git a/src/main/java/tutorpro/model/person/Person.java b/src/main/java/tutorpro/model/person/Person.java index 470c42db739..91f25f112d4 100644 --- a/src/main/java/tutorpro/model/person/Person.java +++ b/src/main/java/tutorpro/model/person/Person.java @@ -2,6 +2,7 @@ //import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Objects; @@ -62,6 +63,10 @@ public Set getTags() { return Collections.unmodifiableSet(tags); } + public boolean addTags(Tag... tags) { + return this.tags.addAll(Arrays.asList(tags)); + } + /** * Returns true if both persons have the same name. * This defines a weaker notion of equality between two persons. diff --git a/src/main/java/tutorpro/model/person/Student.java b/src/main/java/tutorpro/model/person/Student.java new file mode 100644 index 00000000000..1977dbb3658 --- /dev/null +++ b/src/main/java/tutorpro/model/person/Student.java @@ -0,0 +1,15 @@ +package tutorpro.model.person; + +import tutorpro.model.tag.Tag; + +import java.util.Set; + +public class Student extends Person { + + public static final Tag STUDENT_TAG = new Tag("Student"); + + public Student(Name name, Phone phone, Email email, Address address, Set tags) { + super(name, phone, email, address, tags); + addTags(STUDENT_TAG); + } +} \ No newline at end of file From 0ae449e6d003525acd34990f056b902c833eb59d Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sun, 17 Mar 2024 20:53:43 +0800 Subject: [PATCH 044/189] Fix styling --- src/main/java/tutorpro/model/person/Student.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tutorpro/model/person/Student.java b/src/main/java/tutorpro/model/person/Student.java index 1977dbb3658..9b61d535bc1 100644 --- a/src/main/java/tutorpro/model/person/Student.java +++ b/src/main/java/tutorpro/model/person/Student.java @@ -12,4 +12,4 @@ public Student(Name name, Phone phone, Email email, Address address, Set ta super(name, phone, email, address, tags); addTags(STUDENT_TAG); } -} \ No newline at end of file +} From c17bbf099ba36582eab76a45303a459ca4f2c8cc Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:10:42 +0800 Subject: [PATCH 045/189] Fix styling --- src/main/java/tutorpro/model/person/Student.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/tutorpro/model/person/Student.java b/src/main/java/tutorpro/model/person/Student.java index 9b61d535bc1..a67d6b0b50f 100644 --- a/src/main/java/tutorpro/model/person/Student.java +++ b/src/main/java/tutorpro/model/person/Student.java @@ -1,13 +1,19 @@ package tutorpro.model.person; -import tutorpro.model.tag.Tag; - import java.util.Set; +import tutorpro.model.tag.Tag; + +/** + * Represents a Student in TutorPro. + */ public class Student extends Person { public static final Tag STUDENT_TAG = new Tag("Student"); + /** + * Every field must be present and not null. + */ public Student(Name name, Phone phone, Email email, Address address, Set tags) { super(name, phone, email, address, tags); addTags(STUDENT_TAG); From e41db160e47dd6403140ff7a180f8c266898a966 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:33:48 +0800 Subject: [PATCH 046/189] Add tests --- .../tutorpro/model/person/PersonTest.java | 13 ++- .../tutorpro/model/person/StudentTest.java | 15 +++ .../tutorpro/testutil/StudentBuilder.java | 96 +++++++++++++++++++ 3 files changed, 120 insertions(+), 4 deletions(-) create mode 100644 src/test/java/tutorpro/model/person/StudentTest.java create mode 100644 src/test/java/tutorpro/testutil/StudentBuilder.java diff --git a/src/test/java/tutorpro/model/person/PersonTest.java b/src/test/java/tutorpro/model/person/PersonTest.java index fcc7977957d..c6591dc890a 100644 --- a/src/test/java/tutorpro/model/person/PersonTest.java +++ b/src/test/java/tutorpro/model/person/PersonTest.java @@ -1,18 +1,15 @@ package tutorpro.model.person; -//import static org.junit.jupiter.api.Assertions.assertEquals; -//import static org.junit.jupiter.api.Assertions.assertFalse; -//import static org.junit.jupiter.api.Assertions.assertTrue; import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -//import static tutorpro.testutil.Assert.assertThrows; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import tutorpro.model.tag.Tag; import tutorpro.testutil.Assert; import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.TypicalPersons; @@ -99,4 +96,12 @@ public void toStringMethod() { + ", address=" + TypicalPersons.ALICE.getAddress() + ", tags=" + TypicalPersons.ALICE.getTags() + "}"; Assertions.assertEquals(expected, TypicalPersons.ALICE.toString()); } + + @Test + public void addTags() { + Person person = new PersonBuilder().build(); + Tag tag = new Tag("TAG"); + person.addTags(tag); + Assertions.assertTrue(person.getTags().contains(tag)); + } } diff --git a/src/test/java/tutorpro/model/person/StudentTest.java b/src/test/java/tutorpro/model/person/StudentTest.java new file mode 100644 index 00000000000..46617604538 --- /dev/null +++ b/src/test/java/tutorpro/model/person/StudentTest.java @@ -0,0 +1,15 @@ +package tutorpro.model.person; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.StudentBuilder; + +public class StudentTest { + + @Test + public void newStudent_hasStudentTag() { + Student student = new StudentBuilder().build(); + Assertions.assertTrue(student.getTags().contains(Student.STUDENT_TAG)); + } +} diff --git a/src/test/java/tutorpro/testutil/StudentBuilder.java b/src/test/java/tutorpro/testutil/StudentBuilder.java new file mode 100644 index 00000000000..6e0aa68b63e --- /dev/null +++ b/src/test/java/tutorpro/testutil/StudentBuilder.java @@ -0,0 +1,96 @@ +package tutorpro.testutil; + +import java.util.HashSet; +import java.util.Set; + +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.person.Student; +import tutorpro.model.tag.Tag; +import tutorpro.model.util.SampleDataUtil; + + +/** + * A utility class to help with building Student objects. + */ +public class StudentBuilder { + + public static final String DEFAULT_NAME = "Amy Bee"; + public static final String DEFAULT_PHONE = "85355255"; + public static final String DEFAULT_EMAIL = "amy@gmail.com"; + public static final String DEFAULT_ADDRESS = "123, Jurong West Ave 6, #08-111"; + + private Name name; + private Phone phone; + private Email email; + private Address address; + private Set tags; + + /** + * Creates a {@code StudentBuilder} with the default details. + */ + public StudentBuilder() { + name = new Name(DEFAULT_NAME); + phone = new Phone(DEFAULT_PHONE); + email = new Email(DEFAULT_EMAIL); + address = new Address(DEFAULT_ADDRESS); + tags = new HashSet<>(); + } + + /** + * Initializes the StudentBuilder with the data of {@code studentToCopy}. + */ + public StudentBuilder(Student studentToCopy) { + name = studentToCopy.getName(); + phone = studentToCopy.getPhone(); + email = studentToCopy.getEmail(); + address = studentToCopy.getAddress(); + tags = new HashSet<>(studentToCopy.getTags()); + } + + /** + * Sets the {@code Name} of the {@code Student} that we are building. + */ + public StudentBuilder withName(String name) { + this.name = new Name(name); + return this; + } + + /** + * Parses the {@code tags} into a {@code Set} and set it to the {@code Student} that we are building. + */ + public StudentBuilder withTags(String ... tags) { + this.tags = SampleDataUtil.getTagSet(tags); + return this; + } + + /** + * Sets the {@code Address} of the {@code Student} that we are building. + */ + public StudentBuilder withAddress(String address) { + this.address = new Address(address); + return this; + } + + /** + * Sets the {@code Phone} of the {@code Student} that we are building. + */ + public StudentBuilder withPhone(String phone) { + this.phone = new Phone(phone); + return this; + } + + /** + * Sets the {@code Email} of the {@code Student} that we are building. + */ + public StudentBuilder withEmail(String email) { + this.email = new Email(email); + return this; + } + + public Student build() { + return new Student(name, phone, email, address, tags); + } +} From 8e0723e0731aab21957d06f00c5dd1dbf85f8f73 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Mon, 18 Mar 2024 06:07:13 +0800 Subject: [PATCH 047/189] Make student package --- .../java/tutorpro/model/person/Person.java | 4 +- .../java/tutorpro/model/person/Student.java | 21 ----- .../tutorpro/model/person/student/Level.java | 51 ++++++++++++ .../model/person/student/Student.java | 62 +++++++++++++++ .../model/person/student/Subject.java | 52 +++++++++++++ .../tutorpro/model/util/SampleDataUtil.java | 34 ++++++++ .../logic/commands/CommandTestUtil.java | 4 + .../tutorpro/model/person/StudentTest.java | 15 ---- .../model/person/student/LevelTest.java | 63 +++++++++++++++ .../model/person/student/StudentTest.java | 78 +++++++++++++++++++ .../model/person/student/SubjectTest.java | 56 +++++++++++++ .../tutorpro/testutil/StudentBuilder.java | 29 ++++++- .../tutorpro/testutil/TypicalStudents.java | 78 +++++++++++++++++++ 13 files changed, 506 insertions(+), 41 deletions(-) delete mode 100644 src/main/java/tutorpro/model/person/Student.java create mode 100644 src/main/java/tutorpro/model/person/student/Level.java create mode 100644 src/main/java/tutorpro/model/person/student/Student.java create mode 100644 src/main/java/tutorpro/model/person/student/Subject.java delete mode 100644 src/test/java/tutorpro/model/person/StudentTest.java create mode 100644 src/test/java/tutorpro/model/person/student/LevelTest.java create mode 100644 src/test/java/tutorpro/model/person/student/StudentTest.java create mode 100644 src/test/java/tutorpro/model/person/student/SubjectTest.java create mode 100644 src/test/java/tutorpro/testutil/TypicalStudents.java diff --git a/src/main/java/tutorpro/model/person/Person.java b/src/main/java/tutorpro/model/person/Person.java index 91f25f112d4..d7addd96a98 100644 --- a/src/main/java/tutorpro/model/person/Person.java +++ b/src/main/java/tutorpro/model/person/Person.java @@ -1,7 +1,5 @@ package tutorpro.model.person; -//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; - import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -63,7 +61,7 @@ public Set getTags() { return Collections.unmodifiableSet(tags); } - public boolean addTags(Tag... tags) { + protected boolean addTags(Tag... tags) { return this.tags.addAll(Arrays.asList(tags)); } diff --git a/src/main/java/tutorpro/model/person/Student.java b/src/main/java/tutorpro/model/person/Student.java deleted file mode 100644 index a67d6b0b50f..00000000000 --- a/src/main/java/tutorpro/model/person/Student.java +++ /dev/null @@ -1,21 +0,0 @@ -package tutorpro.model.person; - -import java.util.Set; - -import tutorpro.model.tag.Tag; - -/** - * Represents a Student in TutorPro. - */ -public class Student extends Person { - - public static final Tag STUDENT_TAG = new Tag("Student"); - - /** - * Every field must be present and not null. - */ - public Student(Name name, Phone phone, Email email, Address address, Set tags) { - super(name, phone, email, address, tags); - addTags(STUDENT_TAG); - } -} diff --git a/src/main/java/tutorpro/model/person/student/Level.java b/src/main/java/tutorpro/model/person/student/Level.java new file mode 100644 index 00000000000..21920923462 --- /dev/null +++ b/src/main/java/tutorpro/model/person/student/Level.java @@ -0,0 +1,51 @@ +package tutorpro.model.person.student; + +import static java.util.Objects.requireNonNull; + +import tutorpro.commons.util.AppUtil; + +/** + * Represents a student's educational level in TutorPro. + * Guarantees: immutable; is valid as declared in {@link #isValidLevel(String)} + */ +public class Level { + + public static final String MESSAGE_CONSTRAINTS = "Levels should only consist of a letter and a number, or be NA"; + public static final String VALIDATION_REGEX = "K[12]|P[123456]|S[1234]|J[12]|UNI|OTHER"; + + private String value; + + /** + * Constructs a {@code Level} + * + * @param level A valid level. + */ + public Level(String level) { + requireNonNull(level); + AppUtil.checkArgument(isValidLevel(level), MESSAGE_CONSTRAINTS); + this.value = level; + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } else if (!(other instanceof Level)) { + return false; + } + Level otherLevel = (Level) other; + return value.equals(otherLevel.value); + } + + /** + * Returns true if the given String is a valid Level. + */ + public static boolean isValidLevel(String test) { + return test.matches(VALIDATION_REGEX); + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/tutorpro/model/person/student/Student.java b/src/main/java/tutorpro/model/person/student/Student.java new file mode 100644 index 00000000000..ef7aa9f1b87 --- /dev/null +++ b/src/main/java/tutorpro/model/person/student/Student.java @@ -0,0 +1,62 @@ +package tutorpro.model.person.student; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import tutorpro.commons.util.CollectionUtil; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.tag.Tag; + +/** + * Represents a Student in TutorPro. + */ +public class Student extends Person { + + public static final Tag STUDENT_TAG = new Tag("Student"); + + private final Level level; + private final Set subjects = new HashSet<>(); + + + /** + * Every field must be present and not null. + */ + public Student(Name name, Phone phone, Email email, Address address, Set tags, + Level level, Set subjects) { + super(name, phone, email, address, tags); + addTags(STUDENT_TAG); + CollectionUtil.requireAllNonNull(level, subjects); + this.level = level; + this.subjects.addAll(subjects); + } + + public Level getLevel() { + return level; + } + + /** + * Returns an immutable subject set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + */ + public Set getSubjects() { + return Collections.unmodifiableSet(subjects); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } else if (!(other instanceof Student)) { + return false; + } else if (!super.equals(other)) { + return false; + } + Student otherStudent = (Student) other; + return level.equals(otherStudent.level) && subjects.equals(otherStudent.subjects); + } +} diff --git a/src/main/java/tutorpro/model/person/student/Subject.java b/src/main/java/tutorpro/model/person/student/Subject.java new file mode 100644 index 00000000000..4e19d5167ea --- /dev/null +++ b/src/main/java/tutorpro/model/person/student/Subject.java @@ -0,0 +1,52 @@ +package tutorpro.model.person.student; + +import static java.util.Objects.requireNonNull; + +import tutorpro.commons.util.AppUtil; + +/** + * Represents a subject that a student is being taught in TutorPro. + * Guarantees: immutable; is valid as declared in {@link #isValidSubject(String)} + */ +public class Subject { + + public static final String MESSAGE_CONSTRAINTS = "Subjects can take any values, and it should not be blank"; + public static final String VALIDATION_REGEX = "[^\\s].*"; + + + private String value; + + /** + * Constructs a {@code Level} + * + * @param subject A valid subject. + */ + public Subject(String subject) { + requireNonNull(subject); + AppUtil.checkArgument(isValidSubject(subject), MESSAGE_CONSTRAINTS); + this.value = subject; + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } else if (!(other instanceof Subject)) { + return false; + } + Subject otherLevel = (Subject) other; + return value.equals(otherLevel.value); + } + + /** + * Returns true if the given String is a valid Level. + */ + public static boolean isValidSubject(String test) { + return test.matches(VALIDATION_REGEX); + } + + @Override + public int hashCode() { + return value.hashCode(); + } +} diff --git a/src/main/java/tutorpro/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java index a6cc9dd503d..be1b1b9833a 100644 --- a/src/main/java/tutorpro/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -11,6 +11,9 @@ import tutorpro.model.person.Name; import tutorpro.model.person.Person; import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -40,6 +43,29 @@ public static Person[] getSamplePersons() { }; } + public static Student[] getSampleStudents() { + return new Student[] { + new Student(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), + new Address("Blk 30 Geylang Street 29, #06-40"), + getTagSet(), new Level("P6"), getSubjectSet("Math")), + new Student(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), + new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), + getTagSet(), new Level("S2"), getSubjectSet("Math", "English")), + new Student(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), + getTagSet(), new Level("J1"), getSubjectSet("Physics")), + new Student(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), + new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), + getTagSet(), new Level("UNI"), getSubjectSet("Chemistry, Biology")), + new Student(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), + new Address("Blk 47 Tampines Street 20, #17-35"), + getTagSet(), new Level("K2"), getSubjectSet("Reading")), + new Student(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), + new Address("Blk 45 Aljunied Street 85, #11-31"), + getTagSet(), new Level("OTHER"), getSubjectSet("Interview")) + }; + } + public static ReadOnlyAddressBook getSampleAddressBook() { AddressBook sampleAb = new AddressBook(); for (Person samplePerson : getSamplePersons()) { @@ -57,4 +83,12 @@ public static Set getTagSet(String... strings) { .collect(Collectors.toSet()); } + /** + * Returns a subject set containing the list of strings given. + */ + public static Set getSubjectSet(String... strings) { + return Arrays.stream(strings) + .map(Subject::new) + .collect(Collectors.toSet()); + } } diff --git a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java index d4c93ef4f10..b62454cab21 100644 --- a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java +++ b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java @@ -33,6 +33,10 @@ public class CommandTestUtil { public static final String VALID_ADDRESS_BOB = "Block 123, Bobby Street 3"; public static final String VALID_TAG_HUSBAND = "husband"; public static final String VALID_TAG_FRIEND = "friend"; + public static final String VALID_SUBJECT_MATH = "Math"; + public static final String VALID_SUBJECT_ENGLISH = "English"; + public static final String VALID_LEVEL_P6 = "P6"; + public static final String VALID_LEVEL_UNI = "UNI"; public static final String NAME_DESC_AMY = " " + CliSyntax.PREFIX_NAME + VALID_NAME_AMY; public static final String NAME_DESC_BOB = " " + CliSyntax.PREFIX_NAME + VALID_NAME_BOB; diff --git a/src/test/java/tutorpro/model/person/StudentTest.java b/src/test/java/tutorpro/model/person/StudentTest.java deleted file mode 100644 index 46617604538..00000000000 --- a/src/test/java/tutorpro/model/person/StudentTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package tutorpro.model.person; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import tutorpro.testutil.StudentBuilder; - -public class StudentTest { - - @Test - public void newStudent_hasStudentTag() { - Student student = new StudentBuilder().build(); - Assertions.assertTrue(student.getTags().contains(Student.STUDENT_TAG)); - } -} diff --git a/src/test/java/tutorpro/model/person/student/LevelTest.java b/src/test/java/tutorpro/model/person/student/LevelTest.java new file mode 100644 index 00000000000..f953ab0027e --- /dev/null +++ b/src/test/java/tutorpro/model/person/student/LevelTest.java @@ -0,0 +1,63 @@ +package tutorpro.model.person.student; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.Assert; + +public class LevelTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Level(null)); + } + + @Test + public void constructor_invalidAddress_throwsIllegalArgumentException() { + String invalidLevel = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Level(invalidLevel)); + String invalidLevel2 = "Primary 6"; + Assert.assertThrows(IllegalArgumentException.class, () -> new Level(invalidLevel2)); + String invalidLevel3 = "University"; + Assert.assertThrows(IllegalArgumentException.class, () -> new Level(invalidLevel3)); + } + + @Test + public void isValidAddress() { + // null address + Assert.assertThrows(NullPointerException.class, () -> Level.isValidLevel(null)); + + // invalid addresses + assertFalse(Level.isValidLevel("S5")); + assertFalse(Level.isValidLevel("J3")); + assertFalse(Level.isValidLevel("P9")); + + // valid addresses + assertTrue(Level.isValidLevel("P6")); + assertTrue(Level.isValidLevel("S4")); + assertTrue(Level.isValidLevel("UNI")); + assertTrue(Level.isValidLevel("OTHER")); + } + + @Test + public void equals() { + Level level = new Level("P6"); + + // same values -> returns true + assertTrue(level.equals(new Level("P6"))); + + // same object -> returns true + assertTrue(level.equals(level)); + + // null -> returns false + assertFalse(level.equals(null)); + + // different types -> returns false + assertFalse(level.equals(5.0f)); + + // different values -> returns false + assertFalse(level.equals(new Level("J1"))); + } +} diff --git a/src/test/java/tutorpro/model/person/student/StudentTest.java b/src/test/java/tutorpro/model/person/student/StudentTest.java new file mode 100644 index 00000000000..95863307bcb --- /dev/null +++ b/src/test/java/tutorpro/model/person/student/StudentTest.java @@ -0,0 +1,78 @@ +package tutorpro.model.person.student; + +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_LEVEL_UNI; +import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_SUBJECT_ENGLISH; +import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.Assert; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalStudents; + +public class StudentTest { + + @Test + public void asObservableList_modifyList_throwsUnsupportedOperationException() { + Student student = new StudentBuilder().build(); + Assert.assertThrows(UnsupportedOperationException.class, () -> student.getTags().remove(0)); + } + + @Test + public void newStudent_hasStudentTag() { + Student student = new StudentBuilder().build(); + Assertions.assertTrue(student.getTags().contains(Student.STUDENT_TAG)); + } + + @Test + public void equals() { + // same values -> returns true + Student aliceCopy = new StudentBuilder(TypicalStudents.ALICE).build(); + Assertions.assertTrue(TypicalStudents.ALICE.equals(aliceCopy)); + + // same object -> returns true + Assertions.assertTrue(TypicalStudents.ALICE.equals(TypicalStudents.ALICE)); + + // null -> returns false + Assertions.assertFalse(TypicalStudents.ALICE.equals(null)); + + // different type -> returns false + Assertions.assertFalse(TypicalStudents.ALICE.equals(5)); + + // different person -> returns false + Assertions.assertFalse(TypicalStudents.ALICE.equals(TypicalStudents.BOB)); + + // different name -> returns false + Student editedAlice = new StudentBuilder(TypicalStudents.ALICE).withName(VALID_NAME_BOB).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + + // different phone -> returns false + editedAlice = new StudentBuilder(TypicalStudents.ALICE).withPhone(VALID_PHONE_BOB).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + + // different email -> returns false + editedAlice = new StudentBuilder(TypicalStudents.ALICE).withEmail(VALID_EMAIL_BOB).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + + // different address -> returns false + editedAlice = new StudentBuilder(TypicalStudents.ALICE).withAddress(VALID_ADDRESS_BOB).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + + // different tags -> returns false + editedAlice = new StudentBuilder(TypicalStudents.ALICE).withTags(VALID_TAG_HUSBAND).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + + // different subjects -> returns false + editedAlice = new StudentBuilder(TypicalStudents.ALICE).withSubjects(VALID_SUBJECT_ENGLISH).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + + // different levels -> returns false + editedAlice = new StudentBuilder(TypicalStudents.ALICE).withLevel(VALID_LEVEL_UNI).build(); + Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); + } +} diff --git a/src/test/java/tutorpro/model/person/student/SubjectTest.java b/src/test/java/tutorpro/model/person/student/SubjectTest.java new file mode 100644 index 00000000000..35eaed051cd --- /dev/null +++ b/src/test/java/tutorpro/model/person/student/SubjectTest.java @@ -0,0 +1,56 @@ +package tutorpro.model.person.student; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.Assert; + +public class SubjectTest { + + @Test + public void constructor_null_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> new Subject(null)); + } + + @Test + public void constructor_invalidAddress_throwsIllegalArgumentException() { + String invalidSubject = ""; + Assert.assertThrows(IllegalArgumentException.class, () -> new Subject(invalidSubject)); + } + + @Test + public void isValidAddress() { + // null address + Assert.assertThrows(NullPointerException.class, () -> Subject.isValidSubject(null)); + + // invalid addresses + assertFalse(Subject.isValidSubject("")); // empty string + assertFalse(Subject.isValidSubject(" ")); // spaces only + + // valid addresses + assertTrue(Subject.isValidSubject("Math")); + assertTrue(Subject.isValidSubject("-")); // one character + } + + @Test + public void equals() { + Subject subject = new Subject("Valid Subject"); + + // same values -> returns true + assertTrue(subject.equals(new Subject("Valid Subject"))); + + // same object -> returns true + assertTrue(subject.equals(subject)); + + // null -> returns false + assertFalse(subject.equals(null)); + + // different types -> returns false + assertFalse(subject.equals(5.0f)); + + // different values -> returns false + assertFalse(subject.equals(new Subject("Other Valid Subject"))); + } +} diff --git a/src/test/java/tutorpro/testutil/StudentBuilder.java b/src/test/java/tutorpro/testutil/StudentBuilder.java index 6e0aa68b63e..1ed28410ccd 100644 --- a/src/test/java/tutorpro/testutil/StudentBuilder.java +++ b/src/test/java/tutorpro/testutil/StudentBuilder.java @@ -7,7 +7,9 @@ import tutorpro.model.person.Email; import tutorpro.model.person.Name; import tutorpro.model.person.Phone; -import tutorpro.model.person.Student; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; import tutorpro.model.util.SampleDataUtil; @@ -21,12 +23,15 @@ public class StudentBuilder { public static final String DEFAULT_PHONE = "85355255"; public static final String DEFAULT_EMAIL = "amy@gmail.com"; public static final String DEFAULT_ADDRESS = "123, Jurong West Ave 6, #08-111"; + public static final String DEFAULT_LEVEL = "P6"; private Name name; private Phone phone; private Email email; private Address address; private Set tags; + private Set subjects; + private Level level; /** * Creates a {@code StudentBuilder} with the default details. @@ -37,6 +42,8 @@ public StudentBuilder() { email = new Email(DEFAULT_EMAIL); address = new Address(DEFAULT_ADDRESS); tags = new HashSet<>(); + level = new Level(DEFAULT_LEVEL); + subjects = new HashSet<>(); } /** @@ -48,6 +55,8 @@ public StudentBuilder(Student studentToCopy) { email = studentToCopy.getEmail(); address = studentToCopy.getAddress(); tags = new HashSet<>(studentToCopy.getTags()); + level = studentToCopy.getLevel(); + subjects = studentToCopy.getSubjects(); } /** @@ -66,6 +75,14 @@ public StudentBuilder withTags(String ... tags) { return this; } + /** + * Parses the {@code subjects} into a {@code Set} and set it to the {@code Student} that we are building. + */ + public StudentBuilder withSubjects(String... subjects) { + this.subjects = SampleDataUtil.getSubjectSet(subjects); + return this; + } + /** * Sets the {@code Address} of the {@code Student} that we are building. */ @@ -90,7 +107,15 @@ public StudentBuilder withEmail(String email) { return this; } + /** + * Sets the {@code Level} of the {@code Student} that we are building. + */ + public StudentBuilder withLevel(String level) { + this.level = new Level(level); + return this; + } + public Student build() { - return new Student(name, phone, email, address, tags); + return new Student(name, phone, email, address, tags, level, subjects); } } diff --git a/src/test/java/tutorpro/testutil/TypicalStudents.java b/src/test/java/tutorpro/testutil/TypicalStudents.java new file mode 100644 index 00000000000..61945d7bbc3 --- /dev/null +++ b/src/test/java/tutorpro/testutil/TypicalStudents.java @@ -0,0 +1,78 @@ +package tutorpro.testutil; + +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_LEVEL_P6; +import static tutorpro.logic.commands.CommandTestUtil.VALID_LEVEL_UNI; +import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_AMY; +import static tutorpro.logic.commands.CommandTestUtil.VALID_PHONE_BOB; +import static tutorpro.logic.commands.CommandTestUtil.VALID_SUBJECT_ENGLISH; +import static tutorpro.logic.commands.CommandTestUtil.VALID_SUBJECT_MATH; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import tutorpro.model.AddressBook; +import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; + +/** + * A utility class containing a list of {@code Person} objects to be used in tests. + */ +public class TypicalStudents { + + public static final Student ALICE = new StudentBuilder().withName("Alice Pauline") + .withAddress("123, Jurong West Ave 6, #08-111").withEmail("alice@example.com") + .withPhone("94351253").withLevel("P6") + .withSubjects("Math").build(); + public static final Student BENSON = new StudentBuilder().withName("Benson Meier") + .withAddress("311, Clementi Ave 2, #02-25") + .withEmail("johnd@example.com").withPhone("98765432") + .withLevel("S2").withSubjects("Finance") + .build(); + public static final Student CARL = new StudentBuilder().withName("Carl Kurz").withPhone("95352563") + .withEmail("heinz@example.com").withAddress("wall street").build(); + public static final Student DANIEL = new StudentBuilder().withName("Daniel Meier").withPhone("87652533") + .withEmail("cornelia@example.com").withAddress("10th street").withLevel("K1") + .withSubjects("Reading").build(); + public static final Student ELLE = new StudentBuilder().withName("Elle Meyer").withPhone("9482224") + .withEmail("werner@example.com").withAddress("michegan ave").withLevel("UNI").build(); + public static final Student FIONA = new StudentBuilder().withName("Fiona Kunz").withPhone("9482427") + .withEmail("lydia@example.com").withAddress("little tokyo").build(); + public static final Student GEORGE = new StudentBuilder().withName("George Best").withPhone("9482442") + .withEmail("anna@example.com").withAddress("4th street").withLevel("J2").build(); + public static final Student HOON = new StudentBuilder().withName("Hoon Meier").withPhone("8482424") + .withEmail("stefan@example.com").withAddress("little india").withLevel("P1").build(); + public static final Student IDA = new StudentBuilder().withName("Ida Mueller").withPhone("8482131") + .withEmail("hans@example.com").withAddress("chicago ave").build(); + public static final Student AMY = new StudentBuilder().withName(VALID_NAME_AMY).withPhone(VALID_PHONE_AMY) + .withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY).withLevel(VALID_LEVEL_P6) + .withSubjects(VALID_SUBJECT_MATH).build(); + public static final Student BOB = new StudentBuilder().withName(VALID_NAME_BOB).withPhone(VALID_PHONE_BOB) + .withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB).withLevel(VALID_LEVEL_UNI) + .withSubjects(VALID_SUBJECT_ENGLISH).build(); + + public static final String KEYWORD_MATCHING_MEIER = "Meier"; // A keyword that matches MEIER + + private TypicalStudents() {} // prevents instantiation + + /** + * Returns an {@code AddressBook} with all the typical persons. + */ + public static AddressBook getTypicalAddressBook() { + AddressBook ab = new AddressBook(); + for (Person person : getTypicalStudents()) { + ab.addPerson(person); + } + return ab; + } + + public static List getTypicalStudents() { + return new ArrayList<>(Arrays.asList(ALICE, BENSON, CARL, DANIEL, ELLE, FIONA, GEORGE)); + } +} From 2db10864d7d419c565baba595acbf2b9e1ce530d Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:35:25 +0800 Subject: [PATCH 048/189] Add simple UI and sample data --- build.gradle | 2 +- .../java/tutorpro/model/person/Person.java | 6 ++ .../tutorpro/model/person/student/Level.java | 5 ++ .../model/person/student/Student.java | 12 ++++ .../model/person/student/Subject.java | 5 ++ .../tutorpro/model/util/SampleDataUtil.java | 4 +- .../java/tutorpro/ui/PersonListPanel.java | 2 +- src/main/java/tutorpro/ui/StudentCard.java | 67 +++++++++++++++++++ src/main/resources/view/DarkTheme.css | 14 ++++ src/main/resources/view/StudentListCard.fxml | 38 +++++++++++ 10 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 src/main/java/tutorpro/ui/StudentCard.java create mode 100644 src/main/resources/view/StudentListCard.fxml diff --git a/build.gradle b/build.gradle index 23a3cf36ce5..468ae27e447 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -mainClassName = 'address.Main' +mainClassName = 'tutorpro.Main' sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 diff --git a/src/main/java/tutorpro/model/person/Person.java b/src/main/java/tutorpro/model/person/Person.java index d7addd96a98..9f9d117ad2c 100644 --- a/src/main/java/tutorpro/model/person/Person.java +++ b/src/main/java/tutorpro/model/person/Person.java @@ -6,9 +6,12 @@ import java.util.Objects; import java.util.Set; +import javafx.scene.layout.Region; import tutorpro.commons.util.CollectionUtil; import tutorpro.commons.util.ToStringBuilder; import tutorpro.model.tag.Tag; +import tutorpro.ui.PersonCard; +import tutorpro.ui.UiPart; /** * Represents a Person in the address book. @@ -118,4 +121,7 @@ public String toString() { .toString(); } + public UiPart getCard(int displayIndex) { + return new PersonCard(this, displayIndex); + } } diff --git a/src/main/java/tutorpro/model/person/student/Level.java b/src/main/java/tutorpro/model/person/student/Level.java index 21920923462..754540763c5 100644 --- a/src/main/java/tutorpro/model/person/student/Level.java +++ b/src/main/java/tutorpro/model/person/student/Level.java @@ -37,6 +37,11 @@ public boolean equals(Object other) { return value.equals(otherLevel.value); } + @Override + public String toString() { + return value; + } + /** * Returns true if the given String is a valid Level. */ diff --git a/src/main/java/tutorpro/model/person/student/Student.java b/src/main/java/tutorpro/model/person/student/Student.java index ef7aa9f1b87..712004d0ee3 100644 --- a/src/main/java/tutorpro/model/person/student/Student.java +++ b/src/main/java/tutorpro/model/person/student/Student.java @@ -4,6 +4,7 @@ import java.util.HashSet; import java.util.Set; +import javafx.scene.layout.Region; import tutorpro.commons.util.CollectionUtil; import tutorpro.model.person.Address; import tutorpro.model.person.Email; @@ -11,6 +12,8 @@ import tutorpro.model.person.Person; import tutorpro.model.person.Phone; import tutorpro.model.tag.Tag; +import tutorpro.ui.StudentCard; +import tutorpro.ui.UiPart; /** * Represents a Student in TutorPro. @@ -59,4 +62,13 @@ public boolean equals(Object other) { Student otherStudent = (Student) other; return level.equals(otherStudent.level) && subjects.equals(otherStudent.subjects); } + + /** + * Returns a UI representation of the person. + * @param displayIndex The index to be displayed on the card. + */ + @Override + public UiPart getCard(int displayIndex) { + return new StudentCard(this, displayIndex); + } } diff --git a/src/main/java/tutorpro/model/person/student/Subject.java b/src/main/java/tutorpro/model/person/student/Subject.java index 4e19d5167ea..0de86dd6d3a 100644 --- a/src/main/java/tutorpro/model/person/student/Subject.java +++ b/src/main/java/tutorpro/model/person/student/Subject.java @@ -38,6 +38,11 @@ public boolean equals(Object other) { return value.equals(otherLevel.value); } + @Override + public String toString() { + return value; + } + /** * Returns true if the given String is a valid Level. */ diff --git a/src/main/java/tutorpro/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java index be1b1b9833a..552013cfe1d 100644 --- a/src/main/java/tutorpro/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -56,7 +56,7 @@ public static Student[] getSampleStudents() { getTagSet(), new Level("J1"), getSubjectSet("Physics")), new Student(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet(), new Level("UNI"), getSubjectSet("Chemistry, Biology")), + getTagSet(), new Level("UNI"), getSubjectSet("Chemistry", "Biology")), new Student(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), getTagSet(), new Level("K2"), getSubjectSet("Reading")), @@ -68,7 +68,7 @@ public static Student[] getSampleStudents() { public static ReadOnlyAddressBook getSampleAddressBook() { AddressBook sampleAb = new AddressBook(); - for (Person samplePerson : getSamplePersons()) { + for (Person samplePerson : getSampleStudents()) { sampleAb.addPerson(samplePerson); } return sampleAb; diff --git a/src/main/java/tutorpro/ui/PersonListPanel.java b/src/main/java/tutorpro/ui/PersonListPanel.java index 20bd78d50c8..ed9a0585214 100644 --- a/src/main/java/tutorpro/ui/PersonListPanel.java +++ b/src/main/java/tutorpro/ui/PersonListPanel.java @@ -41,7 +41,7 @@ protected void updateItem(Person person, boolean empty) { setGraphic(null); setText(null); } else { - setGraphic(new PersonCard(person, getIndex() + 1).getRoot()); + setGraphic(person.getCard(getIndex() + 1).getRoot()); } } } diff --git a/src/main/java/tutorpro/ui/StudentCard.java b/src/main/java/tutorpro/ui/StudentCard.java new file mode 100644 index 00000000000..55dac0211f2 --- /dev/null +++ b/src/main/java/tutorpro/ui/StudentCard.java @@ -0,0 +1,67 @@ +package tutorpro.ui; + +import java.util.Comparator; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.layout.FlowPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Region; +import tutorpro.model.person.student.Student; + +/** + * An UI component that displays information of a {@code Person}. + */ +public class StudentCard extends UiPart { + + private static final String FXML = "StudentListCard.fxml"; + + /** + * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. + * As a consequence, UI elements' variable names cannot be set to such keywords + * or an exception will be thrown by JavaFX during runtime. + * + * @see The issue on AddressBook level 4 + */ + + public final Student student; + + @FXML + private HBox cardPane; + @FXML + private Label name; + @FXML + private Label id; + @FXML + private Label phone; + @FXML + private Label address; + @FXML + private Label email; + @FXML + private FlowPane tags; + @FXML + private Label level; + @FXML + private FlowPane subjects; + + /** + * Creates a {@code PersonCode} with the given {@code Person} and index to display. + */ + public StudentCard(Student student, int displayedIndex) { + super(FXML); + this.student = student; + id.setText(displayedIndex + ". "); + name.setText(student.getName().fullName); + phone.setText(student.getPhone().value); + address.setText(student.getAddress().value); + email.setText(student.getEmail().value); + level.setText(student.getLevel().toString()); + student.getTags().stream() + .sorted(Comparator.comparing(tag -> tag.tagName)) + .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); + student.getSubjects().stream() + .sorted(Comparator.comparing(subject -> subject.toString())) + .forEach(subject -> subjects.getChildren().add(new Label(subject.toString()))); + } +} diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index 36e6b001cd8..c63527bc038 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -350,3 +350,17 @@ -fx-background-radius: 2; -fx-font-size: 11; } + +#subjects { + -fx-hgap: 7; + -fx-vgap: 3; +} + +#subjects .label { + -fx-text-fill: white; + -fx-background-color: #8b0000; + -fx-padding: 1 3 1 3; + -fx-border-radius: 2; + -fx-background-radius: 2; + -fx-font-size: 11; +} diff --git a/src/main/resources/view/StudentListCard.fxml b/src/main/resources/view/StudentListCard.fxml new file mode 100644 index 00000000000..9e356992724 --- /dev/null +++ b/src/main/resources/view/StudentListCard.fxml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + From d56ca490bba1b1c72f3ffa6e28087004da482044 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:42:46 +0800 Subject: [PATCH 049/189] Add Javadocs to some CommandResult methods --- .../tutorpro/logic/commands/CommandResult.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/tutorpro/logic/commands/CommandResult.java b/src/main/java/tutorpro/logic/commands/CommandResult.java index c42170b67ba..23edc00ff47 100644 --- a/src/main/java/tutorpro/logic/commands/CommandResult.java +++ b/src/main/java/tutorpro/logic/commands/CommandResult.java @@ -36,14 +36,29 @@ public CommandResult(String feedbackToUser) { this(feedbackToUser, false, false); } + /** + * Constructs a {@code CommandResult} with the specified {@code feedbackToUser}, + * and other fields set to their default value. + * @return a String of the feedback to the user + */ public String getFeedbackToUser() { return feedbackToUser; } + /** + * Constructs a {@code CommandResult} with the specified {@code feedbackToUser}, + * and other fields set to their default value. + * @return a boolean of whether to show help + */ public boolean isShowHelp() { return showHelp; } + /** + * Constructs a {@code CommandResult} with the specified {@code feedbackToUser}, + * and other fields set to their default value. + * @return a boolean of whether to exit + */ public boolean isExit() { return exit; } From 0a3054c8f88299e270f640a1803a5287fadf5817 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:57:42 +0800 Subject: [PATCH 050/189] Add tests --- .../model/person/student/LevelTest.java | 20 +++++++++++++++++++ .../model/person/student/SubjectTest.java | 20 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/test/java/tutorpro/model/person/student/LevelTest.java b/src/test/java/tutorpro/model/person/student/LevelTest.java index f953ab0027e..23245f56947 100644 --- a/src/test/java/tutorpro/model/person/student/LevelTest.java +++ b/src/test/java/tutorpro/model/person/student/LevelTest.java @@ -60,4 +60,24 @@ public void equals() { // different values -> returns false assertFalse(level.equals(new Level("J1"))); } + + @Test + public void testToString() { + Level level = new Level("P6"); + + // same values -> returns true + assertTrue(level.toString().equals(new Level("P6").toString())); + + // same object -> returns true + assertTrue(level.toString().equals(level.toString())); + + // null -> returns false + assertFalse(level.toString().equals(null)); + + // different types -> returns false + assertFalse(level.toString().equals(5.0f)); + + // different values -> returns false + assertFalse(level.toString().equals(new Level("J1").toString())); + } } diff --git a/src/test/java/tutorpro/model/person/student/SubjectTest.java b/src/test/java/tutorpro/model/person/student/SubjectTest.java index 35eaed051cd..7d7a59b1e95 100644 --- a/src/test/java/tutorpro/model/person/student/SubjectTest.java +++ b/src/test/java/tutorpro/model/person/student/SubjectTest.java @@ -53,4 +53,24 @@ public void equals() { // different values -> returns false assertFalse(subject.equals(new Subject("Other Valid Subject"))); } + + @Test + public void testToString() { + Subject subject = new Subject("Valid Subject"); + + // same values -> returns true + assertTrue(subject.toString().equals(new Subject("Valid Subject").toString())); + + // same object -> returns true + assertTrue(subject.toString().equals(subject.toString())); + + // null -> returns false + assertFalse(subject.toString().equals(null)); + + // different types -> returns false + assertFalse(subject.toString().equals(5.0f)); + + // different values -> returns false + assertFalse(subject.toString().equals(new Subject("Other Valid Subject").toString())); + } } From 0dca8619c7ff2a0423b756c0c690b4ed0c3f413d Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 04:15:29 +0800 Subject: [PATCH 051/189] Add test --- src/test/java/tutorpro/ui/StudentCardTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/test/java/tutorpro/ui/StudentCardTest.java diff --git a/src/test/java/tutorpro/ui/StudentCardTest.java b/src/test/java/tutorpro/ui/StudentCardTest.java new file mode 100644 index 00000000000..ad669d19306 --- /dev/null +++ b/src/test/java/tutorpro/ui/StudentCardTest.java @@ -0,0 +1,16 @@ +package tutorpro.ui; + +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.Assert; +import tutorpro.testutil.StudentBuilder; + +public class StudentCardTest { + + @Test + public void useless() { + // cannot create javafx objects outside of javafx thread anyway, so not possible to test this object + // this is to satisfy codecov + Assert.assertThrows(ExceptionInInitializerError.class, () -> new StudentBuilder().build().getCard(0)); + } +} From 3f14d45dea1f43b4362f22283827c8b0bf786648 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 04:36:19 +0800 Subject: [PATCH 052/189] Remove redundant file --- src/test/java/tutorpro/ui/StudentCardTest.java | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 src/test/java/tutorpro/ui/StudentCardTest.java diff --git a/src/test/java/tutorpro/ui/StudentCardTest.java b/src/test/java/tutorpro/ui/StudentCardTest.java deleted file mode 100644 index ad669d19306..00000000000 --- a/src/test/java/tutorpro/ui/StudentCardTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package tutorpro.ui; - -import org.junit.jupiter.api.Test; - -import tutorpro.testutil.Assert; -import tutorpro.testutil.StudentBuilder; - -public class StudentCardTest { - - @Test - public void useless() { - // cannot create javafx objects outside of javafx thread anyway, so not possible to test this object - // this is to satisfy codecov - Assert.assertThrows(ExceptionInInitializerError.class, () -> new StudentBuilder().build().getCard(0)); - } -} From e0479695c64ea0915d0cf7ac66f9431e512982f2 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 04:49:34 +0800 Subject: [PATCH 053/189] Add codecov.yml --- codecov.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 codecov.yml diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000000..27988757646 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,2 @@ +ignore: + - "src/main/java/tutorpro/ui/StudentCard.java" \ No newline at end of file From 269da808ff5b005cd0bf8820ff9e70a562942af2 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 04:50:53 +0800 Subject: [PATCH 054/189] Fix styling --- codecov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codecov.yml b/codecov.yml index 27988757646..eef225a0db5 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,2 +1,2 @@ ignore: - - "src/main/java/tutorpro/ui/StudentCard.java" \ No newline at end of file + - "src/main/java/tutorpro/ui/StudentCard.java" From c991221274ea23815d1500cbe57a7cbf4fa20553 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 19 Mar 2024 05:52:20 +0800 Subject: [PATCH 055/189] Add tests --- .../java/tutorpro/model/person/PersonTest.java | 14 ++++++++++++++ .../tutorpro/model/person/student/StudentTest.java | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/test/java/tutorpro/model/person/PersonTest.java b/src/test/java/tutorpro/model/person/PersonTest.java index c6591dc890a..ed9c3d33fc6 100644 --- a/src/test/java/tutorpro/model/person/PersonTest.java +++ b/src/test/java/tutorpro/model/person/PersonTest.java @@ -1,5 +1,6 @@ package tutorpro.model.person; +import static org.junit.jupiter.api.Assertions.fail; import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_NAME_BOB; @@ -12,6 +13,7 @@ import tutorpro.model.tag.Tag; import tutorpro.testutil.Assert; import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.StudentBuilder; import tutorpro.testutil.TypicalPersons; public class PersonTest { @@ -104,4 +106,16 @@ public void addTags() { person.addTags(tag); Assertions.assertTrue(person.getTags().contains(tag)); } + + @Test + public void getCard() { + try { + new StudentBuilder().build().getCard(1); + fail(); + } catch (ExceptionInInitializerError e) { + return; + } catch (NoClassDefFoundError e) { + return; + } + } } diff --git a/src/test/java/tutorpro/model/person/student/StudentTest.java b/src/test/java/tutorpro/model/person/student/StudentTest.java index 95863307bcb..a22866719fb 100644 --- a/src/test/java/tutorpro/model/person/student/StudentTest.java +++ b/src/test/java/tutorpro/model/person/student/StudentTest.java @@ -1,5 +1,6 @@ package tutorpro.model.person.student; +import static org.junit.jupiter.api.Assertions.fail; import static tutorpro.logic.commands.CommandTestUtil.VALID_ADDRESS_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_EMAIL_BOB; import static tutorpro.logic.commands.CommandTestUtil.VALID_LEVEL_UNI; @@ -75,4 +76,16 @@ public void equals() { editedAlice = new StudentBuilder(TypicalStudents.ALICE).withLevel(VALID_LEVEL_UNI).build(); Assertions.assertFalse(TypicalStudents.ALICE.equals(editedAlice)); } + + @Test + public void getCard() { + try { + new StudentBuilder().build().getCard(1); + fail(); + } catch (ExceptionInInitializerError e) { + return; + } catch (NoClassDefFoundError e) { + return; + } + } } From caa1cccf618e977563c3fac9e2c6ad452ce93720 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 19 Mar 2024 12:27:29 +0800 Subject: [PATCH 056/189] BetterModelClassDiagram.puml: Add Student --- docs/diagrams/BetterModelClassDiagram.puml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 598474a5c82..01228b9ec7d 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -18,4 +18,8 @@ Person *--> Name Person *--> Phone Person *--> Email Person *--> Address + +Person <|-down- Student +Student *--> Level +Student *--> "*" Subject @enduml From 9ca129e872988df8574cb4143ce3338a7b849fb2 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 19 Mar 2024 12:39:30 +0800 Subject: [PATCH 057/189] BetterModelClassDiagram.puml: Delete Student --- docs/diagrams/BetterModelClassDiagram.puml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 01228b9ec7d..598474a5c82 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -18,8 +18,4 @@ Person *--> Name Person *--> Phone Person *--> Email Person *--> Address - -Person <|-down- Student -Student *--> Level -Student *--> "*" Subject @enduml From 1cacbab386fb04d2698b4ab98329ff9aef8302fb Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 19 Mar 2024 12:46:36 +0800 Subject: [PATCH 058/189] BetterModelClassDiagram.puml: Add Student again --- docs/diagrams/BetterModelClassDiagram.puml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index 598474a5c82..a7eb2d9241e 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -18,4 +18,8 @@ Person *--> Name Person *--> Phone Person *--> Email Person *--> Address -@enduml + +Person <|-down- Student +Student *--> Level +Student *--> "*" Subject +@enduml \ No newline at end of file From 343aa441d8037306fb507c3e9257c09cd7f74c44 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Tue, 19 Mar 2024 13:12:58 +0800 Subject: [PATCH 059/189] Add getSubject test for Student and update Student Javadocs --- .../java/tutorpro/model/person/student/Student.java | 5 +++++ .../tutorpro/model/person/student/StudentTest.java | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/tutorpro/model/person/student/Student.java b/src/main/java/tutorpro/model/person/student/Student.java index 712004d0ee3..ee0aaf9b421 100644 --- a/src/main/java/tutorpro/model/person/student/Student.java +++ b/src/main/java/tutorpro/model/person/student/Student.java @@ -38,6 +38,10 @@ public Student(Name name, Phone phone, Email email, Address address, Set ta this.subjects.addAll(subjects); } + /** + * Creates a copy of the given Student. + * @return The level of the student. + */ public Level getLevel() { return level; } @@ -45,6 +49,7 @@ public Level getLevel() { /** * Returns an immutable subject set, which throws {@code UnsupportedOperationException} * if modification is attempted. + * @return The subjects of the student as an immutable set. */ public Set getSubjects() { return Collections.unmodifiableSet(subjects); diff --git a/src/test/java/tutorpro/model/person/student/StudentTest.java b/src/test/java/tutorpro/model/person/student/StudentTest.java index a22866719fb..2ab0c8ce45c 100644 --- a/src/test/java/tutorpro/model/person/student/StudentTest.java +++ b/src/test/java/tutorpro/model/person/student/StudentTest.java @@ -9,6 +9,10 @@ import static tutorpro.logic.commands.CommandTestUtil.VALID_SUBJECT_ENGLISH; import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -88,4 +92,12 @@ public void getCard() { return; } } + + + @Test + public void getSubjects() { + Set subjects = new HashSet<>(Arrays.asList(new Subject("Math"), new Subject("English"))); + Student student = new StudentBuilder().withSubjects("Math", "English").build(); + Assertions.assertEquals(subjects, student.getSubjects()); + } } From d2453f0e6ba37d4b2666877bc10efa6267183459 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Thu, 21 Mar 2024 03:36:38 +0800 Subject: [PATCH 060/189] Update UI to match TutorPro --- src/main/java/tutorpro/commons/core/LogsCenter.java | 2 +- src/main/java/tutorpro/logic/commands/AddCommand.java | 2 +- src/main/java/tutorpro/logic/commands/ClearCommand.java | 2 +- src/main/java/tutorpro/logic/commands/DeleteCommand.java | 2 +- src/main/java/tutorpro/logic/commands/ExitCommand.java | 2 +- src/main/java/tutorpro/logic/commands/FindCommand.java | 2 +- src/main/java/tutorpro/logic/commands/ListCommand.java | 2 +- src/main/resources/view/MainWindow.fxml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/tutorpro/commons/core/LogsCenter.java b/src/main/java/tutorpro/commons/core/LogsCenter.java index 18d8fc9b34a..a8c4fce4d06 100644 --- a/src/main/java/tutorpro/commons/core/LogsCenter.java +++ b/src/main/java/tutorpro/commons/core/LogsCenter.java @@ -20,7 +20,7 @@ public class LogsCenter { private static final int MAX_FILE_COUNT = 5; private static final int MAX_FILE_SIZE_IN_BYTES = (int) (Math.pow(2, 20) * 5); // 5MB - private static final String LOG_FILE = "addressbook.log"; + private static final String LOG_FILE = "tutorpro.log"; private static final Logger logger; // logger for this class private static Logger baseLogger; // to be used as the parent of all other loggers created by this class. private static Level currentLogLevel = Level.INFO; diff --git a/src/main/java/tutorpro/logic/commands/AddCommand.java b/src/main/java/tutorpro/logic/commands/AddCommand.java index a85e36eb6a7..c36e9cc7a34 100644 --- a/src/main/java/tutorpro/logic/commands/AddCommand.java +++ b/src/main/java/tutorpro/logic/commands/AddCommand.java @@ -20,7 +20,7 @@ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a person to the address book. " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Adds a person to your contacts. " + "Parameters: " + PREFIX_NAME + "NAME " + PREFIX_PHONE + "PHONE " diff --git a/src/main/java/tutorpro/logic/commands/ClearCommand.java b/src/main/java/tutorpro/logic/commands/ClearCommand.java index f524178980c..627f214e195 100644 --- a/src/main/java/tutorpro/logic/commands/ClearCommand.java +++ b/src/main/java/tutorpro/logic/commands/ClearCommand.java @@ -11,7 +11,7 @@ public class ClearCommand extends Command { public static final String COMMAND_WORD = "clear"; - public static final String MESSAGE_SUCCESS = "Address book has been cleared!"; + public static final String MESSAGE_SUCCESS = "Your contacts has been cleared!"; @Override diff --git a/src/main/java/tutorpro/logic/commands/DeleteCommand.java b/src/main/java/tutorpro/logic/commands/DeleteCommand.java index e7e88b8a3ec..f371f811980 100644 --- a/src/main/java/tutorpro/logic/commands/DeleteCommand.java +++ b/src/main/java/tutorpro/logic/commands/DeleteCommand.java @@ -19,7 +19,7 @@ public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ": Deletes the person identified by the index number used in the displayed person list.\n" + + ": Deletes the person identified by the index number used in the displayed contact list.\n" + "Parameters: INDEX (must be a positive integer)\n" + "Example: " + COMMAND_WORD + " 1"; diff --git a/src/main/java/tutorpro/logic/commands/ExitCommand.java b/src/main/java/tutorpro/logic/commands/ExitCommand.java index ad7938a8492..f209bf52c90 100644 --- a/src/main/java/tutorpro/logic/commands/ExitCommand.java +++ b/src/main/java/tutorpro/logic/commands/ExitCommand.java @@ -9,7 +9,7 @@ public class ExitCommand extends Command { public static final String COMMAND_WORD = "exit"; - public static final String MESSAGE_EXIT_ACKNOWLEDGEMENT = "Exiting Address Book as requested ..."; + public static final String MESSAGE_EXIT_ACKNOWLEDGEMENT = "Exiting TutorPro as requested ..."; @Override public CommandResult execute(Model model) { diff --git a/src/main/java/tutorpro/logic/commands/FindCommand.java b/src/main/java/tutorpro/logic/commands/FindCommand.java index ea6f8f51e80..fb6ca8c5d3c 100644 --- a/src/main/java/tutorpro/logic/commands/FindCommand.java +++ b/src/main/java/tutorpro/logic/commands/FindCommand.java @@ -9,7 +9,7 @@ /** * Finds and lists all persons in address book whose name contains any of the argument keywords. - * Keyword matching is case insensitive. + * Keyword matching is case-insensitive. */ public class FindCommand extends Command { diff --git a/src/main/java/tutorpro/logic/commands/ListCommand.java b/src/main/java/tutorpro/logic/commands/ListCommand.java index a959be954fe..cb09bf73caf 100644 --- a/src/main/java/tutorpro/logic/commands/ListCommand.java +++ b/src/main/java/tutorpro/logic/commands/ListCommand.java @@ -11,7 +11,7 @@ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; - public static final String MESSAGE_SUCCESS = "Listed all persons"; + public static final String MESSAGE_SUCCESS = "Listed all contacts"; @Override diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 7778f666a0a..d4b7c3917d9 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -12,7 +12,7 @@ + title="TutorPro" minWidth="450" minHeight="600" onCloseRequest="#handleExit"> From 752d39c7350aa730e23e29fa130cf2c749c08631 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Thu, 21 Mar 2024 05:11:58 +0800 Subject: [PATCH 061/189] Add add command --- .../tutorpro/logic/commands/AddCommand.java | 19 +++++--- .../logic/parser/AddCommandParser.java | 19 +++++--- .../java/tutorpro/logic/parser/CliSyntax.java | 3 +- .../tutorpro/logic/parser/ParserUtil.java | 44 +++++++++++++++++ .../model/person/student/Student.java | 14 ++++++ .../java/tutorpro/logic/LogicManagerTest.java | 10 ++-- .../commands/AddCommandIntegrationTest.java | 17 ++++--- .../logic/commands/AddCommandTest.java | 17 +++---- .../logic/commands/CommandTestUtil.java | 5 ++ .../logic/parser/AddCommandParserTest.java | 48 ++++++++++++------- .../logic/parser/AddressBookParserTest.java | 4 +- .../java/tutorpro/testutil/PersonUtil.java | 10 ++-- 12 files changed, 156 insertions(+), 54 deletions(-) diff --git a/src/main/java/tutorpro/logic/commands/AddCommand.java b/src/main/java/tutorpro/logic/commands/AddCommand.java index a85e36eb6a7..10a50791048 100644 --- a/src/main/java/tutorpro/logic/commands/AddCommand.java +++ b/src/main/java/tutorpro/logic/commands/AddCommand.java @@ -3,15 +3,17 @@ import static java.util.Objects.requireNonNull; import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_LEVEL; import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_SUBJECT; import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import tutorpro.commons.util.ToStringBuilder; import tutorpro.logic.Messages; import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.model.Model; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * Adds a person to the address book. @@ -32,20 +34,23 @@ public class AddCommand extends Command { + PREFIX_PHONE + "98765432 " + PREFIX_EMAIL + "johnd@example.com " + PREFIX_ADDRESS + "311, Clementi Ave 2, #02-25 " + + PREFIX_LEVEL + "P5 " + + PREFIX_SUBJECT + "Math " + + PREFIX_SUBJECT + "English " + PREFIX_TAG + "friends " + PREFIX_TAG + "owesMoney"; - public static final String MESSAGE_SUCCESS = "New person added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book"; + public static final String MESSAGE_SUCCESS = "New student added: %1$s"; + public static final String MESSAGE_DUPLICATE_PERSON = "This student already exists in the address book"; - private final Person toAdd; + private final Student toAdd; /** * Creates an AddCommand to add the specified {@code Person} */ - public AddCommand(Person person) { - requireNonNull(person); - toAdd = person; + public AddCommand(Student student) { + requireNonNull(student); + toAdd = student; } @Override diff --git a/src/main/java/tutorpro/logic/parser/AddCommandParser.java b/src/main/java/tutorpro/logic/parser/AddCommandParser.java index 9a3caddf4b4..7e3d441b3b4 100644 --- a/src/main/java/tutorpro/logic/parser/AddCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/AddCommandParser.java @@ -3,8 +3,10 @@ import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_LEVEL; import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_SUBJECT; import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Set; @@ -15,8 +17,10 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; -import tutorpro.model.person.Person; import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -31,23 +35,26 @@ public class AddCommandParser implements Parser { */ public AddCommand parse(String args) throws ParseException { ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, + PREFIX_LEVEL, PREFIX_SUBJECT, PREFIX_TAG); - if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL) + if (!arePrefixesPresent(argMultimap, PREFIX_NAME, PREFIX_ADDRESS, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_LEVEL) || !argMultimap.getPreamble().isEmpty()) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } - argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS); + argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_LEVEL); Name name = ParserUtil.parseName(argMultimap.getValue(PREFIX_NAME).get()); Phone phone = ParserUtil.parsePhone(argMultimap.getValue(PREFIX_PHONE).get()); Email email = ParserUtil.parseEmail(argMultimap.getValue(PREFIX_EMAIL).get()); Address address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()); + Level level = ParserUtil.parseLevel(argMultimap.getValue(PREFIX_LEVEL).get()); Set tagList = ParserUtil.parseTags(argMultimap.getAllValues(PREFIX_TAG)); + Set subjectList = ParserUtil.parseSubjects(argMultimap.getAllValues(PREFIX_SUBJECT)); - Person person = new Person(name, phone, email, address, tagList); + Student student = new Student(name, phone, email, address, tagList, level, subjectList); - return new AddCommand(person); + return new AddCommand(student); } /** diff --git a/src/main/java/tutorpro/logic/parser/CliSyntax.java b/src/main/java/tutorpro/logic/parser/CliSyntax.java index e68a61c7b68..d6b487ffe24 100644 --- a/src/main/java/tutorpro/logic/parser/CliSyntax.java +++ b/src/main/java/tutorpro/logic/parser/CliSyntax.java @@ -11,5 +11,6 @@ public class CliSyntax { public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_ADDRESS = new Prefix("a/"); public static final Prefix PREFIX_TAG = new Prefix("t/"); - + public static final Prefix PREFIX_LEVEL = new Prefix("lvl/"); + public static final Prefix PREFIX_SUBJECT = new Prefix("sub/"); } diff --git a/src/main/java/tutorpro/logic/parser/ParserUtil.java b/src/main/java/tutorpro/logic/parser/ParserUtil.java index 6f9c83e12e0..94791d999c3 100644 --- a/src/main/java/tutorpro/logic/parser/ParserUtil.java +++ b/src/main/java/tutorpro/logic/parser/ParserUtil.java @@ -13,6 +13,8 @@ import tutorpro.model.person.Email; import tutorpro.model.person.Name; import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -121,4 +123,46 @@ public static Set parseTags(Collection tags) throws ParseException } return tagSet; } + + /** + * Parses a {@code String email} into an {@code Email}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code email} is invalid. + */ + public static Level parseLevel(String level) throws ParseException { + requireNonNull(level); + String trimmedLevel = level.trim(); + if (!Level.isValidLevel(trimmedLevel)) { + throw new ParseException(Level.MESSAGE_CONSTRAINTS); + } + return new Level(trimmedLevel); + } + + /** + * Parses a {@code String tag} into a {@code Tag}. + * Leading and trailing whitespaces will be trimmed. + * + * @throws ParseException if the given {@code tag} is invalid. + */ + public static Subject parseSubject(String subject) throws ParseException { + requireNonNull(subject); + String trimmedSubject = subject.trim(); + if (!Subject.isValidSubject(trimmedSubject)) { + throw new ParseException(Subject.MESSAGE_CONSTRAINTS); + } + return new Subject(trimmedSubject); + } + + /** + * Parses {@code Collection subjects} into a {@code Set}. + */ + public static Set parseSubjects(Collection subjects) throws ParseException { + requireNonNull(subjects); + final Set subjectSet = new HashSet<>(); + for (String subjectName : subjects) { + subjectSet.add(parseSubject(subjectName)); + } + return subjectSet; + } } diff --git a/src/main/java/tutorpro/model/person/student/Student.java b/src/main/java/tutorpro/model/person/student/Student.java index 712004d0ee3..99d05b7191c 100644 --- a/src/main/java/tutorpro/model/person/student/Student.java +++ b/src/main/java/tutorpro/model/person/student/Student.java @@ -6,6 +6,7 @@ import javafx.scene.layout.Region; import tutorpro.commons.util.CollectionUtil; +import tutorpro.commons.util.ToStringBuilder; import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; @@ -63,6 +64,19 @@ public boolean equals(Object other) { return level.equals(otherStudent.level) && subjects.equals(otherStudent.subjects); } + @Override + public String toString() { + return new ToStringBuilder(this) + .add("name", super.getName()) + .add("phone", super.getPhone()) + .add("email", super.getEmail()) + .add("address", super.getAddress()) + .add("tags", super.getTags()) + .add("level", level) + .add("subjects", subjects) + .toString(); + } + /** * Returns a UI representation of the person. * @param displayIndex The index to be displayed on the card. diff --git a/src/test/java/tutorpro/logic/LogicManagerTest.java b/src/test/java/tutorpro/logic/LogicManagerTest.java index 271f9b4edf1..652e67724f7 100644 --- a/src/test/java/tutorpro/logic/LogicManagerTest.java +++ b/src/test/java/tutorpro/logic/LogicManagerTest.java @@ -5,10 +5,12 @@ import static tutorpro.logic.Messages.MESSAGE_UNKNOWN_COMMAND; import static tutorpro.logic.commands.CommandTestUtil.ADDRESS_DESC_AMY; import static tutorpro.logic.commands.CommandTestUtil.EMAIL_DESC_AMY; +import static tutorpro.logic.commands.CommandTestUtil.LEVEL_DESC_P6; import static tutorpro.logic.commands.CommandTestUtil.NAME_DESC_AMY; import static tutorpro.logic.commands.CommandTestUtil.PHONE_DESC_AMY; +import static tutorpro.logic.commands.CommandTestUtil.SUBJECT_DESC_MATH; import static tutorpro.testutil.Assert.assertThrows; -import static tutorpro.testutil.TypicalPersons.AMY; +import static tutorpro.testutil.TypicalStudents.AMY; import java.io.IOException; import java.nio.file.AccessDeniedException; @@ -31,7 +33,7 @@ import tutorpro.storage.JsonAddressBookStorage; import tutorpro.storage.JsonUserPrefsStorage; import tutorpro.storage.StorageManager; -import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.StudentBuilder; public class LogicManagerTest { private static final IOException DUMMY_IO_EXCEPTION = new IOException("dummy IO exception"); @@ -167,8 +169,8 @@ public void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) // Triggers the saveAddressBook method by executing an add command String addCommand = AddCommand.COMMAND_WORD + NAME_DESC_AMY + PHONE_DESC_AMY - + EMAIL_DESC_AMY + ADDRESS_DESC_AMY; - Person expectedPerson = new PersonBuilder(AMY).withTags().build(); + + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + LEVEL_DESC_P6 + SUBJECT_DESC_MATH; + Person expectedPerson = new StudentBuilder(AMY).withTags().build(); ModelManager expectedModel = new ModelManager(); expectedModel.addPerson(expectedPerson); assertCommandFailure(addCommand, CommandException.class, expectedMessage, expectedModel); diff --git a/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java index 938dfc33565..9d0c5606c44 100644 --- a/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java @@ -1,6 +1,6 @@ package tutorpro.logic.commands; -//import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; +import static org.junit.jupiter.api.Assertions.fail; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -10,8 +10,9 @@ import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; import tutorpro.model.person.Person; -import tutorpro.testutil.PersonBuilder; -import tutorpro.testutil.TypicalPersons; +import tutorpro.model.person.student.Student; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalStudents; /** * Contains integration tests (interaction with the Model) for {@code AddCommand}. @@ -22,12 +23,12 @@ public class AddCommandIntegrationTest { @BeforeEach public void setUp() { - model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + model = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); } @Test public void execute_newPerson_success() { - Person validPerson = new PersonBuilder().build(); + Student validPerson = new StudentBuilder().build(); Model expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); expectedModel.addPerson(validPerson); @@ -40,7 +41,11 @@ public void execute_newPerson_success() { @Test public void execute_duplicatePerson_throwsCommandException() { Person personInList = model.getAddressBook().getPersonList().get(0); - CommandTestUtil.assertCommandFailure(new AddCommand(personInList), model, + if (!(personInList instanceof Student)) { + fail(); + } + Student studentInList = (Student) personInList; + CommandTestUtil.assertCommandFailure(new AddCommand(studentInList), model, AddCommand.MESSAGE_DUPLICATE_PERSON); } diff --git a/src/test/java/tutorpro/logic/commands/AddCommandTest.java b/src/test/java/tutorpro/logic/commands/AddCommandTest.java index 17d5bb99957..52801131cda 100644 --- a/src/test/java/tutorpro/logic/commands/AddCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandTest.java @@ -22,9 +22,10 @@ import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.ReadOnlyUserPrefs; import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.testutil.Assert; -import tutorpro.testutil.PersonBuilder; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalStudents; public class AddCommandTest { @@ -36,7 +37,7 @@ public void constructor_nullPerson_throwsNullPointerException() { @Test public void execute_personAcceptedByModel_addSuccessful() throws Exception { ModelStubAcceptingPersonAdded modelStub = new ModelStubAcceptingPersonAdded(); - Person validPerson = new PersonBuilder().build(); + Student validPerson = new StudentBuilder().build(); CommandResult commandResult = new AddCommand(validPerson).execute(modelStub); @@ -47,7 +48,7 @@ public void execute_personAcceptedByModel_addSuccessful() throws Exception { @Test public void execute_duplicatePerson_throwsCommandException() { - Person validPerson = new PersonBuilder().build(); + Student validPerson = new StudentBuilder().build(); AddCommand addCommand = new AddCommand(validPerson); ModelStub modelStub = new ModelStubWithPerson(validPerson); @@ -57,8 +58,8 @@ public void execute_duplicatePerson_throwsCommandException() { @Test public void equals() { - Person alice = new PersonBuilder().withName("Alice").build(); - Person bob = new PersonBuilder().withName("Bob").build(); + Student alice = new StudentBuilder().withName("Alice").build(); + Student bob = new StudentBuilder().withName("Bob").build(); AddCommand addAliceCommand = new AddCommand(alice); AddCommand addBobCommand = new AddCommand(bob); @@ -81,8 +82,8 @@ public void equals() { @Test public void toStringMethod() { - AddCommand addCommand = new AddCommand(TypicalPersons.ALICE); - String expected = AddCommand.class.getCanonicalName() + "{toAdd=" + TypicalPersons.ALICE + "}"; + AddCommand addCommand = new AddCommand(TypicalStudents.ALICE); + String expected = AddCommand.class.getCanonicalName() + "{toAdd=" + TypicalStudents.ALICE + "}"; assertEquals(expected, addCommand.toString()); } diff --git a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java index b62454cab21..adc3785e125 100644 --- a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java +++ b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java @@ -43,6 +43,11 @@ public class CommandTestUtil { public static final String PHONE_DESC_AMY = " " + CliSyntax.PREFIX_PHONE + VALID_PHONE_AMY; public static final String PHONE_DESC_BOB = " " + CliSyntax.PREFIX_PHONE + VALID_PHONE_BOB; public static final String EMAIL_DESC_AMY = " " + CliSyntax.PREFIX_EMAIL + VALID_EMAIL_AMY; + public static final String LEVEL_DESC_P6 = " " + CliSyntax.PREFIX_LEVEL + VALID_LEVEL_P6; + public static final String LEVEL_DESC_UNI = " " + CliSyntax.PREFIX_LEVEL + VALID_LEVEL_UNI; + + public static final String SUBJECT_DESC_MATH = " " + CliSyntax.PREFIX_SUBJECT + VALID_SUBJECT_MATH; + public static final String SUBJECT_DESC_ENGLISH = " " + CliSyntax.PREFIX_SUBJECT + VALID_SUBJECT_ENGLISH; public static final String EMAIL_DESC_BOB = " " + CliSyntax.PREFIX_EMAIL + VALID_EMAIL_BOB; public static final String ADDRESS_DESC_AMY = " " + CliSyntax.PREFIX_ADDRESS + VALID_ADDRESS_AMY; public static final String ADDRESS_DESC_BOB = " " + CliSyntax.PREFIX_ADDRESS + VALID_ADDRESS_BOB; diff --git a/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java b/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java index 117edd75b99..12c0c6540fb 100644 --- a/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java +++ b/src/test/java/tutorpro/logic/parser/AddCommandParserTest.java @@ -8,40 +8,44 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; -import tutorpro.model.person.Person; import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Student; import tutorpro.model.tag.Tag; -import tutorpro.testutil.PersonBuilder; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalStudents; public class AddCommandParserTest { private AddCommandParser parser = new AddCommandParser(); @Test public void parse_allFieldsPresent_success() { - Person expectedPerson = new PersonBuilder(TypicalPersons.BOB) + Student expectedPerson = new StudentBuilder(TypicalStudents.BOB) .withTags(CommandTestUtil.VALID_TAG_FRIEND).build(); // whitespace only preamble CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.PREAMBLE_WHITESPACE + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB - + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND, new AddCommand(expectedPerson)); + + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.SUBJECT_DESC_ENGLISH + CommandTestUtil.LEVEL_DESC_UNI, + new AddCommand(expectedPerson)); // multiple tags - all accepted - Person expectedPersonMultipleTags = new PersonBuilder(TypicalPersons.BOB) + Student expectedPersonMultipleTags = new StudentBuilder(TypicalStudents.BOB) .withTags(CommandTestUtil.VALID_TAG_FRIEND, CommandTestUtil.VALID_TAG_HUSBAND).build(); CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.SUBJECT_DESC_ENGLISH + CommandTestUtil.LEVEL_DESC_UNI, new AddCommand(expectedPersonMultipleTags)); } @Test public void parse_repeatedNonTagValue_failure() { String validExpectedPersonString = CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB - + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND; + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI; // multiple names CommandParserTestUtil.assertParseFailure(parser, @@ -68,7 +72,7 @@ public void parse_repeatedNonTagValue_failure() { validExpectedPersonString + CommandTestUtil.PHONE_DESC_AMY + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + validExpectedPersonString, Messages.getErrorMessageForDuplicatePrefixes(CliSyntax.PREFIX_NAME, CliSyntax.PREFIX_ADDRESS, - CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_PHONE)); + CliSyntax.PREFIX_EMAIL, CliSyntax.PREFIX_PHONE, CliSyntax.PREFIX_LEVEL)); // invalid value followed by valid value @@ -118,10 +122,11 @@ public void parse_repeatedNonTagValue_failure() { @Test public void parse_optionalFieldsMissing_success() { // zero tags - Person expectedPerson = new PersonBuilder(TypicalPersons.AMY).withTags().build(); + Student expectedPerson = new StudentBuilder(TypicalStudents.AMY).withTags().build(); CommandParserTestUtil.assertParseSuccess(parser, CommandTestUtil.NAME_DESC_AMY + CommandTestUtil.PHONE_DESC_AMY - + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY, + + CommandTestUtil.EMAIL_DESC_AMY + CommandTestUtil.ADDRESS_DESC_AMY + + CommandTestUtil.LEVEL_DESC_P6 + CommandTestUtil.SUBJECT_DESC_MATH, new AddCommand(expectedPerson)); } @@ -166,41 +171,47 @@ public void parse_invalidValue_failure() { CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI, Name.MESSAGE_CONSTRAINTS); // invalid phone CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.INVALID_PHONE_DESC + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI, Phone.MESSAGE_CONSTRAINTS); // invalid email CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.INVALID_EMAIL_DESC + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI, Email.MESSAGE_CONSTRAINTS); // invalid address CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC - + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND, + + CommandTestUtil.TAG_DESC_HUSBAND + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI, Address.MESSAGE_CONSTRAINTS); // invalid tag CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB - + CommandTestUtil.INVALID_TAG_DESC + CommandTestUtil.VALID_TAG_FRIEND, + + CommandTestUtil.INVALID_TAG_DESC + CommandTestUtil.VALID_TAG_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI, Tag.MESSAGE_CONSTRAINTS); // two invalid values, only first invalid value reported CommandParserTestUtil.assertParseFailure(parser, CommandTestUtil.INVALID_NAME_DESC + CommandTestUtil.PHONE_DESC_BOB - + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC, + + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.INVALID_ADDRESS_DESC + + CommandTestUtil.LEVEL_DESC_UNI, Name.MESSAGE_CONSTRAINTS); // non-empty preamble @@ -208,7 +219,8 @@ public void parse_invalidValue_failure() { CommandTestUtil.PREAMBLE_NON_EMPTY + CommandTestUtil.NAME_DESC_BOB + CommandTestUtil.PHONE_DESC_BOB + CommandTestUtil.EMAIL_DESC_BOB + CommandTestUtil.ADDRESS_DESC_BOB + CommandTestUtil.TAG_DESC_HUSBAND - + CommandTestUtil.TAG_DESC_FRIEND, + + CommandTestUtil.TAG_DESC_FRIEND + + CommandTestUtil.LEVEL_DESC_UNI, String.format(Messages.MESSAGE_INVALID_COMMAND_FORMAT, AddCommand.MESSAGE_USAGE)); } } diff --git a/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java index 90e5c373afb..08902813f52 100644 --- a/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java +++ b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java @@ -22,10 +22,12 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.person.NameContainsKeywordsPredicate; import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.testutil.Assert; import tutorpro.testutil.EditPersonDescriptorBuilder; import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.PersonUtil; +import tutorpro.testutil.StudentBuilder; import tutorpro.testutil.TypicalIndexes; public class AddressBookParserTest { @@ -34,7 +36,7 @@ public class AddressBookParserTest { @Test public void parseCommand_add() throws Exception { - Person person = new PersonBuilder().build(); + Student person = new StudentBuilder().build(); AddCommand command = (AddCommand) parser.parseCommand(PersonUtil.getAddCommand(person)); assertEquals(new AddCommand(person), command); } diff --git a/src/test/java/tutorpro/testutil/PersonUtil.java b/src/test/java/tutorpro/testutil/PersonUtil.java index d2a25a5ab25..a7eba6b9b47 100644 --- a/src/test/java/tutorpro/testutil/PersonUtil.java +++ b/src/test/java/tutorpro/testutil/PersonUtil.java @@ -5,7 +5,7 @@ import tutorpro.logic.commands.AddCommand; import tutorpro.logic.commands.EditCommand; import tutorpro.logic.parser.CliSyntax; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.model.tag.Tag; /** @@ -16,22 +16,26 @@ public class PersonUtil { /** * Returns an add command string for adding the {@code person}. */ - public static String getAddCommand(Person person) { + public static String getAddCommand(Student person) { return AddCommand.COMMAND_WORD + " " + getPersonDetails(person); } /** * Returns the part of command string for the given {@code person}'s details. */ - public static String getPersonDetails(Person person) { + public static String getPersonDetails(Student person) { StringBuilder sb = new StringBuilder(); sb.append(CliSyntax.PREFIX_NAME + person.getName().fullName + " "); sb.append(CliSyntax.PREFIX_PHONE + person.getPhone().value + " "); sb.append(CliSyntax.PREFIX_EMAIL + person.getEmail().value + " "); sb.append(CliSyntax.PREFIX_ADDRESS + person.getAddress().value + " "); + sb.append(CliSyntax.PREFIX_LEVEL + person.getLevel().toString() + " "); person.getTags().stream().forEach( s -> sb.append(CliSyntax.PREFIX_TAG + s.tagName + " ") ); + person.getSubjects().stream().forEach( + s -> sb.append(CliSyntax.PREFIX_SUBJECT + s.toString() + " ") + ); return sb.toString(); } From ec458ab6e74b318e4c5bf9b379eae4e57c1466ca Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 16:40:38 +0800 Subject: [PATCH 062/189] Add example UG draft 1 and update HelpWindow link --- docs/2101_UG_[Draft_1].pdf | Bin 0 -> 169328 bytes src/main/java/tutorpro/ui/HelpWindow.java | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/2101_UG_[Draft_1].pdf diff --git a/docs/2101_UG_[Draft_1].pdf b/docs/2101_UG_[Draft_1].pdf new file mode 100644 index 0000000000000000000000000000000000000000..985fc8f10fec779b4aa36d1c66ecd8f21064f21f GIT binary patch literal 169328 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

      Nte#78FG#?ofPC{+7c+D= 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%0DXa2saOupMk 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

      o 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 literal 0 HcmV?d00001 diff --git a/src/main/java/tutorpro/ui/HelpWindow.java b/src/main/java/tutorpro/ui/HelpWindow.java index 60c11c6cf40..e61d3e9d3f4 100644 --- a/src/main/java/tutorpro/ui/HelpWindow.java +++ b/src/main/java/tutorpro/ui/HelpWindow.java @@ -15,7 +15,7 @@ */ public class HelpWindow extends UiPart { - public static final String USERGUIDE_URL = "https://se-education.org/addressbook-level3/UserGuide.html"; + public static final String USERGUIDE_URL = "https://tarinpairor.github.io/tp/"; public static final String HELP_MESSAGE = "Refer to the user guide: " + USERGUIDE_URL; private static final Logger logger = LogsCenter.getLogger(HelpWindow.class); From db3942241f40e10a73124310eca44c96595b873d Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 16:50:42 +0800 Subject: [PATCH 063/189] BetterModelClassDiagram.puml: Add newline --- docs/diagrams/BetterModelClassDiagram.puml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/diagrams/BetterModelClassDiagram.puml b/docs/diagrams/BetterModelClassDiagram.puml index a7eb2d9241e..01228b9ec7d 100644 --- a/docs/diagrams/BetterModelClassDiagram.puml +++ b/docs/diagrams/BetterModelClassDiagram.puml @@ -22,4 +22,4 @@ Person *--> Address Person <|-down- Student Student *--> Level Student *--> "*" Subject -@enduml \ No newline at end of file +@enduml From 3ca4cbc6513e1ef3d02731e9b90a40f4ca41bf23 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 22:20:01 +0800 Subject: [PATCH 064/189] Add main Parent classes --- .../tutorpro/model/person/parent/Parent.java | 76 +++++++++++++++++++ src/main/java/tutorpro/ui/ParentCard.java | 65 ++++++++++++++++ src/main/resources/view/ParentListCard.fxml | 38 ++++++++++ 3 files changed, 179 insertions(+) create mode 100644 src/main/java/tutorpro/model/person/parent/Parent.java create mode 100644 src/main/java/tutorpro/ui/ParentCard.java create mode 100644 src/main/resources/view/ParentListCard.fxml diff --git a/src/main/java/tutorpro/model/person/parent/Parent.java b/src/main/java/tutorpro/model/person/parent/Parent.java new file mode 100644 index 00000000000..1bf1e2bb296 --- /dev/null +++ b/src/main/java/tutorpro/model/person/parent/Parent.java @@ -0,0 +1,76 @@ +package tutorpro.model.person.parent; + +import java.util.HashSet; +import java.util.Set; + +import tutorpro.commons.util.CollectionUtil; +import tutorpro.commons.util.ToStringBuilder; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Person; +import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Student; +import tutorpro.model.tag.Tag; + + + +/* + * Represents a Parent in TutorPro. + + */ +public class Parent extends Person { + + public static final Tag PARENT_TAG = new Tag("Parent"); + + private final Set students = new HashSet<>(); + + /** + * Every field must be present and not null. + */ + public Parent(Name name, Phone phone, Email email, Address address, Set tags, Set students) { + super(name, phone, email, address, tags); + addTags(PARENT_TAG); + CollectionUtil.requireAllNonNull(students); + this.students.addAll(students); + } + + /** + * Creates a copy of the given Parent. + * @return The students of the parent. + */ + public Set getStudents() { + return students; + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + + if (!(other instanceof Parent)) { + return false; + } + + Parent otherParent = (Parent) other; + return otherParent.getName().equals(getName()) + && otherParent.getPhone().equals(getPhone()) + && otherParent.getEmail().equals(getEmail()) + && otherParent.getAddress().equals(getAddress()) + && otherParent.getTags().equals(getTags()) + && otherParent.getStudents().equals(getStudents()); + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .add("name", getName()) + .add("phone", getPhone()) + .add("email", getEmail()) + .add("address", getAddress()) + .add("tags", getTags()) + .add("students", getStudents()) + .toString(); + } +} diff --git a/src/main/java/tutorpro/ui/ParentCard.java b/src/main/java/tutorpro/ui/ParentCard.java new file mode 100644 index 00000000000..be1c3bb6e7c --- /dev/null +++ b/src/main/java/tutorpro/ui/ParentCard.java @@ -0,0 +1,65 @@ +package tutorpro.ui; + +import java.util.Comparator; + +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.layout.FlowPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Region; +import tutorpro.model.person.parent.Parent; + + +/** + * An UI component that displays information of a {@code Parent}. + */ +public class ParentCard extends UiPart { + + private static final String FXML = "ParentListCard.fxml"; + + /** + * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. + * As a consequence, UI elements' variable names cannot be set to such keywords + * or an exception will be thrown by JavaFX during runtime. + * + * @see The issue on AddressBook level 4 + */ + + public final Parent parent; + + @FXML + private HBox cardPane; + @FXML + private Label name; + @FXML + private Label id; + @FXML + private Label phone; + @FXML + private Label address; + @FXML + private Label email; + @FXML + private FlowPane tags; + @FXML + private FlowPane students; + + /** + * Creates a {@code PersonCode} with the given {@code Person} and index to display. + */ + public ParentCard(Parent parent, int displayedIndex) { + super(FXML); + this.parent = parent; + id.setText(displayedIndex + ". "); + name.setText(parent.getName().fullName); + phone.setText(parent.getPhone().value); + address.setText(parent.getAddress().value); + email.setText(parent.getEmail().value); + parent.getTags().stream() + .sorted(Comparator.comparing(tag -> tag.tagName)) + .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); + parent.getStudents().stream() + .sorted(Comparator.comparing(student -> student.getName().fullName)) + .forEach(student -> students.getChildren().add(new Label(student.getName().fullName))); + } +} diff --git a/src/main/resources/view/ParentListCard.fxml b/src/main/resources/view/ParentListCard.fxml new file mode 100644 index 00000000000..9e356992724 --- /dev/null +++ b/src/main/resources/view/ParentListCard.fxml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 1c0ea18a86c544e1b6301dba524489ccc75fc50e Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 22:52:37 +0800 Subject: [PATCH 065/189] Fix checkstyle issues with Parent classes --- src/main/java/tutorpro/model/person/parent/Parent.java | 6 +----- src/main/java/tutorpro/ui/ParentCard.java | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/tutorpro/model/person/parent/Parent.java b/src/main/java/tutorpro/model/person/parent/Parent.java index 1bf1e2bb296..07a475b1e93 100644 --- a/src/main/java/tutorpro/model/person/parent/Parent.java +++ b/src/main/java/tutorpro/model/person/parent/Parent.java @@ -13,11 +13,8 @@ import tutorpro.model.person.student.Student; import tutorpro.model.tag.Tag; - - -/* +/** * Represents a Parent in TutorPro. - */ public class Parent extends Person { @@ -34,7 +31,6 @@ public Parent(Name name, Phone phone, Email email, Address address, Set tag CollectionUtil.requireAllNonNull(students); this.students.addAll(students); } - /** * Creates a copy of the given Parent. * @return The students of the parent. diff --git a/src/main/java/tutorpro/ui/ParentCard.java b/src/main/java/tutorpro/ui/ParentCard.java index be1c3bb6e7c..080ff9920ba 100644 --- a/src/main/java/tutorpro/ui/ParentCard.java +++ b/src/main/java/tutorpro/ui/ParentCard.java @@ -16,7 +16,6 @@ public class ParentCard extends UiPart { private static final String FXML = "ParentListCard.fxml"; - /** * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. * As a consequence, UI elements' variable names cannot be set to such keywords From bf5732a5aad6016099517a6d0423215eb8c1762f Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 23:19:15 +0800 Subject: [PATCH 066/189] Add test Parent classes --- .../tutorpro/model/util/SampleDataUtil.java | 7 ++ src/main/java/tutorpro/ui/StudentCard.java | 2 +- .../model/person/parent/ParentTest.java | 65 +++++++++++ .../java/tutorpro/testutil/ParentBuilder.java | 107 ++++++++++++++++++ .../tutorpro/testutil/TypicalParents.java | 26 +++++ 5 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 src/test/java/tutorpro/model/person/parent/ParentTest.java create mode 100644 src/test/java/tutorpro/testutil/ParentBuilder.java create mode 100644 src/test/java/tutorpro/testutil/TypicalParents.java diff --git a/src/main/java/tutorpro/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java index 552013cfe1d..02e0be1b972 100644 --- a/src/main/java/tutorpro/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -91,4 +91,11 @@ public static Set getSubjectSet(String... strings) { .map(Subject::new) .collect(Collectors.toSet()); } + + /** + * Returns a student set containing the list of students given. + */ + public static Set getStudentSet(Student... students) { + return Arrays.stream(students).collect(Collectors.toSet()); + } } diff --git a/src/main/java/tutorpro/ui/StudentCard.java b/src/main/java/tutorpro/ui/StudentCard.java index 55dac0211f2..0bd42a6938a 100644 --- a/src/main/java/tutorpro/ui/StudentCard.java +++ b/src/main/java/tutorpro/ui/StudentCard.java @@ -10,7 +10,7 @@ import tutorpro.model.person.student.Student; /** - * An UI component that displays information of a {@code Person}. + * An UI component that displays information of a {@code Student}. */ public class StudentCard extends UiPart { diff --git a/src/test/java/tutorpro/model/person/parent/ParentTest.java b/src/test/java/tutorpro/model/person/parent/ParentTest.java new file mode 100644 index 00000000000..57722d0d4f8 --- /dev/null +++ b/src/test/java/tutorpro/model/person/parent/ParentTest.java @@ -0,0 +1,65 @@ +package tutorpro.model.person.parent; + +import static org.junit.jupiter.api.Assertions.fail; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import tutorpro.testutil.Assert; +import tutorpro.testutil.ParentBuilder; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalParents; +import tutorpro.testutil.TypicalStudents; + +public class ParentTest { + + @Test + public void asObservableList_modifyList_throwsUnsupportedOperationException() { + Parent parent = new ParentBuilder().build(); + Assert.assertThrows(UnsupportedOperationException.class, () -> parent.getTags().remove(0)); + } + + @Test + public void newParent_hasParentTag() { + Parent parent = new ParentBuilder().build(); + Assertions.assertTrue(parent.getTags().contains(Parent.PARENT_TAG)); + } + + + @Test + public void equals() { + // same values -> returns true + Parent aliceCopy = new ParentBuilder(TypicalParents.JUCHIE).build(); + Assertions.assertTrue(TypicalParents.JUCHIE.equals(aliceCopy)); + + // same object -> returns true + Assertions.assertTrue(TypicalParents.JUCHIE.equals(TypicalParents.JUCHIE)); + + // null -> returns false + Assertions.assertFalse(TypicalParents.JUCHIE.equals(null)); + + // different type -> returns false + Assertions.assertFalse(TypicalParents.JUCHIE.equals(5)); + + // different person -> returns false + Assertions.assertFalse(TypicalParents.JUCHIE.equals(TypicalStudents.ALICE)); + + // different name -> returns false + Parent editedAlice = new ParentBuilder(TypicalParents.JUCHIE).withName("Bob").build(); + Assertions.assertFalse(TypicalParents.JUCHIE.equals(editedAlice)); + + } + + @Test + public void getCard() { + try { + new StudentBuilder().build().getCard(1); + fail(); + } catch (ExceptionInInitializerError e) { + return; + } catch (NoClassDefFoundError e) { + return; + } + } + +} diff --git a/src/test/java/tutorpro/testutil/ParentBuilder.java b/src/test/java/tutorpro/testutil/ParentBuilder.java new file mode 100644 index 00000000000..92cc210585a --- /dev/null +++ b/src/test/java/tutorpro/testutil/ParentBuilder.java @@ -0,0 +1,107 @@ +package tutorpro.testutil; + +import java.util.Set; + +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.person.parent.Parent; +import tutorpro.model.person.student.Student; +import tutorpro.model.tag.Tag; +import tutorpro.model.util.SampleDataUtil; + +/** + * A utility class to help with building Parent objects. + */ +public class ParentBuilder { + + public static final String DEFAULT_NAME = "Xin Yuan Senior"; + public static final String DEFAULT_PHONE = "85355255"; + public static final String DEFAULT_EMAIL = "xys@gmail.com"; + public static final String DEFAULT_ADDRESS = "123, Jurong West Ave 6, #08-111"; + + private Name name; + private Phone phone; + private Email email; + private Address address; + private Set tags; + private Set students; + + /** + * Creates a {@code ParentBuilder} with the default details. + */ + public ParentBuilder() { + name = new Name(DEFAULT_NAME); + phone = new Phone(DEFAULT_PHONE); + email = new Email(DEFAULT_EMAIL); + address = new Address(DEFAULT_ADDRESS); + tags = Set.of(); + students = Set.of(); + } + + /** + * Initializes the ParentBuilder with the data of {@code parentToCopy}. + */ + public ParentBuilder(Parent parentToCopy) { + name = parentToCopy.getName(); + phone = parentToCopy.getPhone(); + email = parentToCopy.getEmail(); + address = parentToCopy.getAddress(); + tags = parentToCopy.getTags(); + students = parentToCopy.getStudents(); + } + + /** + * Sets the {@code Name} of the {@code Parent} that we are building. + */ + public ParentBuilder withName(String name) { + this.name = new Name(name); + return this; + } + + /** + * Sets the {@code Phone} of the {@code Parent} that we are building. + */ + public ParentBuilder withPhone(String phone) { + this.phone = new Phone(phone); + return this; + } + + /** + * Sets the {@code Email} of the {@code Parent} that we are building. + */ + public ParentBuilder withEmail(String email) { + this.email = new Email(email); + return this; + } + + /** + * Sets the {@code Address} of the {@code Parent} that we are building. + */ + public ParentBuilder withAddress(String address) { + this.address = new Address(address); + return this; + } + + /** + * Parses the {@code tags} into a {@code Set} and set it to the {@code Parent} that we are building. + */ + public ParentBuilder withTags(String ... tags) { + this.tags = SampleDataUtil.getTagSet(tags); + return this; + } + + /** + * Parses the {@code students} into a {@code Set} and set it to the {@code Parent} that we are building. + */ + public ParentBuilder withStudents(Student... students) { + this.students = SampleDataUtil.getStudentSet(students); + return this; + } + + public Parent build() { + return new Parent(name, phone, email, address, tags, students); + } + +} diff --git a/src/test/java/tutorpro/testutil/TypicalParents.java b/src/test/java/tutorpro/testutil/TypicalParents.java new file mode 100644 index 00000000000..1d6d647c32e --- /dev/null +++ b/src/test/java/tutorpro/testutil/TypicalParents.java @@ -0,0 +1,26 @@ +package tutorpro.testutil; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import tutorpro.model.person.parent.Parent; +import tutorpro.model.util.SampleDataUtil; + +public class TypicalParents { + public static final Parent JUCHIE = new ParentBuilder().withName("Ju Chie") + .withAddress("123, Jurong West Ave 6, #08-111").withEmail("jc@example.com") + .withPhone("94351253") + .withTags("friends") + .withStudents(SampleDataUtil.getSampleStudents()) + .build(); + + private TypicalParents() {} // prevents instantiation + + /** + * Returns an {@code List} with all the typical parents. + */ + public static List getTypicalPersons() { + return new ArrayList<>(Arrays.asList(JUCHIE)); + } +} From 40bbe19e1ff4763e8c03ea36baf55bcb0b079979 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 23:23:22 +0800 Subject: [PATCH 067/189] TypicalParents.java: Add 2 Parents --- .../java/tutorpro/testutil/TypicalParents.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/test/java/tutorpro/testutil/TypicalParents.java b/src/test/java/tutorpro/testutil/TypicalParents.java index 1d6d647c32e..8580147ec57 100644 --- a/src/test/java/tutorpro/testutil/TypicalParents.java +++ b/src/test/java/tutorpro/testutil/TypicalParents.java @@ -15,12 +15,26 @@ public class TypicalParents { .withStudents(SampleDataUtil.getSampleStudents()) .build(); + public static final Parent STARCEN = new ParentBuilder().withName("StarCen") + .withAddress("123, Jurong West Ave 6, #08-111").withEmail("sc@example.com") + .withPhone("94351253") + .withTags("friends") + .withStudents(SampleDataUtil.getSampleStudents()) + .build(); + + public static final Parent YINXUAN = new ParentBuilder().withName("Yin Xuan") + .withAddress("123, Jurong West Ave 6, #08-111").withEmail("yx@example.com") + .withPhone("94351253") + .withTags("friends") + .withStudents(SampleDataUtil.getSampleStudents()) + .build(); + private TypicalParents() {} // prevents instantiation /** * Returns an {@code List} with all the typical parents. */ public static List getTypicalPersons() { - return new ArrayList<>(Arrays.asList(JUCHIE)); + return new ArrayList<>(Arrays.asList(JUCHIE, STARCEN, YINXUAN)); } } From ce0666f6808ab6e3d895d1e5e838185a3434dd5f Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 23:26:19 +0800 Subject: [PATCH 068/189] Fix ParentBuilder.java whitespace --- src/test/java/tutorpro/testutil/ParentBuilder.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/tutorpro/testutil/ParentBuilder.java b/src/test/java/tutorpro/testutil/ParentBuilder.java index 92cc210585a..fdf6ca9f1fa 100644 --- a/src/test/java/tutorpro/testutil/ParentBuilder.java +++ b/src/test/java/tutorpro/testutil/ParentBuilder.java @@ -15,7 +15,6 @@ * A utility class to help with building Parent objects. */ public class ParentBuilder { - public static final String DEFAULT_NAME = "Xin Yuan Senior"; public static final String DEFAULT_PHONE = "85355255"; public static final String DEFAULT_EMAIL = "xys@gmail.com"; From c44445780db4af40c27807c3a9cd94b634e158ce Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Thu, 21 Mar 2024 23:28:52 +0800 Subject: [PATCH 069/189] Add TypicalParents.java Javadocs --- src/test/java/tutorpro/testutil/TypicalParents.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/tutorpro/testutil/TypicalParents.java b/src/test/java/tutorpro/testutil/TypicalParents.java index 8580147ec57..4de5f6d0faf 100644 --- a/src/test/java/tutorpro/testutil/TypicalParents.java +++ b/src/test/java/tutorpro/testutil/TypicalParents.java @@ -7,6 +7,9 @@ import tutorpro.model.person.parent.Parent; import tutorpro.model.util.SampleDataUtil; +/** + * A utility class to help with building Parent objects. + */ public class TypicalParents { public static final Parent JUCHIE = new ParentBuilder().withName("Ju Chie") .withAddress("123, Jurong West Ave 6, #08-111").withEmail("jc@example.com") From e2b6a8a8c148fae2c6b69c671a2cef8129e2abd9 Mon Sep 17 00:00:00 2001 From: tamagochuuu Date: Thu, 21 Mar 2024 23:45:29 +0800 Subject: [PATCH 070/189] make find search for matches to non-words --- .../tutorpro/commons/util/StringUtil.java | 26 +++++++++++++++++++ .../person/NameContainsKeywordsPredicate.java | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/tutorpro/commons/util/StringUtil.java b/src/main/java/tutorpro/commons/util/StringUtil.java index 8352743bfd9..e641d115238 100644 --- a/src/main/java/tutorpro/commons/util/StringUtil.java +++ b/src/main/java/tutorpro/commons/util/StringUtil.java @@ -38,6 +38,32 @@ public static boolean containsWordIgnoreCase(String sentence, String word) { .anyMatch(preppedWord::equalsIgnoreCase); } + /** + * Returns true if the {@code sentence} contains the {@code substring}. + * Ignores case. + *
      examples:

      +     *       containsSubstringIgnoreCase("ABc def", "abc") == true
      +     *       containsSubstringIgnoreCase("ABc def", "DEF") == true
      +     *       containsSubstringIgnoreCase("ABc def", "AB") == true
      +     *       containsSubstringIgnoreCase("ABc def", "Ac") == false //no substring match
      +     *       
      + * @param sentence cannot be null + * @param substring cannot be null or empty + */ + public static boolean containsSubstringIgnoreCase(String sentence, String substring) { + requireNonNull(sentence); + requireNonNull(substring); + + String preppedSubstring = substring.trim(); + checkArgument(!preppedSubstring.isEmpty(), "Substring cannot be empty"); + + String preppedSentence = sentence; + String[] wordsInPreppedSentence = preppedSentence.split("\\s+"); + + return Arrays.stream(wordsInPreppedSentence) + .anyMatch(preppedSubstring::equalsIgnoreCase); + } + /** * Returns a detailed message of the t, including the stack trace. */ diff --git a/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java index b1b2359b282..ca82f3cbc43 100644 --- a/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java @@ -19,7 +19,7 @@ public NameContainsKeywordsPredicate(List keywords) { @Override public boolean test(Person person) { return keywords.stream() - .anyMatch(keyword -> StringUtil.containsWordIgnoreCase(person.getName().fullName, keyword)); + .anyMatch(keyword -> StringUtil.containsSubstringIgnoreCase(person.getName().fullName, keyword)); } @Override From a3075e2d7790adc477a8fdd1282b7e464d553783 Mon Sep 17 00:00:00 2001 From: tamagochuuu Date: Thu, 21 Mar 2024 23:57:50 +0800 Subject: [PATCH 071/189] add checks for new substring search method --- .../tutorpro/commons/util/StringUtilTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/src/test/java/tutorpro/commons/util/StringUtilTest.java b/src/test/java/tutorpro/commons/util/StringUtilTest.java index 2984082c2fc..e48dd938196 100644 --- a/src/test/java/tutorpro/commons/util/StringUtilTest.java +++ b/src/test/java/tutorpro/commons/util/StringUtilTest.java @@ -127,6 +127,73 @@ public void containsWordIgnoreCase_validInputs_correctResult() { assertTrue(StringUtil.containsWordIgnoreCase("AAA bBb ccc bbb", "bbB")); } + //---------------- Tests for containsSubstringIgnoreCase -------------------------------------- + + /* + * Invalid equivalence partitions for substring: null, empty + * Invalid equivalence partitions for sentence: null + * The three test cases below test one invalid input at a time. + */ + @Test + public void containsSubstringIgnoreCase_nullSubstring_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> StringUtil + .containsSubstringIgnoreCase("typical sentence", null)); + } + + @Test + public void containsSubtringIgnoreCase_emptySubstring_throwsIllegalArgumentException() { + Assert.assertThrows(IllegalArgumentException.class, "Substring cannot be empty", () + -> StringUtil.containsSubstringIgnoreCase("typical sentence", " ")); + } + + @Test + public void containsSubstringIgnoreCase_nullSentence_throwsNullPointerException() { + Assert.assertThrows(NullPointerException.class, () -> StringUtil + .containsSubstringIgnoreCase(null, "abc")); + } + + /* + * Valid equivalence partitions for substring: + * - any word + * - word with leading/trailing spaces + * + * Valid equivalence partitions for sentence: + * - empty string + * - one word + * - multiple words + * - sentence with extra spaces + * + * Possible scenarios returning true: + * - matches any substring in sentence + * - matches multiple substrings + * + * Possible scenarios returning false: + * - query substring does not match nay substring of the sentence + * + * The test method below tries to verify all above with a reasonably low number of test cases. + */ + + @Test + public void containsSubstringIgnoreCase_validInputs_correctResult() { + + // Empty sentence + assertFalse(StringUtil.containsSubstringIgnoreCase("", "abc")); // Boundary case + assertFalse(StringUtil.containsSubstringIgnoreCase(" ", "123")); + + // Matches a partial substring only + assertFalse(StringUtil.containsSubstringIgnoreCase("aaa bbb ccc", "bbbb")); // Query substring bigger than sentence substring + + // Matches substring in the sentence, different upper/lower case letters + assertTrue(StringUtil.containsSubstringIgnoreCase("aaa bBb ccc", "Bbb")); // First word (boundary case) + assertTrue(StringUtil.containsSubstringIgnoreCase("aaa bBb ccc@1", "CCc@1")); // Last word (boundary case) + assertTrue(StringUtil.containsSubstringIgnoreCase(" AAA bBb ccc ", "aaa")); // Sentence has extra spaces + assertTrue(StringUtil.containsSubstringIgnoreCase("Aaa", "aaa")); // Only one word in sentence (boundary case) + assertTrue(StringUtil.containsSubstringIgnoreCase("aaa bbb ccc", " ccc ")); // Leading/trailing spaces + + // Matches multiple substrings in sentence + assertTrue(StringUtil.containsSubstringIgnoreCase("AAA bBb ccc bbb", "bbB")); + } + //---------------- Tests for getDetails -------------------------------------- /* From 09f39082bba00e689bf3926bfbfe6d03202788c4 Mon Sep 17 00:00:00 2001 From: tamagochuuu Date: Fri, 22 Mar 2024 00:02:17 +0800 Subject: [PATCH 072/189] fix find checks --- src/test/java/tutorpro/commons/util/StringUtilTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/tutorpro/commons/util/StringUtilTest.java b/src/test/java/tutorpro/commons/util/StringUtilTest.java index e48dd938196..83beabf9f8d 100644 --- a/src/test/java/tutorpro/commons/util/StringUtilTest.java +++ b/src/test/java/tutorpro/commons/util/StringUtilTest.java @@ -181,7 +181,8 @@ public void containsSubstringIgnoreCase_validInputs_correctResult() { assertFalse(StringUtil.containsSubstringIgnoreCase(" ", "123")); // Matches a partial substring only - assertFalse(StringUtil.containsSubstringIgnoreCase("aaa bbb ccc", "bbbb")); // Query substring bigger than sentence substring + // Query substring bigger than sentence substring + assertFalse(StringUtil.containsSubstringIgnoreCase("aaa bbb ccc", "bbbb")); // Matches substring in the sentence, different upper/lower case letters assertTrue(StringUtil.containsSubstringIgnoreCase("aaa bBb ccc", "Bbb")); // First word (boundary case) From 97446f00a2cecbcb8c20b1ac5425cee3f024de44 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Fri, 22 Mar 2024 02:05:12 +0800 Subject: [PATCH 073/189] Update edit function --- .../tutorpro/logic/commands/EditCommand.java | 81 +++++++++++++++---- .../logic/parser/EditCommandParser.java | 30 ++++++- .../logic/commands/CommandTestUtil.java | 3 + .../logic/commands/EditCommandTest.java | 49 +++++++---- .../commands/EditPersonDescriptorTest.java | 4 +- .../logic/parser/AddressBookParserTest.java | 14 ++-- .../testutil/EditPersonDescriptorBuilder.java | 26 +++++- .../java/tutorpro/testutil/PersonUtil.java | 10 +++ 8 files changed, 172 insertions(+), 45 deletions(-) diff --git a/src/main/java/tutorpro/logic/commands/EditCommand.java b/src/main/java/tutorpro/logic/commands/EditCommand.java index 1429a848255..30a2943ab2a 100644 --- a/src/main/java/tutorpro/logic/commands/EditCommand.java +++ b/src/main/java/tutorpro/logic/commands/EditCommand.java @@ -3,8 +3,10 @@ import static java.util.Objects.requireNonNull; import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_LEVEL; import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_SUBJECT; import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Collections; @@ -25,6 +27,9 @@ import tutorpro.model.person.Name; import tutorpro.model.person.Person; import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -42,10 +47,12 @@ public class EditCommand extends Command { + "[" + PREFIX_PHONE + "PHONE] " + "[" + PREFIX_EMAIL + "EMAIL] " + "[" + PREFIX_ADDRESS + "ADDRESS] " + + "[" + PREFIX_LEVEL + "EDU LEVEL] " + + "[" + PREFIX_SUBJECT + "SUBJECT(S)]... " + "[" + PREFIX_TAG + "TAG]...\n" - + "Example: " + COMMAND_WORD + " 1 " - + PREFIX_PHONE + "91234567 " - + PREFIX_EMAIL + "johndoe@example.com"; + + "Example: To edit education level of a student,\n" + + COMMAND_WORD + " 1 " + + PREFIX_LEVEL + " JC2 "; public static final String MESSAGE_EDIT_PERSON_SUCCESS = "Edited Person: %1$s"; public static final String MESSAGE_NOT_EDITED = "At least one field to edit must be provided."; @@ -67,7 +74,7 @@ public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { } @Override - public CommandResult execute(Model model) throws CommandException { + public CommandResult execute(Model model) throws CommandException, ClassCastException { requireNonNull(model); List lastShownList = model.getFilteredPersonList(); @@ -76,7 +83,13 @@ public CommandResult execute(Model model) throws CommandException { } Person personToEdit = lastShownList.get(index.getZeroBased()); - Person editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); + Student studentToEdit; + if (!(personToEdit instanceof Student)) { + throw new ClassCastException("class tutorpro.model.person.Person cannot be cast to class " + + "tutorpro.model.person.student.Student"); + } + studentToEdit = (Student) personToEdit; + Student editedPerson = createEditedPerson(studentToEdit, editPersonDescriptor); if (!personToEdit.isSamePerson(editedPerson) && model.hasPerson(editedPerson)) { throw new CommandException(MESSAGE_DUPLICATE_PERSON); @@ -88,19 +101,22 @@ public CommandResult execute(Model model) throws CommandException { } /** - * Creates and returns a {@code Person} with the details of {@code personToEdit} + * Creates and returns a {@code Student} with the details of {@code studentToEdit} * edited with {@code editPersonDescriptor}. */ - private static Person createEditedPerson(Person personToEdit, EditPersonDescriptor editPersonDescriptor) { - assert personToEdit != null; - - Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); - Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); - Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); - Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); - Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); - - return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); + private static Student createEditedPerson(Student studentToEdit, EditPersonDescriptor editPersonDescriptor) { + assert studentToEdit != null; + + Name updatedName = editPersonDescriptor.getName().orElse(studentToEdit.getName()); + Phone updatedPhone = editPersonDescriptor.getPhone().orElse(studentToEdit.getPhone()); + Email updatedEmail = editPersonDescriptor.getEmail().orElse(studentToEdit.getEmail()); + Address updatedAddress = editPersonDescriptor.getAddress().orElse(studentToEdit.getAddress()); + Level updatedLevel = editPersonDescriptor.getLevel().orElse(studentToEdit.getLevel()); + Set updatedSubjects = editPersonDescriptor.getSubjects().orElse(studentToEdit.getSubjects()); + Set updatedTags = editPersonDescriptor.getTags().orElse(studentToEdit.getTags()); + + return new Student(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags, + updatedLevel, updatedSubjects); } @Override @@ -136,6 +152,8 @@ public static class EditPersonDescriptor { private Phone phone; private Email email; private Address address; + private Level level; + private Set subjects; private Set tags; public EditPersonDescriptor() {} @@ -149,6 +167,8 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { setPhone(toCopy.phone); setEmail(toCopy.email); setAddress(toCopy.address); + setLevel(toCopy.level); + setSubjects(toCopy.subjects); setTags(toCopy.tags); } @@ -191,6 +211,31 @@ public Optional
      getAddress() { return Optional.ofNullable(address); } + public void setLevel(Level level) { + this.level = level; + } + + public Optional getLevel() { + return Optional.ofNullable(level); + } + + /** + * Sets {@code subjects} to this object's {@code subjects}. + * A defensive copy of {@code subjects} is used internally. + */ + public void setSubjects(Set subjects) { + this.subjects = (subjects != null) ? new HashSet<>(subjects) : null; + } + + /** + * Returns an unmodifiable subject set, which throws {@code UnsupportedOperationException} + * if modification is attempted. + * Returns {@code Optional#empty()} if {@code subjects} is null. + */ + public Optional> getSubjects() { + return (subjects != null) ? Optional.of(Collections.unmodifiableSet(subjects)) : Optional.empty(); + } + /** * Sets {@code tags} to this object's {@code tags}. * A defensive copy of {@code tags} is used internally. @@ -224,6 +269,8 @@ public boolean equals(Object other) { && Objects.equals(phone, otherEditPersonDescriptor.phone) && Objects.equals(email, otherEditPersonDescriptor.email) && Objects.equals(address, otherEditPersonDescriptor.address) + && Objects.equals(level, otherEditPersonDescriptor.level) + && Objects.equals(subjects, otherEditPersonDescriptor.subjects) && Objects.equals(tags, otherEditPersonDescriptor.tags); } @@ -234,6 +281,8 @@ public String toString() { .add("phone", phone) .add("email", email) .add("address", address) + .add("level", level) + .add("subjects", subjects) .add("tags", tags) .toString(); } diff --git a/src/main/java/tutorpro/logic/parser/EditCommandParser.java b/src/main/java/tutorpro/logic/parser/EditCommandParser.java index 92d6080d471..8b1c958dae4 100644 --- a/src/main/java/tutorpro/logic/parser/EditCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/EditCommandParser.java @@ -4,8 +4,10 @@ import static tutorpro.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; import static tutorpro.logic.parser.CliSyntax.PREFIX_ADDRESS; import static tutorpro.logic.parser.CliSyntax.PREFIX_EMAIL; +import static tutorpro.logic.parser.CliSyntax.PREFIX_LEVEL; import static tutorpro.logic.parser.CliSyntax.PREFIX_NAME; import static tutorpro.logic.parser.CliSyntax.PREFIX_PHONE; +import static tutorpro.logic.parser.CliSyntax.PREFIX_SUBJECT; import static tutorpro.logic.parser.CliSyntax.PREFIX_TAG; import java.util.Collection; @@ -16,6 +18,7 @@ import tutorpro.commons.core.index.Index; import tutorpro.logic.commands.EditCommand; import tutorpro.logic.parser.exceptions.ParseException; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -31,7 +34,8 @@ public class EditCommandParser implements Parser { public EditCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, PREFIX_TAG); + ArgumentTokenizer.tokenize(args, PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS, + PREFIX_LEVEL, PREFIX_SUBJECT, PREFIX_TAG); Index index; @@ -41,7 +45,8 @@ public EditCommand parse(String args) throws ParseException { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, EditCommand.MESSAGE_USAGE), pe); } - argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, PREFIX_ADDRESS); + argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NAME, PREFIX_PHONE, PREFIX_EMAIL, + PREFIX_ADDRESS, PREFIX_LEVEL); EditCommand.EditPersonDescriptor editPersonDescriptor = new EditCommand.EditPersonDescriptor(); @@ -57,6 +62,10 @@ public EditCommand parse(String args) throws ParseException { if (argMultimap.getValue(PREFIX_ADDRESS).isPresent()) { editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); } + if (argMultimap.getValue(PREFIX_LEVEL).isPresent()) { + editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_LEVEL).get())); + } + parseSubjectsForEdit(argMultimap.getAllValues(PREFIX_SUBJECT)).ifPresent(editPersonDescriptor::setSubjects); parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPersonDescriptor::setTags); if (!editPersonDescriptor.isAnyFieldEdited()) { @@ -66,6 +75,23 @@ public EditCommand parse(String args) throws ParseException { return new EditCommand(index, editPersonDescriptor); } + /** + * Parses {@code Collection subjects} into a {@code Set} if {@code subjects} is non-empty. + * If {@code subjects} contain only one element which is an empty string, it will be parsed into a + * {@code Set} containing zero subjects. + */ + private Optional> parseSubjectsForEdit(Collection subjects) throws ParseException { + assert subjects != null; + + if (subjects.isEmpty()) { + return Optional.empty(); + } + Collection subjectSet = subjects.size() == 1 && subjects.contains("") + ? Collections.emptySet() + : subjects; + return Optional.of(ParserUtil.parseSubjects(subjectSet)); + } + /** * Parses {@code Collection tags} into a {@code Set} if {@code tags} is non-empty. * If {@code tags} contain only one element which is an empty string, it will be parsed into a diff --git a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java index adc3785e125..36eea728c84 100644 --- a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java +++ b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java @@ -34,6 +34,7 @@ public class CommandTestUtil { public static final String VALID_TAG_HUSBAND = "husband"; public static final String VALID_TAG_FRIEND = "friend"; public static final String VALID_SUBJECT_MATH = "Math"; + public static final String VALID_SUBJECT_SCIENCE = "Science"; public static final String VALID_SUBJECT_ENGLISH = "English"; public static final String VALID_LEVEL_P6 = "P6"; public static final String VALID_LEVEL_UNI = "UNI"; @@ -71,9 +72,11 @@ public class CommandTestUtil { static { DESC_AMY = new EditPersonDescriptorBuilder().withName(VALID_NAME_AMY) .withPhone(VALID_PHONE_AMY).withEmail(VALID_EMAIL_AMY).withAddress(VALID_ADDRESS_AMY) + .withLevel(VALID_LEVEL_P6).withSubjects(VALID_SUBJECT_SCIENCE) .withTags(VALID_TAG_FRIEND).build(); DESC_BOB = new EditPersonDescriptorBuilder().withName(VALID_NAME_BOB) .withPhone(VALID_PHONE_BOB).withEmail(VALID_EMAIL_BOB).withAddress(VALID_ADDRESS_BOB) + .withLevel(VALID_LEVEL_UNI).withSubjects(VALID_SUBJECT_MATH) .withTags(VALID_TAG_HUSBAND, VALID_TAG_FRIEND).build(); } diff --git a/src/test/java/tutorpro/logic/commands/EditCommandTest.java b/src/test/java/tutorpro/logic/commands/EditCommandTest.java index 33d9db6ebe9..e07a2dfae53 100644 --- a/src/test/java/tutorpro/logic/commands/EditCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/EditCommandTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; //import static tutorpro.logic.commands.CommandTestUtil.assertCommandSuccess; import org.junit.jupiter.api.Test; @@ -14,28 +15,31 @@ import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.testutil.EditPersonDescriptorBuilder; import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.StudentBuilder; import tutorpro.testutil.TypicalIndexes; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; /** * Contains integration tests (interaction with the Model) and unit tests for EditCommand. */ public class EditCommandTest { - private Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); @Test public void execute_allFieldsSpecifiedUnfilteredList_success() { - Person editedPerson = new PersonBuilder().build(); - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedPerson).build(); + Student editedStudent = new StudentBuilder().build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(editedStudent).build(); EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, + Messages.format(editedStudent)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - expectedModel.setPerson(model.getFilteredPersonList().get(0), editedPerson); + expectedModel.setPerson(model.getFilteredPersonList().get(0), editedStudent); CommandTestUtil.assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -44,20 +48,25 @@ public void execute_allFieldsSpecifiedUnfilteredList_success() { public void execute_someFieldsSpecifiedUnfilteredList_success() { Index indexLastPerson = Index.fromOneBased(model.getFilteredPersonList().size()); Person lastPerson = model.getFilteredPersonList().get(indexLastPerson.getZeroBased()); - - PersonBuilder personInList = new PersonBuilder(lastPerson); - Person editedPerson = personInList.withName(CommandTestUtil.VALID_NAME_BOB) - .withPhone(CommandTestUtil.VALID_PHONE_BOB).withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); + if (!(lastPerson instanceof Student)) { + fail(); + } + Student lastStudent = (Student) lastPerson; + StudentBuilder studentInList = new StudentBuilder(lastStudent); + Student editedStudent = studentInList.withName(lastStudent.getName().toString()) + .withPhone(CommandTestUtil.VALID_PHONE_BOB).withLevel(CommandTestUtil.VALID_LEVEL_UNI) + .withSubjects(CommandTestUtil.VALID_SUBJECT_SCIENCE).build(); EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder() - .withName(CommandTestUtil.VALID_NAME_BOB).withPhone(CommandTestUtil.VALID_PHONE_BOB) - .withTags(CommandTestUtil.VALID_TAG_HUSBAND).build(); + .withName(lastStudent.getName().toString()).withPhone(CommandTestUtil.VALID_PHONE_BOB) + .withLevel(CommandTestUtil.VALID_LEVEL_UNI).withSubjects(CommandTestUtil.VALID_SUBJECT_SCIENCE) + .build(); EditCommand editCommand = new EditCommand(indexLastPerson, descriptor); - String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson)); + String expectedMessage = String.format(EditCommand.MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedStudent)); Model expectedModel = new ModelManager(new AddressBook(model.getAddressBook()), new UserPrefs()); - expectedModel.setPerson(lastPerson, editedPerson); + expectedModel.setPerson(lastStudent, editedStudent); CommandTestUtil.assertCommandSuccess(editCommand, model, expectedMessage, expectedModel); } @@ -96,7 +105,11 @@ public void execute_filteredList_success() { @Test public void execute_duplicatePersonUnfilteredList_failure() { Person firstPerson = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstPerson).build(); + if (!(firstPerson instanceof Student)) { + fail(); + } + Student firstStudent = (Student) firstPerson; + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(firstStudent).build(); EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_SECOND_PERSON, descriptor); CommandTestUtil.assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); @@ -109,8 +122,12 @@ public void execute_duplicatePersonFilteredList_failure() { // edit person in filtered list into a duplicate in address book Person personInList = model.getAddressBook().getPersonList() .get(TypicalIndexes.INDEX_SECOND_PERSON.getZeroBased()); + if (!(personInList instanceof Student)) { + fail(); + } + Student studentInList = (Student) personInList; EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, - new EditPersonDescriptorBuilder(personInList).build()); + new EditPersonDescriptorBuilder(studentInList).build()); CommandTestUtil.assertCommandFailure(editCommand, model, EditCommand.MESSAGE_DUPLICATE_PERSON); } diff --git a/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java b/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java index 63046db005c..9451ab72d79 100644 --- a/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java +++ b/src/test/java/tutorpro/logic/commands/EditPersonDescriptorTest.java @@ -63,7 +63,9 @@ public void toStringMethod() { + editPersonDescriptor.getName().orElse(null) + ", phone=" + editPersonDescriptor.getPhone().orElse(null) + ", email=" + editPersonDescriptor.getEmail().orElse(null) + ", address=" - + editPersonDescriptor.getAddress().orElse(null) + ", tags=" + + editPersonDescriptor.getAddress().orElse(null) + ", level=" + + editPersonDescriptor.getLevel().orElse(null) + ", subjects=" + + editPersonDescriptor.getSubjects().orElse(null) + ", tags=" + editPersonDescriptor.getTags().orElse(null) + "}"; assertEquals(expected, editPersonDescriptor.toString()); } diff --git a/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java index 08902813f52..5687d736179 100644 --- a/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java +++ b/src/test/java/tutorpro/logic/parser/AddressBookParserTest.java @@ -14,18 +14,16 @@ import tutorpro.logic.commands.AddCommand; import tutorpro.logic.commands.ClearCommand; import tutorpro.logic.commands.DeleteCommand; -import tutorpro.logic.commands.EditCommand; +//import tutorpro.logic.commands.EditCommand; import tutorpro.logic.commands.ExitCommand; import tutorpro.logic.commands.FindCommand; import tutorpro.logic.commands.HelpCommand; import tutorpro.logic.commands.ListCommand; import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.person.NameContainsKeywordsPredicate; -import tutorpro.model.person.Person; import tutorpro.model.person.student.Student; import tutorpro.testutil.Assert; -import tutorpro.testutil.EditPersonDescriptorBuilder; -import tutorpro.testutil.PersonBuilder; +//import tutorpro.testutil.EditPersonDescriptorBuilder; import tutorpro.testutil.PersonUtil; import tutorpro.testutil.StudentBuilder; import tutorpro.testutil.TypicalIndexes; @@ -54,15 +52,15 @@ public void parseCommand_delete() throws Exception { assertEquals(new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON), command); } - @Test + /*@Test public void parseCommand_edit() throws Exception { - Person person = new PersonBuilder().build(); - EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(person).build(); + Student student = new StudentBuilder().build(); + EditCommand.EditPersonDescriptor descriptor = new EditPersonDescriptorBuilder(student).build(); EditCommand command = (EditCommand) parser.parseCommand(EditCommand.COMMAND_WORD + " " + TypicalIndexes.INDEX_FIRST_PERSON.getOneBased() + " " + PersonUtil.getEditPersonDescriptorDetails(descriptor)); assertEquals(new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, descriptor), command); - } + }*/ @Test public void parseCommand_exit() throws Exception { diff --git a/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java b/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java index 51531f28e25..dc8453ac6f3 100644 --- a/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java +++ b/src/test/java/tutorpro/testutil/EditPersonDescriptorBuilder.java @@ -8,8 +8,10 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; -import tutorpro.model.person.Person; import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -30,12 +32,14 @@ public EditPersonDescriptorBuilder(EditCommand.EditPersonDescriptor descriptor) /** * Returns an {@code EditPersonDescriptor} with fields containing {@code person}'s details */ - public EditPersonDescriptorBuilder(Person person) { + public EditPersonDescriptorBuilder(Student person) { descriptor = new EditCommand.EditPersonDescriptor(); descriptor.setName(person.getName()); descriptor.setPhone(person.getPhone()); descriptor.setEmail(person.getEmail()); descriptor.setAddress(person.getAddress()); + descriptor.setLevel(person.getLevel()); + descriptor.setSubjects(person.getSubjects()); descriptor.setTags(person.getTags()); } @@ -71,6 +75,24 @@ public EditPersonDescriptorBuilder withAddress(String address) { return this; } + /** + * Sets the {@code Level} of the {@code EditPersonDescriptor} that we are building. + */ + public EditPersonDescriptorBuilder withLevel(String level) { + descriptor.setLevel(new Level(level)); + return this; + } + + /** + * Parses the {@code subjects} into a {@code Set} and set it to the {@code EditPersonDescriptor} + * that we are building. + */ + public EditPersonDescriptorBuilder withSubjects(String... subjects) { + Set subjectSet = Stream.of(subjects).map(Subject::new).collect(Collectors.toSet()); + descriptor.setSubjects(subjectSet); + return this; + } + /** * Parses the {@code tags} into a {@code Set} and set it to the {@code EditPersonDescriptor} * that we are building. diff --git a/src/test/java/tutorpro/testutil/PersonUtil.java b/src/test/java/tutorpro/testutil/PersonUtil.java index a7eba6b9b47..eafc4b30a2c 100644 --- a/src/test/java/tutorpro/testutil/PersonUtil.java +++ b/src/test/java/tutorpro/testutil/PersonUtil.java @@ -6,6 +6,7 @@ import tutorpro.logic.commands.EditCommand; import tutorpro.logic.parser.CliSyntax; import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; /** @@ -49,6 +50,15 @@ public static String getEditPersonDescriptorDetails(EditCommand.EditPersonDescri descriptor.getEmail().ifPresent(email -> sb.append(CliSyntax.PREFIX_EMAIL).append(email.value).append(" ")); descriptor.getAddress().ifPresent(address -> sb.append(CliSyntax.PREFIX_ADDRESS) .append(address.value).append(" ")); + descriptor.getLevel().ifPresent(level -> sb.append(CliSyntax.PREFIX_LEVEL).append(level).append(" ")); + if (descriptor.getSubjects().isPresent()) { + Set subjects = descriptor.getSubjects().get(); + if (subjects.isEmpty()) { + sb.append(CliSyntax.PREFIX_SUBJECT); + } else { + subjects.forEach(s -> sb.append(CliSyntax.PREFIX_SUBJECT).append(s.toString()).append(" ")); + } + } if (descriptor.getTags().isPresent()) { Set tags = descriptor.getTags().get(); if (tags.isEmpty()) { From cbb2a1d4f13e9e1f203aa93713a5047500d511e7 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:27:57 +0800 Subject: [PATCH 074/189] TypicalParents.java: Add Parin and Zhengwei --- .../java/tutorpro/testutil/TypicalParents.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test/java/tutorpro/testutil/TypicalParents.java b/src/test/java/tutorpro/testutil/TypicalParents.java index 4de5f6d0faf..9ed6c31d0d2 100644 --- a/src/test/java/tutorpro/testutil/TypicalParents.java +++ b/src/test/java/tutorpro/testutil/TypicalParents.java @@ -32,6 +32,20 @@ public class TypicalParents { .withStudents(SampleDataUtil.getSampleStudents()) .build(); + public static final Parent ZHENGWEI = new ParentBuilder().withName("Zheng Wei") + .withAddress("123, Jurong West Ave 6, #08-111").withEmail("zw@example.com") + .withPhone("94351253") + .withTags("friends") + .withStudents(SampleDataUtil.getSampleStudents()) + .build(); + + public static final Parent PARIN = new ParentBuilder().withName("Parin") + .withAddress("123, Jurong West Ave 6, #08-111").withEmail("p@example.com") + .withPhone("94351253") + .withTags("friends") + .withStudents(SampleDataUtil.getSampleStudents()) + .build(); + private TypicalParents() {} // prevents instantiation /** From 24228909bf8b5db52e14fcf5d21503082090a1de Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:52:32 +0800 Subject: [PATCH 075/189] Rename TarinPairor.png to tarinpairor.png --- docs/images/{TarinPairor.png => tarinpairor.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/images/{TarinPairor.png => tarinpairor.png} (100%) diff --git a/docs/images/TarinPairor.png b/docs/images/tarinpairor.png similarity index 100% rename from docs/images/TarinPairor.png rename to docs/images/tarinpairor.png From 2c4e39db5041a581346113b319206fbfa136db0c Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 23 Mar 2024 04:34:53 +0800 Subject: [PATCH 076/189] Update saving and loading function --- src/main/java/tutorpro/logic/Logic.java | 4 +- .../java/tutorpro/logic/LogicManager.java | 4 +- .../logic/commands/DeleteCommand.java | 6 +- .../tutorpro/logic/commands/EditCommand.java | 11 +- src/main/java/tutorpro/model/AddressBook.java | 19 +-- src/main/java/tutorpro/model/Model.java | 16 +-- .../java/tutorpro/model/ModelManager.java | 19 ++- .../tutorpro/model/ReadOnlyAddressBook.java | 12 +- .../person/NameContainsKeywordsPredicate.java | 5 +- .../model/person/UniquePersonList.java | 29 ++--- .../model/person/student/Student.java | 4 +- .../tutorpro/model/util/SampleDataUtil.java | 49 ++++---- .../tutorpro/storage/JsonAdaptedPerson.java | 11 +- .../tutorpro/storage/JsonAdaptedStudent.java | 111 ++++++++++++++++++ .../tutorpro/storage/JsonAdaptedSubject.java | 49 ++++++++ .../java/tutorpro/storage/JsonAdaptedTag.java | 1 - .../storage/JsonSerializableAddressBook.java | 12 +- .../java/tutorpro/ui/PersonListPanel.java | 10 +- .../duplicatePersonAddressBook.json | 4 + .../typicalPersonsAddressBook.json | 28 +++-- .../java/tutorpro/logic/LogicManagerTest.java | 4 +- .../commands/AddCommandIntegrationTest.java | 2 +- .../logic/commands/AddCommandTest.java | 25 ++-- .../logic/commands/ClearCommandTest.java | 6 +- .../logic/commands/DeleteCommandTest.java | 12 +- .../logic/commands/EditCommandTest.java | 10 +- .../logic/commands/FindCommandTest.java | 8 +- .../logic/commands/ListCommandTest.java | 4 +- .../java/tutorpro/model/AddressBookTest.java | 36 +++--- .../java/tutorpro/model/ModelManagerTest.java | 12 +- .../NameContainsKeywordsPredicateTest.java | 16 +-- .../model/person/UniquePersonListTest.java | 69 +++++------ .../storage/JsonAddressBookStorageTest.java | 10 +- .../JsonSerializableAddressBookTest.java | 6 +- .../tutorpro/storage/StorageManagerTest.java | 4 +- .../tutorpro/testutil/AddressBookBuilder.java | 4 +- .../tutorpro/testutil/TypicalPersons.java | 31 ++--- .../tutorpro/testutil/TypicalStudents.java | 5 +- 38 files changed, 424 insertions(+), 244 deletions(-) create mode 100644 src/main/java/tutorpro/storage/JsonAdaptedStudent.java create mode 100644 src/main/java/tutorpro/storage/JsonAdaptedSubject.java diff --git a/src/main/java/tutorpro/logic/Logic.java b/src/main/java/tutorpro/logic/Logic.java index cbe46395fad..1a749fb5dd6 100644 --- a/src/main/java/tutorpro/logic/Logic.java +++ b/src/main/java/tutorpro/logic/Logic.java @@ -9,7 +9,7 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * API of the Logic component @@ -32,7 +32,7 @@ public interface Logic { ReadOnlyAddressBook getAddressBook(); /** Returns an unmodifiable view of the filtered list of persons */ - ObservableList getFilteredPersonList(); + ObservableList getFilteredPersonList(); /** * Returns the user prefs' address book file path. diff --git a/src/main/java/tutorpro/logic/LogicManager.java b/src/main/java/tutorpro/logic/LogicManager.java index 121d322cc36..3a8a749a23d 100644 --- a/src/main/java/tutorpro/logic/LogicManager.java +++ b/src/main/java/tutorpro/logic/LogicManager.java @@ -15,7 +15,7 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.storage.Storage; /** @@ -67,7 +67,7 @@ public ReadOnlyAddressBook getAddressBook() { } @Override - public ObservableList getFilteredPersonList() { + public ObservableList getFilteredPersonList() { return model.getFilteredPersonList(); } diff --git a/src/main/java/tutorpro/logic/commands/DeleteCommand.java b/src/main/java/tutorpro/logic/commands/DeleteCommand.java index f371f811980..d451560cd74 100644 --- a/src/main/java/tutorpro/logic/commands/DeleteCommand.java +++ b/src/main/java/tutorpro/logic/commands/DeleteCommand.java @@ -9,7 +9,7 @@ import tutorpro.logic.Messages; import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.model.Model; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * Deletes a person identified using it's displayed index from the address book. @@ -34,13 +34,13 @@ public DeleteCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredPersonList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); + Student personToDelete = lastShownList.get(targetIndex.getZeroBased()); model.deletePerson(personToDelete); return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, Messages.format(personToDelete))); } diff --git a/src/main/java/tutorpro/logic/commands/EditCommand.java b/src/main/java/tutorpro/logic/commands/EditCommand.java index 30a2943ab2a..302bf6b6d8d 100644 --- a/src/main/java/tutorpro/logic/commands/EditCommand.java +++ b/src/main/java/tutorpro/logic/commands/EditCommand.java @@ -25,7 +25,6 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; -import tutorpro.model.person.Person; import tutorpro.model.person.Phone; import tutorpro.model.person.student.Level; import tutorpro.model.person.student.Student; @@ -76,20 +75,18 @@ public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { @Override public CommandResult execute(Model model) throws CommandException, ClassCastException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - Person personToEdit = lastShownList.get(index.getZeroBased()); - Student studentToEdit; + Student personToEdit = lastShownList.get(index.getZeroBased()); if (!(personToEdit instanceof Student)) { throw new ClassCastException("class tutorpro.model.person.Person cannot be cast to class " + "tutorpro.model.person.student.Student"); } - studentToEdit = (Student) personToEdit; - Student editedPerson = createEditedPerson(studentToEdit, editPersonDescriptor); + Student editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); if (!personToEdit.isSamePerson(editedPerson) && model.hasPerson(editedPerson)) { throw new CommandException(MESSAGE_DUPLICATE_PERSON); @@ -176,7 +173,7 @@ public EditPersonDescriptor(EditPersonDescriptor toCopy) { * Returns true if at least one field is edited. */ public boolean isAnyFieldEdited() { - return CollectionUtil.isAnyNonNull(name, phone, email, address, tags); + return CollectionUtil.isAnyNonNull(name, phone, email, address, level, subjects, tags); } public void setName(Name name) { diff --git a/src/main/java/tutorpro/model/AddressBook.java b/src/main/java/tutorpro/model/AddressBook.java index ac6bec5b7d0..2701d9fa729 100644 --- a/src/main/java/tutorpro/model/AddressBook.java +++ b/src/main/java/tutorpro/model/AddressBook.java @@ -6,8 +6,8 @@ import javafx.collections.ObservableList; import tutorpro.commons.util.ToStringBuilder; -import tutorpro.model.person.Person; import tutorpro.model.person.UniquePersonList; +import tutorpro.model.person.student.Student; /** * Wraps all data at the address-book level @@ -44,7 +44,7 @@ public AddressBook(ReadOnlyAddressBook toBeCopied) { * Replaces the contents of the person list with {@code persons}. * {@code persons} must not contain duplicate persons. */ - public void setPersons(List persons) { + public void setPersons(List persons) { this.persons.setPersons(persons); } @@ -54,7 +54,7 @@ public void setPersons(List persons) { public void resetData(ReadOnlyAddressBook newData) { requireNonNull(newData); - setPersons(newData.getPersonList()); + setPersons(newData.getStudentList()); } //// person-level operations @@ -62,7 +62,7 @@ public void resetData(ReadOnlyAddressBook newData) { /** * Returns true if a person with the same identity as {@code person} exists in the address book. */ - public boolean hasPerson(Person person) { + public boolean hasPerson(Student person) { requireNonNull(person); return persons.contains(person); } @@ -71,16 +71,17 @@ public boolean hasPerson(Person person) { * Adds a person to the address book. * The person must not already exist in the address book. */ - public void addPerson(Person p) { + public void addPerson(Student p) { persons.add(p); } /** * Replaces the given person {@code target} in the list with {@code editedPerson}. * {@code target} must exist in the address book. - * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. + * The person identity of {@code editedPerson} must not be the same as another + * existing person in the address book. */ - public void setPerson(Person target, Person editedPerson) { + public void setPerson(Student target, Student editedPerson) { requireNonNull(editedPerson); persons.setPerson(target, editedPerson); @@ -90,7 +91,7 @@ public void setPerson(Person target, Person editedPerson) { * Removes {@code key} from this {@code AddressBook}. * {@code key} must exist in the address book. */ - public void removePerson(Person key) { + public void removePerson(Student key) { persons.remove(key); } @@ -104,7 +105,7 @@ public String toString() { } @Override - public ObservableList getPersonList() { + public ObservableList getStudentList() { return persons.asUnmodifiableObservableList(); } diff --git a/src/main/java/tutorpro/model/Model.java b/src/main/java/tutorpro/model/Model.java index 64e015318c5..28ca2b4f23e 100644 --- a/src/main/java/tutorpro/model/Model.java +++ b/src/main/java/tutorpro/model/Model.java @@ -5,14 +5,14 @@ import javafx.collections.ObservableList; import tutorpro.commons.core.GuiSettings; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * The API of the Model component. */ public interface Model { /** {@code Predicate} that always evaluate to true */ - Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; + Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; /** * Replaces user prefs data with the data in {@code userPrefs}. @@ -55,33 +55,33 @@ public interface Model { /** * Returns true if a person with the same identity as {@code person} exists in the address book. */ - boolean hasPerson(Person person); + boolean hasPerson(Student person); /** * Deletes the given person. * The person must exist in the address book. */ - void deletePerson(Person target); + void deletePerson(Student target); /** * Adds the given person. * {@code person} must not already exist in the address book. */ - void addPerson(Person person); + void addPerson(Student person); /** * Replaces the given person {@code target} with {@code editedPerson}. * {@code target} must exist in the address book. * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. */ - void setPerson(Person target, Person editedPerson); + void setPerson(Student target, Student editedPerson); /** Returns an unmodifiable view of the filtered person list */ - ObservableList getFilteredPersonList(); + ObservableList getFilteredPersonList(); /** * Updates the filter of the filtered person list to filter by the given {@code predicate}. * @throws NullPointerException if {@code predicate} is null. */ - void updateFilteredPersonList(Predicate predicate); + void updateFilteredPersonList(Predicate predicate); } diff --git a/src/main/java/tutorpro/model/ModelManager.java b/src/main/java/tutorpro/model/ModelManager.java index 1319b2a36e0..76130487c61 100644 --- a/src/main/java/tutorpro/model/ModelManager.java +++ b/src/main/java/tutorpro/model/ModelManager.java @@ -1,7 +1,6 @@ package tutorpro.model; import static java.util.Objects.requireNonNull; -//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.nio.file.Path; import java.util.function.Predicate; @@ -12,7 +11,7 @@ import tutorpro.commons.core.GuiSettings; import tutorpro.commons.core.LogsCenter; import tutorpro.commons.util.CollectionUtil; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * Represents the in-memory model of the address book data. @@ -22,7 +21,7 @@ public class ModelManager implements Model { private final AddressBook addressBook; private final UserPrefs userPrefs; - private final FilteredList filteredPersons; + private final FilteredList filteredPersons; /** * Initializes a ModelManager with the given addressBook and userPrefs. @@ -34,7 +33,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs this.addressBook = new AddressBook(addressBook); this.userPrefs = new UserPrefs(userPrefs); - filteredPersons = new FilteredList<>(this.addressBook.getPersonList()); + filteredPersons = new FilteredList<>(this.addressBook.getStudentList()); } public ModelManager() { @@ -89,24 +88,24 @@ public ReadOnlyAddressBook getAddressBook() { } @Override - public boolean hasPerson(Person person) { + public boolean hasPerson(Student person) { requireNonNull(person); return addressBook.hasPerson(person); } @Override - public void deletePerson(Person target) { + public void deletePerson(Student target) { addressBook.removePerson(target); } @Override - public void addPerson(Person person) { + public void addPerson(Student person) { addressBook.addPerson(person); updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); } @Override - public void setPerson(Person target, Person editedPerson) { + public void setPerson(Student target, Student editedPerson) { CollectionUtil.requireAllNonNull(target, editedPerson); addressBook.setPerson(target, editedPerson); @@ -119,12 +118,12 @@ public void setPerson(Person target, Person editedPerson) { * {@code versionedAddressBook} */ @Override - public ObservableList getFilteredPersonList() { + public ObservableList getFilteredPersonList() { return filteredPersons; } @Override - public void updateFilteredPersonList(Predicate predicate) { + public void updateFilteredPersonList(Predicate predicate) { requireNonNull(predicate); filteredPersons.setPredicate(predicate); } diff --git a/src/main/java/tutorpro/model/ReadOnlyAddressBook.java b/src/main/java/tutorpro/model/ReadOnlyAddressBook.java index 6c8b0dfa018..49c340d046d 100644 --- a/src/main/java/tutorpro/model/ReadOnlyAddressBook.java +++ b/src/main/java/tutorpro/model/ReadOnlyAddressBook.java @@ -1,17 +1,23 @@ package tutorpro.model; import javafx.collections.ObservableList; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * Unmodifiable view of an address book */ public interface ReadOnlyAddressBook { + ///** + // * Returns an unmodifiable view of the persons list. + // * This list will not contain any duplicate persons. + // */ + //ObservableList getPersonList(); + /** - * Returns an unmodifiable view of the persons list. + * Returns an unmodifiable view of the student list. * This list will not contain any duplicate persons. */ - ObservableList getPersonList(); + ObservableList getStudentList(); } diff --git a/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java index ca82f3cbc43..ce1dd23b21b 100644 --- a/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java @@ -5,11 +5,12 @@ import tutorpro.commons.util.StringUtil; import tutorpro.commons.util.ToStringBuilder; +import tutorpro.model.person.student.Student; /** * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. */ -public class NameContainsKeywordsPredicate implements Predicate { +public class NameContainsKeywordsPredicate implements Predicate { private final List keywords; public NameContainsKeywordsPredicate(List keywords) { @@ -17,7 +18,7 @@ public NameContainsKeywordsPredicate(List keywords) { } @Override - public boolean test(Person person) { + public boolean test(Student person) { return keywords.stream() .anyMatch(keyword -> StringUtil.containsSubstringIgnoreCase(person.getName().fullName, keyword)); } diff --git a/src/main/java/tutorpro/model/person/UniquePersonList.java b/src/main/java/tutorpro/model/person/UniquePersonList.java index d0eb4006143..fa867a10d33 100644 --- a/src/main/java/tutorpro/model/person/UniquePersonList.java +++ b/src/main/java/tutorpro/model/person/UniquePersonList.java @@ -11,28 +11,29 @@ import tutorpro.commons.util.CollectionUtil; import tutorpro.model.person.exceptions.DuplicatePersonException; import tutorpro.model.person.exceptions.PersonNotFoundException; +import tutorpro.model.person.student.Student; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. * A person is considered unique by comparing using {@code Person#isSamePerson(Person)}. As such, adding and updating of - * persons uses Person#isSamePerson(Person) for equality so as to ensure that the person being added or updated is - * unique in terms of identity in the UniquePersonList. However, the removal of a person uses Person#equals(Object) so - * as to ensure that the person with exactly the same fields will be removed. + * persons uses Person#isSamePerson(Person) for equality to ensure that the person being added or updated is + * unique in terms of identity in the UniquePersonList. However, the removal of a person uses Person#equals(Object) + * to ensure that the person with exactly the same fields will be removed. * * Supports a minimal set of list operations. * * @see Person#isSamePerson(Person) */ -public class UniquePersonList implements Iterable { +public class UniquePersonList implements Iterable { - private final ObservableList internalList = FXCollections.observableArrayList(); - private final ObservableList internalUnmodifiableList = + private final ObservableList internalList = FXCollections.observableArrayList(); + private final ObservableList internalUnmodifiableList = FXCollections.unmodifiableObservableList(internalList); /** * Returns true if the list contains an equivalent person as the given argument. */ - public boolean contains(Person toCheck) { + public boolean contains(Student toCheck) { requireNonNull(toCheck); return internalList.stream().anyMatch(toCheck::isSamePerson); } @@ -41,7 +42,7 @@ public boolean contains(Person toCheck) { * Adds a person to the list. * The person must not already exist in the list. */ - public void add(Person toAdd) { + public void add(Student toAdd) { requireNonNull(toAdd); if (contains(toAdd)) { throw new DuplicatePersonException(); @@ -54,7 +55,7 @@ public void add(Person toAdd) { * {@code target} must exist in the list. * The person identity of {@code editedPerson} must not be the same as another existing person in the list. */ - public void setPerson(Person target, Person editedPerson) { + public void setPerson(Student target, Student editedPerson) { CollectionUtil.requireAllNonNull(target, editedPerson); int index = internalList.indexOf(target); @@ -73,7 +74,7 @@ public void setPerson(Person target, Person editedPerson) { * Removes the equivalent person from the list. * The person must exist in the list. */ - public void remove(Person toRemove) { + public void remove(Student toRemove) { requireNonNull(toRemove); if (!internalList.remove(toRemove)) { throw new PersonNotFoundException(); @@ -89,7 +90,7 @@ public void setPersons(UniquePersonList replacement) { * Replaces the contents of this list with {@code persons}. * {@code persons} must not contain duplicate persons. */ - public void setPersons(List persons) { + public void setPersons(List persons) { CollectionUtil.requireAllNonNull(persons); if (!personsAreUnique(persons)) { throw new DuplicatePersonException(); @@ -101,12 +102,12 @@ public void setPersons(List persons) { /** * Returns the backing list as an unmodifiable {@code ObservableList}. */ - public ObservableList asUnmodifiableObservableList() { + public ObservableList asUnmodifiableObservableList() { return internalUnmodifiableList; } @Override - public Iterator iterator() { + public Iterator iterator() { return internalList.iterator(); } @@ -138,7 +139,7 @@ public String toString() { /** * Returns true if {@code persons} contains only unique persons. */ - private boolean personsAreUnique(List persons) { + private boolean personsAreUnique(List persons) { for (int i = 0; i < persons.size() - 1; i++) { for (int j = i + 1; j < persons.size(); j++) { if (persons.get(i).isSamePerson(persons.get(j))) { diff --git a/src/main/java/tutorpro/model/person/student/Student.java b/src/main/java/tutorpro/model/person/student/Student.java index a22e9b6d4a5..84daafde151 100644 --- a/src/main/java/tutorpro/model/person/student/Student.java +++ b/src/main/java/tutorpro/model/person/student/Student.java @@ -77,8 +77,8 @@ public String toString() { .add("email", super.getEmail()) .add("address", super.getAddress()) .add("tags", super.getTags()) - .add("level", level) - .add("subjects", subjects) + .add("level", this.level) + .add("subjects", this.subjects) .toString(); } diff --git a/src/main/java/tutorpro/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java index 02e0be1b972..1bb96ed841d 100644 --- a/src/main/java/tutorpro/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -1,6 +1,7 @@ package tutorpro.model.util; import java.util.Arrays; +import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; @@ -9,7 +10,6 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; -import tutorpro.model.person.Person; import tutorpro.model.person.Phone; import tutorpro.model.person.student.Level; import tutorpro.model.person.student.Student; @@ -20,26 +20,31 @@ * Contains utility methods for populating {@code AddressBook} with sample data. */ public class SampleDataUtil { - public static Person[] getSamplePersons() { - return new Person[] { - new Person(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), - new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet("friends")), - new Person(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), - new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet("colleagues", "friends")), - new Person(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), - new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet("neighbours")), - new Person(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet("family")), - new Person(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), - new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet("classmates")), - new Person(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), - new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet("colleagues")) + private static final Level[] LEVELS = {new Level("P1"), new Level("S4"), new Level("J1"), + new Level("UNI")}; + private static final Subject subject = new Subject("Math"); + private static final Set SUBJECTS = new HashSet<>(); + public static Student[] getSamplePersons() { + SUBJECTS.add(subject); + return new Student[] { + new Student(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), + new Address("Blk 30 Geylang Street 29, #06-40"), getTagSet("friends"), + LEVELS[0], SUBJECTS), + new Student(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), + new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), getTagSet("colleagues", "friends"), + LEVELS[1], SUBJECTS), + new Student(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), getTagSet("neighbours"), + LEVELS[2], SUBJECTS), + new Student(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), + new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), getTagSet("family"), + LEVELS[3], SUBJECTS), + new Student(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), + new Address("Blk 47 Tampines Street 20, #17-35"), getTagSet("classmates"), + LEVELS[0], SUBJECTS), + new Student(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), + new Address("Blk 45 Aljunied Street 85, #11-31"), getTagSet("colleagues"), + LEVELS[1], SUBJECTS) }; } @@ -68,7 +73,7 @@ public static Student[] getSampleStudents() { public static ReadOnlyAddressBook getSampleAddressBook() { AddressBook sampleAb = new AddressBook(); - for (Person samplePerson : getSampleStudents()) { + for (Student samplePerson : getSampleStudents()) { sampleAb.addPerson(samplePerson); } return sampleAb; diff --git a/src/main/java/tutorpro/storage/JsonAdaptedPerson.java b/src/main/java/tutorpro/storage/JsonAdaptedPerson.java index 52ac7f34c5d..0f10f51be13 100644 --- a/src/main/java/tutorpro/storage/JsonAdaptedPerson.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedPerson.java @@ -24,11 +24,11 @@ class JsonAdaptedPerson { public static final String MISSING_FIELD_MESSAGE_FORMAT = "Person's %s field is missing!"; - private final String name; - private final String phone; - private final String email; - private final String address; - private final List tags = new ArrayList<>(); + protected final String name; + protected final String phone; + protected final String email; + protected final String address; + protected final List tags = new ArrayList<>(); /** * Constructs a {@code JsonAdaptedPerson} with the given person details. @@ -105,5 +105,4 @@ public Person toModelType() throws IllegalValueException { final Set modelTags = new HashSet<>(personTags); return new Person(modelName, modelPhone, modelEmail, modelAddress, modelTags); } - } diff --git a/src/main/java/tutorpro/storage/JsonAdaptedStudent.java b/src/main/java/tutorpro/storage/JsonAdaptedStudent.java new file mode 100644 index 00000000000..290b1750bdc --- /dev/null +++ b/src/main/java/tutorpro/storage/JsonAdaptedStudent.java @@ -0,0 +1,111 @@ +package tutorpro.storage; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Student; +import tutorpro.model.person.student.Subject; +import tutorpro.model.tag.Tag; + +/** + * Jackson-friendly version of {@link Student}. + */ +public class JsonAdaptedStudent extends JsonAdaptedPerson { + private final String level; + private final List subjects = new ArrayList<>(); + + /** + * Constructs a {@code JsonAdaptedStudent} with the given person details. + */ + @JsonCreator + public JsonAdaptedStudent(@JsonProperty("name") String name, @JsonProperty("phone") String phone, + @JsonProperty("email") String email, @JsonProperty("address") String address, + @JsonProperty("level") String level, + @JsonProperty("subjects") List subjects, + @JsonProperty("tags") List tags) { + super(name, phone, email, address, tags); + this.level = level; + if (subjects != null) { + this.subjects.addAll(subjects); + } + } + + /** + * Converts a given {@code Student} into this class for Jackson use. + */ + public JsonAdaptedStudent(Student source) { + super(source.getName().fullName, source.getPhone().value, source.getEmail().value, source.getAddress().value, + source.getTags().stream().map(JsonAdaptedTag::new).collect(Collectors.toList())); + level = source.getLevel().toString(); + subjects.addAll(source.getSubjects().stream().map(JsonAdaptedSubject::new) + .collect(Collectors.toList())); + } + + @Override + public Student toModelType() throws IllegalValueException { + final List personSubjects = new ArrayList<>(); + for (JsonAdaptedSubject subject : subjects) { + personSubjects.add(subject.toModelType()); + } + final List personTags = new ArrayList<>(); + for (JsonAdaptedTag tag : tags) { + personTags.add(tag.toModelType()); + } + + if (name == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName())); + } + if (!Name.isValidName(name)) { + throw new IllegalValueException(Name.MESSAGE_CONSTRAINTS); + } + final Name modelName = new Name(name); + + if (phone == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName())); + } + if (!Phone.isValidPhone(phone)) { + throw new IllegalValueException(Phone.MESSAGE_CONSTRAINTS); + } + final Phone modelPhone = new Phone(phone); + + if (email == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName())); + } + if (!Email.isValidEmail(email)) { + throw new IllegalValueException(Email.MESSAGE_CONSTRAINTS); + } + final Email modelEmail = new Email(email); + + if (address == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName())); + } + if (!Address.isValidAddress(address)) { + throw new IllegalValueException(Address.MESSAGE_CONSTRAINTS); + } + final Address modelAddress = new Address(address); + + if (level == null) { + throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Level.class.getSimpleName())); + } + if (!Level.isValidLevel(level)) { + throw new IllegalValueException(Level.MESSAGE_CONSTRAINTS); + } + final Level modelLevel = new Level(level); + + final Set modelSubjects = new HashSet<>(personSubjects); + final Set modelTags = new HashSet<>(personTags); + return new Student(modelName, modelPhone, modelEmail, modelAddress, modelTags, modelLevel, modelSubjects); + } +} diff --git a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java new file mode 100644 index 00000000000..1ffd43b0a87 --- /dev/null +++ b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java @@ -0,0 +1,49 @@ +package tutorpro.storage; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.person.student.Subject; +import tutorpro.model.tag.Tag; + +/** + * Jackson-friendly version of {@link Subject}. + */ +class JsonAdaptedSubject { + + private final String subjectName; + + /** + * Constructs a {@code JsonAdaptedSubject} with the given {@code subjectName}. + */ + @JsonCreator + public JsonAdaptedSubject(String subjectName) { + this.subjectName = subjectName; + } + + /** + * Converts a given {@code Subject} into this class for Jackson use. + */ + public JsonAdaptedSubject(Subject source) { + subjectName = source.toString(); + } + + @JsonValue + public String getSubjectName() { + return subjectName; + } + + /** + * Converts this Jackson-friendly adapted subject object into the model's {@code Subject} object. + * + * @throws IllegalValueException if there were any data constraints violated in the adapted subject. + */ + public Subject toModelType() throws IllegalValueException { + if (!Subject.isValidSubject(subjectName)) { + throw new IllegalValueException(Tag.MESSAGE_CONSTRAINTS); + } + return new Subject(subjectName); + } + +} diff --git a/src/main/java/tutorpro/storage/JsonAdaptedTag.java b/src/main/java/tutorpro/storage/JsonAdaptedTag.java index 90bb4c11a26..6cbd83b1d89 100644 --- a/src/main/java/tutorpro/storage/JsonAdaptedTag.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedTag.java @@ -44,5 +44,4 @@ public Tag toModelType() throws IllegalValueException { } return new Tag(tagName); } - } diff --git a/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java b/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java index 8d37830167b..5fe94eb60fc 100644 --- a/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java +++ b/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java @@ -11,7 +11,7 @@ import tutorpro.commons.exceptions.IllegalValueException; import tutorpro.model.AddressBook; import tutorpro.model.ReadOnlyAddressBook; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * An Immutable AddressBook that is serializable to JSON format. @@ -21,13 +21,13 @@ class JsonSerializableAddressBook { public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; - private final List persons = new ArrayList<>(); + private final List persons = new ArrayList<>(); /** * Constructs a {@code JsonSerializableAddressBook} with the given persons. */ @JsonCreator - public JsonSerializableAddressBook(@JsonProperty("persons") List persons) { + public JsonSerializableAddressBook(@JsonProperty("persons") List persons) { this.persons.addAll(persons); } @@ -37,7 +37,7 @@ public JsonSerializableAddressBook(@JsonProperty("persons") List { private final Logger logger = LogsCenter.getLogger(PersonListPanel.class); @FXML - private ListView personListView; + private ListView personListView; /** * Creates a {@code PersonListPanel} with the given {@code ObservableList}. */ - public PersonListPanel(ObservableList personList) { + public PersonListPanel(ObservableList personList) { super(FXML); personListView.setItems(personList); personListView.setCellFactory(listView -> new PersonListViewCell()); @@ -32,9 +32,9 @@ public PersonListPanel(ObservableList personList) { /** * Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code PersonCard}. */ - class PersonListViewCell extends ListCell { + class PersonListViewCell extends ListCell { @Override - protected void updateItem(Person person, boolean empty) { + protected void updateItem(Student person, boolean empty) { super.updateItem(person, empty); if (empty || person == null) { diff --git a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json index a7427fe7aa2..f2a10119283 100644 --- a/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json @@ -4,11 +4,15 @@ "phone": "94351253", "email": "alice@example.com", "address": "123, Jurong West Ave 6, #08-111", + "level" : "UNI", + "subjects" : [ ], "tags": [ "friends" ] }, { "name": "Alice Pauline", "phone": "94351253", "email": "pauline@example.com", + "level" : "UNI", + "subjects" : [ ], "address": "4th street" } ] } diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index 72262099d35..f6a1087a77b 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -5,42 +5,56 @@ "phone" : "94351253", "email" : "alice@example.com", "address" : "123, Jurong West Ave 6, #08-111", - "tags" : [ "friends" ] + "level" : "P6", + "subjects" : [ "Math"], + "tags" : [ "Student" ] }, { "name" : "Benson Meier", "phone" : "98765432", "email" : "johnd@example.com", "address" : "311, Clementi Ave 2, #02-25", - "tags" : [ "owesMoney", "friends" ] + "level" : "S2", + "subjects" : [ "Finance"], + "tags" : [ "Student" ] }, { "name" : "Carl Kurz", "phone" : "95352563", "email" : "heinz@example.com", "address" : "wall street", - "tags" : [ ] + "level" : "P6", + "subjects" : [ ], + "tags" : [ "Student" ] }, { "name" : "Daniel Meier", "phone" : "87652533", "email" : "cornelia@example.com", "address" : "10th street", - "tags" : [ "friends" ] + "level" : "K1", + "subjects" : [ "Reading"], + "tags" : [ "Student" ] }, { "name" : "Elle Meyer", "phone" : "9482224", "email" : "werner@example.com", "address" : "michegan ave", - "tags" : [ ] + "level" : "UNI", + "subjects" : [ ], + "tags" : [ "Student" ] }, { "name" : "Fiona Kunz", "phone" : "9482427", "email" : "lydia@example.com", "address" : "little tokyo", - "tags" : [ ] + "level" : "P6", + "subjects" : [ ], + "tags" : [ "Student" ] }, { "name" : "George Best", "phone" : "9482442", "email" : "anna@example.com", "address" : "4th street", - "tags" : [ ] + "level" : "J2", + "subjects" : [ ], + "tags" : [ "Student" ] } ] } diff --git a/src/test/java/tutorpro/logic/LogicManagerTest.java b/src/test/java/tutorpro/logic/LogicManagerTest.java index 652e67724f7..9f345ea7f2e 100644 --- a/src/test/java/tutorpro/logic/LogicManagerTest.java +++ b/src/test/java/tutorpro/logic/LogicManagerTest.java @@ -29,7 +29,7 @@ import tutorpro.model.ModelManager; import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.UserPrefs; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.storage.JsonAddressBookStorage; import tutorpro.storage.JsonUserPrefsStorage; import tutorpro.storage.StorageManager; @@ -170,7 +170,7 @@ public void saveAddressBook(ReadOnlyAddressBook addressBook, Path filePath) // Triggers the saveAddressBook method by executing an add command String addCommand = AddCommand.COMMAND_WORD + NAME_DESC_AMY + PHONE_DESC_AMY + EMAIL_DESC_AMY + ADDRESS_DESC_AMY + LEVEL_DESC_P6 + SUBJECT_DESC_MATH; - Person expectedPerson = new StudentBuilder(AMY).withTags().build(); + Student expectedPerson = new StudentBuilder(AMY).withTags().build(); ModelManager expectedModel = new ModelManager(); expectedModel.addPerson(expectedPerson); assertCommandFailure(addCommand, CommandException.class, expectedMessage, expectedModel); diff --git a/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java index 9d0c5606c44..102941f49c7 100644 --- a/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandIntegrationTest.java @@ -40,7 +40,7 @@ public void execute_newPerson_success() { @Test public void execute_duplicatePerson_throwsCommandException() { - Person personInList = model.getAddressBook().getPersonList().get(0); + Person personInList = model.getAddressBook().getStudentList().get(0); if (!(personInList instanceof Student)) { fail(); } diff --git a/src/test/java/tutorpro/logic/commands/AddCommandTest.java b/src/test/java/tutorpro/logic/commands/AddCommandTest.java index 52801131cda..0315ecbb1f9 100644 --- a/src/test/java/tutorpro/logic/commands/AddCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/AddCommandTest.java @@ -21,7 +21,6 @@ import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.ReadOnlyUserPrefs; -import tutorpro.model.person.Person; import tutorpro.model.person.student.Student; import tutorpro.testutil.Assert; import tutorpro.testutil.StudentBuilder; @@ -122,7 +121,7 @@ public void setAddressBookFilePath(Path addressBookFilePath) { } @Override - public void addPerson(Person person) { + public void addPerson(Student person) { throw new AssertionError("This method should not be called."); } @@ -137,27 +136,27 @@ public ReadOnlyAddressBook getAddressBook() { } @Override - public boolean hasPerson(Person person) { + public boolean hasPerson(Student person) { throw new AssertionError("This method should not be called."); } @Override - public void deletePerson(Person target) { + public void deletePerson(Student target) { throw new AssertionError("This method should not be called."); } @Override - public void setPerson(Person target, Person editedPerson) { + public void setPerson(Student target, Student editedPerson) { throw new AssertionError("This method should not be called."); } @Override - public ObservableList getFilteredPersonList() { + public ObservableList getFilteredPersonList() { throw new AssertionError("This method should not be called."); } @Override - public void updateFilteredPersonList(Predicate predicate) { + public void updateFilteredPersonList(Predicate predicate) { throw new AssertionError("This method should not be called."); } } @@ -166,15 +165,15 @@ public void updateFilteredPersonList(Predicate predicate) { * A Model stub that contains a single person. */ private class ModelStubWithPerson extends ModelStub { - private final Person person; + private final Student person; - ModelStubWithPerson(Person person) { + ModelStubWithPerson(Student person) { requireNonNull(person); this.person = person; } @Override - public boolean hasPerson(Person person) { + public boolean hasPerson(Student person) { requireNonNull(person); return this.person.isSamePerson(person); } @@ -184,16 +183,16 @@ public boolean hasPerson(Person person) { * A Model stub that always accept the person being added. */ private class ModelStubAcceptingPersonAdded extends ModelStub { - final ArrayList personsAdded = new ArrayList<>(); + final ArrayList personsAdded = new ArrayList<>(); @Override - public boolean hasPerson(Person person) { + public boolean hasPerson(Student person) { requireNonNull(person); return personsAdded.stream().anyMatch(person::isSamePerson); } @Override - public void addPerson(Person person) { + public void addPerson(Student person) { requireNonNull(person); personsAdded.add(person); } diff --git a/src/test/java/tutorpro/logic/commands/ClearCommandTest.java b/src/test/java/tutorpro/logic/commands/ClearCommandTest.java index 9595ad48d56..20131aa5692 100644 --- a/src/test/java/tutorpro/logic/commands/ClearCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/ClearCommandTest.java @@ -8,7 +8,7 @@ import tutorpro.model.Model; import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; public class ClearCommandTest { @@ -22,8 +22,8 @@ public void execute_emptyAddressBook_success() { @Test public void execute_nonEmptyAddressBook_success() { - Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); - Model expectedModel = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + Model model = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); + Model expectedModel = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); expectedModel.setAddressBook(new AddressBook()); CommandTestUtil.assertCommandSuccess(new ClearCommand(), model, ClearCommand.MESSAGE_SUCCESS, expectedModel); diff --git a/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java b/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java index 91da12e716c..ec11340ed53 100644 --- a/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/DeleteCommandTest.java @@ -12,9 +12,9 @@ import tutorpro.model.Model; import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; import tutorpro.testutil.TypicalIndexes; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; /** * Contains integration tests (interaction with the Model) and unit tests for @@ -22,11 +22,11 @@ */ public class DeleteCommandTest { - private Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); @Test public void execute_validIndexUnfilteredList_success() { - Person personToDelete = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + Student personToDelete = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); DeleteCommand deleteCommand = new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON); String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, @@ -50,7 +50,7 @@ public void execute_invalidIndexUnfilteredList_throwsCommandException() { public void execute_validIndexFilteredList_success() { CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); - Person personToDelete = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); + Student personToDelete = model.getFilteredPersonList().get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); DeleteCommand deleteCommand = new DeleteCommand(TypicalIndexes.INDEX_FIRST_PERSON); String expectedMessage = String.format(DeleteCommand.MESSAGE_DELETE_PERSON_SUCCESS, @@ -69,7 +69,7 @@ public void execute_invalidIndexFilteredList_throwsCommandException() { Index outOfBoundIndex = TypicalIndexes.INDEX_SECOND_PERSON; // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getStudentList().size()); DeleteCommand deleteCommand = new DeleteCommand(outOfBoundIndex); diff --git a/src/test/java/tutorpro/logic/commands/EditCommandTest.java b/src/test/java/tutorpro/logic/commands/EditCommandTest.java index e07a2dfae53..84a4c614683 100644 --- a/src/test/java/tutorpro/logic/commands/EditCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/EditCommandTest.java @@ -17,7 +17,6 @@ import tutorpro.model.person.Person; import tutorpro.model.person.student.Student; import tutorpro.testutil.EditPersonDescriptorBuilder; -import tutorpro.testutil.PersonBuilder; import tutorpro.testutil.StudentBuilder; import tutorpro.testutil.TypicalIndexes; import tutorpro.testutil.TypicalStudents; @@ -88,9 +87,10 @@ public void execute_noFieldSpecifiedUnfilteredList_success() { public void execute_filteredList_success() { CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); - Person personInFilteredList = model.getFilteredPersonList() + Student personInFilteredList = model.getFilteredPersonList() .get(TypicalIndexes.INDEX_FIRST_PERSON.getZeroBased()); - Person editedPerson = new PersonBuilder(personInFilteredList).withName(CommandTestUtil.VALID_NAME_BOB).build(); + Student editedPerson = new StudentBuilder(personInFilteredList) + .withName(CommandTestUtil.VALID_NAME_BOB).build(); EditCommand editCommand = new EditCommand(TypicalIndexes.INDEX_FIRST_PERSON, new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build()); @@ -120,7 +120,7 @@ public void execute_duplicatePersonFilteredList_failure() { CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); // edit person in filtered list into a duplicate in address book - Person personInList = model.getAddressBook().getPersonList() + Person personInList = model.getAddressBook().getStudentList() .get(TypicalIndexes.INDEX_SECOND_PERSON.getZeroBased()); if (!(personInList instanceof Student)) { fail(); @@ -151,7 +151,7 @@ public void execute_invalidPersonIndexFilteredList_failure() { CommandTestUtil.showPersonAtIndex(model, TypicalIndexes.INDEX_FIRST_PERSON); Index outOfBoundIndex = TypicalIndexes.INDEX_SECOND_PERSON; // ensures that outOfBoundIndex is still in bounds of address book list - assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getPersonList().size()); + assertTrue(outOfBoundIndex.getZeroBased() < model.getAddressBook().getStudentList().size()); EditCommand editCommand = new EditCommand(outOfBoundIndex, new EditPersonDescriptorBuilder().withName(CommandTestUtil.VALID_NAME_BOB).build()); diff --git a/src/test/java/tutorpro/logic/commands/FindCommandTest.java b/src/test/java/tutorpro/logic/commands/FindCommandTest.java index 6b7b2e529b5..c85c6e33d3f 100644 --- a/src/test/java/tutorpro/logic/commands/FindCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/FindCommandTest.java @@ -15,14 +15,14 @@ import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; import tutorpro.model.person.NameContainsKeywordsPredicate; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; /** * Contains integration tests (interaction with the Model) for {@code FindCommand}. */ public class FindCommandTest { - private Model model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); - private Model expectedModel = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + private Model model = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); + private Model expectedModel = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); @Test public void equals() { @@ -68,7 +68,7 @@ public void execute_multipleKeywords_multiplePersonsFound() { FindCommand command = new FindCommand(predicate); expectedModel.updateFilteredPersonList(predicate); assertCommandSuccess(command, model, expectedMessage, expectedModel); - assertEquals(Arrays.asList(TypicalPersons.CARL, TypicalPersons.ELLE, TypicalPersons.FIONA), + assertEquals(Arrays.asList(TypicalStudents.CARL, TypicalStudents.ELLE, TypicalStudents.FIONA), model.getFilteredPersonList()); } diff --git a/src/test/java/tutorpro/logic/commands/ListCommandTest.java b/src/test/java/tutorpro/logic/commands/ListCommandTest.java index fe24397e819..9d29967e02f 100644 --- a/src/test/java/tutorpro/logic/commands/ListCommandTest.java +++ b/src/test/java/tutorpro/logic/commands/ListCommandTest.java @@ -10,7 +10,7 @@ import tutorpro.model.ModelManager; import tutorpro.model.UserPrefs; import tutorpro.testutil.TypicalIndexes; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; /** * Contains integration tests (interaction with the Model) and unit tests for ListCommand. @@ -22,7 +22,7 @@ public class ListCommandTest { @BeforeEach public void setUp() { - model = new ModelManager(TypicalPersons.getTypicalAddressBook(), new UserPrefs()); + model = new ModelManager(TypicalStudents.getTypicalAddressBook(), new UserPrefs()); expectedModel = new ModelManager(model.getAddressBook(), new UserPrefs()); } diff --git a/src/test/java/tutorpro/model/AddressBookTest.java b/src/test/java/tutorpro/model/AddressBookTest.java index 52e2b2bc3b8..17e187642ee 100644 --- a/src/test/java/tutorpro/model/AddressBookTest.java +++ b/src/test/java/tutorpro/model/AddressBookTest.java @@ -16,11 +16,11 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import tutorpro.model.person.Person; import tutorpro.model.person.exceptions.DuplicatePersonException; +import tutorpro.model.person.student.Student; import tutorpro.testutil.Assert; -import tutorpro.testutil.PersonBuilder; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalStudents; public class AddressBookTest { @@ -28,7 +28,7 @@ public class AddressBookTest { @Test public void constructor() { - assertEquals(Collections.emptyList(), addressBook.getPersonList()); + assertEquals(Collections.emptyList(), addressBook.getStudentList()); } @Test @@ -38,7 +38,7 @@ public void resetData_null_throwsNullPointerException() { @Test public void resetData_withValidReadOnlyAddressBook_replacesData() { - AddressBook newData = TypicalPersons.getTypicalAddressBook(); + AddressBook newData = TypicalStudents.getTypicalAddressBook(); addressBook.resetData(newData); assertEquals(newData, addressBook); } @@ -46,9 +46,9 @@ public void resetData_withValidReadOnlyAddressBook_replacesData() { @Test public void resetData_withDuplicatePersons_throwsDuplicatePersonException() { // Two persons with the same identity fields - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + Student editedAlice = new StudentBuilder(TypicalStudents.ALICE) .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); - List newPersons = Arrays.asList(TypicalPersons.ALICE, editedAlice); + List newPersons = Arrays.asList(TypicalStudents.ALICE, editedAlice); AddressBookStub newData = new AddressBookStub(newPersons); Assert.assertThrows(DuplicatePersonException.class, () -> addressBook.resetData(newData)); @@ -61,31 +61,31 @@ public void hasPerson_nullPerson_throwsNullPointerException() { @Test public void hasPerson_personNotInAddressBook_returnsFalse() { - assertFalse(addressBook.hasPerson(TypicalPersons.ALICE)); + assertFalse(addressBook.hasPerson(TypicalStudents.ALICE)); } @Test public void hasPerson_personInAddressBook_returnsTrue() { - addressBook.addPerson(TypicalPersons.ALICE); - assertTrue(addressBook.hasPerson(TypicalPersons.ALICE)); + addressBook.addPerson(TypicalStudents.ALICE); + assertTrue(addressBook.hasPerson(TypicalStudents.ALICE)); } @Test public void hasPerson_personWithSameIdentityFieldsInAddressBook_returnsTrue() { - addressBook.addPerson(TypicalPersons.ALICE); - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + addressBook.addPerson(TypicalStudents.ALICE); + Student editedAlice = new StudentBuilder(TypicalStudents.ALICE) .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); assertTrue(addressBook.hasPerson(editedAlice)); } @Test - public void getPersonList_modifyList_throwsUnsupportedOperationException() { - Assert.assertThrows(UnsupportedOperationException.class, () -> addressBook.getPersonList().remove(0)); + public void getStudentList_modifyList_throwsUnsupportedOperationException() { + Assert.assertThrows(UnsupportedOperationException.class, () -> addressBook.getStudentList().remove(0)); } @Test public void toStringMethod() { - String expected = AddressBook.class.getCanonicalName() + "{persons=" + addressBook.getPersonList() + "}"; + String expected = AddressBook.class.getCanonicalName() + "{persons=" + addressBook.getStudentList() + "}"; assertEquals(expected, addressBook.toString()); } @@ -93,14 +93,14 @@ public void toStringMethod() { * A stub ReadOnlyAddressBook whose persons list can violate interface constraints. */ private static class AddressBookStub implements ReadOnlyAddressBook { - private final ObservableList persons = FXCollections.observableArrayList(); + private final ObservableList persons = FXCollections.observableArrayList(); - AddressBookStub(Collection persons) { + AddressBookStub(Collection persons) { this.persons.setAll(persons); } @Override - public ObservableList getPersonList() { + public ObservableList getStudentList() { return persons; } } diff --git a/src/test/java/tutorpro/model/ModelManagerTest.java b/src/test/java/tutorpro/model/ModelManagerTest.java index 1ec5c1ebb79..262fbe7414a 100644 --- a/src/test/java/tutorpro/model/ModelManagerTest.java +++ b/src/test/java/tutorpro/model/ModelManagerTest.java @@ -16,7 +16,7 @@ import tutorpro.model.person.NameContainsKeywordsPredicate; import tutorpro.testutil.AddressBookBuilder; import tutorpro.testutil.Assert; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; public class ModelManagerTest { @@ -79,13 +79,13 @@ public void hasPerson_nullPerson_throwsNullPointerException() { @Test public void hasPerson_personNotInAddressBook_returnsFalse() { - assertFalse(modelManager.hasPerson(TypicalPersons.ALICE)); + assertFalse(modelManager.hasPerson(TypicalStudents.ALICE)); } @Test public void hasPerson_personInAddressBook_returnsTrue() { - modelManager.addPerson(TypicalPersons.ALICE); - assertTrue(modelManager.hasPerson(TypicalPersons.ALICE)); + modelManager.addPerson(TypicalStudents.ALICE); + assertTrue(modelManager.hasPerson(TypicalStudents.ALICE)); } @Test @@ -96,7 +96,7 @@ public void getFilteredPersonList_modifyList_throwsUnsupportedOperationException @Test public void equals() { AddressBook addressBook = new AddressBookBuilder() - .withPerson(TypicalPersons.ALICE).withPerson(TypicalPersons.BENSON).build(); + .withPerson(TypicalStudents.ALICE).withPerson(TypicalStudents.BENSON).build(); AddressBook differentAddressBook = new AddressBook(); UserPrefs userPrefs = new UserPrefs(); @@ -118,7 +118,7 @@ public void equals() { assertFalse(modelManager.equals(new ModelManager(differentAddressBook, userPrefs))); // different filteredList -> returns false - String[] keywords = TypicalPersons.ALICE.getName().fullName.split("\\s+"); + String[] keywords = TypicalStudents.ALICE.getName().fullName.split("\\s+"); modelManager.updateFilteredPersonList(new NameContainsKeywordsPredicate(Arrays.asList(keywords))); assertFalse(modelManager.equals(new ModelManager(addressBook, userPrefs))); diff --git a/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java b/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java index 0ca8eb0e828..31f3cd1417d 100644 --- a/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java +++ b/src/test/java/tutorpro/model/person/NameContainsKeywordsPredicateTest.java @@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test; -import tutorpro.testutil.PersonBuilder; +import tutorpro.testutil.StudentBuilder; public class NameContainsKeywordsPredicateTest { @@ -47,34 +47,34 @@ public void test_nameContainsKeywords_returnsTrue() { // One keyword NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.singletonList("Alice")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertTrue(predicate.test(new StudentBuilder().withName("Alice Bob").build())); // Multiple keywords predicate = new NameContainsKeywordsPredicate(Arrays.asList("Alice", "Bob")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertTrue(predicate.test(new StudentBuilder().withName("Alice Bob").build())); // Only one matching keyword predicate = new NameContainsKeywordsPredicate(Arrays.asList("Bob", "Carol")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Carol").build())); + assertTrue(predicate.test(new StudentBuilder().withName("Alice Carol").build())); // Mixed-case keywords predicate = new NameContainsKeywordsPredicate(Arrays.asList("aLIce", "bOB")); - assertTrue(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertTrue(predicate.test(new StudentBuilder().withName("Alice Bob").build())); } @Test public void test_nameDoesNotContainKeywords_returnsFalse() { // Zero keywords NameContainsKeywordsPredicate predicate = new NameContainsKeywordsPredicate(Collections.emptyList()); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").build())); + assertFalse(predicate.test(new StudentBuilder().withName("Alice").build())); // Non-matching keyword predicate = new NameContainsKeywordsPredicate(Arrays.asList("Carol")); - assertFalse(predicate.test(new PersonBuilder().withName("Alice Bob").build())); + assertFalse(predicate.test(new StudentBuilder().withName("Alice Bob").build())); // Keywords match phone, email and address, but does not match name predicate = new NameContainsKeywordsPredicate(Arrays.asList("12345", "alice@email.com", "Main", "Street")); - assertFalse(predicate.test(new PersonBuilder().withName("Alice").withPhone("12345") + assertFalse(predicate.test(new StudentBuilder().withName("Alice").withPhone("12345") .withEmail("alice@email.com").withAddress("Main Street").build())); } diff --git a/src/test/java/tutorpro/model/person/UniquePersonListTest.java b/src/test/java/tutorpro/model/person/UniquePersonListTest.java index 3c66a5ce070..497fcf23722 100644 --- a/src/test/java/tutorpro/model/person/UniquePersonListTest.java +++ b/src/test/java/tutorpro/model/person/UniquePersonListTest.java @@ -15,9 +15,10 @@ import tutorpro.model.person.exceptions.DuplicatePersonException; import tutorpro.model.person.exceptions.PersonNotFoundException; +import tutorpro.model.person.student.Student; import tutorpro.testutil.Assert; -import tutorpro.testutil.PersonBuilder; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.StudentBuilder; +import tutorpro.testutil.TypicalStudents; public class UniquePersonListTest { @@ -30,19 +31,19 @@ public void contains_nullPerson_throwsNullPointerException() { @Test public void contains_personNotInList_returnsFalse() { - assertFalse(uniquePersonList.contains(TypicalPersons.ALICE)); + assertFalse(uniquePersonList.contains(TypicalStudents.ALICE)); } @Test public void contains_personInList_returnsTrue() { - uniquePersonList.add(TypicalPersons.ALICE); - assertTrue(uniquePersonList.contains(TypicalPersons.ALICE)); + uniquePersonList.add(TypicalStudents.ALICE); + assertTrue(uniquePersonList.contains(TypicalStudents.ALICE)); } @Test public void contains_personWithSameIdentityFieldsInList_returnsTrue() { - uniquePersonList.add(TypicalPersons.ALICE); - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + uniquePersonList.add(TypicalStudents.ALICE); + Student editedAlice = new StudentBuilder(TypicalStudents.ALICE) .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); assertTrue(uniquePersonList.contains(editedAlice)); } @@ -54,43 +55,43 @@ public void add_nullPerson_throwsNullPointerException() { @Test public void add_duplicatePerson_throwsDuplicatePersonException() { - uniquePersonList.add(TypicalPersons.ALICE); - Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.add(TypicalPersons.ALICE)); + uniquePersonList.add(TypicalStudents.ALICE); + Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList.add(TypicalStudents.ALICE)); } @Test public void setPerson_nullTargetPerson_throwsNullPointerException() { Assert.assertThrows(NullPointerException.class, () -> uniquePersonList - .setPerson(null, TypicalPersons.ALICE)); + .setPerson(null, TypicalStudents.ALICE)); } @Test public void setPerson_nullEditedPerson_throwsNullPointerException() { Assert.assertThrows(NullPointerException.class, () -> uniquePersonList - .setPerson(TypicalPersons.ALICE, null)); + .setPerson(TypicalStudents.ALICE, null)); } @Test public void setPerson_targetPersonNotInList_throwsPersonNotFoundException() { Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList - .setPerson(TypicalPersons.ALICE, TypicalPersons.ALICE)); + .setPerson(TypicalStudents.ALICE, TypicalStudents.ALICE)); } @Test public void setPerson_editedPersonIsSamePerson_success() { - uniquePersonList.add(TypicalPersons.ALICE); - uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.ALICE); + uniquePersonList.add(TypicalStudents.ALICE); + uniquePersonList.setPerson(TypicalStudents.ALICE, TypicalStudents.ALICE); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(TypicalPersons.ALICE); + expectedUniquePersonList.add(TypicalStudents.ALICE); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPerson_editedPersonHasSameIdentity_success() { - uniquePersonList.add(TypicalPersons.ALICE); - Person editedAlice = new PersonBuilder(TypicalPersons.ALICE) + uniquePersonList.add(TypicalStudents.ALICE); + Student editedAlice = new StudentBuilder(TypicalStudents.ALICE) .withAddress(VALID_ADDRESS_BOB).withTags(VALID_TAG_HUSBAND).build(); - uniquePersonList.setPerson(TypicalPersons.ALICE, editedAlice); + uniquePersonList.setPerson(TypicalStudents.ALICE, editedAlice); UniquePersonList expectedUniquePersonList = new UniquePersonList(); expectedUniquePersonList.add(editedAlice); assertEquals(expectedUniquePersonList, uniquePersonList); @@ -98,19 +99,19 @@ public void setPerson_editedPersonHasSameIdentity_success() { @Test public void setPerson_editedPersonHasDifferentIdentity_success() { - uniquePersonList.add(TypicalPersons.ALICE); - uniquePersonList.setPerson(TypicalPersons.ALICE, TypicalPersons.BOB); + uniquePersonList.add(TypicalStudents.ALICE); + uniquePersonList.setPerson(TypicalStudents.ALICE, TypicalStudents.BOB); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(TypicalPersons.BOB); + expectedUniquePersonList.add(TypicalStudents.BOB); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPerson_editedPersonHasNonUniqueIdentity_throwsDuplicatePersonException() { - uniquePersonList.add(TypicalPersons.ALICE); - uniquePersonList.add(TypicalPersons.BOB); + uniquePersonList.add(TypicalStudents.ALICE); + uniquePersonList.add(TypicalStudents.BOB); Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList - .setPerson(TypicalPersons.ALICE, TypicalPersons.BOB)); + .setPerson(TypicalStudents.ALICE, TypicalStudents.BOB)); } @Test @@ -120,13 +121,13 @@ public void remove_nullPerson_throwsNullPointerException() { @Test public void remove_personDoesNotExist_throwsPersonNotFoundException() { - Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList.remove(TypicalPersons.ALICE)); + Assert.assertThrows(PersonNotFoundException.class, () -> uniquePersonList.remove(TypicalStudents.ALICE)); } @Test public void remove_existingPerson_removesPerson() { - uniquePersonList.add(TypicalPersons.ALICE); - uniquePersonList.remove(TypicalPersons.ALICE); + uniquePersonList.add(TypicalStudents.ALICE); + uniquePersonList.remove(TypicalStudents.ALICE); UniquePersonList expectedUniquePersonList = new UniquePersonList(); assertEquals(expectedUniquePersonList, uniquePersonList); } @@ -138,31 +139,31 @@ public void setPersons_nullUniquePersonList_throwsNullPointerException() { @Test public void setPersons_uniquePersonList_replacesOwnListWithProvidedUniquePersonList() { - uniquePersonList.add(TypicalPersons.ALICE); + uniquePersonList.add(TypicalStudents.ALICE); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(TypicalPersons.BOB); + expectedUniquePersonList.add(TypicalStudents.BOB); uniquePersonList.setPersons(expectedUniquePersonList); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPersons_nullList_throwsNullPointerException() { - Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); + Assert.assertThrows(NullPointerException.class, () -> uniquePersonList.setPersons((List) null)); } @Test public void setPersons_list_replacesOwnListWithProvidedList() { - uniquePersonList.add(TypicalPersons.ALICE); - List personList = Collections.singletonList(TypicalPersons.BOB); + uniquePersonList.add(TypicalStudents.ALICE); + List personList = Collections.singletonList(TypicalStudents.BOB); uniquePersonList.setPersons(personList); UniquePersonList expectedUniquePersonList = new UniquePersonList(); - expectedUniquePersonList.add(TypicalPersons.BOB); + expectedUniquePersonList.add(TypicalStudents.BOB); assertEquals(expectedUniquePersonList, uniquePersonList); } @Test public void setPersons_listWithDuplicatePersons_throwsDuplicatePersonException() { - List listWithDuplicatePersons = Arrays.asList(TypicalPersons.ALICE, TypicalPersons.ALICE); + List listWithDuplicatePersons = Arrays.asList(TypicalStudents.ALICE, TypicalStudents.ALICE); Assert.assertThrows(DuplicatePersonException.class, () -> uniquePersonList .setPersons(listWithDuplicatePersons)); } diff --git a/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java b/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java index de929582a48..f7af6bf0107 100644 --- a/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java +++ b/src/test/java/tutorpro/storage/JsonAddressBookStorageTest.java @@ -15,7 +15,7 @@ import tutorpro.model.AddressBook; import tutorpro.model.ReadOnlyAddressBook; import tutorpro.testutil.Assert; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; public class JsonAddressBookStorageTest { private static final Path TEST_DATA_FOLDER = @@ -65,7 +65,7 @@ public void readAddressBook_invalidAndValidPersonAddressBook_throwDataLoadingExc @Test public void readAndSaveAddressBook_allInOrder_success() throws Exception { Path filePath = testFolder.resolve("TempAddressBook.json"); - AddressBook original = TypicalPersons.getTypicalAddressBook(); + AddressBook original = TypicalStudents.getTypicalAddressBook(); JsonAddressBookStorage jsonAddressBookStorage = new JsonAddressBookStorage(filePath); // Save in new file and read back @@ -74,14 +74,14 @@ public void readAndSaveAddressBook_allInOrder_success() throws Exception { assertEquals(original, new AddressBook(readBack)); // Modify data, overwrite exiting file, and read back - original.addPerson(TypicalPersons.HOON); - original.removePerson(TypicalPersons.ALICE); + original.addPerson(TypicalStudents.HOON); + original.removePerson(TypicalStudents.ALICE); jsonAddressBookStorage.saveAddressBook(original, filePath); readBack = jsonAddressBookStorage.readAddressBook(filePath).get(); assertEquals(original, new AddressBook(readBack)); // Save and read without specifying file path - original.addPerson(TypicalPersons.IDA); + original.addPerson(TypicalStudents.IDA); jsonAddressBookStorage.saveAddressBook(original); // file path not specified readBack = jsonAddressBookStorage.readAddressBook().get(); // file path not specified assertEquals(original, new AddressBook(readBack)); diff --git a/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java b/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java index d484c35caa5..0cf1eeff556 100644 --- a/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java +++ b/src/test/java/tutorpro/storage/JsonSerializableAddressBookTest.java @@ -12,7 +12,7 @@ import tutorpro.commons.util.JsonUtil; import tutorpro.model.AddressBook; import tutorpro.testutil.Assert; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; public class JsonSerializableAddressBookTest { @@ -30,8 +30,8 @@ public void toModelType_typicalPersonsFile_success() throws Exception { JsonSerializableAddressBook dataFromFile = JsonUtil.readJsonFile(TYPICAL_PERSONS_FILE, JsonSerializableAddressBook.class).get(); AddressBook addressBookFromFile = dataFromFile.toModelType(); - AddressBook typicalPersonsAddressBook = TypicalPersons.getTypicalAddressBook(); - assertEquals(addressBookFromFile, typicalPersonsAddressBook); + AddressBook typicalStudentsAddressBook = TypicalStudents.getTypicalAddressBook(); + assertEquals(addressBookFromFile, typicalStudentsAddressBook); } @Test diff --git a/src/test/java/tutorpro/storage/StorageManagerTest.java b/src/test/java/tutorpro/storage/StorageManagerTest.java index 18b47bff097..99771a2bd34 100644 --- a/src/test/java/tutorpro/storage/StorageManagerTest.java +++ b/src/test/java/tutorpro/storage/StorageManagerTest.java @@ -13,7 +13,7 @@ import tutorpro.model.AddressBook; import tutorpro.model.ReadOnlyAddressBook; import tutorpro.model.UserPrefs; -import tutorpro.testutil.TypicalPersons; +import tutorpro.testutil.TypicalStudents; public class StorageManagerTest { @@ -54,7 +54,7 @@ public void addressBookReadSave() throws Exception { * {@link JsonAddressBookStorage} class. * More extensive testing of UserPref saving/reading is done in {@link JsonAddressBookStorageTest} class. */ - AddressBook original = TypicalPersons.getTypicalAddressBook(); + AddressBook original = TypicalStudents.getTypicalAddressBook(); storageManager.saveAddressBook(original); ReadOnlyAddressBook retrieved = storageManager.readAddressBook().get(); assertEquals(original, new AddressBook(retrieved)); diff --git a/src/test/java/tutorpro/testutil/AddressBookBuilder.java b/src/test/java/tutorpro/testutil/AddressBookBuilder.java index c4d882c93c2..7e8df4046b3 100644 --- a/src/test/java/tutorpro/testutil/AddressBookBuilder.java +++ b/src/test/java/tutorpro/testutil/AddressBookBuilder.java @@ -1,7 +1,7 @@ package tutorpro.testutil; import tutorpro.model.AddressBook; -import tutorpro.model.person.Person; +import tutorpro.model.person.student.Student; /** * A utility class to help with building Addressbook objects. @@ -23,7 +23,7 @@ public AddressBookBuilder(AddressBook addressBook) { /** * Adds a new {@code Person} to the {@code AddressBook} that we are building. */ - public AddressBookBuilder withPerson(Person person) { + public AddressBookBuilder withPerson(Student person) { addressBook.addPerson(person); return this; } diff --git a/src/test/java/tutorpro/testutil/TypicalPersons.java b/src/test/java/tutorpro/testutil/TypicalPersons.java index 8ad0ad51a80..b77ec07599c 100644 --- a/src/test/java/tutorpro/testutil/TypicalPersons.java +++ b/src/test/java/tutorpro/testutil/TypicalPersons.java @@ -11,11 +11,6 @@ import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_FRIEND; import static tutorpro.logic.commands.CommandTestUtil.VALID_TAG_HUSBAND; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import tutorpro.model.AddressBook; import tutorpro.model.person.Person; /** @@ -59,18 +54,18 @@ public class TypicalPersons { private TypicalPersons() {} // prevents instantiation - /** - * Returns an {@code AddressBook} with all the typical persons. - */ - public static AddressBook getTypicalAddressBook() { - AddressBook ab = new AddressBook(); - for (Person person : getTypicalPersons()) { - ab.addPerson(person); - } - return ab; - } + ///** + // * Returns an {@code AddressBook} with all the typical persons. + // */ + //public static AddressBook getTypicalAddressBook() { + // AddressBook ab = new AddressBook(); + // for (Person person : getTypicalPersons()) { + // ab.addPerson(person); + // } + // return ab; + //} - public static List getTypicalPersons() { - return new ArrayList<>(Arrays.asList(ALICE, BENSON, CARL, DANIEL, ELLE, FIONA, GEORGE)); - } + //public static List getTypicalPersons() { + // return new ArrayList<>(Arrays.asList(ALICE, BENSON, CARL, DANIEL, ELLE, FIONA, GEORGE)); + //} } diff --git a/src/test/java/tutorpro/testutil/TypicalStudents.java b/src/test/java/tutorpro/testutil/TypicalStudents.java index 61945d7bbc3..bc2c47822dd 100644 --- a/src/test/java/tutorpro/testutil/TypicalStudents.java +++ b/src/test/java/tutorpro/testutil/TypicalStudents.java @@ -18,7 +18,6 @@ import java.util.List; import tutorpro.model.AddressBook; -import tutorpro.model.person.Person; import tutorpro.model.person.student.Student; /** @@ -66,13 +65,13 @@ private TypicalStudents() {} // prevents instantiation */ public static AddressBook getTypicalAddressBook() { AddressBook ab = new AddressBook(); - for (Person person : getTypicalStudents()) { + for (Student person : getTypicalStudents()) { ab.addPerson(person); } return ab; } - public static List getTypicalStudents() { + public static List getTypicalStudents() { return new ArrayList<>(Arrays.asList(ALICE, BENSON, CARL, DANIEL, ELLE, FIONA, GEORGE)); } } From 3ec3c631c6df91b2ea8ffb3e196989cfb516ff16 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 23 Mar 2024 05:14:27 +0800 Subject: [PATCH 077/189] Add more test cases --- .../tutorpro/storage/JsonAdaptedSubject.java | 2 +- .../storage/JsonAdaptedStudentTest.java | 164 ++++++++++++++++++ 2 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 src/test/java/tutorpro/storage/JsonAdaptedStudentTest.java diff --git a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java index 1ffd43b0a87..62586b65029 100644 --- a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java @@ -41,7 +41,7 @@ public String getSubjectName() { */ public Subject toModelType() throws IllegalValueException { if (!Subject.isValidSubject(subjectName)) { - throw new IllegalValueException(Tag.MESSAGE_CONSTRAINTS); + throw new IllegalValueException(Subject.MESSAGE_CONSTRAINTS); } return new Subject(subjectName); } diff --git a/src/test/java/tutorpro/storage/JsonAdaptedStudentTest.java b/src/test/java/tutorpro/storage/JsonAdaptedStudentTest.java new file mode 100644 index 00000000000..a441cc1cd8c --- /dev/null +++ b/src/test/java/tutorpro/storage/JsonAdaptedStudentTest.java @@ -0,0 +1,164 @@ +package tutorpro.storage; + +//import static org.junit.jupiter.api.Assertions.assertEquals; +//import static tutorpro.testutil.Assert.assertThrows; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import tutorpro.commons.exceptions.IllegalValueException; +import tutorpro.model.person.Address; +import tutorpro.model.person.Email; +import tutorpro.model.person.Name; +import tutorpro.model.person.Phone; +import tutorpro.model.person.student.Level; +import tutorpro.testutil.Assert; +import tutorpro.testutil.TypicalStudents; + +public class JsonAdaptedStudentTest { + private static final String INVALID_NAME = "R@chel"; + private static final String INVALID_PHONE = "+651234"; + private static final String INVALID_ADDRESS = " "; + private static final String INVALID_EMAIL = "example.com"; + private static final String INVALID_LEVEL = "P6!"; + private static final String INVALID_SUBJECT = " "; + private static final String INVALID_TAG = "#friend"; + + private static final String VALID_NAME = TypicalStudents.BENSON.getName().toString(); + private static final String VALID_PHONE = TypicalStudents.BENSON.getPhone().toString(); + private static final String VALID_EMAIL = TypicalStudents.BENSON.getEmail().toString(); + private static final String VALID_ADDRESS = TypicalStudents.BENSON.getAddress().toString(); + private static final String VALID_LEVEL = TypicalStudents.BENSON.getLevel().toString(); + private static final List VALID_SUBJECTS = TypicalStudents.BENSON.getSubjects().stream() + .map(JsonAdaptedSubject::new) + .collect(Collectors.toList()); + private static final List VALID_TAGS = TypicalStudents.BENSON.getTags().stream() + .map(JsonAdaptedTag::new) + .collect(Collectors.toList()); + + @Test + public void toModelType_validPersonDetails_returnsPerson() throws Exception { + JsonAdaptedStudent person = new JsonAdaptedStudent(TypicalStudents.BENSON); + Assertions.assertEquals(TypicalStudents.BENSON, person.toModelType()); + } + + @Test + public void toModelType_invalidName_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(INVALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = Name.MESSAGE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_nullName_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(null, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedStudent.MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_invalidPhone_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, INVALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = Phone.MESSAGE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_nullPhone_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, null, VALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedStudent.MISSING_FIELD_MESSAGE_FORMAT, Phone.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_invalidEmail_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, INVALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = Email.MESSAGE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_nullEmail_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, null, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedStudent.MISSING_FIELD_MESSAGE_FORMAT, Email.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_invalidAddress_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, VALID_EMAIL, INVALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = Address.MESSAGE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_nullAddress_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, VALID_EMAIL, null, + VALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedStudent.MISSING_FIELD_MESSAGE_FORMAT, Address.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_invalidLevel_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + INVALID_LEVEL, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = Level.MESSAGE_CONSTRAINTS; + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_nullLevel_throwsIllegalValueException() { + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + null, VALID_SUBJECTS, VALID_TAGS); + String expectedMessage = + String.format(JsonAdaptedStudent.MISSING_FIELD_MESSAGE_FORMAT, Level.class.getSimpleName()); + Assert.assertThrows(IllegalValueException.class, expectedMessage, person::toModelType); + } + + @Test + public void toModelType_invalidSubjects_throwsIllegalValueException() { + List invalidSubjects = new ArrayList<>(VALID_SUBJECTS); + invalidSubjects.add(new JsonAdaptedSubject(INVALID_SUBJECT)); + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, invalidSubjects, VALID_TAGS); + Assert.assertThrows(IllegalValueException.class, person::toModelType); + } + + @Test + public void toModelType_invalidTags_throwsIllegalValueException() { + List invalidTags = new ArrayList<>(VALID_TAGS); + invalidTags.add(new JsonAdaptedTag(INVALID_TAG)); + JsonAdaptedStudent person = + new JsonAdaptedStudent(VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_ADDRESS, + VALID_LEVEL, VALID_SUBJECTS, invalidTags); + Assert.assertThrows(IllegalValueException.class, person::toModelType); + } + +} From f378e8db652ac7d83b6526568de08c8e24a25a6d Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 23 Mar 2024 05:25:05 +0800 Subject: [PATCH 078/189] Fix checkstyle and edit UML --- docs/diagrams/LogicClassDiagram.puml | 11 +++++++---- docs/diagrams/StorageClassDiagram.puml | 2 ++ .../java/tutorpro/storage/JsonAdaptedSubject.java | 1 - 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/diagrams/LogicClassDiagram.puml b/docs/diagrams/LogicClassDiagram.puml index 58b4f602ce6..d4427a46f46 100644 --- a/docs/diagrams/LogicClassDiagram.puml +++ b/docs/diagrams/LogicClassDiagram.puml @@ -8,7 +8,8 @@ package Logic as LogicPackage { package "Parser Classes" as ParserClasses{ } -Class XYZCommand +Class AddCommand +Class EditCommand Class CommandResult Class "{abstract}\nCommand" as Command @@ -29,9 +30,11 @@ HiddenOutside ..> Logic LogicManager .right.|> Logic LogicManager -right->"1" ParserClasses -ParserClasses ..> XYZCommand : <> +ParserClasses ..> AddCommand : <> +ParserClasses ..> EditCommand : <> -XYZCommand -up-|> Command +AddCommand -up-|> Command +EditCommand -up-|> Command LogicManager .left.> Command : <> LogicManager --> Model @@ -39,7 +42,7 @@ LogicManager --> Storage Storage --[hidden] Model Command .[hidden]up.> Storage Command .right.> Model -note right of XYZCommand: XYZCommand = AddCommand, \nFindCommand, etc +note right of Command: XYZCommand = AddCommand, \nFindCommand, etc Logic ..> CommandResult LogicManager .down.> CommandResult diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index a821e06458c..ab6e48e1bdd 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -19,6 +19,8 @@ Class "<>\nAddressBookStorage" as AddressBookStorage Class JsonAddressBookStorage Class JsonSerializableAddressBook Class JsonAdaptedPerson +Class JsonAdaptedStudent +Class JsonAdaptedSubject Class JsonAdaptedTag } diff --git a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java index 62586b65029..92969281a82 100644 --- a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java @@ -5,7 +5,6 @@ import tutorpro.commons.exceptions.IllegalValueException; import tutorpro.model.person.student.Subject; -import tutorpro.model.tag.Tag; /** * Jackson-friendly version of {@link Subject}. From 883bd8ff9fa1237b62a75528487d8dc96e0f148a Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sat, 23 Mar 2024 16:16:45 +0800 Subject: [PATCH 079/189] Fix edit --- src/main/java/tutorpro/logic/parser/EditCommandParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/tutorpro/logic/parser/EditCommandParser.java b/src/main/java/tutorpro/logic/parser/EditCommandParser.java index 8b1c958dae4..29d48f3c215 100644 --- a/src/main/java/tutorpro/logic/parser/EditCommandParser.java +++ b/src/main/java/tutorpro/logic/parser/EditCommandParser.java @@ -63,7 +63,7 @@ public EditCommand parse(String args) throws ParseException { editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get())); } if (argMultimap.getValue(PREFIX_LEVEL).isPresent()) { - editPersonDescriptor.setAddress(ParserUtil.parseAddress(argMultimap.getValue(PREFIX_LEVEL).get())); + editPersonDescriptor.setLevel(ParserUtil.parseLevel(argMultimap.getValue(PREFIX_LEVEL).get())); } parseSubjectsForEdit(argMultimap.getAllValues(PREFIX_SUBJECT)).ifPresent(editPersonDescriptor::setSubjects); parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(editPersonDescriptor::setTags); From a7947c3b30b2dcf4185a6dac9669d0044ce1e374 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 23 Mar 2024 21:39:19 +0800 Subject: [PATCH 080/189] Update gradle jar file name --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 468ae27e447..4c41ef54c39 100644 --- a/build.gradle +++ b/build.gradle @@ -66,7 +66,7 @@ dependencies { } shadowJar { - archiveFileName = 'addressbook.jar' + archiveFileName = 'tutorpro.jar' } defaultTasks 'clean', 'test' From 7e29fa281238af9f8784c05320f537431d80893a Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 30 Mar 2024 00:27:22 +0800 Subject: [PATCH 081/189] Add grade to subject --- .../tutorpro/logic/commands/AddCommand.java | 7 ++-- .../model/person/student/Subject.java | 35 +++++++++++++------ .../tutorpro/model/util/SampleDataUtil.java | 14 ++++---- .../tutorpro/storage/JsonAdaptedSubject.java | 5 +-- .../invalidAndValidPersonAddressBook.json | 10 ++++-- .../invalidPersonAddressBook.json | 5 ++- .../typicalPersonsAddressBook.json | 6 ++-- .../logic/commands/CommandTestUtil.java | 6 ++-- .../model/person/student/StudentTest.java | 5 +-- .../model/person/student/SubjectTest.java | 16 ++++----- .../tutorpro/testutil/TypicalStudents.java | 6 ++-- 11 files changed, 70 insertions(+), 45 deletions(-) diff --git a/src/main/java/tutorpro/logic/commands/AddCommand.java b/src/main/java/tutorpro/logic/commands/AddCommand.java index ada75e90615..e09d929ef20 100644 --- a/src/main/java/tutorpro/logic/commands/AddCommand.java +++ b/src/main/java/tutorpro/logic/commands/AddCommand.java @@ -28,15 +28,16 @@ public class AddCommand extends Command { + PREFIX_PHONE + "PHONE " + PREFIX_EMAIL + "EMAIL " + PREFIX_ADDRESS + "ADDRESS " - + "[" + PREFIX_TAG + "TAG]...\n" + + PREFIX_SUBJECT + "SUBJECT-grade ..." + + PREFIX_TAG + "TAG...\n" + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "John Doe " + PREFIX_PHONE + "98765432 " + PREFIX_EMAIL + "johnd@example.com " + PREFIX_ADDRESS + "311, Clementi Ave 2, #02-25 " + PREFIX_LEVEL + "P5 " - + PREFIX_SUBJECT + "Math " - + PREFIX_SUBJECT + "English " + + PREFIX_SUBJECT + "Math-B " + + PREFIX_SUBJECT + "English-C " + PREFIX_TAG + "friends " + PREFIX_TAG + "owesMoney"; diff --git a/src/main/java/tutorpro/model/person/student/Subject.java b/src/main/java/tutorpro/model/person/student/Subject.java index 0de86dd6d3a..89eb0a499cd 100644 --- a/src/main/java/tutorpro/model/person/student/Subject.java +++ b/src/main/java/tutorpro/model/person/student/Subject.java @@ -11,20 +11,32 @@ public class Subject { public static final String MESSAGE_CONSTRAINTS = "Subjects can take any values, and it should not be blank"; - public static final String VALIDATION_REGEX = "[^\\s].*"; + // Possible grades: A, B2, C+, D- + public static final String VALIDATION_REGEX = "\\w+(?: \\w+)*-\\S+"; //"[^\\s].*"; private String value; + private String grade; /** - * Constructs a {@code Level} + * Constructs a {@code Subject} * - * @param subject A valid subject. + * @param subjectInput A valid subject. */ - public Subject(String subject) { - requireNonNull(subject); - AppUtil.checkArgument(isValidSubject(subject), MESSAGE_CONSTRAINTS); - this.value = subject; + public Subject(String subjectInput) { + requireNonNull(subjectInput); + AppUtil.checkArgument(isValidSubject(subjectInput), MESSAGE_CONSTRAINTS); + String[] outputs = subjectInput.split("-"); + this.value = outputs[0]; + this.grade = outputs[1]; + } + + public String getValue() { + return value; + } + + public String getGrade() { + return grade; } @Override @@ -35,16 +47,17 @@ public boolean equals(Object other) { return false; } Subject otherLevel = (Subject) other; - return value.equals(otherLevel.value); + return value.equals(otherLevel.value) + && grade.equals(otherLevel.grade); } @Override public String toString() { - return value; + return value + "-" + grade.toUpperCase(); } /** - * Returns true if the given String is a valid Level. + * Returns true if the given String is a valid Subject. */ public static boolean isValidSubject(String test) { return test.matches(VALIDATION_REGEX); @@ -52,6 +65,6 @@ public static boolean isValidSubject(String test) { @Override public int hashCode() { - return value.hashCode(); + return value.hashCode() + grade.hashCode(); } } diff --git a/src/main/java/tutorpro/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java index 1bb96ed841d..f5ace75571d 100644 --- a/src/main/java/tutorpro/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -22,7 +22,7 @@ public class SampleDataUtil { private static final Level[] LEVELS = {new Level("P1"), new Level("S4"), new Level("J1"), new Level("UNI")}; - private static final Subject subject = new Subject("Math"); + private static final Subject subject = new Subject("Math-C"); private static final Set SUBJECTS = new HashSet<>(); public static Student[] getSamplePersons() { SUBJECTS.add(subject); @@ -52,22 +52,22 @@ public static Student[] getSampleStudents() { return new Student[] { new Student(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), new Address("Blk 30 Geylang Street 29, #06-40"), - getTagSet(), new Level("P6"), getSubjectSet("Math")), + getTagSet(), new Level("P6"), getSubjectSet("Math-C")), new Student(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), - getTagSet(), new Level("S2"), getSubjectSet("Math", "English")), + getTagSet(), new Level("S2"), getSubjectSet("Math-B3", "English-B4")), new Student(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), - getTagSet(), new Level("J1"), getSubjectSet("Physics")), + getTagSet(), new Level("J1"), getSubjectSet("Physics-B")), new Student(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), - getTagSet(), new Level("UNI"), getSubjectSet("Chemistry", "Biology")), + getTagSet(), new Level("UNI"), getSubjectSet("Chemistry-B+", "Biology-B-")), new Student(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), - getTagSet(), new Level("K2"), getSubjectSet("Reading")), + getTagSet(), new Level("K2"), getSubjectSet("Reading-A")), new Student(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), new Address("Blk 45 Aljunied Street 85, #11-31"), - getTagSet(), new Level("OTHER"), getSubjectSet("Interview")) + getTagSet(), new Level("OTHER"), getSubjectSet("Interview-A")) }; } diff --git a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java index 92969281a82..a72dc75d74d 100644 --- a/src/main/java/tutorpro/storage/JsonAdaptedSubject.java +++ b/src/main/java/tutorpro/storage/JsonAdaptedSubject.java @@ -11,14 +11,15 @@ */ class JsonAdaptedSubject { + private final String subjectName; /** * Constructs a {@code JsonAdaptedSubject} with the given {@code subjectName}. */ @JsonCreator - public JsonAdaptedSubject(String subjectName) { - this.subjectName = subjectName; + public JsonAdaptedSubject(String subjectInput) { + this.subjectName = subjectInput; } /** diff --git a/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json b/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json index 6a4d2b7181c..7c5297804f1 100644 --- a/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json +++ b/src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json @@ -3,11 +3,17 @@ "name": "Valid Person", "phone": "9482424", "email": "hans@example.com", - "address": "4th street" + "address": "4th street", + "level" : "J2", + "subjects" : [ ], + "tags" : [ "Student" ] }, { "name": "Person With Invalid Phone Field", "phone": "948asdf2424", "email": "hans@example.com", - "address": "4th street" + "address": "4th street", + "level" : "J2", + "subjects" : [ ], + "tags" : [ "Student" ] } ] } diff --git a/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json b/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json index ccd21f7d1a9..990fd982573 100644 --- a/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json +++ b/src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json @@ -3,6 +3,9 @@ "name": "Person with invalid name field: Ha!ns Mu@ster", "phone": "9482424", "email": "hans@example.com", - "address": "4th street" + "address": "4th street", + "level" : "J2", + "subjects" : [ ], + "tags" : [ "Student" ] } ] } diff --git a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json index f6a1087a77b..4e23a821588 100644 --- a/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json +++ b/src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json @@ -6,7 +6,7 @@ "email" : "alice@example.com", "address" : "123, Jurong West Ave 6, #08-111", "level" : "P6", - "subjects" : [ "Math"], + "subjects" : [ "Math-C"], "tags" : [ "Student" ] }, { "name" : "Benson Meier", @@ -14,7 +14,7 @@ "email" : "johnd@example.com", "address" : "311, Clementi Ave 2, #02-25", "level" : "S2", - "subjects" : [ "Finance"], + "subjects" : [ "Finance-B+"], "tags" : [ "Student" ] }, { "name" : "Carl Kurz", @@ -30,7 +30,7 @@ "email" : "cornelia@example.com", "address" : "10th street", "level" : "K1", - "subjects" : [ "Reading"], + "subjects" : [ "Reading-A-"], "tags" : [ "Student" ] }, { "name" : "Elle Meyer", diff --git a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java index 36eea728c84..ffdfb4ced60 100644 --- a/src/test/java/tutorpro/logic/commands/CommandTestUtil.java +++ b/src/test/java/tutorpro/logic/commands/CommandTestUtil.java @@ -33,9 +33,9 @@ public class CommandTestUtil { public static final String VALID_ADDRESS_BOB = "Block 123, Bobby Street 3"; public static final String VALID_TAG_HUSBAND = "husband"; public static final String VALID_TAG_FRIEND = "friend"; - public static final String VALID_SUBJECT_MATH = "Math"; - public static final String VALID_SUBJECT_SCIENCE = "Science"; - public static final String VALID_SUBJECT_ENGLISH = "English"; + public static final String VALID_SUBJECT_MATH = "Math-B"; + public static final String VALID_SUBJECT_SCIENCE = "Science-A"; + public static final String VALID_SUBJECT_ENGLISH = "English-C"; public static final String VALID_LEVEL_P6 = "P6"; public static final String VALID_LEVEL_UNI = "UNI"; diff --git a/src/test/java/tutorpro/model/person/student/StudentTest.java b/src/test/java/tutorpro/model/person/student/StudentTest.java index 2ab0c8ce45c..2e5f87ecc7e 100644 --- a/src/test/java/tutorpro/model/person/student/StudentTest.java +++ b/src/test/java/tutorpro/model/person/student/StudentTest.java @@ -96,8 +96,9 @@ public void getCard() { @Test public void getSubjects() { - Set subjects = new HashSet<>(Arrays.asList(new Subject("Math"), new Subject("English"))); - Student student = new StudentBuilder().withSubjects("Math", "English").build(); + Set subjects = new HashSet<>(Arrays.asList(new Subject("Math-b"), + new Subject("English-c-"))); + Student student = new StudentBuilder().withSubjects("Math-b", "English-c-").build(); Assertions.assertEquals(subjects, student.getSubjects()); } } diff --git a/src/test/java/tutorpro/model/person/student/SubjectTest.java b/src/test/java/tutorpro/model/person/student/SubjectTest.java index 7d7a59b1e95..973d84fd4d9 100644 --- a/src/test/java/tutorpro/model/person/student/SubjectTest.java +++ b/src/test/java/tutorpro/model/person/student/SubjectTest.java @@ -30,16 +30,16 @@ public void isValidAddress() { assertFalse(Subject.isValidSubject(" ")); // spaces only // valid addresses - assertTrue(Subject.isValidSubject("Math")); - assertTrue(Subject.isValidSubject("-")); // one character + assertTrue(Subject.isValidSubject("Math-B")); + assertTrue(Subject.isValidSubject("b-c")); // one character } @Test public void equals() { - Subject subject = new Subject("Valid Subject"); + Subject subject = new Subject("Valid Subject-A"); // same values -> returns true - assertTrue(subject.equals(new Subject("Valid Subject"))); + assertTrue(subject.equals(new Subject("Valid Subject-A"))); // same object -> returns true assertTrue(subject.equals(subject)); @@ -51,15 +51,15 @@ public void equals() { assertFalse(subject.equals(5.0f)); // different values -> returns false - assertFalse(subject.equals(new Subject("Other Valid Subject"))); + assertFalse(subject.equals(new Subject("Other Valid Subject-A"))); } @Test public void testToString() { - Subject subject = new Subject("Valid Subject"); + Subject subject = new Subject("Valid Subject-A"); // same values -> returns true - assertTrue(subject.toString().equals(new Subject("Valid Subject").toString())); + assertTrue(subject.toString().equals(new Subject("Valid Subject-A").toString())); // same object -> returns true assertTrue(subject.toString().equals(subject.toString())); @@ -71,6 +71,6 @@ public void testToString() { assertFalse(subject.toString().equals(5.0f)); // different values -> returns false - assertFalse(subject.toString().equals(new Subject("Other Valid Subject").toString())); + assertFalse(subject.toString().equals(new Subject("Other Valid Subject-A").toString())); } } diff --git a/src/test/java/tutorpro/testutil/TypicalStudents.java b/src/test/java/tutorpro/testutil/TypicalStudents.java index bc2c47822dd..f1e350723b9 100644 --- a/src/test/java/tutorpro/testutil/TypicalStudents.java +++ b/src/test/java/tutorpro/testutil/TypicalStudents.java @@ -28,17 +28,17 @@ public class TypicalStudents { public static final Student ALICE = new StudentBuilder().withName("Alice Pauline") .withAddress("123, Jurong West Ave 6, #08-111").withEmail("alice@example.com") .withPhone("94351253").withLevel("P6") - .withSubjects("Math").build(); + .withSubjects("Math-C").build(); public static final Student BENSON = new StudentBuilder().withName("Benson Meier") .withAddress("311, Clementi Ave 2, #02-25") .withEmail("johnd@example.com").withPhone("98765432") - .withLevel("S2").withSubjects("Finance") + .withLevel("S2").withSubjects("Finance-B+") .build(); public static final Student CARL = new StudentBuilder().withName("Carl Kurz").withPhone("95352563") .withEmail("heinz@example.com").withAddress("wall street").build(); public static final Student DANIEL = new StudentBuilder().withName("Daniel Meier").withPhone("87652533") .withEmail("cornelia@example.com").withAddress("10th street").withLevel("K1") - .withSubjects("Reading").build(); + .withSubjects("Reading-A-").build(); public static final Student ELLE = new StudentBuilder().withName("Elle Meyer").withPhone("9482224") .withEmail("werner@example.com").withAddress("michegan ave").withLevel("UNI").build(); public static final Student FIONA = new StudentBuilder().withName("Fiona Kunz").withPhone("9482427") From d73a50868070cad9ecb6aeb0b36d387bcc17b872 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 30 Mar 2024 00:38:40 +0800 Subject: [PATCH 082/189] AddCommand.java and EditCommand.java: Update command usage message --- src/main/java/tutorpro/logic/commands/AddCommand.java | 1 + src/main/java/tutorpro/logic/commands/EditCommand.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/tutorpro/logic/commands/AddCommand.java b/src/main/java/tutorpro/logic/commands/AddCommand.java index e09d929ef20..58ca0f15053 100644 --- a/src/main/java/tutorpro/logic/commands/AddCommand.java +++ b/src/main/java/tutorpro/logic/commands/AddCommand.java @@ -28,6 +28,7 @@ public class AddCommand extends Command { + PREFIX_PHONE + "PHONE " + PREFIX_EMAIL + "EMAIL " + PREFIX_ADDRESS + "ADDRESS " + + PREFIX_LEVEL + "LEVEL " + PREFIX_SUBJECT + "SUBJECT-grade ..." + PREFIX_TAG + "TAG...\n" + "Example: " + COMMAND_WORD + " " diff --git a/src/main/java/tutorpro/logic/commands/EditCommand.java b/src/main/java/tutorpro/logic/commands/EditCommand.java index 302bf6b6d8d..3a66446d606 100644 --- a/src/main/java/tutorpro/logic/commands/EditCommand.java +++ b/src/main/java/tutorpro/logic/commands/EditCommand.java @@ -47,8 +47,8 @@ public class EditCommand extends Command { + "[" + PREFIX_EMAIL + "EMAIL] " + "[" + PREFIX_ADDRESS + "ADDRESS] " + "[" + PREFIX_LEVEL + "EDU LEVEL] " - + "[" + PREFIX_SUBJECT + "SUBJECT(S)]... " - + "[" + PREFIX_TAG + "TAG]...\n" + + "[" + PREFIX_SUBJECT + "SUBJECT-grade ...] " + + "[" + PREFIX_TAG + "TAG ...]\n" + "Example: To edit education level of a student,\n" + COMMAND_WORD + " 1 " + PREFIX_LEVEL + " JC2 "; From a626a47192fa7ba5f06ef9fb5c8ebfefe27b9394 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Sat, 30 Mar 2024 00:46:57 +0800 Subject: [PATCH 083/189] build.gradle: Enable assertions --- build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle b/build.gradle index 4c41ef54c39..eeee407013b 100644 --- a/build.gradle +++ b/build.gradle @@ -6,6 +6,10 @@ plugins { id 'jacoco' } +run { + enableAssertions = true +} + mainClassName = 'tutorpro.Main' sourceCompatibility = JavaVersion.VERSION_11 From 2fa1993b141ff7c98768996afd7d7a8fb5022cb6 Mon Sep 17 00:00:00 2001 From: TarinPairor <111269625+TarinPairor@users.noreply.github.com> Date: Sat, 30 Mar 2024 01:07:06 +0800 Subject: [PATCH 084/189] Add Target User Profiles --- docs/DeveloperGuide.md | 274 ++++++++++-------- .../java/tutorpro/commons/util/JsonUtil.java | 1 - 2 files changed, 149 insertions(+), 126 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6d3e301b1ec..f33025ec6c8 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -2,63 +2,66 @@ layout: page title: Developer Guide --- -* Table of Contents -{:toc} --------------------------------------------------------------------------------------------------------------------- +- Table of Contents + {:toc} + +--- ## **Acknowledgements** -* {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +- {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} --------------------------------------------------------------------------------------------------------------------- +--- ## **Setting up, getting started** Refer to the guide [_Setting up and getting started_](SettingUp.md). --------------------------------------------------------------------------------------------------------------------- +--- ## **Design**
      :bulb: **Tip:** The `.puml` files used to create diagrams in this document `docs/diagrams` folder. Refer to the [_PlantUML Tutorial_ at se-edu/guides](https://se-education.org/guides/tutorials/plantUml.html) to learn how to create and edit diagrams. +
      ### Architecture -The ***Architecture Diagram*** given above explains the high-level design of the App. +The **_Architecture Diagram_** given above explains the high-level design of the App. Given below is a quick overview of main components and how they interact with each other. **Main components of the architecture** **`Main`** (consisting of classes [`Main`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/Main.java) and [`MainApp`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/MainApp.java)) is in charge of the app launch and shut down. -* At app launch, it initializes the other components in the correct sequence, and connects them up with each other. -* At shut down, it shuts down the other components and invokes cleanup methods where necessary. + +- At app launch, it initializes the other components in the correct sequence, and connects them up with each other. +- At shut down, it shuts down the other components and invokes cleanup methods where necessary. The bulk of the app's work is done by the following four components: -* [**`UI`**](#ui-component): The UI of the App. -* [**`Logic`**](#logic-component): The command executor. -* [**`Model`**](#model-component): Holds the data of the App in memory. -* [**`Storage`**](#storage-component): Reads data from, and writes data to, the hard disk. +- [**`UI`**](#ui-component): The UI of the App. +- [**`Logic`**](#logic-component): The command executor. +- [**`Model`**](#model-component): Holds the data of the App in memory. +- [**`Storage`**](#storage-component): Reads data from, and writes data to, the hard disk. [**`Commons`**](#common-classes) represents a collection of classes used by multiple other components. **How the architecture components interact with each other** -The *Sequence Diagram* below shows how the components interact with each other for the scenario where the user issues the command `delete 1`. +The _Sequence Diagram_ below shows how the components interact with each other for the scenario where the user issues the command `delete 1`. Each of the four main components (also shown in the diagram above), -* defines its *API* in an `interface` with the same name as the Component. -* implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point. +- defines its _API_ in an `interface` with the same name as the Component. +- implements its functionality using a concrete `{Component Name}Manager` class (which follows the corresponding API `interface` mentioned in the previous point. For example, the `Logic` component defines its API in the `Logic.java` interface and implements its functionality using the `LogicManager.java` class which follows the `Logic` interface. Other components interact with a given component through its interface rather than the concrete class (reason: to prevent outside component's being coupled to the implementation of a component), as illustrated in the (partial) class diagram below. @@ -78,10 +81,10 @@ The `UI` component uses the JavaFx UI framework. The layout of these UI parts ar The `UI` component, -* executes user commands using the `Logic` component. -* listens for changes to `Model` data so that the UI can be updated with the modified data. -* keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands. -* depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`. +- executes user commands using the `Logic` component. +- listens for changes to `Model` data so that the UI can be updated with the modified data. +- keeps a reference to the `Logic` component, because the `UI` relies on the `Logic` to execute commands. +- depends on some classes in the `Model` component, as it displays `Person` object residing in the `Model`. ### Logic component @@ -111,21 +114,22 @@ Here are the other classes in `Logic` (omitted from the class diagram above) tha How the parsing works: -* When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object. -* All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing. + +- When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object. +- All `XYZCommandParser` classes (e.g., `AddCommandParser`, `DeleteCommandParser`, ...) inherit from the `Parser` interface so that they can be treated similarly where possible e.g, during testing. ### Model component + **API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) - The `Model` component, -* stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object). -* stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. -* stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. -* does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) +- stores the address book data i.e., all `Person` objects (which are contained in a `UniquePersonList` object). +- stores the currently 'selected' `Person` objects (e.g., results of a search query) as a separate _filtered_ list which is exposed to outsiders as an unmodifiable `ObservableList` that can be 'observed' e.g. the UI can be bound to this list so that the UI automatically updates when the data in the list change. +- stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. +- does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components)
      :information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
      @@ -133,7 +137,6 @@ The `Model` component,
      - ### Storage component **API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java) @@ -141,15 +144,16 @@ The `Model` component, The `Storage` component, -* can save both address book data and user preference data in JSON format, and read them back into corresponding objects. -* inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only the functionality of only one is needed). -* depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects that belong to the `Model`) + +- can save both address book data and user preference data in JSON format, and read them back into corresponding objects. +- inherits from both `AddressBookStorage` and `UserPrefStorage`, which means it can be treated as either one (if only the functionality of only one is needed). +- depends on some classes in the `Model` component (because the `Storage` component's job is to save/retrieve objects that belong to the `Model`) ### Common classes Classes used by multiple components are in the `seedu.addressbook.commons` package. --------------------------------------------------------------------------------------------------------------------- +--- ## **Implementation** @@ -161,9 +165,9 @@ This section describes some noteworthy details on how certain features are imple The proposed undo/redo mechanism is facilitated by `VersionedAddressBook`. It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`. Additionally, it implements the following operations: -* `VersionedAddressBook#commit()` — Saves the current address book state in its history. -* `VersionedAddressBook#undo()` — Restores the previous address book state from its history. -* `VersionedAddressBook#redo()` — Restores a previously undone address book state from its history. +- `VersionedAddressBook#commit()` — Saves the current address book state in its history. +- `VersionedAddressBook#undo()` — Restores the previous address book state from its history. +- `VersionedAddressBook#redo()` — Restores a previously undone address book state from its history. These operations are exposed in the `Model` interface as `Model#commitAddressBook()`, `Model#undoAddressBook()` and `Model#redoAddressBook()` respectively. @@ -228,14 +232,15 @@ The following activity diagram summarizes what happens when a user executes a ne **Aspect: How undo & redo executes:** -* **Alternative 1 (current choice):** Saves the entire address book. - * Pros: Easy to implement. - * Cons: May have performance issues in terms of memory usage. +- **Alternative 1 (current choice):** Saves the entire address book. + + - Pros: Easy to implement. + - Cons: May have performance issues in terms of memory usage. -* **Alternative 2:** Individual command knows how to undo/redo by +- **Alternative 2:** Individual command knows how to undo/redo by itself. - * Pros: Will use less memory (e.g. for `delete`, just save the person being deleted). - * Cons: We must ensure that the implementation of each individual command are correct. + - Pros: Will use less memory (e.g. for `delete`, just save the person being deleted). + - Cons: We must ensure that the implementation of each individual command are correct. _{more aspects and alternatives to be added}_ @@ -243,18 +248,17 @@ _{more aspects and alternatives to be added}_ _{Explain here how the data archiving feature will be implemented}_ - --------------------------------------------------------------------------------------------------------------------- +--- ## **Documentation, logging, testing, configuration, dev-ops** -* [Documentation guide](Documentation.md) -* [Testing guide](Testing.md) -* [Logging guide](Logging.md) -* [Configuration guide](Configuration.md) -* [DevOps guide](DevOps.md) +- [Documentation guide](Documentation.md) +- [Testing guide](Testing.md) +- [Logging guide](Logging.md) +- [Configuration guide](Configuration.md) +- [DevOps guide](DevOps.md) --------------------------------------------------------------------------------------------------------------------- +--- ## **Appendix: Requirements** @@ -262,27 +266,30 @@ _{Explain here how the data archiving feature will be implemented}_ **Target user profile**: -* Private tutors who prefer CLI over GUI -* Private tutors who go to tutees' houses and teach one-to-one -* Private tutors who teach multiple subjects -* Private tutors who teach multiple levels or a specific level, e.g. primary school students +- Private tutors who prefer CLI over GUI +- Private tutors who go to tutees' houses and teach one-to-one +- Private tutors who teach multiple subjects +- Private tutors who teach multiple levels or a specific level, e.g. primary school students +- Private tutors who need to track the progress of each student +- Private tutors who need to keep track of lesson plans +- Private tutors who need to manage their schedule and appointments +- Private tutors who need to manage a list of student contacts +- Private tutors who need to manage a list of parent contacts **Value proposition**: Allows for easy track and management of tutees, e.g. grades, addresses, deadlines - ### User stories Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` | Priority | As a …​ | I want to …​ | So that I can…​ | -|----------|---------------|---------------------------------------------------------|----------------------------------------------------| +| -------- | ------------- | ------------------------------------------------------- | -------------------------------------------------- | | `* * *` | private tutor | track my tutee's grades, addresses and deadlines easily | efficiently manage my tutoring sessions | | `* * *` | private tutor | input new tutees' progress seamlessly | add new tutees' information | | `* * *` | private tutor | delete previously created inputs | remove information that I no longer need | | `* * *` | private tutor | track my project tasks and timelines seamlessly | effectively manage my workflow and deliver on time | | `* *` | private tutor | set reminders for important deadlines and milestones | never miss a crucial event | - ### Use cases (For all use cases below, the **System** is `TutorPro` and the **Actor** is the `user`, unless specified otherwise) @@ -294,15 +301,15 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. The user requests to add a specific student 2. TutorPro adds the student - Use case ends. + Use case ends. **Extensions** -* 2a. The student has the same details as someone already in the list. - * 2a1. TutorPro shows an error message. +- 2a. The student has the same details as someone already in the list. - Use case ends. + - 2a1. TutorPro shows an error message. + Use case ends. **Use case: Delete a student** @@ -317,17 +324,19 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The list is empty. +- 2a. The list is empty. Use case ends. -* 3a. The given index is invalid. - * 3a1. TutorPro shows an error message. +- 3a. The given index is invalid. + + - 3a1. TutorPro shows an error message. - Use case resumes at step 2. + Use case resumes at step 2. + +- 3b. The given student does not exist in the list. -* 3b. The given student does not exist in the list. - * 3b1. TutorPro displays an error message. + - 3b1. TutorPro displays an error message. Use case resumes at step 2. @@ -342,10 +351,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The specified student does not exist in the list. - * 2a1. TutorPro shows an error message. +- 2a. The specified student does not exist in the list. + + - 2a1. TutorPro shows an error message. - Use case ends. + Use case ends. **Use case: Update a student's progress/particulars** @@ -359,20 +369,23 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The specified student does not exist in the list. - * 2a1. TutorPro shows an error message. +- 2a. The specified student does not exist in the list. + + - 2a1. TutorPro shows an error message. - Use case ends. + Use case ends. -* 2b. The given category is not one of the available categories. - * 2b1. TutorPro shows an error message. +- 2b. The given category is not one of the available categories. - Use case ends. + - 2b1. TutorPro shows an error message. -* 2c. Given new information to update does not match the input format for the particular category. - * 2c1. TutorPro shows an error message. + Use case ends. - Use case ends. +- 2c. Given new information to update does not match the input format for the particular category. + + - 2c1. TutorPro shows an error message. + + Use case ends. **Use case: Setting a reminder** @@ -386,11 +399,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The given date or time is in an incorrect format. - * 2a1. TutorPro shows an error message. +- 2a. The given date or time is in an incorrect format. - Use case ends. + - 2a1. TutorPro shows an error message. + Use case ends. **Use case: Create a tag** @@ -404,11 +417,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The specified tag to create already exists. - * 2a1. TutorPro shows an error message. +- 2a. The specified tag to create already exists. - Use case ends. + - 2a1. TutorPro shows an error message. + Use case ends. **Use case: Tag a student** @@ -422,16 +435,17 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The specified student does not exist in the list. - * 2a1. TutorPro displays an error message. +- 2a. The specified student does not exist in the list. + + - 2a1. TutorPro displays an error message. - Use case ends. + Use case ends. -* 2b. The specified tag does not exist. - * 2b1. TutorPro displays an error message. +- 2b. The specified tag does not exist. - Use case ends. + - 2b1. TutorPro displays an error message. + Use case ends. **Use case: Display the user's schedule** @@ -444,11 +458,11 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. The user has nothing in their schedule. - * 2a1. TutorPro shows an error message. +- 2a. The user has nothing in their schedule. - Use case ends. + - 2a1. TutorPro shows an error message. + Use case ends. **Use case: Set a recurring event** @@ -462,68 +476,78 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli **Extensions** -* 2a. Given day(s) is/are in the wrong input format. - * 2a1. TutorPro shows an error message. +- 2a. Given day(s) is/are in the wrong input format. - Use case ends. + - 2a1. TutorPro shows an error message. -* 2b. Given student does not exist in the list. - * 2b1. TutorPro shows an error message. + Use case ends. + +- 2b. Given student does not exist in the list. - Use case ends. + - 2b1. TutorPro shows an error message. + Use case ends. ### Non-Functional Requirements 1. Security: -* The application must ensure secure storage and transmission of sensitive student data, such as grades and contact information, adhering to industry-standard _encryption_ protocols. -* Access to student records must be restricted to authorized users only, with role-based access control mechanisms in place. + +- The application must ensure secure storage and transmission of sensitive student data, such as grades and contact information, adhering to industry-standard _encryption_ protocols. +- Access to student records must be restricted to authorized users only, with role-based access control mechanisms in place. 2. Privacy: -* The application should comply with relevant privacy regulations (e.g., GDPR, HIPAA) to safeguard students' personal information. -* Student data should only be accessible to the student, their assigned tutor, and authorized administrative staff. + +- The application should comply with relevant privacy regulations (e.g., GDPR, HIPAA) to safeguard students' personal information. +- Student data should only be accessible to the student, their assigned tutor, and authorized administrative staff. 3. Scalability: -* The system must be able to handle a growing number of students and tutors without a significant decrease in performance. -* It should support concurrent access by multiple users without degradation in response time or system stability. + +- The system must be able to handle a growing number of students and tutors without a significant decrease in performance. +- It should support concurrent access by multiple users without degradation in response time or system stability. 4. Reliability: -* The application should have minimal downtime and be available for use during critical academic periods, such as exam periods or assignment deadlines. -* It should have mechanisms in place to recover from failures gracefully, ensuring _data integrity_ and continuity of service. + +- The application should have minimal downtime and be available for use during critical academic periods, such as exam periods or assignment deadlines. +- It should have mechanisms in place to recover from failures gracefully, ensuring _data integrity_ and continuity of service. 5. Interoperability: -* The application should be compatible with various devices and _operating systems_ commonly used by both tutors and students, such as laptops, tablets, and smartphones. -* It should support integration with other academic systems or tools, such as learning management systems or scheduling software. + +- The application should be compatible with various devices and _operating systems_ commonly used by both tutors and students, such as laptops, tablets, and smartphones. +- It should support integration with other academic systems or tools, such as learning management systems or scheduling software. 6. Usability: -* The application interface should be intuitive and user-friendly, requiring minimal training for tutors and students to navigate and use effectively. -* It should provide clear instructions and guidance for inputting and accessing academic information and contact details. + +- The application interface should be intuitive and user-friendly, requiring minimal training for tutors and students to navigate and use effectively. +- It should provide clear instructions and guidance for inputting and accessing academic information and contact details. 7. Performance: -* The system should respond promptly to user actions, such as loading student profiles, updating grades, or scheduling tutoring sessions, aiming for sub-second response times. -* It should efficiently manage database queries and data retrieval to prevent delays in accessing information. + +- The system should respond promptly to user actions, such as loading student profiles, updating grades, or scheduling tutoring sessions, aiming for sub-second response times. +- It should efficiently manage database queries and data retrieval to prevent delays in accessing information. 8. Maintainability: -* The application codebase should be well-documented and _modular_, facilitating ease of maintenance and future enhancements. -* It should support version control and have mechanisms for bug tracking and resolution. + +- The application codebase should be well-documented and _modular_, facilitating ease of maintenance and future enhancements. +- It should support version control and have mechanisms for bug tracking and resolution. 9. Accessibility: -* The application interface should be accessible to users with disabilities, following web accessibility guidelines such as WCAG. -* It should support alternative input methods, screen readers, and keyboard navigation for users with visual or motor impairments. + +- The application interface should be accessible to users with disabilities, following web accessibility guidelines such as WCAG. +- It should support alternative input methods, screen readers, and keyboard navigation for users with visual or motor impairments. 10. Backup and Disaster Recovery: -* Regular backups of student data should be performed, with procedures in place for data restoration in case of accidental deletion or system failure. -* The application should have disaster recovery measures to ensure minimal data loss and service disruption in the event of server or infrastructure failures. +- Regular backups of student data should be performed, with procedures in place for data restoration in case of accidental deletion or system failure. +- The application should have disaster recovery measures to ensure minimal data loss and service disruption in the event of server or infrastructure failures. ### Glossary -* **Encryption** - The process of converting information or data into a code, especially to prevent unauthorized access. -* **Data integrity** - The accuracy, completeness, and quality of data as it’s maintained over time and across formats. -* **Operating system** - Mainstream operating systems are: Windows, Linux, Unix, MacOS -* **Modular** - By modularizing a codebase you will define more clear boundaries between different clusters of objects that make up a screen of feature. +- **Encryption** - The process of converting information or data into a code, especially to prevent unauthorized access. +- **Data integrity** - The accuracy, completeness, and quality of data as it’s maintained over time and across formats. +- **Operating system** - Mainstream operating systems are: Windows, Linux, Unix, MacOS +- **Modular** - By modularizing a codebase you will define more clear boundaries between different clusters of objects that make up a screen of feature. --------------------------------------------------------------------------------------------------------------------- +--- ## **Appendix: Instructions for manual testing** @@ -547,7 +571,7 @@ testers are expected to do more *exploratory* testing. 1. Resize the window to an optimum size. Move the window to a different location. Close the window. 1. Re-launch the app by double-clicking the jar file.
      - Expected: The most recent window size and location is retained. + Expected: The most recent window size and location is retained. 1. _{ more test cases …​ }_ diff --git a/src/main/java/tutorpro/commons/util/JsonUtil.java b/src/main/java/tutorpro/commons/util/JsonUtil.java index 085d247f787..348b6d0d5a7 100644 --- a/src/main/java/tutorpro/commons/util/JsonUtil.java +++ b/src/main/java/tutorpro/commons/util/JsonUtil.java @@ -91,7 +91,6 @@ public static void saveJsonFile(T jsonFile, Path filePath) throws IOExceptio serializeObjectToJsonFile(filePath, jsonFile); } - /** * Converts a given string representation of a JSON data to instance of a class * @param The generic type to create an instance of From 4b18623c1b215aa54cda0a5936815fd18ab569d8 Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Sun, 31 Mar 2024 17:18:15 +0800 Subject: [PATCH 085/189] Refactor parent --- .../java/tutorpro/model/person/{parent => student}/Parent.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/java/tutorpro/model/person/{parent => student}/Parent.java (100%) diff --git a/src/main/java/tutorpro/model/person/parent/Parent.java b/src/main/java/tutorpro/model/person/student/Parent.java similarity index 100% rename from src/main/java/tutorpro/model/person/parent/Parent.java rename to src/main/java/tutorpro/model/person/student/Parent.java From 8f301db4e4f42fc7e00d530a87886dac092bd26c Mon Sep 17 00:00:00 2001 From: Wyrkx <107403096+Wyrkx@users.noreply.github.com> Date: Tue, 2 Apr 2024 04:24:46 +0800 Subject: [PATCH 086/189] Fix parent and remove dependencies on Student --- src/main/java/tutorpro/logic/Logic.java | 4 +- .../java/tutorpro/logic/LogicManager.java | 4 +- .../tutorpro/logic/commands/AddCommand.java | 2 + .../logic/commands/DeleteCommand.java | 6 +-- .../tutorpro/logic/commands/EditCommand.java | 32 +++++++++++---- src/main/java/tutorpro/model/AddressBook.java | 19 +++++---- src/main/java/tutorpro/model/Model.java | 16 ++++---- .../java/tutorpro/model/ModelManager.java | 18 ++++---- .../tutorpro/model/ReadOnlyAddressBook.java | 5 +-- .../person/NameContainsKeywordsPredicate.java | 5 +-- .../java/tutorpro/model/person/Phone.java | 5 +-- .../model/person/UniquePersonList.java | 24 +++++------ .../tutorpro/model/person/student/Parent.java | 27 +++++++----- .../model/person/student/Student.java | 10 +++-- .../tutorpro/model/util/SampleDataUtil.java | 41 ++++++++----------- .../storage/JsonSerializableAddressBook.java | 15 +++---- src/main/java/tutorpro/ui/ParentCard.java | 8 ++-- .../java/tutorpro/ui/PersonListPanel.java | 10 ++--- src/main/resources/view/DarkTheme.css | 14 +++++++ src/main/resources/view/ParentListCard.fxml | 3 +- .../invalidPersonAddressBook.json | 11 +++-- .../duplicatePersonAddressBook.json | 29 ++++++------- .../invalidPersonAddressBook.json | 13 +++--- .../typicalPersonsAddressBook.json | 15 ++++--- .../commands/AddCommandIntegrationTest.java | 2 +- .../logic/commands/AddCommandTest.java | 25 +++++------ .../logic/commands/DeleteCommandTest.java | 9 ++-- .../logic/commands/EditCommandTest.java | 10 ++--- .../tutorpro/logic/parser/ParserUtilTest.java | 2 +- .../java/tutorpro/model/AddressBookTest.java | 11 ++--- .../NameContainsKeywordsPredicateTest.java | 4 +- .../java/tutorpro/model/person/PhoneTest.java | 10 ++--- .../model/person/UniquePersonListTest.java | 6 +-- .../model/person/parent/ParentTest.java | 1 + .../java/tutorpro/testutil/ParentBuilder.java | 4 +- .../tutorpro/testutil/TypicalParents.java | 2 +- .../tutorpro/testutil/TypicalPersons.java | 10 ++--- .../tutorpro/testutil/TypicalStudents.java | 10 ++--- 38 files changed, 241 insertions(+), 201 deletions(-) diff --git a/src/main/java/tutorpro/logic/Logic.java b/src/main/java/tutorpro/logic/Logic.java index 1a749fb5dd6..cbe46395fad 100644 --- a/src/main/java/tutorpro/logic/Logic.java +++ b/src/main/java/tutorpro/logic/Logic.java @@ -9,7 +9,7 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; /** * API of the Logic component @@ -32,7 +32,7 @@ public interface Logic { ReadOnlyAddressBook getAddressBook(); /** Returns an unmodifiable view of the filtered list of persons */ - ObservableList getFilteredPersonList(); + ObservableList getFilteredPersonList(); /** * Returns the user prefs' address book file path. diff --git a/src/main/java/tutorpro/logic/LogicManager.java b/src/main/java/tutorpro/logic/LogicManager.java index 3a8a749a23d..121d322cc36 100644 --- a/src/main/java/tutorpro/logic/LogicManager.java +++ b/src/main/java/tutorpro/logic/LogicManager.java @@ -15,7 +15,7 @@ import tutorpro.logic.parser.exceptions.ParseException; import tutorpro.model.Model; import tutorpro.model.ReadOnlyAddressBook; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; import tutorpro.storage.Storage; /** @@ -67,7 +67,7 @@ public ReadOnlyAddressBook getAddressBook() { } @Override - public ObservableList getFilteredPersonList() { + public ObservableList getFilteredPersonList() { return model.getFilteredPersonList(); } diff --git a/src/main/java/tutorpro/logic/commands/AddCommand.java b/src/main/java/tutorpro/logic/commands/AddCommand.java index ada75e90615..2bff90833cd 100644 --- a/src/main/java/tutorpro/logic/commands/AddCommand.java +++ b/src/main/java/tutorpro/logic/commands/AddCommand.java @@ -28,6 +28,8 @@ public class AddCommand extends Command { + PREFIX_PHONE + "PHONE " + PREFIX_EMAIL + "EMAIL " + PREFIX_ADDRESS + "ADDRESS " + + PREFIX_LEVEL + "LVL " + + "[" + PREFIX_SUBJECT + "SUBJECT]... " + "[" + PREFIX_TAG + "TAG]...\n" + "Example: " + COMMAND_WORD + " " + PREFIX_NAME + "John Doe " diff --git a/src/main/java/tutorpro/logic/commands/DeleteCommand.java b/src/main/java/tutorpro/logic/commands/DeleteCommand.java index d451560cd74..f371f811980 100644 --- a/src/main/java/tutorpro/logic/commands/DeleteCommand.java +++ b/src/main/java/tutorpro/logic/commands/DeleteCommand.java @@ -9,7 +9,7 @@ import tutorpro.logic.Messages; import tutorpro.logic.commands.exceptions.CommandException; import tutorpro.model.Model; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; /** * Deletes a person identified using it's displayed index from the address book. @@ -34,13 +34,13 @@ public DeleteCommand(Index targetIndex) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredPersonList(); if (targetIndex.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - Student personToDelete = lastShownList.get(targetIndex.getZeroBased()); + Person personToDelete = lastShownList.get(targetIndex.getZeroBased()); model.deletePerson(personToDelete); return new CommandResult(String.format(MESSAGE_DELETE_PERSON_SUCCESS, Messages.format(personToDelete))); } diff --git a/src/main/java/tutorpro/logic/commands/EditCommand.java b/src/main/java/tutorpro/logic/commands/EditCommand.java index 302bf6b6d8d..c5ac1e5a31d 100644 --- a/src/main/java/tutorpro/logic/commands/EditCommand.java +++ b/src/main/java/tutorpro/logic/commands/EditCommand.java @@ -25,6 +25,7 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; +import tutorpro.model.person.Person; import tutorpro.model.person.Phone; import tutorpro.model.person.student.Level; import tutorpro.model.person.student.Student; @@ -75,18 +76,19 @@ public EditCommand(Index index, EditPersonDescriptor editPersonDescriptor) { @Override public CommandResult execute(Model model) throws CommandException, ClassCastException { requireNonNull(model); - List lastShownList = model.getFilteredPersonList(); + List lastShownList = model.getFilteredPersonList(); if (index.getZeroBased() >= lastShownList.size()) { throw new CommandException(Messages.MESSAGE_INVALID_PERSON_DISPLAYED_INDEX); } - Student personToEdit = lastShownList.get(index.getZeroBased()); - if (!(personToEdit instanceof Student)) { - throw new ClassCastException("class tutorpro.model.person.Person cannot be cast to class " - + "tutorpro.model.person.student.Student"); + Person personToEdit = lastShownList.get(index.getZeroBased()); + Person editedPerson; + if (personToEdit instanceof Student) { + editedPerson = createEditedStudent((Student) personToEdit, editPersonDescriptor); + } else { + editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); } - Student editedPerson = createEditedPerson(personToEdit, editPersonDescriptor); if (!personToEdit.isSamePerson(editedPerson) && model.hasPerson(editedPerson)) { throw new CommandException(MESSAGE_DUPLICATE_PERSON); @@ -97,11 +99,27 @@ public CommandResult execute(Model model) throws CommandException, ClassCastExce return new CommandResult(String.format(MESSAGE_EDIT_PERSON_SUCCESS, Messages.format(editedPerson))); } + /** + * Creates and returns a {@code Person} with the details of {@code personToEdit} + * edited with {@code editPersonDescriptor}. + */ + private static Person createEditedPerson(Person personToEdit, EditPersonDescriptor editPersonDescriptor) { + assert personToEdit != null; + + Name updatedName = editPersonDescriptor.getName().orElse(personToEdit.getName()); + Phone updatedPhone = editPersonDescriptor.getPhone().orElse(personToEdit.getPhone()); + Email updatedEmail = editPersonDescriptor.getEmail().orElse(personToEdit.getEmail()); + Address updatedAddress = editPersonDescriptor.getAddress().orElse(personToEdit.getAddress()); + Set updatedTags = editPersonDescriptor.getTags().orElse(personToEdit.getTags()); + + return new Person(updatedName, updatedPhone, updatedEmail, updatedAddress, updatedTags); + } + /** * Creates and returns a {@code Student} with the details of {@code studentToEdit} * edited with {@code editPersonDescriptor}. */ - private static Student createEditedPerson(Student studentToEdit, EditPersonDescriptor editPersonDescriptor) { + private static Student createEditedStudent(Student studentToEdit, EditPersonDescriptor editPersonDescriptor) { assert studentToEdit != null; Name updatedName = editPersonDescriptor.getName().orElse(studentToEdit.getName()); diff --git a/src/main/java/tutorpro/model/AddressBook.java b/src/main/java/tutorpro/model/AddressBook.java index 2701d9fa729..16052f189e2 100644 --- a/src/main/java/tutorpro/model/AddressBook.java +++ b/src/main/java/tutorpro/model/AddressBook.java @@ -6,8 +6,9 @@ import javafx.collections.ObservableList; import tutorpro.commons.util.ToStringBuilder; +import tutorpro.model.person.Person; import tutorpro.model.person.UniquePersonList; -import tutorpro.model.person.student.Student; +import tutorpro.model.reminder.Calendar; /** * Wraps all data at the address-book level @@ -16,6 +17,7 @@ public class AddressBook implements ReadOnlyAddressBook { private final UniquePersonList persons; + private final Calendar calendar; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication @@ -26,6 +28,7 @@ public class AddressBook implements ReadOnlyAddressBook { */ { persons = new UniquePersonList(); + calendar = new Calendar(); } public AddressBook() {} @@ -44,7 +47,7 @@ public AddressBook(ReadOnlyAddressBook toBeCopied) { * Replaces the contents of the person list with {@code persons}. * {@code persons} must not contain duplicate persons. */ - public void setPersons(List persons) { + public void setPersons(List persons) { this.persons.setPersons(persons); } @@ -54,7 +57,7 @@ public void setPersons(List persons) { public void resetData(ReadOnlyAddressBook newData) { requireNonNull(newData); - setPersons(newData.getStudentList()); + setPersons(newData.getPersonList()); } //// person-level operations @@ -62,7 +65,7 @@ public void resetData(ReadOnlyAddressBook newData) { /** * Returns true if a person with the same identity as {@code person} exists in the address book. */ - public boolean hasPerson(Student person) { + public boolean hasPerson(Person person) { requireNonNull(person); return persons.contains(person); } @@ -71,7 +74,7 @@ public boolean hasPerson(Student person) { * Adds a person to the address book. * The person must not already exist in the address book. */ - public void addPerson(Student p) { + public void addPerson(Person p) { persons.add(p); } @@ -81,7 +84,7 @@ public void addPerson(Student p) { * The person identity of {@code editedPerson} must not be the same as another * existing person in the address book. */ - public void setPerson(Student target, Student editedPerson) { + public void setPerson(Person target, Person editedPerson) { requireNonNull(editedPerson); persons.setPerson(target, editedPerson); @@ -91,7 +94,7 @@ public void setPerson(Student target, Student editedPerson) { * Removes {@code key} from this {@code AddressBook}. * {@code key} must exist in the address book. */ - public void removePerson(Student key) { + public void removePerson(Person key) { persons.remove(key); } @@ -105,7 +108,7 @@ public String toString() { } @Override - public ObservableList getStudentList() { + public ObservableList getPersonList() { return persons.asUnmodifiableObservableList(); } diff --git a/src/main/java/tutorpro/model/Model.java b/src/main/java/tutorpro/model/Model.java index 28ca2b4f23e..64e015318c5 100644 --- a/src/main/java/tutorpro/model/Model.java +++ b/src/main/java/tutorpro/model/Model.java @@ -5,14 +5,14 @@ import javafx.collections.ObservableList; import tutorpro.commons.core.GuiSettings; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; /** * The API of the Model component. */ public interface Model { /** {@code Predicate} that always evaluate to true */ - Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; + Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; /** * Replaces user prefs data with the data in {@code userPrefs}. @@ -55,33 +55,33 @@ public interface Model { /** * Returns true if a person with the same identity as {@code person} exists in the address book. */ - boolean hasPerson(Student person); + boolean hasPerson(Person person); /** * Deletes the given person. * The person must exist in the address book. */ - void deletePerson(Student target); + void deletePerson(Person target); /** * Adds the given person. * {@code person} must not already exist in the address book. */ - void addPerson(Student person); + void addPerson(Person person); /** * Replaces the given person {@code target} with {@code editedPerson}. * {@code target} must exist in the address book. * The person identity of {@code editedPerson} must not be the same as another existing person in the address book. */ - void setPerson(Student target, Student editedPerson); + void setPerson(Person target, Person editedPerson); /** Returns an unmodifiable view of the filtered person list */ - ObservableList getFilteredPersonList(); + ObservableList getFilteredPersonList(); /** * Updates the filter of the filtered person list to filter by the given {@code predicate}. * @throws NullPointerException if {@code predicate} is null. */ - void updateFilteredPersonList(Predicate predicate); + void updateFilteredPersonList(Predicate predicate); } diff --git a/src/main/java/tutorpro/model/ModelManager.java b/src/main/java/tutorpro/model/ModelManager.java index 76130487c61..993345a9cd6 100644 --- a/src/main/java/tutorpro/model/ModelManager.java +++ b/src/main/java/tutorpro/model/ModelManager.java @@ -11,7 +11,7 @@ import tutorpro.commons.core.GuiSettings; import tutorpro.commons.core.LogsCenter; import tutorpro.commons.util.CollectionUtil; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; /** * Represents the in-memory model of the address book data. @@ -21,7 +21,7 @@ public class ModelManager implements Model { private final AddressBook addressBook; private final UserPrefs userPrefs; - private final FilteredList filteredPersons; + private final FilteredList filteredPersons; /** * Initializes a ModelManager with the given addressBook and userPrefs. @@ -33,7 +33,7 @@ public ModelManager(ReadOnlyAddressBook addressBook, ReadOnlyUserPrefs userPrefs this.addressBook = new AddressBook(addressBook); this.userPrefs = new UserPrefs(userPrefs); - filteredPersons = new FilteredList<>(this.addressBook.getStudentList()); + filteredPersons = new FilteredList<>(this.addressBook.getPersonList()); } public ModelManager() { @@ -88,24 +88,24 @@ public ReadOnlyAddressBook getAddressBook() { } @Override - public boolean hasPerson(Student person) { + public boolean hasPerson(Person person) { requireNonNull(person); return addressBook.hasPerson(person); } @Override - public void deletePerson(Student target) { + public void deletePerson(Person target) { addressBook.removePerson(target); } @Override - public void addPerson(Student person) { + public void addPerson(Person person) { addressBook.addPerson(person); updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); } @Override - public void setPerson(Student target, Student editedPerson) { + public void setPerson(Person target, Person editedPerson) { CollectionUtil.requireAllNonNull(target, editedPerson); addressBook.setPerson(target, editedPerson); @@ -118,12 +118,12 @@ public void setPerson(Student target, Student editedPerson) { * {@code versionedAddressBook} */ @Override - public ObservableList getFilteredPersonList() { + public ObservableList getFilteredPersonList() { return filteredPersons; } @Override - public void updateFilteredPersonList(Predicate predicate) { + public void updateFilteredPersonList(Predicate predicate) { requireNonNull(predicate); filteredPersons.setPredicate(predicate); } diff --git a/src/main/java/tutorpro/model/ReadOnlyAddressBook.java b/src/main/java/tutorpro/model/ReadOnlyAddressBook.java index 49c340d046d..391f470618f 100644 --- a/src/main/java/tutorpro/model/ReadOnlyAddressBook.java +++ b/src/main/java/tutorpro/model/ReadOnlyAddressBook.java @@ -1,7 +1,7 @@ package tutorpro.model; import javafx.collections.ObservableList; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; /** * Unmodifiable view of an address book @@ -18,6 +18,5 @@ public interface ReadOnlyAddressBook { * Returns an unmodifiable view of the student list. * This list will not contain any duplicate persons. */ - ObservableList getStudentList(); - + ObservableList getPersonList(); } diff --git a/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java index ce1dd23b21b..ca82f3cbc43 100644 --- a/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java +++ b/src/main/java/tutorpro/model/person/NameContainsKeywordsPredicate.java @@ -5,12 +5,11 @@ import tutorpro.commons.util.StringUtil; import tutorpro.commons.util.ToStringBuilder; -import tutorpro.model.person.student.Student; /** * Tests that a {@code Person}'s {@code Name} matches any of the keywords given. */ -public class NameContainsKeywordsPredicate implements Predicate { +public class NameContainsKeywordsPredicate implements Predicate { private final List keywords; public NameContainsKeywordsPredicate(List keywords) { @@ -18,7 +17,7 @@ public NameContainsKeywordsPredicate(List keywords) { } @Override - public boolean test(Student person) { + public boolean test(Person person) { return keywords.stream() .anyMatch(keyword -> StringUtil.containsSubstringIgnoreCase(person.getName().fullName, keyword)); } diff --git a/src/main/java/tutorpro/model/person/Phone.java b/src/main/java/tutorpro/model/person/Phone.java index 2770a6b56bd..b1bc6df7b46 100644 --- a/src/main/java/tutorpro/model/person/Phone.java +++ b/src/main/java/tutorpro/model/person/Phone.java @@ -13,8 +13,8 @@ public class Phone { public static final String MESSAGE_CONSTRAINTS = - "Phone numbers should only contain numbers, and it should be at least 3 digits long"; - public static final String VALIDATION_REGEX = "\\d{3,}"; + "Phone numbers should only contain numbers, and it should be 8 digits long"; + public static final String VALIDATION_REGEX = "\\d{8}"; public final String value; /** @@ -45,7 +45,6 @@ public boolean equals(Object other) { if (other == this) { return true; } - // instanceof handles nulls if (!(other instanceof Phone)) { return false; diff --git a/src/main/java/tutorpro/model/person/UniquePersonList.java b/src/main/java/tutorpro/model/person/UniquePersonList.java index fa867a10d33..dd4ea43fb51 100644 --- a/src/main/java/tutorpro/model/person/UniquePersonList.java +++ b/src/main/java/tutorpro/model/person/UniquePersonList.java @@ -1,7 +1,6 @@ package tutorpro.model.person; import static java.util.Objects.requireNonNull; -//import static tutorpro.commons.util.CollectionUtil.requireAllNonNull; import java.util.Iterator; import java.util.List; @@ -11,7 +10,6 @@ import tutorpro.commons.util.CollectionUtil; import tutorpro.model.person.exceptions.DuplicatePersonException; import tutorpro.model.person.exceptions.PersonNotFoundException; -import tutorpro.model.person.student.Student; /** * A list of persons that enforces uniqueness between its elements and does not allow nulls. @@ -24,16 +22,16 @@ * * @see Person#isSamePerson(Person) */ -public class UniquePersonList implements Iterable { +public class UniquePersonList implements Iterable { - private final ObservableList internalList = FXCollections.observableArrayList(); - private final ObservableList internalUnmodifiableList = + private final ObservableList internalList = FXCollections.observableArrayList(); + private final ObservableList internalUnmodifiableList = FXCollections.unmodifiableObservableList(internalList); /** * Returns true if the list contains an equivalent person as the given argument. */ - public boolean contains(Student toCheck) { + public boolean contains(Person toCheck) { requireNonNull(toCheck); return internalList.stream().anyMatch(toCheck::isSamePerson); } @@ -42,7 +40,7 @@ public boolean contains(Student toCheck) { * Adds a person to the list. * The person must not already exist in the list. */ - public void add(Student toAdd) { + public void add(Person toAdd) { requireNonNull(toAdd); if (contains(toAdd)) { throw new DuplicatePersonException(); @@ -55,7 +53,7 @@ public void add(Student toAdd) { * {@code target} must exist in the list. * The person identity of {@code editedPerson} must not be the same as another existing person in the list. */ - public void setPerson(Student target, Student editedPerson) { + public void setPerson(Person target, Person editedPerson) { CollectionUtil.requireAllNonNull(target, editedPerson); int index = internalList.indexOf(target); @@ -74,7 +72,7 @@ public void setPerson(Student target, Student editedPerson) { * Removes the equivalent person from the list. * The person must exist in the list. */ - public void remove(Student toRemove) { + public void remove(Person toRemove) { requireNonNull(toRemove); if (!internalList.remove(toRemove)) { throw new PersonNotFoundException(); @@ -90,7 +88,7 @@ public void setPersons(UniquePersonList replacement) { * Replaces the contents of this list with {@code persons}. * {@code persons} must not contain duplicate persons. */ - public void setPersons(List persons) { + public void setPersons(List persons) { CollectionUtil.requireAllNonNull(persons); if (!personsAreUnique(persons)) { throw new DuplicatePersonException(); @@ -102,12 +100,12 @@ public void setPersons(List persons) { /** * Returns the backing list as an unmodifiable {@code ObservableList}. */ - public ObservableList asUnmodifiableObservableList() { + public ObservableList asUnmodifiableObservableList() { return internalUnmodifiableList; } @Override - public Iterator iterator() { + public Iterator iterator() { return internalList.iterator(); } @@ -139,7 +137,7 @@ public String toString() { /** * Returns true if {@code persons} contains only unique persons. */ - private boolean personsAreUnique(List persons) { + private boolean personsAreUnique(List persons) { for (int i = 0; i < persons.size() - 1; i++) { for (int j = i + 1; j < persons.size(); j++) { if (persons.get(i).isSamePerson(persons.get(j))) { diff --git a/src/main/java/tutorpro/model/person/student/Parent.java b/src/main/java/tutorpro/model/person/student/Parent.java index 07a475b1e93..a96000ec6fb 100644 --- a/src/main/java/tutorpro/model/person/student/Parent.java +++ b/src/main/java/tutorpro/model/person/student/Parent.java @@ -1,8 +1,9 @@ -package tutorpro.model.person.parent; +package tutorpro.model.person.student; import java.util.HashSet; import java.util.Set; +import javafx.scene.layout.Region; import tutorpro.commons.util.CollectionUtil; import tutorpro.commons.util.ToStringBuilder; import tutorpro.model.person.Address; @@ -10,8 +11,9 @@ import tutorpro.model.person.Name; import tutorpro.model.person.Person; import tutorpro.model.person.Phone; -import tutorpro.model.person.student.Student; import tutorpro.model.tag.Tag; +import tutorpro.ui.ParentCard; +import tutorpro.ui.UiPart; /** * Represents a Parent in TutorPro. @@ -20,23 +22,23 @@ public class Parent extends Person { public static final Tag PARENT_TAG = new Tag("Parent"); - private final Set students = new HashSet<>(); + private final Set children = new HashSet<>(); /** * Every field must be present and not null. */ - public Parent(Name name, Phone phone, Email email, Address address, Set tags, Set students) { + public Parent(Name name, Phone phone, Email email, Address address, Set tags, Set children) { super(name, phone, email, address, tags); addTags(PARENT_TAG); - CollectionUtil.requireAllNonNull(students); - this.students.addAll(students); + CollectionUtil.requireAllNonNull(children); + this.children.addAll(children); } /** * Creates a copy of the given Parent. * @return The students of the parent. */ - public Set getStudents() { - return students; + public Set getChildren() { + return children; } @Override @@ -55,7 +57,7 @@ public boolean equals(Object other) { && otherParent.getEmail().equals(getEmail()) && otherParent.getAddress().equals(getAddress()) && otherParent.getTags().equals(getTags()) - && otherParent.getStudents().equals(getStudents()); + && otherParent.getChildren().equals(getChildren()); } @Override @@ -66,7 +68,12 @@ public String toString() { .add("email", getEmail()) .add("address", getAddress()) .add("tags", getTags()) - .add("students", getStudents()) + .add("children", getChildren()) .toString(); } + + @Override + public UiPart getCard(int displayIndex) { + return new ParentCard(this, displayIndex); + } } diff --git a/src/main/java/tutorpro/model/person/student/Student.java b/src/main/java/tutorpro/model/person/student/Student.java index 84daafde151..13bacc96f5c 100644 --- a/src/main/java/tutorpro/model/person/student/Student.java +++ b/src/main/java/tutorpro/model/person/student/Student.java @@ -2,6 +2,7 @@ import java.util.Collections; import java.util.HashSet; +import java.util.Objects; import java.util.Set; import javafx.scene.layout.Region; @@ -82,10 +83,11 @@ public String toString() { .toString(); } - /** - * Returns a UI representation of the person. - * @param displayIndex The index to be displayed on the card. - */ + @Override + public int hashCode() { + return Objects.hash(getName(), getPhone(), getEmail(), getAddress(), getTags(), level, subjects); + } + @Override public UiPart getCard(int displayIndex) { return new StudentCard(this, displayIndex); diff --git a/src/main/java/tutorpro/model/util/SampleDataUtil.java b/src/main/java/tutorpro/model/util/SampleDataUtil.java index 1bb96ed841d..5afaaeae2b4 100644 --- a/src/main/java/tutorpro/model/util/SampleDataUtil.java +++ b/src/main/java/tutorpro/model/util/SampleDataUtil.java @@ -1,5 +1,6 @@ package tutorpro.model.util; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Set; @@ -10,8 +11,10 @@ import tutorpro.model.person.Address; import tutorpro.model.person.Email; import tutorpro.model.person.Name; +import tutorpro.model.person.Person; import tutorpro.model.person.Phone; import tutorpro.model.person.student.Level; +import tutorpro.model.person.student.Parent; import tutorpro.model.person.student.Student; import tutorpro.model.person.student.Subject; import tutorpro.model.tag.Tag; @@ -24,28 +27,16 @@ public class SampleDataUtil { new Level("UNI")}; private static final Subject subject = new Subject("Math"); private static final Set SUBJECTS = new HashSet<>(); - public static Student[] getSamplePersons() { - SUBJECTS.add(subject); - return new Student[] { - new Student(new Name("Alex Yeoh"), new Phone("87438807"), new Email("alexyeoh@example.com"), - new Address("Blk 30 Geylang Street 29, #06-40"), getTagSet("friends"), - LEVELS[0], SUBJECTS), - new Student(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), - new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), getTagSet("colleagues", "friends"), - LEVELS[1], SUBJECTS), - new Student(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), - new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), getTagSet("neighbours"), - LEVELS[2], SUBJECTS), - new Student(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), getTagSet("family"), - LEVELS[3], SUBJECTS), - new Student(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), - new Address("Blk 47 Tampines Street 20, #17-35"), getTagSet("classmates"), - LEVELS[0], SUBJECTS), - new Student(new Name("Roy Balakrishnan"), new Phone("92624417"), new Email("royb@example.com"), - new Address("Blk 45 Aljunied Street 85, #11-31"), getTagSet("colleagues"), - LEVELS[1], SUBJECTS) - }; + public static Person[] getSamplePersons() { + ArrayList students = new ArrayList<>(Arrays.asList(getSampleStudents())); + Set children = new HashSet<>(); + children.add(students.get(2)); + children.add(students.get(3)); + ArrayList people = new ArrayList<>(students); + people.add(new Parent(new Name("Donovan Li"), new Phone("98758712"), new Email("donovan@example.com"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), + getTagSet(), children)); + return people.toArray(new Person[]{}); } public static Student[] getSampleStudents() { @@ -56,11 +47,11 @@ public static Student[] getSampleStudents() { new Student(new Name("Bernice Yu"), new Phone("99272758"), new Email("berniceyu@example.com"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), getTagSet(), new Level("S2"), getSubjectSet("Math", "English")), - new Student(new Name("Charlotte Oliveiro"), new Phone("93210283"), new Email("charlotte@example.com"), + new Student(new Name("Charlotte Li"), new Phone("93210283"), new Email("charlotte@example.com"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), getTagSet(), new Level("J1"), getSubjectSet("Physics")), new Student(new Name("David Li"), new Phone("91031282"), new Email("lidavid@example.com"), - new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), + new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), getTagSet(), new Level("UNI"), getSubjectSet("Chemistry", "Biology")), new Student(new Name("Irfan Ibrahim"), new Phone("92492021"), new Email("irfan@example.com"), new Address("Blk 47 Tampines Street 20, #17-35"), @@ -73,7 +64,7 @@ public static Student[] getSampleStudents() { public static ReadOnlyAddressBook getSampleAddressBook() { AddressBook sampleAb = new AddressBook(); - for (Student samplePerson : getSampleStudents()) { + for (Person samplePerson : getSamplePersons()) { sampleAb.addPerson(samplePerson); } return sampleAb; diff --git a/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java b/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java index 5fe94eb60fc..2783739ca4c 100644 --- a/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java +++ b/src/main/java/tutorpro/storage/JsonSerializableAddressBook.java @@ -11,6 +11,7 @@ import tutorpro.commons.exceptions.IllegalValueException; import tutorpro.model.AddressBook; import tutorpro.model.ReadOnlyAddressBook; +import tutorpro.model.person.Person; import tutorpro.model.person.student.Student; /** @@ -20,15 +21,14 @@ class JsonSerializableAddressBook { public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; - - private final List persons = new ArrayList<>(); + private final List students = new ArrayList<>(); /** * Constructs a {@code JsonSerializableAddressBook} with the given persons. */ @JsonCreator - public JsonSerializableAddressBook(@JsonProperty("persons") List persons) { - this.persons.addAll(persons); + public JsonSerializableAddressBook(@JsonProperty("students") List students) { + this.students.addAll(students); } /** @@ -37,7 +37,8 @@ public JsonSerializableAddressBook(@JsonProperty("persons") List person instanceof Student) + .map(person -> new JsonAdaptedStudent((Student) person)).collect(Collectors.toList())); } /** @@ -47,8 +48,8 @@ public JsonSerializableAddressBook(ReadOnlyAddressBook source) { */ public AddressBook toModelType() throws IllegalValueException { AddressBook addressBook = new AddressBook(); - for (JsonAdaptedStudent jsonAdaptedStudent : persons) { - Student person = jsonAdaptedStudent.toModelType(); + for (JsonAdaptedStudent jsonAdaptedStudent : students) { + Person person = jsonAdaptedStudent.toModelType(); if (addressBook.hasPerson(person)) { throw new IllegalValueException(MESSAGE_DUPLICATE_PERSON); } diff --git a/src/main/java/tutorpro/ui/ParentCard.java b/src/main/java/tutorpro/ui/ParentCard.java index 080ff9920ba..b835e8a0061 100644 --- a/src/main/java/tutorpro/ui/ParentCard.java +++ b/src/main/java/tutorpro/ui/ParentCard.java @@ -7,7 +7,7 @@ import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Region; -import tutorpro.model.person.parent.Parent; +import tutorpro.model.person.student.Parent; /** @@ -41,7 +41,7 @@ public class ParentCard extends UiPart { @FXML private FlowPane tags; @FXML - private FlowPane students; + private FlowPane children; /** * Creates a {@code PersonCode} with the given {@code Person} and index to display. @@ -57,8 +57,8 @@ public ParentCard(Parent parent, int displayedIndex) { parent.getTags().stream() .sorted(Comparator.comparing(tag -> tag.tagName)) .forEach(tag -> tags.getChildren().add(new Label(tag.tagName))); - parent.getStudents().stream() + parent.getChildren().stream() .sorted(Comparator.comparing(student -> student.getName().fullName)) - .forEach(student -> students.getChildren().add(new Label(student.getName().fullName))); + .forEach(student -> children.getChildren().add(new Label(student.getName().fullName))); } } diff --git a/src/main/java/tutorpro/ui/PersonListPanel.java b/src/main/java/tutorpro/ui/PersonListPanel.java index 7aeb18a676c..ed9a0585214 100644 --- a/src/main/java/tutorpro/ui/PersonListPanel.java +++ b/src/main/java/tutorpro/ui/PersonListPanel.java @@ -8,7 +8,7 @@ import javafx.scene.control.ListView; import javafx.scene.layout.Region; import tutorpro.commons.core.LogsCenter; -import tutorpro.model.person.student.Student; +import tutorpro.model.person.Person; /** * Panel containing the list of persons. @@ -18,12 +18,12 @@ public class PersonListPanel extends UiPart { private final Logger logger = LogsCenter.getLogger(PersonListPanel.class); @FXML - private ListView personListView; + private ListView personListView; /** * Creates a {@code PersonListPanel} with the given {@code ObservableList}. */ - public PersonListPanel(ObservableList personList) { + public PersonListPanel(ObservableList personList) { super(FXML); personListView.setItems(personList); personListView.setCellFactory(listView -> new PersonListViewCell()); @@ -32,9 +32,9 @@ public PersonListPanel(ObservableList personList) { /** * Custom {@code ListCell} that displays the graphics of a {@code Person} using a {@code PersonCard}. */ - class PersonListViewCell extends ListCell { + class PersonListViewCell extends ListCell { @Override - protected void updateItem(Student person, boolean empty) { + protected void updateItem(Person person, boolean empty) { super.updateItem(person, empty); if (empty || person == null) { diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index c63527bc038..1054712b106 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -364,3 +364,17 @@ -fx-background-radius: 2; -fx-font-size: 11; } + +#children .label { + -fx-text-fill: white; + -fx-background-color: #2DFE54; + -fx-padding: 1 3 1 3; + -fx-border-radius: 2; + -fx-background-radius: 2; + -fx-font-size: 11; +} + +#children { + -fx-hgap: 7; + -fx-vgap: 3; +} diff --git a/src/main/resources/view/ParentListCard.fxml b/src/main/resources/view/ParentListCard.fxml index 9e356992724..d261ba838d6 100644 --- a/src/main/resources/view/ParentListCard.fxml +++ b/src/main/resources/view/ParentListCard.fxml @@ -28,8 +28,7 @@

      Roc5pkG&C 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

    *qOtZN(zr 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 literal 0 HcmV?d00001 From f1be06158785094323550e77f83cc6c0bda74926 Mon Sep 17 00:00:00 2001 From: agreatdayy Date: Wed, 6 Mar 2024 23:39:20 +0800 Subject: [PATCH 008/189] Add mockUI.png --- docs/images/mockUI.png | Bin 0 -> 41932 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/mockUI.png diff --git a/docs/images/mockUI.png b/docs/images/mockUI.png new file mode 100644 index 0000000000000000000000000000000000000000..4b5d051e558433c8ee8e746aa17264a97f6f25fd GIT binary patch literal 41932 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ℜ~-O|k# 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 Date: Wed, 6 Mar 2024 23:42:58 +0800 Subject: [PATCH 009/189] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 161fe60ea5a..072dd45099c 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ [![codecov badge](https://codecov.io/gh/nus-cs2103-AY2324S2/tp/graph/badge.svg?token=PBBJNYE8U5)](https://codecov.io/gh/nus-cs2103-AY2324S2/tp) -![Ui](docs/images/Ui.png) +![Ui](docs/images/mockUi.png) * This is **a sample project for Software Engineering (SE) students**.
    Example usages: * as a starting point of a course project (as opposed to writing everything from scratch) * as a case study -* The project simulates an ongoing software project for a desktop application (called _AddressBook_) used for managing contact details. +* The project simulates an ongoing software project for a desktop application (called _TutorPro_) used by private tutors for managing their students and parents. * It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big. * It comes with a **reasonable level of user and developer documentation**. -* It is named `AddressBook Level 3` (`AB3` for short) because it was initially created as a part of a series of `AddressBook` projects (`Level 1`, `Level 2`, `Level 3` ...). +* It is named `TutorPro Level 3` (`TP3` for short) because it was initially created as a part of a series of `TutorPro` projects (`Level 1`, `Level 2`, `Level 3` ...). * For the detailed documentation of this project, see the **[Address Book Product Website](https://se-education.org/addressbook-level3)**. * This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. From 7e05304554f51862cb21fb75c5c28535ab377a13 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:43:54 +0800 Subject: [PATCH 010/189] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 072dd45099c..a9d656179b5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![codecov badge](https://codecov.io/gh/nus-cs2103-AY2324S2/tp/graph/badge.svg?token=PBBJNYE8U5)](https://codecov.io/gh/nus-cs2103-AY2324S2/tp) -![Ui](docs/images/mockUi.png) +![MockUi](docs/images/mockUi.png) * This is **a sample project for Software Engineering (SE) students**.
    Example usages: From 50bdeb3fda5c74d64181044e19752c4a317d04d4 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:45:07 +0800 Subject: [PATCH 011/189] README.md: Fix UI photo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9d656179b5..534fa99887c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![codecov badge](https://codecov.io/gh/nus-cs2103-AY2324S2/tp/graph/badge.svg?token=PBBJNYE8U5)](https://codecov.io/gh/nus-cs2103-AY2324S2/tp) -![MockUi](docs/images/mockUi.png) +![MockUi](docs/images/mockUI.png) * This is **a sample project for Software Engineering (SE) students**.
    Example usages: From 5028c0ce33be4f2c4f2a9e6c2378714c68a168af Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:49:29 +0800 Subject: [PATCH 012/189] README.md: Update link to project website --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 534fa99887c..c23111fbc13 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big. * It comes with a **reasonable level of user and developer documentation**. * It is named `TutorPro Level 3` (`TP3` for short) because it was initially created as a part of a series of `TutorPro` projects (`Level 1`, `Level 2`, `Level 3` ...). -* For the detailed documentation of this project, see the **[Address Book Product Website](https://se-education.org/addressbook-level3)**. +* For the detailed documentation of this project, see the **[tutorpro.github.io](https://ay2324s2-cs2103t-f12-3.github.io/tp/)**. * This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. From cd3ffbb9a5d07dadd17c5bb1190697273883be69 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:59:47 +0800 Subject: [PATCH 013/189] config.yml: Update title --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 6bd245d8f4e..274b7192377 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,4 +1,4 @@ -title: "AB-3" +title: "TP-1" theme: minima header_pages: From e43a7e87b27dd3a847fa003563a1be729e50513a Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:07:04 +0800 Subject: [PATCH 014/189] README.md: Acknowledge original source of code --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c23111fbc13..0d5529a0af5 100644 --- a/README.md +++ b/README.md @@ -13,4 +13,4 @@ * It comes with a **reasonable level of user and developer documentation**. * It is named `TutorPro Level 3` (`TP3` for short) because it was initially created as a part of a series of `TutorPro` projects (`Level 1`, `Level 2`, `Level 3` ...). * For the detailed documentation of this project, see the **[tutorpro.github.io](https://ay2324s2-cs2103t-f12-3.github.io/tp/)**. -* This project is a **part of the se-education.org** initiative. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. +* This project is based on the AddressBook-Level3 project created by the **[SE-EDU initiative](https://se-education.org)**. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. From e25f12e9c29105f3d961d34f57ae4d23db5e5391 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:24:50 +0800 Subject: [PATCH 015/189] xinyuan.md: Update contents --- docs/team/xinyuan.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/team/xinyuan.md b/docs/team/xinyuan.md index 25a9c7966ef..c062bffe812 100644 --- a/docs/team/xinyuan.md +++ b/docs/team/xinyuan.md @@ -1,11 +1,11 @@ --- layout: page -title: John Doe's Project Portfolio Page +title: Xin Yuan's Project Portfolio Page --- -### Project: AddressBook Level 3 +### Project: TutorPro Level 1 -AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. +TutorPro - Level 1 is a desktop contact management application used for managing students as a **Private Tutor**. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC. Given below are my contributions to the project. @@ -21,18 +21,14 @@ Given below are my contributions to the project. * * **Documentation**: - * User Guide: - * Added documentation for the features `delete` and `find` [\#72]() - * Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]() - * Developer Guide: - * Added implementation details of the `delete` feature. + * README: + * Made UI mockup of our intended final product. + * Update all contents to match our project. + * Acknowledge the original source of the code. * **Community**: * PRs reviewed (with non-trivial review comments): * Contributed to forum discussions (examples: [1](), [2](), [3](), [4]()) * Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]()) -* **Tools**: - * - * _{you can add/remove categories in the list above}_ From c28add549515a8535c060a1b6d91d63fb3ce0bcf Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:33:03 +0800 Subject: [PATCH 016/189] README.md: Update GitHub Actions build status badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d5529a0af5..7890944ee5a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S2-CS2103T-F12-3/tp/actions) [![codecov badge](https://codecov.io/gh/nus-cs2103-AY2324S2/tp/graph/badge.svg?token=PBBJNYE8U5)](https://codecov.io/gh/nus-cs2103-AY2324S2/tp) From 82eee209e3da3103460bcf7216a81bc3af463ec1 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:38:45 +0800 Subject: [PATCH 017/189] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7890944ee5a..a6de81ffc8d 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,13 @@ ![MockUi](docs/images/mockUI.png) -* This is **a sample project for Software Engineering (SE) students**.
    +* This is **a CS2103T project by NUS Computing students**.
    Example usages: * as a starting point of a course project (as opposed to writing everything from scratch) * as a case study -* The project simulates an ongoing software project for a desktop application (called _TutorPro_) used by private tutors for managing their students and parents. +* The project simulates an ongoing software project for a desktop application (called _TutorPro_) used by private tutors for managing their students. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). * It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big. * It comes with a **reasonable level of user and developer documentation**. -* It is named `TutorPro Level 3` (`TP3` for short) because it was initially created as a part of a series of `TutorPro` projects (`Level 1`, `Level 2`, `Level 3` ...). +* It is named `TutorPro Level 1` (`TP-1` for short) because it was initially created as a part of a series of `TutorPro` projects (`Level 1`, `Level 2`, `Level 3` ...). * For the detailed documentation of this project, see the **[tutorpro.github.io](https://ay2324s2-cs2103t-f12-3.github.io/tp/)**. * This project is based on the AddressBook-Level3 project created by the **[SE-EDU initiative](https://se-education.org)**. If you would like to contribute code to this project, see [se-education.org](https://se-education.org#https://se-education.org/#contributing) for more info. From 049f5cd9e491582313705f55be090eaef174528a Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:42:52 +0800 Subject: [PATCH 018/189] _config.yml: Update repo link --- docs/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_config.yml b/docs/_config.yml index 274b7192377..790fb38e7dc 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -8,7 +8,7 @@ header_pages: markdown: kramdown -repository: "se-edu/addressbook-level3" +repository: "AY2324S2-CS2103T-F12-3/tp" github_icon: "images/github-icon.png" plugins: From c58719b023011b56b56d1494ee08ff8afcca45b9 Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:47:49 +0800 Subject: [PATCH 019/189] Update index.md --- docs/index.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/index.md b/docs/index.md index 7601dbaad0d..37d2e6756e1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,19 +1,20 @@ --- layout: page -title: AddressBook Level-3 +title: TutorPro Level-1 --- -[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) +[![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S2-CS2103T-F12-3/tp/actions) [![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) -![Ui](images/Ui.png) +![Ui](docs/images/mockUi.png) -**AddressBook is a desktop application for managing your contact details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). +**TutorPro is a desktop application for managing your students' details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). -* If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). -* If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. +* If you are interested in using TutorPro, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). +* If you are interested about developing TutorPro, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. **Acknowledgements** * Libraries used: [JavaFX](https://openjfx.io/), [Jackson](https://github.com/FasterXML/jackson), [JUnit5](https://github.com/junit-team/junit5) +* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org). From 7f7652f7ac9c166fe9fe7e3c23bfa934cd0f177e Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:48:50 +0800 Subject: [PATCH 020/189] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 37d2e6756e1..7bb96313a63 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ title: TutorPro Level-1 [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S2-CS2103T-F12-3/tp/actions) [![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) -![Ui](docs/images/mockUi.png) +![mockUi](docs/images/mockUI.png) **TutorPro is a desktop application for managing your students' details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). From 4c34c66bd3bbc1ab6fae57e5be84f67241fa40bf Mon Sep 17 00:00:00 2001 From: agreatdayy <104555494+agreatdayy@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:49:56 +0800 Subject: [PATCH 021/189] index.md: Fix UI image --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 7bb96313a63..bb5e9948732 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ title: TutorPro Level-1 [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S2-CS2103T-F12-3/tp/actions) [![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) -![mockUi](docs/images/mockUI.png) +![mockUi](images/mockUI.png) **TutorPro is a desktop application for managing your students' details.** While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface). From bad12b2fa08d2ef25015fbbcfc7434503d7a2b40 Mon Sep 17 00:00:00 2001 From: tamagochuuu Date: Thu, 7 Mar 2024 01:32:57 +0800 Subject: [PATCH 022/189] Update the DG --- docs/DeveloperGuide.md | 255 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 225 insertions(+), 30 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1b56bb5d31b..53a4b1d97f1 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -262,42 +262,56 @@ _{Explain here how the data archiving feature will be implemented}_ **Target user profile**: -* has a need to manage a significant number of contacts -* prefer desktop apps over other types -* can type fast -* prefers typing to mouse interactions -* is reasonably comfortable using CLI apps +* Private tutors who prefer CLI over GUI +* Private tutors who go to tutees' houses and teach one-to-one +* Private tutors who teach multiple subjects +* Private tutors who teach multiple levels or a specific level, e.g. primary school students -**Value proposition**: manage contacts faster than a typical mouse/GUI driven app +**Value proposition**: Allows for easy track and management of tutees, e.g. grades, addresses, deadlines ### User stories Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | -| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- | -| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App | -| `* * *` | user | add a new person | | -| `* * *` | user | delete a person | remove entries that I no longer need | -| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | -| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | -| `*` | user with many persons in the address book | sort persons by name | locate a person easily | +| Priority | As a …​ | I want to …​ | So that I can…​ | +|----------|---------------|---------------------------------------------------------|----------------------------------------------------| +| `* * *` | private tutor | track my tutee's grades, addresses and deadlines easily | efficiently manage my tutoring sessions | +| `* * *` | private tutor | input new tutees' progress seamlessly | add new tutees' information | +| `* * *` | private tutor | delete previously created inputs | remove information that I no longer need | +| `* * *` | private tutor | track my project tasks and timelines seamlessly | effectively manage my workflow and deliver on time | +| `* *` | private tutor | set reminders for important deadlines and milestones | never miss a crucial event | -*{More to be added}* ### Use cases -(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) +(For all use cases below, the **System** is `TutorPro` and the **Actor** is the `user`, unless specified otherwise) -**Use case: Delete a person** +**Use case: Add a student** **MSS** -1. User requests to list persons -2. AddressBook shows a list of persons -3. User requests to delete a specific person in the list -4. AddressBook deletes the person +1. The user requests to add a specific student +2. TutorPro adds the student + + Use case ends. + +**Extensions** + +* 2a. The student has the same details as someone already in the list. + * 2a1. TutorPro shows an error message. + + Use case ends. + + +**Use case: Delete a student** + +**MSS** + +1. The user requests to list students +2. TutorPro shows a list of students +3. User requests to delete a specific student in the list +4. TutorPro deletes the student Use case ends. @@ -308,25 +322,206 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Use case ends. * 3a. The given index is invalid. + * 3a1. TutorPro shows an error message. + + Use case resumes at step 2. + +* 3b. The given student does not exist in the list. + * 3b1. TutorPro displays an error message. + + Use case resumes at step 2. + +**Use case: Find a student** + +**MSS** + +1. The user requests to find a specific student. +2. TutorPro displays a list of students whose details match the user input. + + Use case ends. + +**Extensions** + +* 2a. The specified student does not exist in the list. + * 2a1. TutorPro shows an error message. + + Use case ends. + +**Use case: Update a student's progress/particulars** + +**MSS** + +1. The user requests to update a specific student’s progress/particulars. +2. TutorPro updates the student’s progress/particulars. +3. TutorPro displays the updated information to the user for verification. + + Use case ends. + +**Extensions** + +* 2a. The specified student does not exist in the list. + * 2a1. TutorPro shows an error message. + + Use case ends. + +* 2b. The given category is not one of the available categories. + * 2b1. TutorPro shows an error message. + + Use case ends. + +* 2c. Given new information to update does not match the input format for the particular category. + * 2c1. TutorPro shows an error message. + + Use case ends. + +**Use case: Setting a reminder** - * 3a1. AddressBook shows an error message. +**MSS** + +1. The user requests to set a reminder. +2. TutorPro sets the reminder. +3. TutorPro displays a list of currently scheduled reminders. + + Use case ends. + +**Extensions** + +* 2a. The given date or time is in an incorrect format. + * 2a1. TutorPro shows an error message. - Use case resumes at step 2. + Use case ends. + + +**Use case: Create a tag** + +**MSS** + +1. The user requests to create a tag. +2. TutorPro creates the specified tag. +3. TutorPro displays a list of created tags. + + Use case ends. + +**Extensions** + +* 2a. The specified tag to create already exists. + * 2a1. TutorPro shows an error message. + + Use case ends. + + +**Use case: Tag a student** + +**MSS** + +1. The user requests to tag a student. +2. TutorPro tags the student. +3. TutorPro displays the list of students who have the same tag. + + Use case ends. + +**Extensions** + +* 2a. The specified student does not exist in the list. + * 2a1. TutorPro displays an error message. + + Use case ends. + +* 2b. The specified tag does not exist. + * 2b1. TutorPro displays an error message. + + Use case ends. + + +**Use case: Display the user's schedule** + +**MSS** + +1. The user requests to display their current schedule. +2. TutorPro displays the user’s current schedule + + Use case ends. + +**Extensions** + +* 2a. The user has nothing in their schedule. + * 2a1. TutorPro shows an error message. + + Use case ends. + + +**Use case: Set a recurring event** + +**MSS** + +1. The user requests to set an event that recurs weekly. +2. TutorPro sets the event. +3. TutorPro displays the list of the user’s weekly recurring events. + + Use case ends. + +**Extensions** + +* 2a. Given day(s) is/are in the wrong input format. + * 2a1. TutorPro shows an error message. + + Use case ends. + +* 2b. Given student does not exist in the list. + * 2b1. TutorPro shows an error message. + + Use case ends. -*{More to be added}* ### Non-Functional Requirements -1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. -2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. -3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. +1. Security: +* The application must ensure secure storage and transmission of sensitive student data, such as grades and contact information, adhering to industry-standard _encryption_ protocols. +* Access to student records must be restricted to authorized users only, with role-based access control mechanisms in place. + +2. Privacy: +* The application should comply with relevant privacy regulations (e.g., GDPR, HIPAA) to safeguard students' personal information. +* Student data should only be accessible to the student, their assigned tutor, and authorized administrative staff. + +3. Scalability: +* The system must be able to handle a growing number of students and tutors without a significant decrease in performance. +* It should support concurrent access by multiple users without degradation in response time or system stability. + +4. Reliability: +* The application should have minimal downtime and be available for use during critical academic periods, such as exam periods or assignment deadlines. +* It should have mechanisms in place to recover from failures gracefully, ensuring _data integrity_ and continuity of service. + +5. Interoperability: +* The application should be compatible with various devices and _operating systems_ commonly used by both tutors and students, such as laptops, tablets, and smartphones. +* It should support integration with other academic systems or tools, such as learning management systems or scheduling software. + +6. Usability: +* The application interface should be intuitive and user-friendly, requiring minimal training for tutors and students to navigate and use effectively. +* It should provide clear instructions and guidance for inputting and accessing academic information and contact details. + +7. Performance: +* The system should respond promptly to user actions, such as loading student profiles, updating grades, or scheduling tutoring sessions, aiming for sub-second response times. +* It should efficiently manage database queries and data retrieval to prevent delays in accessing information. + +8. Maintainability: +* The application codebase should be well-documented and _modular_, facilitating ease of maintenance and future enhancements. +* It should support version control and have mechanisms for bug tracking and resolution. + +9. Accessibility: +* The application interface should be accessible to users with disabilities, following web accessibility guidelines such as WCAG. +* It should support alternative input methods, screen readers, and keyboard navigation for users with visual or motor impairments. + +10. Backup and Disaster Recovery: +* Regular backups of student data should be performed, with procedures in place for data restoration in case of accidental deletion or system failure. +* The application should have disaster recovery measures to ensure minimal data loss and service disruption in the event of server or infrastructure failures. -*{More to be added}* ### Glossary -* **Mainstream OS**: Windows, Linux, Unix, MacOS -* **Private contact detail**: A contact detail that is not meant to be shared with others +* **Encryption** - The process of converting information or data into a code, especially to prevent unauthorized access. +* **Data integrity** - The accuracy, completeness, and quality of data as it’s maintained over time and across formats. +* **Operating system** - Mainstream operating systems are: Windows, Linux, Unix, MacOS +* **Modular** - By modularizing a codebase you will define more clear boundaries between different clusters of objects that make up a screen of feature. -------------------------------------------------------------------------------------------------------------------- From 15cafe52bbee868caaebaa8801fd39d781b91f4b Mon Sep 17 00:00:00 2001 From: tamagochuuu Date: Thu, 7 Mar 2024 01:59:29 +0800 Subject: [PATCH 023/189] Update AboutUs --- docs/AboutUs.md | 22 +++++++++++----------- docs/images/chujie.png | Bin 0 -> 211095 bytes docs/team/chujie.md | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 docs/images/chujie.png create mode 100644 docs/team/chujie.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 52918068aaf..a94f528d435 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -5,20 +5,10 @@ title: About Us We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg). -You can reach us at the email `chujie[at]comp.nus.edu.sg` +You can reach us at the email `[insert email]` ## Project team -### Tee Chu Jie - - - -[[homepage](http://www.comp.nus.edu.sg/~damithch)] -[[github](https://github.com/johndoe)] -[[portfolio](team/johndoe.md)] - -- Role: Project Advisor - ### Carsten Joe @@ -45,3 +35,13 @@ You can reach us at the email `chujie[at]comp.nus.edu.sg` - Role: Developer - Responsibilities: Dev Ops + +### Tee Chu Jie + + + +[[github](https://github.com/tamagochuuu)] +[[portfolio](team/chujie.md)] + +- Role: Developer +- Responsibilites: Dev Ops \ No newline at end of file diff --git a/docs/images/chujie.png b/docs/images/chujie.png new file mode 100644 index 0000000000000000000000000000000000000000..b11af41e349f487fb1a0788422f1c5cf84ed607d GIT binary patch literal 211095 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%0D%+Y=JImHdWHm|NW`lmrrMyo)B&^0YRc>b} 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