From da78c6c21879a36b458a83371c8b0bbf2c1ed98d Mon Sep 17 00:00:00 2001 From: Dee Date: Fri, 9 Jul 2021 15:50:02 -0400 Subject: [PATCH 1/6] Student constructor, getters, and setters --- src/main/java/io/zipcoder/Student.java | 29 ++++++++ src/test/java/io/zipcoder/StudentTest.java | 66 ++++++++++++++++++ target/classes/io/zipcoder/Classroom.class | Bin 0 -> 276 bytes target/classes/io/zipcoder/Student.class | Bin 0 -> 1179 bytes .../io/zipcoder/ClassroomTest.class | Bin 0 -> 288 bytes .../io/zipcoder/StudentTest.class | Bin 0 -> 1921 bytes 6 files changed, 95 insertions(+) create mode 100644 target/classes/io/zipcoder/Classroom.class create mode 100644 target/classes/io/zipcoder/Student.class create mode 100644 target/test-classes/io/zipcoder/ClassroomTest.class create mode 100644 target/test-classes/io/zipcoder/StudentTest.class diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index b543e36..81b4352 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -1,4 +1,33 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Arrays; + public class Student { + + private String firstName; + private String lastName; + ArrayList examScores; + + public Student(String givenFirstName, String givenLastName, Double...examScores) { + this.firstName = givenFirstName; + this.lastName = givenLastName; + this.examScores = new ArrayList<>(Arrays.asList(examScores)); + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } } diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index a9fedec..a1fb76c 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -1,5 +1,71 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + public class StudentTest { + @Test + public void getFirstNameTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + String actualFirstName = student.getFirstName(); + + //then + Assert.assertEquals(givenFirstName, actualFirstName); + } + + @Test + public void setFirstNameTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + String expected = "Jamie"; + + //when + student.setFirstName(expected); + String actualFirstName = student.getFirstName(); + + //then + Assert.assertEquals(expected, actualFirstName); + } + @Test + public void getLastNameTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + String actualLastName = student.getLastName(); + + //then + Assert.assertEquals(givenLastName, actualLastName); + } + + @Test + public void setLastNameTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + String expected = "Lewis"; + + //when + student.setLastName(expected); + String actualLastName = student.getLastName(); + + //then + Assert.assertEquals(expected, actualLastName); + } + } \ No newline at end of file diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class new file mode 100644 index 0000000000000000000000000000000000000000..fa71e92e345b62aa69e1b93752bfcc55a8d8ceef GIT binary patch literal 276 zcmZuryKcfj5S;Y`Cl0|VQk0r5P~;jq5Dii)3yMVaXLCvp**Bflc4tDGFKrhFlB|1q`FeGO_?eCEwh4^m(=94SV*fKzluTgt82nrde?14 zh`-Fn=IT>Bi_Y!Ohl_|FB2Mm#xH&uHBQtT~KsfjV?OE^;GrBY217X#u6SCLRrpQ7>*6bbRoA@WOT}qx^>Zv*6sC+6=4x zgmDn~+?|+$qo$!Q2v!^`LMpgHbP^i|+%cZ{zV)HcXMu_)))cffw6XqIU;>$uKx-y| z4EvqescMmavm1qEhJcwW8rT$eZ!&ClQeRI!$05hubIr);Ee*G^&7j)vt?6Lw`8HK+ zr81TxO)@>;6W0ntpG>D~E-@!5ZO^@MNHln&A*fadMB)g198bCql(<4Xl&g4av}sP)l(oc}$}4ai);! ebs<}sLX2!7)$2lbNXYJggor)~ArGbXM}Ghw4D3|^ literal 0 HcmV?d00001 diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class new file mode 100644 index 0000000000000000000000000000000000000000..4433a163bf9c007e9ef3938080e6169f40ea5442 GIT binary patch literal 288 zcmZ`!yKcfj5S;Y`6Ni`R5EUIsk!$FP(jZY;P=M&q<`fPYA37Tf{wfs`MLvL!LaZ$s z3U;O0o!QksuD8oSfDt+&9Jm3z27J^Aovl1dk;?2>%;T*}3PSB$XS(Gc`NxVr7>yPFd+jCXwk%T3zyo=oK5C6Z+B1 ziDN>zFbA8csjkL6?fWXv#Q*_+Q5v!HAB=CzM8yIB^9=f9!9mDamH`*)lI++bP-99(5}Kq9F<|19(6rcung(b>6f&(DW|%$+vvtJSQYyO6F)XS`nR?!EVX_pJQq-@pC=U+8`ZhYtiMUBC9D`=ae1 z$)MH>2S?Hi3z)`?Qhi0BUP+~Dg@NmJ8vkDTHno)0o8MPyu9=v{hXQ6thTCq?4|koO z6ew5H3X`-2+`!EoJ~Ht!ZV}rLI`hMVa`vSMq+Txz3wIwU6 zv$qBG9jE6?rD@*80v4IAe@@d>I$I(shFCIjM?n+`VLLHH9(S43mOr?Cm2=s|J(aV_ zoTo=}_*7teM1S{WpD@}(_FQ1xc0IW}=pD*n&!M>jCEIU1-F+u;)pN3_h0k3gTlPEh zHQ2CpkK-DbJMM|}QjIUAj7k^<#-dZFvIPqArPFJ*{Xnwfl-eA0Spp`KhP4qIR)MWQJ zOdl*(mtMoFYnJv3SL^zsrN6=Tv%0g$u|^SDRy8n&Ib6mv{{&W1#uu21^sIA-H4{Bq zJir>i{KuibbH zxgp_9LU Date: Fri, 9 Jul 2021 18:31:31 -0400 Subject: [PATCH 2/6] Student tests passed and formatted --- src/main/java/io/zipcoder/Classroom.java | 1 + src/main/java/io/zipcoder/Student.java | 42 ++++++++ src/test/java/io/zipcoder/StudentTest.java | 92 ++++++++++++++++++ target/classes/io/zipcoder/Student.class | Bin 1179 -> 3083 bytes .../io/zipcoder/StudentTest.class | Bin 1921 -> 3866 bytes 5 files changed, 135 insertions(+) diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 64566f0..ac8469c 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,4 +1,5 @@ package io.zipcoder; public class Classroom { + } diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index 81b4352..39d4a59 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -30,4 +30,46 @@ public String getLastName() { public void setLastName(String lastName) { this.lastName = lastName; } + + public Integer getNumberOfExamsTaken(){ + return examScores.size(); + } + + public String getExamScores(){ + String output = "Exam Scores: \n"; + + for (int i = 0; i < examScores.size(); i++) { + output += "\t Exam " + (i + 1) + " -> "; + output += examScores.get(i); + output += "\n"; + + } + return output; + } + + public void addExamScore(double score){ + examScores.add(score); + } + + public void setExamScore(int testNumber, double newScore){ + examScores.remove(testNumber-1); + examScores.add(testNumber-1, newScore); + } + + public Double getAverageExamScore(){ + double total = 0; + for (double score: examScores) { + total += score; + } + Double avg = total/examScores.size(); + + return avg; + } + + @Override + public String toString(){ + return String.format("Student Name: %s %s\n" + "> Average Score: %.1f \n" + "> %s", firstName, lastName, getAverageExamScore(), getExamScores()); + } + + } diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index a1fb76c..f6e47ab 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -68,4 +68,96 @@ public void setLastNameTest(){ Assert.assertEquals(expected, actualLastName); } + @Test + public void getNumOfExamsTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + int numberOfExams = student.getNumberOfExamsTaken(); + + //then + Assert.assertEquals(3, numberOfExams ); + } + + @Test + public void printScoresTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + String output = student.getExamScores(); + + //then + System.out.println(output); + } + + @Test + public void addScoresTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + student.addExamScore(100.0); + String output = student.getExamScores(); + + //then + System.out.println(output); + } + + @Test + public void setScoresTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + student.addExamScore(100.0); + student.setExamScore(1, 150.0); + String output = student.getExamScores(); + + //then + System.out.println(output); + } + + @Test + public void printAverageTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + double output = student.getAverageExamScore(); + + //then + System.out.printf("%.1f", output); + } + + @Test + public void overrideToStringTest(){ + //given + String givenFirstName = "Sean"; + String givenLastName = "John"; + Double[] examScores = {82.0, 81.0, 68.5}; + Student student = new Student(givenFirstName, givenLastName, examScores); + + //when + String expected = student.toString(); + + //then + System.out.println(expected); + } } \ No newline at end of file diff --git a/target/classes/io/zipcoder/Student.class b/target/classes/io/zipcoder/Student.class index 5c03a1f9a38af1aee0c16c837a6a72596bad75f7..ab8862d8e21fa05eb5067d8f85a76ed72b48e941 100644 GIT binary patch literal 3083 zcmZ`*X;V{I7=8}fAlx9Lpe)5$D}*4XRxLu1x}ZplU>l1CTk9oU;?k=ALapF7ik(O=|MT@~`HNQ45%7=L8QU2Z@I?A%8c>gh0D=Y@VF+xpv$1RTax%MM zE5yv{{l2U?a^b*@9!IV~2A& z^QB2U?*y?4n*(Sy(1tB*04pMS0yOhdP+(`|tjk*of4r}>r8J~iJcwqr%Wyjc+9R&h zquF$t5!=~JycB4cfrrp75VWqEONnGQXVF`$OQQ@@84VlQj)w)jdHWh8CtVXkJc6A8 z^cd(xL||iui;0Y5rL3GlV8u)qtm#F8w#bAAtN7Ov@p?oBnvM}dxP)Oi91LKWz?O=& z60=7NcAAL@q8}dlh#7bkdn7^2%T{JVU_ghf?CWf}T~?W)~QXjrNY8;E0sd3LfTF@epI|GQNDjT(3Yhe%w?VlrE+o#<>zn@1#!qczb~ zXWJE^CWX-)6A-~5#&IHm37L^6*UCwWk7Wz|~!E>a_cC4J~WLX<+YgDP~ozVO7 zM$F-C0M8qE0q59am9AM6Vcss7`6=rviDVtlNsaRcOw2Pk8MR%VhBCe5STJCL<=D8O z2$_-PsjQ6ExcRex&va)zWR4dEV;AP|j$Qy7_sLJ44h4~k=xh0dK54lrRI*mVgM7WA3 z&LNhtQyJ4K=i3>yfTYJYGYDQT&Ba#g+?J@kZqTe zk*|8Ks(KxaMBYfPiseQsRo+^8R*GhNQRXp!+Pq|CWCyt$ZEfDMOKtv7uz#`zXSu*U zh7yjMymZoB)`1&rz;Z#5HFhi^`0{c@Q+13%5P(a<7nx8ZLC4~CqljgrWvnZ@1bt4{ zF~j$wDrY`~Pw**C34Dgn zwaN3k4LYRBPVYhy(`WQDq8vO^vEQVe53+s^pdCZykbsV|j}Cmn;AByE;7fX|6SwaF-CL5|b|XtPQv(&g zJCvajIylG~Fp3`je(A#@4C06aCVO%_*_I*8J|EH$>nQP+qG6D_U*j7FRc1ZNU*mK4 z)YRZFCk^@(t;m3ST2g`EP&ex#q(EZU%db#k))y_pPR#oGwUk)Ja&5VeD>S7x?$Hff$?3=9k=3`QHd+!;43vT`wsifCy1WF?j*>gOcprRxWm6lLb6TTj+x zbDeC=ZYwMgRL;bpz`)AT2*ipEj0{SXo7wg2m4V`7KoJH89tIW$UItDEJ|N_0kYx~H zPyvc+0Yw=Y)05$!LDOu(1W;S@&pbsb%e#zaEp=c)rZ(S`7DRHDM&5E7I~m83OH=xhuUHQ Hc9|gn9VsH) diff --git a/target/test-classes/io/zipcoder/StudentTest.class b/target/test-classes/io/zipcoder/StudentTest.class index c0a46b5455675e0f2890a09a917a4178ac61f76f..038d4d3b6972f3a7b236e26d440be0067d4d26a4 100644 GIT binary patch literal 3866 zcmb`J-BS~16vm&0d=VBwgktauZN(s96h8^5L4gWJP(yK0Tf2lcEW!qp4WhQzR&8sw zwI4VAnCVP=)9ZFR(XnHvSH0+E|DaBvcXxSNFib}&7t7||_dVzQ&Uwz+{p+8nzXRBZ zFTyB8c@RDoegqWMOlfmkY+5rjvElJ4J#8rnbQ`8&9Z^soZ5a(Aq`;TbH8X@T?*_Az zW)SL_hA;QcYcu%~?TT)ST6q&O zU|M=c&vk{-iFgoQD!Or4!P>=Qx;qqv4AUAF6}QDR;I}IZl#3+xhzuTMc+tT@hoDzQ zpCG7W7{Yxjoz3a_3cQXJK@6xE#K|Q(OI^=f`V38H3ru^xQ(Y?MH0y6MH@Y^%AWvZ^ zh+!3{1^GHV$fbLz%2{z@+6*MdoCrlyMpV3kQBlr`2^kF)Pu-3N661f^JH^KHDlXun zQz_3ze{_I5#fG<3T*BLQPOhFgJ*Q=K&%UK9b9E_tW?V%Y6Rg&R-A{{o>}){$5cSp^Lxns7wVGxfgXY)l2! zNyF3~{fuaw019f8*|au2s^tvv+gX6jUN2MpLb&E%vgj)W{nI>oLu& zrCCPSBv(yxaU_V)1&+6e9h{IpKg;Q=v%b}YU5MCabsR1%a*L;7oh@s5h^b!aQ@adR zrnh$$C<8oci^Az7=VXB0GAkOUio*6jsG<|^?;884D_G~O(#xrsrG#_Fgg)Ym!+8`= zWed5q-fxJy*SIrUJlZA7#C|vVq7i?UV9z7K>nwl8_+R0F|IWuye&$UXuJS4#i))To z)!BeNEdEkZ;Ch*T_*dHykf;qNYb#C#o}qHAybe`QP@Nj{)nT1|<~Hvgn!ou>cu&4KO>J}B zAMr)}MMNF2K*S#jEFo(~1#LGnrVaGCkuh#!belQ&w~}BRda)fRxhgV#!ihr?4oJd& zN!Tn28(qQ!cm?m;bQJMu`q|K1ZMmUrGDDNoW@l9Z=Nd77*#vWTTsrrlqg8a;J2}Xfk_5$(C8Eg z;uU_!nAn0WL2~@i%zFT05}-{2w73A3{K#`gVFT8?0AduC0(c++7RJM&{{-NaKUc)q ziX_h1n~FMO1ZU3xiz_b-5l%p@#%Bz^O@vZW&2!NxqZGS&o}h*EqT5p&-ZMfAJ{%WdU#%@ ReVo_S(iia~R;Uc0{|kJS?{WYD delta 540 zcmbOw*T~Ox>ff$?3=9k=489Awn3&laOg9^`^fOKlVp9w-VPFEvFfgz(Faj|fkTe7G z^no-ZNK|V(1LH;@gNeZ$NP?t6qy>=Vfhb_GWUvDA7#XaA;!F%?lWRGgCbP2hGn!8p zWmk>_sk8&iFfcekRWdW!GS~nyBT&=|C}#`QrN$t|U=LKm%wWX8$Kc4|#J~bn&CcKq zlx1ab0qO?X>?e0|$^q?J$w@t5fow$gl{YY~m>7Hj D=jS%K From c3a6f58657c891c17c979d7133529dfce1904a9e Mon Sep 17 00:00:00 2001 From: Dee Date: Fri, 9 Jul 2021 21:13:08 -0400 Subject: [PATCH 3/6] Classroom Constructer with average method --- src/main/java/io/zipcoder/Classroom.java | 31 ++++++++ src/test/java/io/zipcoder/ClassroomTest.java | 67 ++++++++++++++++++ target/classes/io/zipcoder/Classroom.class | Bin 276 -> 1085 bytes .../io/zipcoder/ClassroomTest.class | Bin 288 -> 2238 bytes 4 files changed, 98 insertions(+) diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index ac8469c..cca4700 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -2,4 +2,35 @@ public class Classroom { + private Student[] students; + private int maxNumOfStudents; + + + public Classroom() { + this.students = new Student[30]; + } + + public Classroom(int maxNumOfStudents){ + this.students = new Student[maxNumOfStudents]; + + } + + public Classroom(Student...students){ + this.students = students; + } + + public Student[] getStudents() { + return students; + } + + public double getAverageExamScore(){ + double total = 0; + for (Student s: students){ + total+= s.getAverageExamScore(); + } + + double average = total/(getStudents().length); + + return average; + } } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 7bac1ff..0f04f6a 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -1,4 +1,71 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + +import java.awt.geom.Arc2D; + public class ClassroomTest { + + @Test + public void nullaryConstructorTest(){ + //given + int expectedEnrollment = 30; + + //when + Classroom classroom = new Classroom(); + int actual = classroom.getStudents().length; + + //then + Assert.assertEquals(expectedEnrollment, actual); + } + + @Test + public void maxNumberStudentTest() { + //given + int maxStudents = 25; + + //when + Classroom testClassroom = new Classroom(maxStudents); + int actual = testClassroom.getStudents().length; + + //then + Assert.assertEquals(maxStudents, actual); + } + + @Test + public void studentCollectionTest() { + //given + Double[] examScores = {85.0, 90.0, 95.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores); + Student student3 = new Student("Linda", "Jones", examScores); + Student[] students = {student1, student2, student3}; + + //when + Classroom testClassroom = new Classroom(students); + int actual = testClassroom.getStudents().length; + + //then + Assert.assertEquals(3, actual); + } + @Test + public void classAverageTest(){ + //given + Double[] examScores = {85.0, 90.0, 95.0}; + Double[] examScores2 ={80.0, 90.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 80.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); + Student[] students = {student1, student2, student3}; + + //when + Classroom testClass = new Classroom(students); + double actual = testClass.getAverageExamScore(); + + //then + double expected = 91.11; + Assert.assertEquals(expected, actual, 0.01); + } } diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class index fa71e92e345b62aa69e1b93752bfcc55a8d8ceef..9d7636def1b42162d4abeb261abe77c1ef51b7f6 100644 GIT binary patch literal 1085 zcmZvc+fEZv6o&sj?R4lcE#)wrs)#3O%b|%8NW>ToNWfIMsOgPYn_y#>@_4)5*m-fT7Fz#@Q;Y*KY#x6~u zJEm3Q3R}gRz(k?94HXjv*p~qRM<}3&ekkkItP2>jGeLn&HI&Y)r}8jzVW{t9R{eJ1 zxEr3bn(aDRRP)7k&PU@l(fH$6jdoWt#itI|K#J=%o*ptT_{^5RLzHq;KVf`B`b(sr zR_~GEnnsem4Eo6htWE}Q;3iLsb}OcBMfHG8M9cSvWeCd>l8a!YOkqL{Q#)l-;0>|2 zW9&wZH6!d?4}(Kw4%6ny1*X|$D(hLYgt{*=vmBi{j?!18KhuJSX|8H6;5|I=Q}6aU zi19f2Bg+}otzO9y9DN_ Zx1pV}Ro#Hee};J>fIq|vEHJ2H@gH>`z|{Z% delta 110 zcmdnXF@=fi)W2Q(7#J8#7z8GAnM_QSm>k6DKbezBK7gHp2`J9MzzBq_3~WG>6UfsC s^BEXewYD=bZUhQ2F>nD%kTe4WGXpn}o;fiy3W$H>43B$*ia0oGXyS^xk5 diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class index 4433a163bf9c007e9ef3938080e6169f40ea5442..46b5d6bd7307688b84ff2bd433ca1f78181f683d 100644 GIT binary patch literal 2238 zcmah}T~iZh7(Gjp-6aVMF?>Xd^`q4U!C16ff?^l~Rt(S@j7{m+5>{Lqc5$<@puK2k z>WzP*)9GC=I^zvEb?Vrw&h!uTx__k8^S--DKxv!IY@YYsea~~AbI#_EzkhiF;3B?^ zq5~lf;W#2t6?Cr~4~%Thu-CGSE9+*}Q=ne4Y|EQe5K3pt8gvD{mXm#GZC0IC)6GuT zjC$R5oQ)_ngv2ElM;u)WVr!;X@*1nA?bQ_wq%+IKy$6F^6Hy#Sw}zfL5;#Hzj=Pp! zZ?I){s$Mr;GKjMSi<$ckqei4idTuUL7M*$p>plhH^bJ96U?2a2(^#pQYW{YflLArn z&smz?Qts~9i zrm-ExDGUo@XBFhqd%#PcYuRfPukS4H*$NnB$~s0BL`(O~T5WrD%C>c6Nqp8d>Xzy1 zc!xR^Eqm3_ae?KWW1Dp$$-AQSB?YPU!D?s95jhYLQu9lGspczwApj=hxQ0B3rF&Bk zOxIX5XSR%uQq^%ynSlb;`8|4d^T$8cYu`Qm>-x{hN5aBc;oo(}C0!^Kgc~mQS}_x@0BpOHkoB}b;fp`T5W@gRG^SxXSJDL1^owO6IV5=9;3&3ZZ&Mr z+Azyj-6A)-;&_HI<97SK=<@h*YZ4~1?!PkABudT% z_fJL5rVDI#D$8F*><;fjdCH;# zH+dDe0UbqNetaak#L1;1xg`FD%g0SFiq2Ve^4n5> zMSmrfMCus^OO|@pj_O*0aP`6Vrh%e~ru)lZ|7JkH=a(ilYsISexgXR(ZPxJ&PC zjNvO>kdxo?IR}#;=iJNqgi4Px5TD{Rx{$*pK4%po#(8|fD$HkwU|@w4-=&U1A(g06 z>6Z42Th*3Ak63k)*>C@+Q1kxyYYI+?o%!Z{xe^Nd1r?Sjd>sRYbK$1MBSKY5NcE}l zs934K#?-bFPDO;uYAL5ll{KNVp3--4b-Xi)sqxrAY=Fh|Gt9IDKE@~kmnrpo$YY%H z}emPI*$oq-7`!@$4@gsco~K#~*4 u(+Bez7+AHoGcaxh3NSHn0ZEWF0|PSyH<083vsr;OFObK`zy~Cm82AAqAq*7& From d3239a6f71d1603cea82d3a595b16372b14517ca Mon Sep 17 00:00:00 2001 From: Dee Date: Fri, 9 Jul 2021 22:32:51 -0400 Subject: [PATCH 4/6] Add Student test passed --- src/main/java/io/zipcoder/Classroom.java | 30 ++++++++++++++++ src/test/java/io/zipcoder/ClassroomTest.java | 34 ++++++++++++++++++ target/classes/io/zipcoder/Classroom.class | Bin 1085 -> 1692 bytes .../io/zipcoder/ClassroomTest.class | Bin 2238 -> 3087 bytes 4 files changed, 64 insertions(+) diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index cca4700..7657ecc 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,5 +1,8 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Arrays; + public class Classroom { private Student[] students; @@ -33,4 +36,31 @@ public double getAverageExamScore(){ return average; } + + public void addStudent(Student student) { + for (int i = 0; i < students.length; i++) { + if (students[i] == null) { + students[i] = student; + } + + } + + } + +// ArrayList newEnrollment = new ArrayList<>(Arrays.asList(students)); +// +// newEnrollment.add(student); +// +// +// this.students = newEnrollment.toArray(new Student[0]); + + public void removeStudentbyName(String firstName, String lastName){ + Student student = new Student(firstName, lastName); + for (Student s: students){ + if(s == student) { + s = null; + + } + } + } } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 0f04f6a..f8572f5 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -4,6 +4,7 @@ import org.junit.Test; import java.awt.geom.Arc2D; +import java.util.Arrays; public class ClassroomTest { @@ -68,4 +69,37 @@ public void classAverageTest(){ double expected = 91.11; Assert.assertEquals(expected, actual, 0.01); } + @Test + public void addStudentTest(){ + //given + int maxNumOfStudents = 1; + Classroom testClassroom = new Classroom(maxNumOfStudents); + Double[] examScores = {85.0, 90.0, 95.0}; + Student student1 = new Student("Jay", "Kay", examScores); + + //when + Student[] preEnrollment = testClassroom.getStudents(); + System.out.println("==========================="); + + String preEnrollmentAsString = Arrays.toString(preEnrollment); + System.out.println(preEnrollmentAsString); + + //then + testClassroom.addStudent(student1); + Student[] postEnrollment = testClassroom.getStudents(); + String postEnrollmentAsString = Arrays.toString(postEnrollment); + + + System.out.println("==========================="); + System.out.println(postEnrollmentAsString); + } + + @Test + public void removeStudentTest (){ + + } + + + + } diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class index 9d7636def1b42162d4abeb261abe77c1ef51b7f6..101626478c3dd5dfd84c81b3c19c413275ddc007 100644 GIT binary patch literal 1692 zcma)6-*4Mg6#lLq$BmnI{pGA_yS6K1P11IOvSrL^5!1@FqS8GCRhstXCSLJK;>mHU z!4pW8_&@dlZ~Ty;lR(Q85)yw0@Hb2dQNDX^(o_^_O5}U)z2|)AJKs6>uYdp818^Oi z7BuK4Qdt;C3yeK>58ZOpZ6B2H??3kHkwALGZ~M_Z0(zmiXJSZT(htg?`cLXX!wbu` zsN3+`Q3e)e=yIp&b~<4Yv;>Aav3o}#_i$&>DZ!~)Ffo?JI3}3rz>97l zdZByZz4z2@)#^d$2}~7=JEt_ag6@9PW7rgI6S*udV){%Sv4g;HLwWAG%`QP$%$7yY zGg-`Hj<-yeP$0MILh=9E%}cEo1f0SEjan4??StxnPaX~&C0vVpB-nDF?si-EADt!@ z+XAUO6jk8Dj^Flpz3+t|x-3s%VkfA(%{@2tq0|OxK9{(Am-m9}Xz4jbX>9%l%pZ{XPWitk z&!O{~MT#gA=Ze~?2)vG~+)1?M1Z`X814b0u?D=401RE#hqyoz^gaHYdv?NV|&k0*d zVDBcdmV#Y5hoDW&95Q@=B*7Td>SJ1pI!8giE(vCtt1QDPeUHqyG&IP1r7pnCK%GXv z&T&j9!Cy0-Nxz$;_hk6)TCbAQD~4^@sb`p3vyF8py_`=U-UZf@zu%i%cW!F zdtU_a7r$YsuF}mgAu!M63*@#)K^L&fn;T3jD=9J2EQV2}B|UE@WHfrL&{J^LutrPA zHQw9MPS_>GgvAeIS+JOwxJ0)%@MgmOGrG#2F6ozO@^YP9{{@yZR%%BY3I8Ui zAf}mPGe8o-{uH@mQ@~K|M&?{*>Z5w2nPub~p$IP2+U-EPBm`7={{Nt2m zET+TytIWGWew$=a#Vy=cOs_Lni9;gAl-+asOdV7xt?aymw`pm_SXJy}S?8gjaB@t_ UYT}mq(^m54UaE?!jMcF550~sYWB>pF delta 412 zcmYk2yD|hp7==%F?-(=8lyxt|UR)Mq8G$V&l6xLGLh&R5&!DKM5;EeQnkHSddem|`)6&CGf^Q+4rNqm-P3qi;mj?{v64p$R^HBEM_QQ(9{mMxYqfzN7#FL)ZJl3wXbntw zTigqh4%mm-jX?W!O5_EvG0<*Mo;H>i#h&&t9l@6TIUS&1lKti}qFAYmH8e!}#MbDL Hrq$68b)O#? diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class index 46b5d6bd7307688b84ff2bd433ca1f78181f683d..37792c4fb289cb2dd00391e4a0e695623324ff62 100644 GIT binary patch delta 1509 zcmZ`(*-leY6kX?bxV5c>RzWIph(>K0QsWS{RS^>u6$)BKknut13pDhYC+U2&UrXooq^_w-Hts>6K=XXaUj)R-*CxEC@;5Bf2NaRINAN+tDDO3ks>rf?7I zTuc|H@+nn|+II4gp$LRtcQm}aBT41DwV2Clk#Y4|Wj;~L_D$On3}*o5P%Osjtyv{ z)rf6@lViw^b&g4&oLc zj8WSq<^<+#)SVba5jvT-;{r;UV{I{a(@!AI;N!TB6L>+eH|WHBoW=^eP{A2|#aWYTfr10y z{!o2uQ$2*`mk-N3%8Ad|Jrvv%+}FN}NX*$*fj8#* zfbL+Tg8q=}BL-q_ZbNQv+d|F?MobquBpXMbs;A-Nq08D`j`0?NJ(2iX^P!g=O;Emz z=wJuW@>`U^6%3#}h!G6&O&23YDbr#=U=5Rf;@~J^yQ^SkE$Lva+6~ Ouvz{6c%Cy%!i(Q$vl)E= delta 677 zcmZ{hO-mb56o#Lfi8GpLF;bf}V6h5TBWcAJQqw95#&2yjX={yI<5#tUxN8@M(q+3* z@CS%nccGx*LUik{{uTG)JJ&%(D8t-)=ALuk=RIe(<0sMZ`PK0W@QRIcc-nS6hX3w3 zaeH^rZO#p0D+Lu;dR?s}`g)<=@=udTSY-t^qgwqmR5GTu`lf(!CiG?TPFb6g-D5Xd z@@pSS4r*|yB|=osL*mq%yGcUIJr3?Vs?9MejR+5zA}^h&C-KIN~#4RPpw4qds^2t!@{zI7wDF3|QKmA@>sM7k3Mp{YHMusFq zv{U3cs~XlOoqXe^p-xE?z6aDsF^kN~c}f$UV_v;w=;5;>M;aY0C<>{jff9?F*{XW* z-MLZ?Q%K0NcW($wfxXMh3uCWStwUP&UeimLBs04Fh9A7;58dqP^ngCf^m9m-QwEIH zEe#ybZmsSIR(tuyvP|1jDzT!-kzU@|4@os^>{m!T-EaK6LNpowo Date: Sat, 10 Jul 2021 22:07:16 -0400 Subject: [PATCH 5/6] Classroom tests unable to pass --- src/main/java/io/zipcoder/Classroom.java | 43 ++++++++++++++---- src/main/java/io/zipcoder/Student.java | 4 ++ src/test/java/io/zipcoder/ClassroomTest.java | 39 ++++++++++++++++ target/classes/io/zipcoder/Classroom.class | Bin 1692 -> 2036 bytes target/classes/io/zipcoder/Student.class | Bin 3083 -> 3178 bytes .../io/zipcoder/ClassroomTest.class | Bin 3087 -> 3970 bytes 6 files changed, 78 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 7657ecc..b67189b 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -48,19 +48,46 @@ public void addStudent(Student student) { } // ArrayList newEnrollment = new ArrayList<>(Arrays.asList(students)); -// // newEnrollment.add(student); -// -// // this.students = newEnrollment.toArray(new Student[0]); - public void removeStudentbyName(String firstName, String lastName){ - Student student = new Student(firstName, lastName); - for (Student s: students){ - if(s == student) { - s = null; + public void removeStudentbyName(String firstName, String lastName) { + //Student[] studentArray = new Student[students.length]; + for (int i = 0; i < students.length-1; i++) { + if (students[i].getFirstName().equals(firstName) && students[i].getLastName().equals(lastName)) { + students[i] = null; + } students[i] = students[i+1]; + } + students[students.length-1] = null; +// Student[] unnull = new Student[students.length]; +// for (int j = 0; j < students.length; j++) { +// if (students[j] == null) { +// unnull[j]=students[j]; +// } +// +// } +// this.students = unnull; + } +// ArrayList studentArray = new ArrayList<>(Arrays.asList(students)); +// for (int i = 0; i < studentArray.size() ; i++) { +// Student student = studentArray.get(i); +// if (student.getLastName().equalsIgnoreCase(lastName) && student.getFirstName().equalsIgnoreCase(firstName)) { +// studentArray.set(student); +// +// } +// } studentArray.add(null); +// this.students = studentArray.toArray(new Student[0]); + public Student[] moveNullsToEnd(Student[] learners){ + Student[] unnull = new Student[learners.length]; + int i = 0; + for (Student student : learners) { + if (student != null) { + unnull[i]=student; + i++; } + } + return unnull; } } diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index 39d4a59..87782f4 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -31,6 +31,10 @@ public void setLastName(String lastName) { this.lastName = lastName; } + public String getFullName (){ + return this.firstName + this.lastName; + } + public Integer getNumberOfExamsTaken(){ return examScores.size(); } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index f8572f5..76acc10 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -96,9 +96,48 @@ public void addStudentTest(){ @Test public void removeStudentTest (){ + //given + Double[] examScores = {85.0, 90.0, 95.0}; + Double[] examScores2 ={80.0, 90.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 80.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); + Student[] students = {student1, student2, student3}; + + //when + Classroom testRoom = new Classroom(students); + testRoom.removeStudentbyName("Jay", "Kay"); + + //then + System.out.println(students[0]); + System.out.println(students[1]); + System.out.println(students[2]); + // Student actual = students[0]; +// Assert.assertNull(actual); } + @Test + public void removeStudentTest2 () { + //given + Double[] examScores = {85.0, 90.0, 95.0}; + Double[] examScores2 = {80.0, 90.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 80.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); + Student[] students = {student1, student2, student3}; + + //when + Classroom testRoom = new Classroom(students); + testRoom.removeStudentbyName("Shelly-Ann", "Frasier"); + + //then + System.out.println(students[0]); + System.out.println(students[1]); + System.out.println(students[2]); + } diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class index 101626478c3dd5dfd84c81b3c19c413275ddc007..151ad9b3466fe79be4aaddb1e306ac694751e1fa 100644 GIT binary patch delta 1070 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 delta 751 zcmZ{iO;1xn6o#LBZ+q{hZ43}1t;T3{*J@xvLeK!Zz?hi$fg2Mwffhj&Xz>HVuWIWT zuyApgEYPjH#zYbpCT`uSKZ0L@@x9XtP!cw0&di*7-)GKD?f9o`>es)`A3z_gja1$9 z1I8V4(e*^`TQ;%gMt}WN*T!&F0Raw4e8r+>JsKU2$@~URLy1dCG2VtYCKNNx0`4-Y znZuNJU5e4gAn%l-`QYeCT$LxGn6p(Lhq=eJs?!|eJ`Z%FgOC}mdCaOZc9=7IWvll) zC`fO+MeoRtUN;q^myzDQ(d#@w@1fPZ6D~_{D=f^$e50y{MXPs$n>^yN7|w8+CoG8X zEJHk1=5dK$RW9g8w>ZWU&(yFXf-hu4RemVX~z{#^Okqg tE|TTF)&iaH;Dgq}T?9k$u}Pr35YGqWu>Y$~?D=YrrE2{q%R1(=@*lN}W_bVr From df7e7bf6628619ffa1619d4454e1f7c887bbea7d Mon Sep 17 00:00:00 2001 From: Dee Date: Sun, 11 Jul 2021 23:16:11 -0400 Subject: [PATCH 6/6] All grades and tests passed --- src/main/java/io/zipcoder/Classroom.java | 126 +++++++++++++----- src/main/java/io/zipcoder/Student.java | 2 +- src/test/java/io/zipcoder/ClassroomTest.java | 104 +++++++++++++-- target/classes/io/zipcoder/Classroom.class | Bin 2036 -> 5686 bytes target/classes/io/zipcoder/Student.class | Bin 3178 -> 3190 bytes .../io/zipcoder/ClassroomTest.class | Bin 3970 -> 6270 bytes 6 files changed, 189 insertions(+), 43 deletions(-) diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index b67189b..eee0597 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,7 +1,6 @@ package io.zipcoder; -import java.util.ArrayList; -import java.util.Arrays; +import java.util.*; public class Classroom { @@ -13,26 +12,26 @@ public Classroom() { this.students = new Student[30]; } - public Classroom(int maxNumOfStudents){ + public Classroom(int maxNumOfStudents) { this.students = new Student[maxNumOfStudents]; } - public Classroom(Student...students){ + public Classroom(Student... students) { this.students = students; } public Student[] getStudents() { return students; - } + } //do I need to clone? - public double getAverageExamScore(){ + public double getAverageExamScore() { double total = 0; - for (Student s: students){ - total+= s.getAverageExamScore(); + for (Student s : students) { + total += s.getAverageExamScore(); } - double average = total/(getStudents().length); + double average = total / correctForNull(); return average; } @@ -41,6 +40,7 @@ public void addStudent(Student student) { for (int i = 0; i < students.length; i++) { if (students[i] == null) { students[i] = student; + break; } } @@ -52,42 +52,100 @@ public void addStudent(Student student) { // this.students = newEnrollment.toArray(new Student[0]); public void removeStudentbyName(String firstName, String lastName) { - //Student[] studentArray = new Student[students.length]; - for (int i = 0; i < students.length-1; i++) { - if (students[i].getFirstName().equals(firstName) && students[i].getLastName().equals(lastName)) { - students[i] = null; - - } students[i] = students[i+1]; + ArrayList studentArray = new ArrayList<>(Arrays.asList(students)); + for (int i = 0; i < studentArray.size(); i++) { + Student student = studentArray.get(i); + if (student == null) { + continue; + } else if (student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) { + studentArray.remove(student); + studentArray.add(null); + } } - students[students.length-1] = null; -// Student[] unnull = new Student[students.length]; -// for (int j = 0; j < students.length; j++) { -// if (students[j] == null) { -// unnull[j]=students[j]; -// } -// -// } -// this.students = unnull; + this.students = studentArray.toArray(new Student[0]); + } // ArrayList studentArray = new ArrayList<>(Arrays.asList(students)); // for (int i = 0; i < studentArray.size() ; i++) { // Student student = studentArray.get(i); // if (student.getLastName().equalsIgnoreCase(lastName) && student.getFirstName().equalsIgnoreCase(firstName)) { // studentArray.set(student); -// // } // } studentArray.add(null); -// this.students = studentArray.toArray(new Student[0]); - public Student[] moveNullsToEnd(Student[] learners){ - Student[] unnull = new Student[learners.length]; - int i = 0; - for (Student student : learners) { - if (student != null) { - unnull[i]=student; - i++; + + public Student[] getStudentByScore() { + List studentbyScore = new ArrayList<>(Arrays.asList(students)); + + Comparator byExamScores = Comparator.comparing(Student::getAverageExamScore); + Comparator byFullName = Comparator.comparing(Student::getFullName); + + studentbyScore.sort(byExamScores.reversed().thenComparing(byFullName)); + + return studentbyScore.toArray(new Student[0]); + } + + public Map getGradeBookMap() { + Student[] studentArray = students; + Map gradeBookAssigned = new HashMap<>(); + for (int i = 0; i < correctForNull(); i++) { + gradeBookAssigned.put(studentArray[i], assignGrade(studentArray[i])); + } + + return gradeBookAssigned; + } + + public void getGradeBook(){ + for (int i = 0; i < correctForNull(); i++) { + char grade = assignGrade(students[i]); + String name = students[i].getFullName(); + System.out.println(name + " -> " + grade); + + } + } + + public char assignGrade(Student student){ + double studentAvg = student.getAverageExamScore(); + double classAvg = getAverageExamScore(); + double deviation = getDeviation(); + + if (studentAvg >= classAvg + (2 * deviation)){ + return 'A'; + } else if (studentAvg >= classAvg + deviation) { + return 'B'; + } else if (studentAvg >= classAvg){ + return 'C'; + }else if (studentAvg >= classAvg - deviation){ + return 'D'; + } + return 'F'; + } + + public double getDeviation() { + double deviation = 0; + double classAverage = getAverageExamScore(); + for (Student s : students) { + if (s == null) { + deviation += 0; + } else { + double diff = classAverage - s.getAverageExamScore(); + deviation += Math.pow(diff, 2); } + } + double squaredDev = deviation / correctForNull(); + return Math.sqrt(squaredDev); + + } + + public int correctForNull() { + int studentCount = 0; + for (Student student : students) { + if (student != null) { + studentCount++; + } } - return unnull; + return studentCount; + } + } diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index 87782f4..d87349c 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -32,7 +32,7 @@ public void setLastName(String lastName) { } public String getFullName (){ - return this.firstName + this.lastName; + return this.firstName + " " + this.lastName; } public Integer getNumberOfExamsTaken(){ diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 76acc10..cedf1cc 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -106,13 +106,17 @@ public void removeStudentTest (){ Student[] students = {student1, student2, student3}; //when - Classroom testRoom = new Classroom(students); + Classroom testRoom = new Classroom(); + testRoom.addStudent(student1); + testRoom.addStudent(student2); + testRoom.addStudent(student3); testRoom.removeStudentbyName("Jay", "Kay"); //then - System.out.println(students[0]); - System.out.println(students[1]); - System.out.println(students[2]); + System.out.println(Arrays.toString(testRoom.getStudents())); + Student removedStudent = testRoom.getStudents()[2]; + Assert.assertNull(removedStudent); + // Student actual = students[0]; // Assert.assertNull(actual); @@ -127,18 +131,102 @@ public void removeStudentTest2 () { Student student1 = new Student("Jay", "Kay", examScores); Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); Student student3 = new Student("Linda", "Jones", examScores3); + + + //when + Classroom testRoom = new Classroom(); + testRoom.addStudent(student1); + testRoom.addStudent(student2); + testRoom.addStudent(student3); + testRoom.removeStudentbyName("Shelly-Ann", "Frasier"); + + //then + System.out.println(testRoom.getStudents()[1]); //equals second student Linda Jones + Student removedStudent = testRoom.getStudents()[2]; + Assert.assertNull(removedStudent); + } + + @Test + public void sortStudentScoreTest () { + //given + Double[] examScores = {85.0, 90.0, 95.0}; + Double[] examScores2 = {80.0, 90.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 80.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); Student[] students = {student1, student2, student3}; //when Classroom testRoom = new Classroom(students); - testRoom.removeStudentbyName("Shelly-Ann", "Frasier"); + Student[] testSort = testRoom.getStudentByScore(); //then - System.out.println(students[0]); - System.out.println(students[1]); - System.out.println(students[2]); + System.out.println(Arrays.toString(testSort)); } + @Test + public void getGradesTest(){ + //given + Double[] examScores = {85.0, 90.0, 95.0}; + Double[] examScores2 = {80.0, 90.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 80.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); + Student[] students = {student1, student2, student3}; + //when + Classroom testRoom = new Classroom(students); + char grade = testRoom.assignGrade(student2); + //then + System.out.println(grade); + + //System.out.println(testRoom.getGradeBook()); + + } + + @Test + public void getGradeBookTest() { + //given + Double[] examScores = {85.0, 70.0, 75.0}; + Double[] examScores2 = {90.0, 95.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 98.0}; + Double[] examScores4 = {60.0, 72.0, 65.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); + Student student4 = new Student("Bud", "Dunce", examScores4); + Student[] students = {student1, student2, student3, student4}; + + //when + Classroom testRoom = new Classroom(students); + + + //then + testRoom.getGradeBook(); + + } + @Test + public void getGradeBookMapTest() { + //given + Double[] examScores = {85.0, 70.0, 75.0}; + Double[] examScores2 = {90.0, 95.0, 100.0}; + Double[] examScores3 = {100.0, 100.0, 98.0}; + Double[] examScores4 = {60.0, 72.0, 65.0}; + Student student1 = new Student("Jay", "Kay", examScores); + Student student2 = new Student("Shelly-Ann", "Frasier", examScores2); + Student student3 = new Student("Linda", "Jones", examScores3); + Student student4 = new Student("Bud", "Dunce", examScores4); + Student[] students = {student1, student2, student3, student4}; + + //when + Classroom testRoom = new Classroom(students); + char actualGrade = testRoom.getGradeBookMap().get(student4); + + //then + Assert.assertEquals('F', actualGrade); + + } } diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class index 151ad9b3466fe79be4aaddb1e306ac694751e1fa..ef39cc2c2bbff1118ef21b9fce134b6ce5ae7cc1 100644 GIT binary patch literal 5686 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 Fd<-dH?~woi delta 1489 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 delta 1227 zcmb`FO-~b17=_Qww9}7iRfYh?FHl1;6b(TmQ4?AhCKwZqLX1X@#k43WEkZ%G)hY@I z#Sa+w#%<%Kkgza;;6@WSMiT#qKY@7e?c|~+EKJElTXGfE%bhalol5Ka)KvVTC z=iKkhA~&g3`PexRd(^*UJ^A> zXFvNM_)TS}QmMmzsS={fxKy#XPMp`f2G{8S!y)~rTnHF#YcaCTeKf^c!M^2P1n zh|74092pPcEb@3n7bnn($E*x=p$!FA9$dv9Ji$};?IW$=FqvIYy7m3#c0zIFScR$i z$y`C*6~p;#t&wCp)FDZRm>j<;lJ_o2oI20Qq$7b|JZEK4t6S1}xSp1DUd*CH(wTV2 z`~;m3CDdV(bbgevgLG4T_hsr#v$8fhLloBVq5|ri2^Wd=BOH@h*LVd)sf>tDvor29 zXWR#f;=DvPa2%&xtQbxbNCb2atteuSy>D`KUP`Qfj>aqQ`8N?H!D|&&o;L$xzSj9> zAKL9EyLlOjMRe8sjP_+DW#v(oS5##l*C7V#7{bof_I-sCgIeM+t}ucxwEvyMBOblt zXo{7$4f{#AQ=bob98Ty^2-y;3aZRz)hnDRLOt6}MPfvXPZ7u4U$YXATM