From 05210ca86f1f8abefd792678586cb1c439124da6 Mon Sep 17 00:00:00 2001 From: Dee Date: Thu, 5 Aug 2021 15:59:34 -0400 Subject: [PATCH 1/5] age tests passed --- .idea/.gitignore | 3 + .idea/Lambdas2-ZCW.iml | 17 ++++ .idea/compiler.xml | 16 ++++ .idea/jarRepositories.xml | 20 +++++ .idea/libraries/Maven__junit_junit_4_10.xml | 13 +++ .../Maven__org_hamcrest_hamcrest_core_1_1.xml | 13 +++ .idea/misc.xml | 13 +++ .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 ++ pom.xml | 30 +++++++ src/main/java/CheckPerson.java | 8 ++ src/main/java/Person.java | 79 ++++++++++++++++++ src/main/java/SocialApp.java | 24 ++++++ src/test/java/PersonTest.java | 27 ++++++ target/classes/CheckPerson.class | Bin 0 -> 222 bytes target/classes/Person$Sex.class | Bin 0 -> 916 bytes target/classes/Person.class | Bin 0 -> 2472 bytes target/classes/SocialApp.class | Bin 0 -> 2078 bytes target/test-classes/PersonTest.class | Bin 0 -> 1029 bytes 19 files changed, 277 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/Lambdas2-ZCW.iml create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_10.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 pom.xml create mode 100644 src/main/java/CheckPerson.java create mode 100644 src/main/java/Person.java create mode 100644 src/main/java/SocialApp.java create mode 100644 src/test/java/PersonTest.java create mode 100644 target/classes/CheckPerson.class create mode 100644 target/classes/Person$Sex.class create mode 100644 target/classes/Person.class create mode 100644 target/classes/SocialApp.class create mode 100644 target/test-classes/PersonTest.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Lambdas2-ZCW.iml b/.idea/Lambdas2-ZCW.iml new file mode 100644 index 0000000..dd1d637 --- /dev/null +++ b/.idea/Lambdas2-ZCW.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..1efcc24 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_10.xml b/.idea/libraries/Maven__junit_junit_4_10.xml new file mode 100644 index 0000000..ed8bf5f --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_10.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml new file mode 100644 index 0000000..acdf443 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..3210399 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e080e35 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..3ac47d5 --- /dev/null +++ b/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + groupId + Lambdas2-ZCW + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + junit + junit + 4.10 + + + \ No newline at end of file diff --git a/src/main/java/CheckPerson.java b/src/main/java/CheckPerson.java new file mode 100644 index 0000000..07db0bc --- /dev/null +++ b/src/main/java/CheckPerson.java @@ -0,0 +1,8 @@ +import java.util.List; + +public interface CheckPerson { + + List getList(); + + boolean test(Person p); +} diff --git a/src/main/java/Person.java b/src/main/java/Person.java new file mode 100644 index 0000000..63b2023 --- /dev/null +++ b/src/main/java/Person.java @@ -0,0 +1,79 @@ +import java.time.LocalDate; +import java.time.Period; +import java.util.Date; + +public class Person { + + String name; + LocalDate birthday; + Sex gender; + String emailAddress; + + public Person(String name, Sex sex, LocalDate birthday, String emailAdress) { + this.name = name; + this.gender= sex; + this.birthday = birthday; + this.emailAddress = emailAddress; + } + + public enum Sex { + MALE, FEMALE + } + + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LocalDate getBirthday() { + return birthday; + } + + public void setBirthday(LocalDate birthday) { + this.birthday = birthday; + } + + public Sex getGender() { + return gender; + } + + public void setGender(Sex gender) { + this.gender = gender; + } + + public String getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public int getAge() { + LocalDate today = LocalDate.now(); + Period diff = Period.between(birthday, today); + return diff.getYears(); + } + + public void printPerson() { + String person = this.toString(); + System.out.println(person); + } + + public static void printPersonWithAgeRange(){} + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", birthday=" + birthday + + ", gender=" + gender + + ", emailAddress='" + emailAddress + '\'' + + '}'; + } +} diff --git a/src/main/java/SocialApp.java b/src/main/java/SocialApp.java new file mode 100644 index 0000000..7a90d98 --- /dev/null +++ b/src/main/java/SocialApp.java @@ -0,0 +1,24 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; + +public class SocialApp implements CheckPerson{ + + List roster = new ArrayList<>(); + + + @Override + public List getList() { + return roster; + } + + @Override + public boolean test(Person p) { + return false; + } + + public static void printPersonsOlderThan(List roster, int age) { + Predicate checkAge = p -> p.getAge() > age; + roster.stream().filter(checkAge).forEach(Person::printPerson); + } +} diff --git a/src/test/java/PersonTest.java b/src/test/java/PersonTest.java new file mode 100644 index 0000000..efa5019 --- /dev/null +++ b/src/test/java/PersonTest.java @@ -0,0 +1,27 @@ +import org.junit.Assert; +import org.junit.Test; + +import java.time.LocalDate; +import java.util.Date; + +public class PersonTest { + + @Test + public void getAgeTest(){ + //given + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994,03, 04); + String emailaddress = "me@whatever.com"; + Person person = new Person(name, sex, birthday, emailaddress); + int expected = 27; + + //when + int actual = person.getAge(); + + //then + Assert.assertEquals(expected, actual); + + + } +} diff --git a/target/classes/CheckPerson.class b/target/classes/CheckPerson.class new file mode 100644 index 0000000000000000000000000000000000000000..662d56ebc8d872c8a20b34aad412714d3d1705fa GIT binary patch literal 222 zcmX^0Z`VEs1_l!bUUmj1Mh0%@jMU`pfYhSm{5*CB7Dfhvti-ZJ{hY+SbbbG%tkmQZ zMh5ou)DoY}VjxRML(>N=Us{rxqYo0ZW@O+D&P>lsEGaEYWn_@SP+;Q&G2Ge?sFbB7 z6=V#z224;hijjdUIKQ+gIn^yQ2WWr*l6&+(R(V&$5spt59^LkY>9c>L6WL2bfXjoxL4gG+-3~M#hI&;pQrtk1k^JH-54kN zt4lzSPshY@?)X#p`JhT|y7HN{B^^v1;Y+mJ9LUin}L0WdWFnqvKa2s zHy!(mgfE~<{{p{9`9*|gNcC^fuOJD$bPa!>ZuB_{5AZPd(-II$WN1OA7f|cFo0l-Y z#O@^BGF(MXlnyh-)M>SMQC}4Df*KJ|;|HWuV_m+)tqYW5V^fKZO6n)MOQ~meaKB zm4dYBH!y%fs#mOf*=h2EW_87M zETw$Oz>th?ST)nGE|$wptJR8P7$YHEF))g&0v8mJv&KxJ-gqf6l+O72j^aATLbzez zCf@1PLb)JXyHOShl`Q9_WijFTw66Y6S+Ip}M4ZMfy~5H=&^Cc9=f%(8~IH(#i6xj)(GMQ zOo#BHfxDRLlPBQ}zPLY=`g>E85-mr6aq_PDe3|-Z1V9#C5}ekUW_i zm-2Z7A7g=}Fb@w&3xP>L|GJ=_kgjKfpT&}Nu`Do}UUqBjqZq~mfmm*=!>l=J`AAx> zcE!|;FZ`dYb%983Ow)KSj3R5E8}rgo=avyz^~uJ|dS9meC)+}1o5Qu-D08?5igw-F zII5Mb<}D#Qe3$SdG<)O@c0XC_8EszDOXqSR?Y)zx12lc$8DdJPe^$ar!&$5_+dikE z9)>{K-rGBQYdrJGRAY**8Ud+w=sr(F9`SSA*{8p!eB5UNx@O^sFM+l3n()*im30siqtjk zMBq7QD3Qs`Q(J}zszgp<%l|FFHG;dYJY3RRCoqF9Oo11;>iY5mNpu6b=?i2BpZftx zbOX6fAmir%kv)?Y_yS-00Eu@4$@&8M3SavHiFX5;B9Qz!KqP4-kZ*ijlj;U?#}~-A z{;lyaO1I`Nfy|r(M6y-_FX zT)nS+k7+Bn?E$j4q^ccf^j(x`DPWP|I?5W)k~Z;d8|mV2$W63y=d^-4zyeJd32?~+ zKJEtS<4Eo)@DWr_+z!*F{1MWXP*bJJy}}d!*SgUig$7vv6SF&Sa4%VCV@}Qlm%;Hi z7LzMlkZ9v!a!v2!a{r0mr#gy*KT^Am$K4%U^>l3Ah1`REqUwQ-1FlhG`Ho4{7KZ-? DgyPu! literal 0 HcmV?d00001 diff --git a/target/classes/SocialApp.class b/target/classes/SocialApp.class new file mode 100644 index 0000000000000000000000000000000000000000..72c4f41fa26ad9c5db45dc4ede36ffe6a3eb5b34 GIT binary patch literal 2078 zcmbVN?{gDH7=AWMdo(%HP-rVHgn~trf&>&%NUf9z5>06}wF>^+UarZ}>s{vV!c4#U z$2j8`Kj@6Yw9fbkIQ&hF&+et|#nyiC!|m<9`~G;I_kDNw?^nBj0l0~F7Ad3+WK0ZU zSfKD!K9dz!dhN>c`cvDA1cv7w&xsZU(xvj6ffE9!wNfu~+{$7Q$nAy`Mp+n0k01xr zz)2H%j0%i2ean&VVz)~#fgeV8zzB^4Yh_p+Bal-j#&B976WJj{UM$ti3AK%$XGM%U`-fwW9q!s~P=Ez9nb=Y;`q`!s957xuR7Km)vN;tjkhU~Kro zeQ9+BW{w20Z&Y5(qKr8MS4>>RTMV~i2chqA(zc_;wyi5!H&7AC)jGDdxwk*kblRSb zdI43Y5=2#*<{PnAb)m{K)%+H9MjMW2Kk99*+rg?_cPSZb_?C3nWZ+zn}hVs?m88@A-bjPM6&!JL>qY zaC8_;Svn|7t4A<;r^NGtM#ZB}+Gxq8`Wl{AV2Jd|F` zwZqwl?{D_H)i}jkjR(^4+DS=2T5Pz=^!~riIOOrR{X?6?Ta&Kaba>Acu*!x?GK#Oo zYWWGX#gmr9mnI(I;{xs!z!Ds(yEZz6Z`7&$*2H(}n$0CDTEGt!95ggr(yV))9n@SI zhIVMc61aS*4o9Wb0P9>lUX|BCoPS&-_!O_DYy6;YZ2qrvmck7_20}du9N(s70covM zn0o;+_a}_UFEH{4vcGBVcQ~qN1hmNT8Mw)r8SCR++~P{$J-km1<*UM#iZ?X(JF>rW zl7e!eLMgKYc~ zariP}5%(COMrn+uNUa-O#d{xdFJ^YXkW~%TXSPJSVwS)19HptBU}SzqMzf4j#CaM| zu*~b2G@<{PWROT-%!3RmTF_R;jWfpjY~f#W<1} zl1S+o#)!ahz~h;1m9N-!qxIVGlt9S-C@_{Sm&>`z6$!-{ZU`jWYVGqr^N*CXShw2} zHz~496~`#X{8GjR-e$WPK{30YV_MDPzlyG8_Vw|aaR+zF(^OumNvSlW9LIf3 zNKERO!UK9|JI(w-hi2tVuB#k+ryIdw<5S0IxdM^w=4P%cG4t23J>@b@Telm;OjJxu zZFkx=)&sPRcCfvFoIMAq-1W~WRx=%M zzhRsRq_1>>1gdSAEu+zJluN$oVQ|FU+H;YlF?D>%OQISAqRbSd?y*vV%udJh54UQ% zCWV(Q%k~V@?Ze$9#QQTm}pUp|GDElWA;E#FK6gn7y6{4{T_ z|Ajzf5oMd@EYDuBkIbGydxi$M^Dr8^c?s4bki6Jh{Ajw5`(<^ z35>9vzz}thka83Sj0JLbx|BURVLr;mpbCkH{0Av5i5Wb?V}!YL5>FV_h?HjLGgdxL l%mS7ueSvTCIY$yN$nKZC%szx-(5~Pm`#4wq3%$CQ`2#Y-*!} Date: Thu, 5 Aug 2021 16:25:41 -0400 Subject: [PATCH 2/5] filter older than test --- src/main/java/Person.java | 2 +- src/main/java/PersonBuilder.java | 32 +++++++++++++++ src/main/java/SocialApp.java | 4 ++ src/test/java/PersonTest.java | 3 +- src/test/java/SocialAppTest.java | 50 ++++++++++++++++++++++++ target/classes/Person.class | Bin 2472 -> 2456 bytes target/classes/PersonBuilder.class | Bin 0 -> 1162 bytes target/classes/SocialApp.class | Bin 2078 -> 2193 bytes target/test-classes/PersonTest.class | Bin 1029 -> 1222 bytes target/test-classes/SocialAppTest.class | Bin 0 -> 1866 bytes 10 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 src/main/java/PersonBuilder.java create mode 100644 src/test/java/SocialAppTest.java create mode 100644 target/classes/PersonBuilder.class create mode 100644 target/test-classes/SocialAppTest.class diff --git a/src/main/java/Person.java b/src/main/java/Person.java index 63b2023..1626ff3 100644 --- a/src/main/java/Person.java +++ b/src/main/java/Person.java @@ -9,7 +9,7 @@ public class Person { Sex gender; String emailAddress; - public Person(String name, Sex sex, LocalDate birthday, String emailAdress) { + public Person(String name, Sex sex, LocalDate birthday, String emailAddress) { this.name = name; this.gender= sex; this.birthday = birthday; diff --git a/src/main/java/PersonBuilder.java b/src/main/java/PersonBuilder.java new file mode 100644 index 0000000..7fd2639 --- /dev/null +++ b/src/main/java/PersonBuilder.java @@ -0,0 +1,32 @@ +import java.time.LocalDate; + +public class PersonBuilder { + private String name; + private Person.Sex sex; + private LocalDate birthday; + private String emailAddress; + + public PersonBuilder setName(String name) { + this.name = name; + return this; + } + + public PersonBuilder setSex(Person.Sex sex) { + this.sex = sex; + return this; + } + + public PersonBuilder setBirthday(LocalDate birthday) { + this.birthday = birthday; + return this; + } + + public PersonBuilder setEmailAdress(String emailAddress) { + this.emailAddress = emailAddress; + return this; + } + + public Person createPerson() { + return new Person(name, sex, birthday, emailAddress); + } +} \ No newline at end of file diff --git a/src/main/java/SocialApp.java b/src/main/java/SocialApp.java index 7a90d98..7c112ce 100644 --- a/src/main/java/SocialApp.java +++ b/src/main/java/SocialApp.java @@ -17,6 +17,10 @@ public boolean test(Person p) { return false; } + public void addUser(Person user){ + roster.add(user); + } + public static void printPersonsOlderThan(List roster, int age) { Predicate checkAge = p -> p.getAge() > age; roster.stream().filter(checkAge).forEach(Person::printPerson); diff --git a/src/test/java/PersonTest.java b/src/test/java/PersonTest.java index efa5019..87d9d28 100644 --- a/src/test/java/PersonTest.java +++ b/src/test/java/PersonTest.java @@ -2,7 +2,6 @@ import org.junit.Test; import java.time.LocalDate; -import java.util.Date; public class PersonTest { @@ -13,7 +12,7 @@ public void getAgeTest(){ Person.Sex sex = Person.Sex.MALE; LocalDate birthday = LocalDate.of(1994,03, 04); String emailaddress = "me@whatever.com"; - Person person = new Person(name, sex, birthday, emailaddress); + Person person = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAdress(emailaddress).createPerson(); int expected = 27; //when diff --git a/src/test/java/SocialAppTest.java b/src/test/java/SocialAppTest.java new file mode 100644 index 0000000..3b6d2a9 --- /dev/null +++ b/src/test/java/SocialAppTest.java @@ -0,0 +1,50 @@ +import org.junit.Assert; +import org.junit.Test; + +import java.time.LocalDate; + +public class SocialAppTest { + + @Test + public void addUserTest() { + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAdress(emailaddress).createPerson(); + + //when + app.addUser(user); + int actual = app.roster.size(); + + //then + Assert.assertEquals(1, actual); + + } + + @Test + public void filterByAgeOlderThanTest (){ + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAdress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAdress(emailaddress).createPerson(); + + + //when + app.addUser(user1); + app.addUser(user2); + int actual = app.roster.size(); + + + //then + Assert.assertEquals(2, actual); + app.printPersonsOlderThan(app.getList(), 21); + } + +} diff --git a/target/classes/Person.class b/target/classes/Person.class index b2dc8bb54744b55a361ee2f1bd708ece2455015c..3263d2117f17488cdbaf922b2d27231de38e5e40 100644 GIT binary patch delta 260 zcmW+wyG{a85IwVZckgAD1hPc3#>C3z3XNeKvxSyMW1{#*MeqeG|KKm^G}hA48nZF6 z@B^s)1Y7+G;&7{(Gv_s<_$7|Ulg}>z4Gi9*KlSeUD@6C423w1d@DKpnKN@<_u(Y;-+y0T0hDn2;D4zg6Zf0#UZr&x4+f9lszlV|C1-PC zgcKa%70olqEGN)rB|+A#Cde7{gc%+?iHjnpBI_|4r=$2j3Yuc-!31?Rb;%XG%9BRUsFm6}}i t>fwdB60*|v5-mw0#60q9=_}hHjcfk&CbKt^n?f5MnZ9tk@X%kM`vXuCHH`oO diff --git a/target/classes/PersonBuilder.class b/target/classes/PersonBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..b3ddb796dc7d96aef69dfcd7c4e5827f1ab723f0 GIT binary patch literal 1162 zcmZ`&+iufP5S-)OTGwgP(v+l7ZY?EAp#h1vA}%Q)kfMSV6p2SCK5AV#j$}Ki{1r$= zl|bSH_$b7z9Y~9l2k#!+v$MOidw%`?{u97sJThS*Q$W^24ta(0iT%lLdA5Jlde=YE zgGeF&#P!|isY0gS=q+Laiv^e#mS8Cq-|HY8`R%dmIXY0t`u0#Otahd}-6(MVqkRcn zwopQuM4>)ausTWbc2}RqzgI0>!J5KC-wmQ;$NsEPNr)nMs9T-U!1i9+k&eOZ7OqMK zmLA%!_rh@k9fk$eSZ_jWqKa$M)pdn8^>jfOv(L%;M|uY(VE z--~;e`g(TY%KPMFHad1gL0{5oU!f4{=rGo5YesF26h2QpbyC=@Uo1QgTq3ajPrscB z`F{eY!@d`v zN{cZGOoq(`pv7%&gux}u(sG%2GGsks&pn7eM@*lGlI^73CXM0nc}^MJvJ2m_(8mn!Dd uer%pmwlfs@tnjIvV`D0!j0lu-I)my&Km)t{W8gj>(3`~V@qRvhUi$-m%hCA& literal 0 HcmV?d00001 diff --git a/target/classes/SocialApp.class b/target/classes/SocialApp.class index 72c4f41fa26ad9c5db45dc4ede36ffe6a3eb5b34..b0496db111035880d6d796cd63c41f9b65ac2be3 100644 GIT binary patch delta 915 zcmY*Y+fEZv6kTUJ7o469Q?!(}Qb3VQX{{Hi7ZefjQf&n1B)CtacgT(RoRliUB_J$ zUfkoz;EIh28xI)#Lut8ADO+Am%q|!6D>Wi**RX6Njunm^bP{}8DU@rjrj02Eo+_8~ zmFZHpTFqAtJaX2xs9I!*IN#NP^HU4<908+iSZF6ZN}hr-=;UkiO*%2XuYQd3CRIRL z6$Xxz$0g3j37n*eVH~HZBT0UOBEhLe-^1J>M}Z&^qyqL2thK}jfZVS-*kk|Zkx z70)}=|EKUticYuOq7WTtFi9YWvzTg;%urU4a52e96SjiIO+hLLayRnRsXKQt^1qB6 z(~@yl9WyvbATieqvL3RL@HWAai8c{ph&2&Wu#JA8i6I3-#3My4*&U>#h0u+#6zX*u zb8reVq7m*@`OO$mNj8Ip7j6%0~nTqbY(zYqSkJhFc%8N~{kq?N4-oQ}b zLZ#FF8N)q(aL1mO6r~0da4$DYz6OO)(w~Ak3KU$$HL`gC7Cgi5V#E3g2Jlg3{M4lI47jv(wE33J=l}gojR3@BcpF@{Nif(^W zE!n*u`#IomsG&Vc4tn%+$p4{o{TZ?j10I76DeU>uTIEGql;u)&X1SyYr89YloIh-Q z-|h=dsYt=)3RfNGJ+5(myKI_DEz~yK+nQ_^UBcY*IM0PB6H)HgHWSl}O&0fEGCc5j zh^+{}Tw5tu1EwgC#gU#1tjWxx!poP-rM21BVx>~5I4t?!tgI=Wr2L;|!XL40KWVpi z52Iv75t>Afh-NT~CAx(z_n2R>d)E((-<1gBHF0FO;MMD*9A#WA#W9Xc#+c|iu{5TY z{e-(Iih%~uaJuYYvDGLJXirGIg$cPe$hb&NXoNnp{y#)>9U>lt8xT5Uk|`EH=Zc}B-? DU;bj3 diff --git a/target/test-classes/PersonTest.class b/target/test-classes/PersonTest.class index 3493b0d225b46686dd4826c7d1d51ac4728fbb09..d617a1d3ac288e9bbfd3c1416fe217f2d2446497 100644 GIT binary patch delta 659 zcmZ8d%Wl(96r39;cI&z&s01*jP-sb=HpNhgfhItcrY}ezG+S6$%~dc;Qpqt0R$-G5 zK>ZSgz*S5OXk8iXx@{>iYt`Pk?_9g(cA9oQ@V!p6n5+HAE=J7j24-+WKqa#- z-wRAz!>Ku@XDPjyGizWDw*sd#?yy5W8h$PPCKUR&C=qeHh&|lm!uC23+PsC-r?<3xD8vw9Rqi2(Vj8rAr7p4-)rsjgX0`8bTM8nGs*n(4ILg$ooA=Gq zO|xZ}8lCo4%dXWYZOMl9Q0spRn)$yad*LjZRWXNo2HCbc`?kd(X0pc$77^!2s7PX| zF9`*fekluwteb*BQb5RvTPDmK$QHDs92~?=+!9g4v owXW0cDOzfvO5%%9ut6TjCeb@bn`8ylT-?GoS%tFBZ}05sKcPWA-T(jq diff --git a/target/test-classes/SocialAppTest.class b/target/test-classes/SocialAppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ffa8a64569b54b45c78d8d265372c6a6f017b580 GIT binary patch literal 1866 zcmbu9TXWk~6ouFEO^&0)jvLcDkhW<;v6D1zOGzOvB~F?S4oXsTaVeCGVk?eijzJHrca{U!VghIM4esUdIZ;Yd1{z1RBomR|n-{0{&(;3N=2SV2TZ z6fuF+f&NG@Sh`&=Z0sHwRbL=>%d}1Zwm>+SuPBHM3~V`7Q@2XZW&#SraSU>C(>WZ# z5QY^bRirQ?kho{Ko?}mK8Q%&-)=JunfU2EL785vwQ3V+lui>n~nIN}sHjIMiRCVi) z?i&IjXHQ@(S1ytayYNz z0xk+Dp5d?S4W^jPbs`70w|v*M>&1LmX!kU=j^UDuNlcLlPX?yObFbPt?Z{;nZy_fz z$RkUp>+jd}LxIcPg#BJm%{i@NMyefVfR%=BTBVw6c%GDVMa3KnWLk9%TJN|e_S~@$ zidJw<#dW+*yLzp*;~6fs9IGzoD+Ao|j*5BQq%GI+e7Paj!O`+ftDu>lUmV1HSWr+@ zaSQKLOHha2GK=e(-;pC5q@2J9SX59_v4mxYa@>01pv49%lssl*Jp zZgn+ZiG$4%UNsw0wxzs6QhQm&Dn6q2y5UP90%@A-&mNduQ?ZT>flQOd^E)KG4O#Z> zeccuq?E>#B&yja^32cP-AOgPyGDt|{NUlM#R4 zq=%%|7o|wXUD}Z&Ys(HT5i?2YX+qHV9d#KQEAz>4R_g+#rG66DDAjm!~B*ofqVQD z$tw)TMU3Mn-wM17-lNk`A%5jU2wNQGvK+TLs+|qkL4|Ju_c_#9u*$2e}{ORh#alf_ri=~82)T~zs{)Tlr*F#-a6 z#{|RzPY!VIm;XVa%O`z@fJl#sMwCBOiPR7YzKTleqRJ|Lz~ZC0n~6(gGxulO_%M|@ zf_6f0p2UFjbaH_NF4Fr1{avEpNjjaPvm6ePM-$WdoGeqNpdOH{VHW#*QkWwXFpc*y4Z) Date: Thu, 5 Aug 2021 20:02:19 -0400 Subject: [PATCH 3/5] print range test --- src/main/java/CheckPerson.java | 8 ------ src/main/java/PersonBuilder.java | 4 +-- src/main/java/SocialApp.java | 15 +++++++---- src/test/java/PersonTest.java | 2 +- src/test/java/SocialAppTest.java | 28 ++++++++++++++++++--- target/classes/CheckPerson.class | Bin 222 -> 0 bytes target/classes/PersonBuilder.class | Bin 1162 -> 1248 bytes target/classes/SocialApp$CheckPerson.class | Bin 0 -> 200 bytes target/classes/SocialApp.class | Bin 2193 -> 2658 bytes target/test-classes/PersonTest.class | Bin 1222 -> 1223 bytes target/test-classes/SocialAppTest.class | Bin 1866 -> 2380 bytes 11 files changed, 38 insertions(+), 19 deletions(-) delete mode 100644 src/main/java/CheckPerson.java delete mode 100644 target/classes/CheckPerson.class create mode 100644 target/classes/SocialApp$CheckPerson.class diff --git a/src/main/java/CheckPerson.java b/src/main/java/CheckPerson.java deleted file mode 100644 index 07db0bc..0000000 --- a/src/main/java/CheckPerson.java +++ /dev/null @@ -1,8 +0,0 @@ -import java.util.List; - -public interface CheckPerson { - - List getList(); - - boolean test(Person p); -} diff --git a/src/main/java/PersonBuilder.java b/src/main/java/PersonBuilder.java index 7fd2639..8bbee12 100644 --- a/src/main/java/PersonBuilder.java +++ b/src/main/java/PersonBuilder.java @@ -3,7 +3,7 @@ public class PersonBuilder { private String name; private Person.Sex sex; - private LocalDate birthday; + private LocalDate birthday = LocalDate.of(1990, 1, 1); private String emailAddress; public PersonBuilder setName(String name) { @@ -21,7 +21,7 @@ public PersonBuilder setBirthday(LocalDate birthday) { return this; } - public PersonBuilder setEmailAdress(String emailAddress) { + public PersonBuilder setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; return this; } diff --git a/src/main/java/SocialApp.java b/src/main/java/SocialApp.java index 7c112ce..26f4352 100644 --- a/src/main/java/SocialApp.java +++ b/src/main/java/SocialApp.java @@ -2,21 +2,21 @@ import java.util.List; import java.util.function.Predicate; -public class SocialApp implements CheckPerson{ +public class SocialApp{ List roster = new ArrayList<>(); - @Override public List getList() { return roster; } - @Override - public boolean test(Person p) { - return false; + + interface CheckPerson { + boolean test (Person p); } + public void addUser(Person user){ roster.add(user); } @@ -25,4 +25,9 @@ public static void printPersonsOlderThan(List roster, int age) { Predicate checkAge = p -> p.getAge() > age; roster.stream().filter(checkAge).forEach(Person::printPerson); } + + public static void printPersonsWithinAgeRange(List roster, int low, int high) { + Predicate range = p -> low <= p.getAge() && p.getAge() < high; + roster.stream().filter(range).forEach(Person::printPerson); + } } diff --git a/src/test/java/PersonTest.java b/src/test/java/PersonTest.java index 87d9d28..1d76cf7 100644 --- a/src/test/java/PersonTest.java +++ b/src/test/java/PersonTest.java @@ -12,7 +12,7 @@ public void getAgeTest(){ Person.Sex sex = Person.Sex.MALE; LocalDate birthday = LocalDate.of(1994,03, 04); String emailaddress = "me@whatever.com"; - Person person = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAdress(emailaddress).createPerson(); + Person person = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); int expected = 27; //when diff --git a/src/test/java/SocialAppTest.java b/src/test/java/SocialAppTest.java index 3b6d2a9..0bdcbe2 100644 --- a/src/test/java/SocialAppTest.java +++ b/src/test/java/SocialAppTest.java @@ -13,7 +13,7 @@ public void addUserTest() { Person.Sex sex = Person.Sex.MALE; LocalDate birthday = LocalDate.of(1994, 03, 04); String emailaddress = "me@whatever.com"; - Person user = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAdress(emailaddress).createPerson(); + Person user = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); //when app.addUser(user); @@ -32,8 +32,8 @@ public void filterByAgeOlderThanTest (){ Person.Sex sex = Person.Sex.MALE; LocalDate birthday = LocalDate.of(1994, 03, 04); String emailaddress = "me@whatever.com"; - Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAdress(emailaddress).createPerson(); - Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAdress(emailaddress).createPerson(); + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); //when @@ -46,5 +46,27 @@ public void filterByAgeOlderThanTest (){ Assert.assertEquals(2, actual); app.printPersonsOlderThan(app.getList(), 21); } + @Test + public void filterByRange(){ + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); + Person user3 = new PersonBuilder().setName("Pam").setSex(Person.Sex.FEMALE).createPerson(); + //when + app.addUser(user1); + app.addUser(user2); + app.addUser(user3); + int actual = app.roster.size(); + + //then + Assert.assertEquals(3, actual); + app.printPersonsWithinAgeRange(app.getList(), 30, 40); + + } } diff --git a/target/classes/CheckPerson.class b/target/classes/CheckPerson.class deleted file mode 100644 index 662d56ebc8d872c8a20b34aad412714d3d1705fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmX^0Z`VEs1_l!bUUmj1Mh0%@jMU`pfYhSm{5*CB7Dfhvti-ZJ{hY+SbbbG%tkmQZ zMh5ou)DoY}VjxRML(>N=Us{rxqYo0ZW@O+D&P>lsEGaEYWn_@SP+;Q&G2Ge?sFbB7 z6=V#z224;hijjdUIKQ+gIn^yQ2WWr*l6&+(RsgZ%Lx%KI$8*AG3@NkH)-i{94Z49042DH151l@*HV0kXePxH7K^c5vST!4sMx~h` zsLkUlavJgm3RqyszUO{0@ajXy?Qx%BuH*ROanJt3P@EaRWT1#;2Gz6sbmT%Ll!>=O z-|>#*DJ27CtWxR$KV>kQ(Mj7aekwm-Gq5fo2JhRB`?A;bc@Sv0PDMvb9UIsbt+~nY z){LJq2~12i9#Uyj(g%YcC7o+J9zPuRJKXQb29O`Fhj!nr3pJD__WQncvz0YUQcwA8r$_bjYO0?XlhVz3;+@-twfZ~?o6 zyGgKY47NnD;tZJRo`CHom$?>$l?k>w112mGuqy7+Dh#MgD}d5ZY<#rNsBLFhp({(* k+68Wmn)ausTWbc2}RqzgI0>!J5KC-wmQ;$NsEPNr)nMs9T-U!1i9+k&eOZ7OqMK zmLA%!_rh@k9fk$eSZ_jWqKa$M)pdn8^>jfOv(L%;M|uY(VE z--~;e`g(TY%KPMFHad1gL0{5oU!f4{=rGo5YesF26h2QpbyC=@Uo1QgTq3ajPrscB z`F{eY!@d`v zN{cZGOoq(`pv7%&gux}u(sG%2GGsks&pn7eM@*lGlI^73CXM0nc}^MJvJ2m_(8mn!Dd uer%pmwlfs@tnjIvV`D0!j0lu-I)my&Km)t{W8gj>(3`~V@qRvhUi$-m%hCA& diff --git a/target/classes/SocialApp$CheckPerson.class b/target/classes/SocialApp$CheckPerson.class new file mode 100644 index 0000000000000000000000000000000000000000..5a868eb4778d327f5b0bda12867b47a88e549b48 GIT binary patch literal 200 zcmX^0Z`VEs1_l!bUUmj1Mh4N~{N&8U9LItJ73Yl98Kb_Nzk27#=^vPAuy z#JqHU|D>$cNTM2Zw`Q86i~6c9nh3y8OJ6G1`of&)}KP)cnpc!}Wyd?ND) zYT^qI5{*fD@B@r7{(*_leu6QsGgGiHJao=Jd+ojU+I!D*z53Ta3cBE@t;5G>w=?WJw04?) zg9zx=h@PQkx_LpIMGtQR=Ww18-L&JpNlv}x6O0cu6i5O|2lnwlSuZ7fWiJrFh+aM= z$z^8Af+k7&jblXw6-;i@;gNZ2YDpJz2}53RiBPKR!zEJfLBC7Y?G*fRw~qi+vedJS zFb<-@&2Dsk5qAm%5y2H)Wwsx6xQ6TGPSESskWpQ{dDs9kPyQfl4PlsfDgQN3jc2ss zz!r`JBP~UQ*91-!5mB&(CZLFz0@;!3j>pp#K?S0$-{|UU@i=yLMKR*)A}?;xQW#x_ zQ7Tl+6h=!5J#2uOr|{-l(2%cCX~NS?m!k-UkAFt|Evn?v@CJVEJv4P=N0_&_NZFu5 zt_%inBvOXlYY4YEa0Rz%>rnRf3KrvAUn(Z&qO1`M9AlO6yIrc(mn}2kE`cd*M{B}*yM*cVD`N}-?RbU0r@B;P!0EUOP A?EnA( delta 829 zcmZ8f+fEZv6kTU7J!Lu$(*&ulu|X3OC@NLkdO;B=g4GsL5Tss*Iu>lxHf??87i{Ji zOnl)1;)SS*AHYZW;CC3~K4&J<@NmxAm$lbkd*}Qf>P3yizu$iX$e_M&{9!o*7jThd z(nK1U7(&Z#yVGotQFXhsRhK~>8!vENVTk0n+)B;Qdu3%e5g9A`-qd)RfwdUILBLbh zb6#3K^!Bv0bz-IKRB9!swd!ovUGJBcu~rQ{#u~@Ei6_|jG@^%D^qGMOo|`CP$;Pye zSG~Phc5P6{rjS@M@fsl#(Q0oux_(<5a|~vo(Qw=Oy3^^n9gZ!AQLm@Ryryo2INmZO z1DEg6P{n4m_O6Aq)Jg%vWjcU`L3%S}Daay3wl41+MW&%jjGa0FOZ@=fIKaRc82b`^ zm2QKoKouG|u90Q>cwEN~@))LYlMuw^z2`$aqC#{KxFfV4pnVOuD1VANGf_o{$qtIT zOP+!whNxs1_Ok(lK-|U*)iBIrF5sA_s8DGxq&~x#_y$|S`tcD?(o%-|D9!(rCi0SU z0Q0y*L^*FXJSj)9XgxrjMo-`jPRr^M8B5BwQW8llV3CAy#Bdh{s=r53U$#JH$@6pf zDd(@CXdB`q1oBH17xJx%uQ;Fh0Iq$6)|C5D`}Ps<6K~0;R6`B?eLNsrhhomqm&P(V g3LfGSy+X+f#mab!7t(qO2QJ=F&L9O$wKV-UT5C8xG diff --git a/target/test-classes/PersonTest.class b/target/test-classes/PersonTest.class index d617a1d3ac288e9bbfd3c1416fe217f2d2446497..42cad47d2e269d92cae26d851fc8019b4b206e08 100644 GIT binary patch delta 24 fcmX@cd7N{@JVtK*;?xq?+{DZr$CS-080DA&Z}JFV delta 23 ecmX@kd5m+zJVq|Q;?xq?+{DZr$IUAl<(L6y0|)v5 diff --git a/target/test-classes/SocialAppTest.class b/target/test-classes/SocialAppTest.class index ffa8a64569b54b45c78d8d265372c6a6f017b580..c2de11cd22c99c933639826de006535280ab5670 100644 GIT binary patch delta 908 zcmZ9K&rcIU6vw~QcH8aJ3ME!kB1TSv#gv2!*d|ETs?|bjTdXLeE8Uib{<6FL5|f4l zk&DsL#CX)iL{AvN6cpnhK>R~Idh}#`yTviOhc`2CX5RbcGkb94Tf21d>+@FtK|I-# z-m{igP0^!8SuI4eJ6~9g)kNH6uqNc96KET$c=avJL4DM8UT9pft zN+qpmI)m*}IjgXpQ`SCq%$-vUx>CKkd{{=9*OY31eazNhdrUOVW`vnime7T}u$Wjj zFbJ?yyhrN*jf_U&%r4j#O)QwAXlxttK1Ema03JZ56~jZyTg=PfVS`Ay^gbLDyKu(a zrO|D;#ylHBj7`0SU^M^)5ubx7Q~<+N5xtZMIIhl;X@cRP^oYy1~E&! z0%d%dLxI}HsZtRo@>-_424uxVdh`d0h3KY}axa=l^`F9XB3ZYGO_Isx9w%AnBx{^x zm6I%T5{;9LqiT|5(F=`c4y?dyGKv2&>6~efm?RrPeW?Gih3jYSJ+*ywkgyZ&i3U2i zk!+x=f!>hl_t_ih^ZOiT6pi>1!A}@s7;qlNxYxP1hhcxl-@vuDlWpC5$oze?VbW;) zvLeor+5uV(lDHufd7c!8NO_oGhp~zaH9W-#o*{x)xQsVse-l^D$Id}AK)IoJ+|XNY y=ruR=k{jCKhIDS|1~(MMJh>97+i}y?Y3Dz(ELfnX7A#_kMv0!)jb*Hi_HYIxV-1~o^zhBnPI{n{=9ww%XEA8i?S1*dzooh8?E*JyUHrvWV7Ga zHBsYAW52i4u~b?cBa(-R t Date: Thu, 5 Aug 2021 22:42:01 -0400 Subject: [PATCH 4/5] inner interface --- src/main/java/CheckFemale.java | 6 +++ src/main/java/CheckMale.java | 6 +++ src/main/java/CheckMaleOlderThan21.java | 2 + src/main/java/CheckPerson.java | 8 ++++ src/main/java/Person.java | 3 +- src/main/java/SocialApp.java | 32 ++++++++++++-- src/test/java/SocialAppTest.java | 48 +++++++++++++++++++++ target/classes/CheckFemale.class | Bin 0 -> 474 bytes target/classes/CheckMale.class | Bin 0 -> 552 bytes target/classes/CheckMaleOlderThan21.class | Bin 0 -> 285 bytes target/classes/CheckPerson.class | Bin 0 -> 132 bytes target/classes/Person$Sex.class | Bin 916 -> 916 bytes target/classes/Person.class | Bin 2456 -> 2391 bytes target/classes/SocialApp$CheckPerson.class | Bin 200 -> 0 bytes target/classes/SocialApp$Checker.class | Bin 0 -> 610 bytes target/classes/SocialApp.class | Bin 2658 -> 3344 bytes target/test-classes/SocialAppTest.class | Bin 2380 -> 3273 bytes 17 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 src/main/java/CheckFemale.java create mode 100644 src/main/java/CheckMale.java create mode 100644 src/main/java/CheckMaleOlderThan21.java create mode 100644 src/main/java/CheckPerson.java create mode 100644 target/classes/CheckFemale.class create mode 100644 target/classes/CheckMale.class create mode 100644 target/classes/CheckMaleOlderThan21.class create mode 100644 target/classes/CheckPerson.class delete mode 100644 target/classes/SocialApp$CheckPerson.class create mode 100644 target/classes/SocialApp$Checker.class diff --git a/src/main/java/CheckFemale.java b/src/main/java/CheckFemale.java new file mode 100644 index 0000000..f6e1e29 --- /dev/null +++ b/src/main/java/CheckFemale.java @@ -0,0 +1,6 @@ +public interface CheckFemale extends CheckPerson{ + @Override + default boolean test(Person p) { + return p.getGender()== Person.Sex.FEMALE; + } +} diff --git a/src/main/java/CheckMale.java b/src/main/java/CheckMale.java new file mode 100644 index 0000000..a0ef7a8 --- /dev/null +++ b/src/main/java/CheckMale.java @@ -0,0 +1,6 @@ +public class CheckMale implements CheckPerson{ + @Override + public boolean test(Person p) { + return p.getGender() == Person.Sex.MALE ; + } +} diff --git a/src/main/java/CheckMaleOlderThan21.java b/src/main/java/CheckMaleOlderThan21.java new file mode 100644 index 0000000..23aa9cb --- /dev/null +++ b/src/main/java/CheckMaleOlderThan21.java @@ -0,0 +1,2 @@ +public class CheckMaleOlderThan21 { +} diff --git a/src/main/java/CheckPerson.java b/src/main/java/CheckPerson.java new file mode 100644 index 0000000..d45ac74 --- /dev/null +++ b/src/main/java/CheckPerson.java @@ -0,0 +1,8 @@ +public interface CheckPerson { + + boolean test(Person p); + +// boolean testFemale(); + + +} diff --git a/src/main/java/Person.java b/src/main/java/Person.java index 1626ff3..6de20eb 100644 --- a/src/main/java/Person.java +++ b/src/main/java/Person.java @@ -1,6 +1,7 @@ import java.time.LocalDate; import java.time.Period; import java.util.Date; +import java.util.function.Predicate; public class Person { @@ -65,7 +66,7 @@ public void printPerson() { System.out.println(person); } - public static void printPersonWithAgeRange(){} + @Override public String toString() { diff --git a/src/main/java/SocialApp.java b/src/main/java/SocialApp.java index 26f4352..2d352fa 100644 --- a/src/main/java/SocialApp.java +++ b/src/main/java/SocialApp.java @@ -12,9 +12,20 @@ public List getList() { } - interface CheckPerson { - boolean test (Person p); - } + interface Checker extends CheckPerson { + + boolean test(Person p); + + + static boolean testMale(Person p){ + return p.getGender() == Person.Sex.MALE; + } + + static boolean testFemale(Person p){ + return p.getGender()== Person.Sex.FEMALE; + } + } + public void addUser(Person user){ @@ -30,4 +41,19 @@ public static void printPersonsWithinAgeRange(List roster, int low, int Predicate range = p -> low <= p.getAge() && p.getAge() < high; roster.stream().filter(range).forEach(Person::printPerson); } + + public static void printPersonsFemale( List roster +// List roster, Checker tester + ) { + Predicate checkFem = Checker::testFemale; + roster.stream().filter(checkFem).forEach(Person::printPerson); + } + + public static void printMales21AndUp(List roster){ + Predicate checkMale = Checker::testMale; + Predicate checkAge = p-> p.getAge() > 21; + + roster.stream().filter(checkMale).filter(checkAge).forEach(Person::printPerson); + } + } diff --git a/src/test/java/SocialAppTest.java b/src/test/java/SocialAppTest.java index 0bdcbe2..53915a0 100644 --- a/src/test/java/SocialAppTest.java +++ b/src/test/java/SocialAppTest.java @@ -69,4 +69,52 @@ public void filterByRange(){ app.printPersonsWithinAgeRange(app.getList(), 30, 40); } + + @Test + public void filterByGender(){ + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); + Person user3 = new PersonBuilder().setName("Pam").setSex(Person.Sex.FEMALE).createPerson(); + + //when + app.addUser(user1); + app.addUser(user2); + app.addUser(user3); + int actual = app.roster.size(); + + //then + Assert.assertEquals(3, actual); + app.printPersonsFemale(app.getList()); + + } + + @Test + public void filterByGenderAndAge(){ + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); + Person user3 = new PersonBuilder().setName("Pam").setSex(Person.Sex.FEMALE).createPerson(); + + //when + app.addUser(user1); + app.addUser(user2); + app.addUser(user3); + int actual = app.roster.size(); + + //then + Assert.assertEquals(3, actual); + app.printMales21AndUp(app.getList()); + + } } diff --git a/target/classes/CheckFemale.class b/target/classes/CheckFemale.class new file mode 100644 index 0000000000000000000000000000000000000000..b98e290cf52881ae5717b3ed586f85f50544bcfc GIT binary patch literal 474 zcmYjN%TB^j5IsW+g;E}(qWCs(0Wpz{J2n^s#-xY|#)Z2}oj{=!(iYBf}{7cTq& zKgu`+h-_x=IWyi(c%aBuG@)!@krH azAzGp0!rg7W*wmOv62&jljT>DkxbOq~ zC~=ae>f+8YXU;w6&fKr>k52&GST~?R)uEZlVSrHTihEJ@gnw0Sw!6}a2?IN>@5Z|X zwOlzjFo?Vk!$bil_fBOP1wJ8vCF4WsU&@eRl`D1+Uu(&SS{@dLbd*dCV}xM*wFuhr zp1n^n|MPW>v0kGio$F)aNgWe}LR$9Cv_^0#2}8E)%agmCwhYfi+hb(J4jkc~i_lH# z4AkO|8?l7_D_LXXSVlZsp`1C_Di;L0B@FffLa`N#+!-=QiF!FKK&yJVVMgB QD_G@haMR*{UaL?40P*=`h5!Hn literal 0 HcmV?d00001 diff --git a/target/classes/CheckMaleOlderThan21.class b/target/classes/CheckMaleOlderThan21.class new file mode 100644 index 0000000000000000000000000000000000000000..e0bf262f2b01bf5c653ff0b41ee3e5074731f29c GIT binary patch literal 285 zcmZus!D_-l5PcI9qiHlEQt;SY_0XX7rt~6sih8hk-^8Wabelj-`d>X2dhi4MDCunQ z=nTA>_ueqfT&{m-0IwK$u+Va0`*6@E3^MU8LM`%-a2IDXsR-?*%2oA7XgyC3E;@wK zDwWCSMrgUyM_In7BA?F)_Nq8aLJ+B3ZtJg@9T96*hEb6SeGsKG{3hB}s!oK*=-#pg z!P^&gnaH&=8^-sBUd*j{g3B+MAWnXQvCAxMIN(fwK|d^5@EDD4MjsgcrgymZ8m-T0 GA@~QolRL2h literal 0 HcmV?d00001 diff --git a/target/classes/CheckPerson.class b/target/classes/CheckPerson.class new file mode 100644 index 0000000000000000000000000000000000000000..4516817ecfcd69573d9da0ed7012ce844aae0ebb GIT binary patch literal 132 zcmX^0Z`VEs1_l!bPId++Mh0%@jMU`pfYhSm{5*CB7Dfhvti-ZJ{hY+SbbbG%tkmQZ zMh2FW)M6mTt>FVvXRR5<$iNkxUs{x$>Xw<43e<#TiXO-SHbw?U24&i5y9yQlyhR>VQ`+j wlS6j$UyeLoPliCCdwCcbfut8h5JNDKW@1PKlj#f@K$;6Em&w4vknJD|04~HS>Hq)$ delta 291 zcmcaEG((u{)W2Q(7#J8#7;-mq-C&UrFDS~)D+x#~D$dUf&n(GsOiv9;%u7$5{D4J= zF?%vEs~scnWFJ<0Q62^s23`hE20kFs{zH;f#PnAT3|69b`4fNpqM^bZ2`MJqY+TtmemX>W)2qn z$!^1G1+>u`Xs69&JB|oW2cVoI0}q4KAN*WClYfkmdr)WifCt8Kb_Nzk27#=^vPAuy z#JqHU|D>$cdMuSU)L(Q9r6x2=;G$%EqJyo7IX&2xJJEhVQhcd(`je%QwpDsz6|h zknYG^S#+g$T|8@cloJWe5XOg)uj!0Pg%Jk}qdukGD?&mC>(W&`M%iz%nyj@wbvo!Z zRd6AjI+3mUj&v_&(ANGaNPRB;Vj@g5BI$JNvOh{&nzyQYLuRYt4+2M3+nO!)y}`a7 zn)g2OJQb8(8HOq(#Q9tTTYSxLAVG|lHGwp;AWZX5#0|nM=GaPNo;4xIc7;EOSf}@% zK~E6(5XJ+H_@l1C0>9=kKZ8ZK?N2P0u*}{H%NSy*L+*~%zbGgEqRjnI8N(X$$FPnK S)>*a^ESrZp-YJi5Gw}f&e{sM7 literal 0 HcmV?d00001 diff --git a/target/classes/SocialApp.class b/target/classes/SocialApp.class index bd30ec61f4f66dc212feb9c84decdef4dd5863f4..af1eb7fbfcca23945ba0ab52cd215ae0876a07b1 100644 GIT binary patch delta 1550 zcmZ`(YjYD-7=F&?vfJ&Fgp?*4Xo-?)lQ`3~VgXx9O94ewiy}o(DQUYxAWdR6Ma4_- z3f{0~KlxRi@rxhYL1kKI`~m(1Kl(!)pL2F;GCFjod(L?;&-1+Rdrtn|wVE>j{AcSA z0Q+%g!^~?t;s~H%;SmfAq}_FqaPyj(j3bCb93d1;JcCgk2P_=Kp}R-5jCLSiZ0Jx&AxyZAT4FdJ4dVlu_o0On z7I-T*A~mA%2d6cnU4jpgn^Mhxs*`1!e@HGa9hGcpSkbPXbdo%7}6I zww`Foc!>^?ANo`aJ6Mq<(#y`g;<~K4!NFjN%ra24;K#o9Gvsd)P=S74qeS4eTg?-!g%Jw?bL5tYmCA07gnRlqGz zeFAdi@-LxAE}ua{v1t$3b}2UgviNNB%E`$_@?=RpOn#1 z(KbCA-ohoW6CB26+G?o7QM)Ft;ks{o-?!E9(f01M?cFWzz9vSTXgB!&z6l%n7T;kF GkNyig#nNX0 delta 945 zcmY*X%W@J?5IuKb7??}|V*&*z#HysqJgPuVK#dO~8cj?zhWLt)NC*Z5VFY}ji|kxm zHGiO1xpAQt%Y_Tw`x!3$23MBn&X5W&=1zB??sK|t-#5`;gZj_E-@XHw!mH2vgwn4g zg(Dh{8aRfjosKf1SSxCJK$rsk`F5dLT`HKXg^gOtdaZ8y@9MaR`x@2_JV0URkLneP zO&xtG8MuL)L2L>19bQ~6HCv7P%-C8G6>FasD_5mV&A?-Lm|!+5^|q4}L^j}oDJh;9 zSV3OEn6KAM&0MX}YL!|V+5$uQMzK<;&6?&&u3Rcsol+9@cp9Dyj9Mwrs7FIbAWk!G zg}n#%PjgxYX=o5o;o+IF=Ddftk29_l0i$lBCukW&fgny|hJS%mIL(XagGE& zCGz9~m54lfeq9JaN_d2gVkQO6F8=9LvAR9 zRbHZk>$FuUgIPf}zSypsoK-HyKS7b``~O8c1e`rbdKTojFP0F;k=$aJ+sF#Gc8h?5 p+gRgY?&J=?4HWUvw#s;fdN3`IbTVm-m9~mx;lhnKgm@_k2E-~_#8hi*tEJH-c23gV(`3@5R;^Ww zZoJR|ap9t(AlQWz7cC096feI?d^0JZ7`hTSGv}Q7zH^@Eyz{f?TPX1T*T>HQ`mnef zNO;ErFcAyl8m=q!lq;E{J)|quQn7kg7m|6c(7P|1P0l34H9M0JM>ADBvfph=1d(hu zb-PW2tgRk7++Vat%O)m26ub$wrz@4o+q!aUc0d;`T~XNn_X4Z?)7tsbadh&&g0FS3 zf_FqWup2kvAt&I2g5f?b&cd82zKsKGP^%nxpf`$|r74bstpcPm#hF5e>mFE6($Gpf zUybm5vuYTAJ}+-n`4L4HIaY7MIpk4b$2Ocn5#8`2ga}F~qXWBe4AcB-a3zEas@yxu zoov*2ku%(}iCcHiZM4oM!f|$Xa_!kCnB!}3YQCo=G0ccd5^H@El1DXE}R`wT_8DDW6~_aPNDNIbGoF zB2yS*DwmkYFt-??`4|>(1rKo*k1@_uV|c~?`yJx$-_deh5y#i!xGat@#c^UuB%g?6 zStJKU@{maOZYp_4E`Bq|c)O#;`_gnw(J@WODLQ88n5AQmjzv0_=vb!XG#za^*63LO b2gmsTar9uG;dpSDXkdy8TX7E$PKJI1$LPKs delta 548 zcmZ9|O)ErU6bJDCz1Mx2i)0Gjg@p|pC8gBNMx@9r~WL6mICNAMw(z5MSTonmu3&w0*s&adayc@Nuf-;d7#da!$ICpFDP{O(0dD&COZ z-M*v17A=XZwU{2k``!tRz**BwsBwoD}$&pA7MRFjLl1K_7 znM6L2q|k{1GZPgw1t#mCsVJrlO|}=Y9w_;;1_DVMHkCIbxfaQlNG?TkCX!Q;6h$&3 ik{)c*WZ@hwfhqLIq+*LZ)i6pZGqL%7_1H$G&-nq-6;Lw( From fe93cafa80a54726dae14251dfdc71f1e7dc096b Mon Sep 17 00:00:00 2001 From: Dee Date: Sun, 8 Aug 2021 19:54:02 -0400 Subject: [PATCH 5/5] filter streams work --- src/main/java/CheckMaleOlderThan21.java | 6 +- src/main/java/SocialApp.java | 21 ++++++ src/test/java/SocialAppTest.java | 82 +++++++++++++++++++++- target/classes/CheckMaleOlderThan21.class | Bin 285 -> 619 bytes target/classes/SocialApp.class | Bin 3344 -> 4475 bytes target/test-classes/SocialAppTest.class | Bin 3273 -> 4991 bytes 6 files changed, 107 insertions(+), 2 deletions(-) diff --git a/src/main/java/CheckMaleOlderThan21.java b/src/main/java/CheckMaleOlderThan21.java index 23aa9cb..1f05d41 100644 --- a/src/main/java/CheckMaleOlderThan21.java +++ b/src/main/java/CheckMaleOlderThan21.java @@ -1,2 +1,6 @@ -public class CheckMaleOlderThan21 { +public class CheckMaleOlderThan21 implements CheckPerson{ + @Override + public boolean test(Person p) { + return p.getGender() == Person.Sex.MALE && p.getAge()>21; + } } diff --git a/src/main/java/SocialApp.java b/src/main/java/SocialApp.java index 2d352fa..ccc44c3 100644 --- a/src/main/java/SocialApp.java +++ b/src/main/java/SocialApp.java @@ -56,4 +56,25 @@ public static void printMales21AndUp(List roster){ roster.stream().filter(checkMale).filter(checkAge).forEach(Person::printPerson); } + public static void printFemales21AndUp(List roster){ + Predicate checkMale = Checker::testFemale; + Predicate checkAge = p-> p.getAge() > 21; + + roster.stream().filter(checkMale).filter(checkAge).forEach(Person::printPerson); + } + + public static void printFemalesBetweenAges(List roster, int low, int high){ + Predicate checkFem = Checker::testFemale; + Predicate range = p -> low <= p.getAge() && p.getAge() < high; + roster.stream().filter(checkFem).filter(range).forEach(Person::printPerson); + + } + + public static void printMalesBetweenAges(List roster, int low, int high){ + Predicate checkMale = Checker::testMale; + Predicate range = p -> low <= p.getAge() && p.getAge() < high; + roster.stream().filter(checkMale).filter(range).forEach(Person::printPerson); + + } + } diff --git a/src/test/java/SocialAppTest.java b/src/test/java/SocialAppTest.java index 53915a0..1a9f87f 100644 --- a/src/test/java/SocialAppTest.java +++ b/src/test/java/SocialAppTest.java @@ -95,7 +95,7 @@ public void filterByGender(){ } @Test - public void filterByGenderAndAge(){ + public void filterByMaleGenderAndAge(){ //given SocialApp app = new SocialApp(); String name = "Roy"; @@ -117,4 +117,84 @@ public void filterByGenderAndAge(){ app.printMales21AndUp(app.getList()); } + @Test + public void filterbyFemaleGenderAndAge() { + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); + Person user3 = new PersonBuilder().setName("Pam").setSex(Person.Sex.FEMALE).createPerson(); + + //when + app.addUser(user1); + app.addUser(user2); + app.addUser(user3); + int actual = app.roster.size(); + + //then + Assert.assertEquals(3, actual); + app.printFemales21AndUp(app.getList()); + + } + + @Test + public void filterFemaleByAgeRange() { + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); + Person user3 = new PersonBuilder().setName("Pam").setSex(Person.Sex.FEMALE).createPerson(); + Person user4 = new PersonBuilder().setName("Julie").setBirthday(LocalDate.of(1996, 11, 13)).setSex(Person.Sex.FEMALE).createPerson(); + Person user5 = new PersonBuilder().setName("Charlene").setBirthday(LocalDate.of(2002, 1, 20)).setEmailAddress("baddie2002@addme.com").setSex(Person.Sex.FEMALE).createPerson(); + + //when + app.addUser(user1); + app.addUser(user2); + app.addUser(user3); + app.addUser(user4); + app.addUser(user5); + int actual = app.roster.size(); + + //then + Assert.assertEquals(5, actual); + app.printFemalesBetweenAges(app.getList(), 18, 29); + + } + + @Test + public void filterMaleByAgeRange() { + //given + SocialApp app = new SocialApp(); + String name = "Roy"; + Person.Sex sex = Person.Sex.MALE; + LocalDate birthday = LocalDate.of(1994, 03, 04); + String emailaddress = "me@whatever.com"; + Person user1 = new PersonBuilder().setName(name).setSex(sex).setBirthday(birthday).setEmailAddress(emailaddress).createPerson(); + Person user2 = new PersonBuilder().setName("Jim").setSex(Person.Sex.MALE).setBirthday(LocalDate.of(1987, 10, 13)).setEmailAddress(emailaddress).createPerson(); + Person user3 = new PersonBuilder().setName("Pam").setSex(Person.Sex.FEMALE).createPerson(); + Person user4 = new PersonBuilder().setName("Michael").setBirthday(LocalDate.of(1996, 11, 13)).setSex(Person.Sex.MALE).createPerson(); + Person user5 = new PersonBuilder().setName("Charles").setBirthday(LocalDate.of(2000, 1, 20)).setEmailAddress("cmoney@banks.com").setSex(Person.Sex.MALE).createPerson(); + + //when + app.addUser(user1); + app.addUser(user2); + app.addUser(user3); + app.addUser(user4); + app.addUser(user5); + int actual = app.roster.size(); + + //then + Assert.assertEquals(5, actual); + app.printMalesBetweenAges(app.getList(), 21, 35); + + } + } diff --git a/target/classes/CheckMaleOlderThan21.class b/target/classes/CheckMaleOlderThan21.class index e0bf262f2b01bf5c653ff0b41ee3e5074731f29c..dc3a2e30ecc2528352560057d9acadc34540a155 100644 GIT binary patch literal 619 zcmZuu!A{#y5S)!2OdJ!^0D;h!0;MIP5>YE|K?oE+1Nk4o-C_C{%0i5MOEOpN$*}n6yxI z@B$@){YVMSgB^EQ;5^MwT1-2bL7DoL-RbJI_r8TW!F02yJKqnKuaA6oJMO9A(?<*Q zf_%z63}iM3r>vWFy+9wH|7bH+wS6KbchFJ(i3+_W9)V`u^CCgneNMf>Ib$7h75VCD z&_?Z>K+Xi?4}f5z6{}>jvyrCV8k~n6z2_xeE6)k9C(GvF?+1Yno4$%7%^?gf4NI8i zVOYm2C7#EjeaWa!FZ9{98_4gJenp$m;P;x=875!>Z&GZLa>L@U6w45+eE19N4<@cq zBZ delta 136 zcmaFOGM9<#)W2Q(7#J8#7z8GA=}WOQa4<56IA^3LXZt4Rr26Niq!xu_B<2|zPJ9qB zIfYR@m_d<&oq-9cgMon&2w54}fFvi7rw`^cFtBQEXJFh26kuZD0+JwUkWy|S$pdDy P0%=~b7$1;iV&De=hVT;& diff --git a/target/classes/SocialApp.class b/target/classes/SocialApp.class index af1eb7fbfcca23945ba0ab52cd215ae0876a07b1..49282aa529149d6938cb59f697acf35cf6c99528 100644 GIT binary patch literal 4475 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 diff --git a/target/test-classes/SocialAppTest.class b/target/test-classes/SocialAppTest.class index fdf4b36ed882379948e5e0877aee9342d1177c52..bf149e032ec04f260d748c52a4c7889a9db3754e 100644 GIT binary patch literal 4991 zcmdUyU2q#$8HV4rCGARH$MTPwD&VwfLb2mCa@_p1R!J=2C_5p$(x8Z5m1-Dd|iZIzwqFjv-K(DFZW|GQ+?XS6neLTrjffY0JnaW@kfC(Ws$`on!g=Aeym4MT?FwS`~!$nuTKCUN>$& zrocCnNDV2_Q`N?J2<_-l5z%oARw`(B_jatD8B68UMs}y+mXS+9k=0j1!~cBMvWY|Sli{T z?4~{L6fAox-dzr~Je#qu!W}x+VjUIXOgE{{uG(~#n{ua)Poqmg6Q>MX1!p>A%qzIF zykUK=%kH^eM~{fMg$oSj3@e++WC~`nDB`(G$40~`YPw)DcQ0M)-c^Z&QLEUbqYrm8 zUn7&*Uo;C0rV@6%dm_jYTXby2Hs)2x7acJm?CDW*tZXc06`gn!?nS?fxQ_eq83ij` z5VD(ei`H=pNrxmuxE}*55;_L4gG=QLQ?Z#69TZCxxjPM|8}65(qa`C-RN(I#9`2sd zKzB3_TRA^{DgGKn>`5KNc#yGAnT`lVK^v2+-`!1eM8_!hD2U9Gp5rM|+#|T}n>K6( z9c9I3%<-hy^C9lJ*T@Ouj_cSbTpQRmB&=EqgO*Y8u#SWHENxi3`T@(Cw(P`|ImXk% z&S@S zcDL7CtJ1H5C&oWq%37v|X$9JjX`_%eZT^~}5|i|SW%l*<_6_h`&J^dRlC58aYwO61 zY**H}rYX`bYB)+FBUXCaFtZwnQ1y0TPl?3Sxx8)84@?^Nk)l{!tU0ISF|nq{ z$IYf@MHR<+TxC_+XA0839r+CPX-QeOIa_ zIL%(Ry|-wiF+0n)>L`xz*=`kRyS@m}9Ys;Rv`Kk%Bi^VbCzqxsPAkj3#Np(cCHJIh z<@&%~0!G@Q;T0%J1<|pREtZ(DiWYN7*mmAA94l{gYB*IrG9qZsz4fq_<-r`Br~J~? zUP6Ac(I)a1pM6xZGPLYUxBYG&*-HCv)8?tDSyRC98tE=>K%0AGC+9t1)py?Fb$VTH zM729@E=RJ3M)L-WF)yZayc+vX;917qge1O*FEREO4B;eN(a0Hbd>PL%k4|jEDfar=62({WJhM!3 zr5A9TNAas%S7>sEp9;QKQ9$YE%plud{2vr3>(jQA0#Q9m)T+K84uzYkV69YYS*oa7 zCz#fOT@g)4)^ng|0S|;Di%3<~+e*cN)y(8JDsVev8y`SrR=9`bUNN}iHRo|HWq^JH@=8)*GM@37p4HyiQwwAG=-Y4|@_w>ED#nzagc+B&9zmr9UgB zcckx7_jx0No0;1UQgO9)eC2yfja5Ek*dr2xd~9U*{G0@yXf!xZ5lB{@U@kKlWFv|1{0i2NlW+i~#50ZbEsMF2AdaD)JCN}4BtSpqmp01g3^2w?680yuXQ1DIS2 z;Bf+Yf&iW*fTsxHX##kL08S9VvjlLG-^A_r908mnfENhhGy$BsfdF2W0RGGpr1QE} zZ(s?kTn{F%hgS8&a8u=0zJkhK5v+`va>xA67w+&b?lz0>IMs2XW$u({P~0rhP~H8~ z)PWymd!BH=LAb9G?l*A}7w~I7e}hZ- zJ<QN>AIfrf zS(dxg<#KnCXa78Jo*?5HV1&=}cKfJ&2Q@9ZgI@bs8esN%1Bf>@@vT3lX@GZWfFIES3pBu0qF;l{9mLD#q)D~*rfF-v-vuX;2E;+I zqR_!XN)g4uU4M(eK|M*!LB!qV%lW>XocAHgSLd6qzJI>F0_ej@MXgGbjD>2^vnqs| zWAS9pw1zfD&9q@!(Xq^BLTii)5>Pj0;Fkk9UYj5ND}}b1bE%mpk0`D0$sh` zPY^0ph%oC-PHT+nhFSv_u|zuoaXJ@a*g@G8Ogk@!Q%=_u6k2EMT?!_!j0ANDFoq;j z^h6LNNTU%FbVQKB3Os1T09NU)mrit8$kOZynv_ExGS+CK!!5YE>-F45<%V*rN@UN; zor9m&bIv{G+!M|{;M@Y|W;u5j8*Z+F9&A!2V+$>=K=~!ustM>NB*?DXDgQG`I@MuU z5`#*T2bPpsa>tSqODX47y@akwIq+T4B&AgL)Yh`V+MK6V$Fbpf2tIKqB_&tB6h5#{m^8{Z1MVaXhGh E1IrkNKL7v#