From 3363e5b5c728d1791f40877076db2e85304624c4 Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Wed, 30 Oct 2019 19:25:54 -0400 Subject: [PATCH 1/2] Tests finished --- org/junit/annotations.xml | 5 + src/main/java/io/zipcoder/Classroom.java | 109 +++++++++++++- src/main/java/io/zipcoder/Student.java | 96 ++++++++++++ src/test/java/io/zipcoder/ClassroomTest.java | 138 +++++++++++++++++- src/test/java/io/zipcoder/StudentTest.java | 100 ++++++++++++- target/classes/io/zipcoder/Classroom.class | Bin 0 -> 3711 bytes target/classes/io/zipcoder/Student.class | Bin 0 -> 3050 bytes .../META-INF/classroom.kotlin_module | Bin 0 -> 16 bytes .../io/zipcoder/ClassroomTest.class | Bin 0 -> 4630 bytes .../io/zipcoder/StudentTest.class | Bin 0 -> 2662 bytes 10 files changed, 445 insertions(+), 3 deletions(-) create mode 100644 org/junit/annotations.xml create mode 100644 target/classes/io/zipcoder/Classroom.class create mode 100644 target/classes/io/zipcoder/Student.class create mode 100644 target/test-classes/META-INF/classroom.kotlin_module create mode 100644 target/test-classes/io/zipcoder/ClassroomTest.class create mode 100644 target/test-classes/io/zipcoder/StudentTest.class diff --git a/org/junit/annotations.xml b/org/junit/annotations.xml new file mode 100644 index 0000000..66fa72f --- /dev/null +++ b/org/junit/annotations.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 64566f0..9fe6907 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,4 +1,111 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.List; +import java.util.TreeMap; + public class Classroom { -} + + private Student[] students; + + + public Classroom(int maxNumberOfStudents) { + students = new Student[maxNumberOfStudents]; + } + + public Classroom(Student[] students) { + this.students = students; + } + + // nullary constructor + public Classroom() { + this(30); + } + + public Student[] getStudents() { + return students; + } + + public Double getAverageExamScore() { + double classTotalScore = 0; + double numberOfStudents = students.length; + + for (int i = 0; i < students.length; i++) { + classTotalScore += students[i].getAverageExamScore(); + } + + return (classTotalScore / numberOfStudents); + } + + public String addStudent(Student student) { + + for (int index = 0; index < students.length; index++) { + if (students[index] == null) { + students[index] = student; + return student.toString(); + } + } + + return "Classroom is full"; + } + + public boolean removeStudent(String firstName, String lasName) { + + for (int index = 0; index < students.length; index++) { + Student student = students[index]; + + if (student.getFirstName().contains(firstName) && + student.getLastName().contains(lasName)) { + + students[index] = null; + return true; + } + } + + return false; + } + + public Student[] getStudentByScore(double score) { + List studentScore = new ArrayList<>(); + + for (Student student : getStudents()) { + if (student.getExamScores().contains(String.valueOf(score))) { + studentScore.add(student); + } + } + + return studentScore.toArray(new Student[0]); + } + + public TreeMap> getGradeBook() { + + TreeMap> gradeBook = new TreeMap<>(); + + int numOfStudents = students.length; + + for (int i = 1; i <= numOfStudents; i++) { + + Double percent = ((i - 1) / (double) numOfStudents); + + Character gradeLetter; + if (percent <= .1) gradeLetter = 'A'; + else if (percent > .1 && percent <= .29) gradeLetter = 'B'; + else if (percent > .29 && percent <= .50) gradeLetter = 'C'; + else if (percent > .50 && percent <= .89) gradeLetter = 'D'; + else gradeLetter = 'F'; + + if (!gradeBook.containsKey(gradeLetter)) { + gradeBook.put(gradeLetter, new ArrayList()); + } + + ArrayList currentStudents = gradeBook.get(gradeLetter); + + Student student = students[i - 1]; + currentStudents.add(student); + gradeBook.put(gradeLetter, currentStudents); + } + return gradeBook; + + } + +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index b543e36..46af0d6 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -1,4 +1,100 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Arrays; + public class Student { + + private String firstName; + private String lastName; + private ArrayList examScores; + + + //Constructors + + public Student(String firstName) { + this.firstName = firstName; + } + + public Student(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public Student(String firstName, String lastName, Double[] examScores) { + this.firstName = firstName; + this.lastName = lastName; + this.examScores = new ArrayList(Arrays.asList(examScores)); + ; + } + + + //setters and getters + 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; + } + + + //methods + public int getNumberOfExamsTaken(){ + return examScores.size(); + } + + public String getExamScores(){ + String outputOfScores = ""; + + for(int index = 0; index < examScores.size(); index ++){ + + int exam = (index + 1); + double score = examScores.get(index); + + outputOfScores += ("Exame " + exam + " -> " + score + "\n"); + + } + + return outputOfScores; + } + + + public void addExamScore(double newScore){ + examScores.add(newScore); + } + + public void setExamScore(int examNumber, double newScore){ + examScores.set(examNumber - 1, newScore); + } + + public Double getAverageExamScore(){ + double totalScore = 0.00; + + for(int index = 0; index < examScores.size(); index++){ + totalScore += examScores.get(index); + + } + + return (totalScore/examScores.size()); + } + + @Override + public String toString(){ + + String ouput = ("\n> Student Name: " + firstName + " " + lastName + "\n" + + "> Average Score: " + getAverageExamScore() + "\n" + + "> Exam Scores: \n" + getExamScores()); + + return ouput; + } + } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index 7bac1ff..a8cd800 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -1,4 +1,140 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.TreeMap; + +import static org.junit.Assert.*; + public class ClassroomTest { -} + + @Test + public void testClassroonGetAverageExamScore(){ + // : Given + Double[] s1Scores = { 100.0, 150.0 }; + Double[] s2Scores = { 225.0, 25.0 }; + + Student s1 = new Student("student", "one", s1Scores); + Student s2 = new Student("student", "two", s2Scores); + + Student[] students = {s1,s2}; + Classroom classroom = new Classroom(students); + + // When + double output = classroom.getAverageExamScore(); + + // Then + System.out.println(output); + } + + @Test + public void testClassroomAddStudent(){ + // : Given + int maxNumberOfStudents = 1; + Classroom classroom = new Classroom(maxNumberOfStudents); + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student("Leon", "Hunter", examScores); + + // When + Student[] preEnrollment = classroom.getStudents(); + String preEnrollmentAsString = Arrays.toString(preEnrollment); + System.out.println("==========================="); + System.out.println(preEnrollmentAsString); + + classroom.addStudent(student); + Student[] postEnrollment = classroom.getStudents(); + String postEnrollmentAsString = Arrays.toString(postEnrollment); + System.out.println("==========================="); + System.out.println(postEnrollmentAsString); + } + + @Test + public void testClassroomRemoveStudent() { + // : Given + int maxNumberOfStudents = 2; + Classroom classroom = new Classroom(maxNumberOfStudents); + + Double[] examScores = {100.0, 150.0, 250.0, 0.0}; + Student student = new Student("Leon", "Hunter", examScores); + + Double[] examScores2 = {100.0, 150.0, 250.0, 0.0}; + Student student2 = new Student("Lilian", "Smith", examScores2); + + classroom.addStudent(student); + classroom.addStudent(student2); + + // When + Student[] preRemovingStudent = classroom.getStudents(); + String preRemovingAsString = Arrays.toString(preRemovingStudent); + System.out.println("==========================="); + System.out.println(preRemovingAsString); + + classroom.removeStudent("Leon", "Hunter"); + + Student[] afterRemoving = classroom.getStudents(); + String afterRemovigAsString = Arrays.toString(afterRemoving); + System.out.println("==========================="); + System.out.println(afterRemovigAsString); + } + + @Test + public void testClassroomGetStudentByScore(){ + int maxNumberOfStudents = 4; + Classroom classroom = new Classroom(maxNumberOfStudents); + Double[] examScoresS1 = {92.0, 150.0, 250.0, 50.0}; + Double[] examScoresS2 = {250.0, 100.0, 100.0, 100.0}; + Double[] examScoresS3 = {92.0, 150.0, 250.0, 50.00}; + Double[] examScoresS4 = {90.0, 120.0, 99.0, 10.0}; + // When + Student testS1 = new Student("Leon", "Hunter", examScoresS1); + Student testS2 = new Student("Joe", "Smith", examScoresS2); + Student testS3 = new Student("Mike", "Jones", examScoresS3); + Student testS4 = new Student("Bob", "Johnson", examScoresS4); + + classroom.addStudent(testS1); + classroom.addStudent(testS2); + classroom.addStudent(testS3); + classroom.addStudent(testS4); + Student[] actual = classroom.getStudentByScore(150.0); + // Then + Student [] expected = new Student[]{testS1, testS3}; + + Assert.assertArrayEquals(expected, actual); + } + + @Test + public void getGradeBook() { + //Given + + Double[] examScores1 = {99.0, 50.0, 82.0}; + Double[] examScores2 = {100.0, 100.0, 50.0}; + Double[] examScores3 = {92.0, 80.0, 73.0}; + Double[] examScores4 = {100.0, 84.0, 62.0}; + Double[] examScores5 = {60.0, 50.0, 40.0}; + + Student student1 = new Student ("Leon", "Hunter", examScores1); + Student student2 = new Student ("Joe", "Smith", examScores2); + Student student3 = new Student ("Mike", "Jones", examScores3); + Student student4 = new Student ("John", "Brown", examScores4); + Student student5 = new Student ("Tim", "Johnson", examScores5); + + Student[] students = new Student[5]; + Classroom classroom = new Classroom(students); + + classroom.addStudent(student1); + classroom.addStudent(student2); + classroom.addStudent(student3); + classroom.addStudent(student4); + classroom.addStudent(student5); + + //When + TreeMap> output = classroom.getGradeBook(); + //Then + System.out.println(output); + } + + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index a9fedec..930e387 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -1,5 +1,103 @@ package io.zipcoder; + +import org.junit.Test; + +import static org.junit.Assert.*; + public class StudentTest { -} \ No newline at end of file + @Test + public void testGetExamsScores(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 95.0, 123.0, 96.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + String output = student.getExamScores(); + + // Then + System.out.println(output); + } + + @Test() + public void testAddExamScore(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { }; + Student student = new Student(firstName, lastName, examScores); + + // When + student.addExamScore(100.0); + String output = student.getExamScores(); + + // Then + System.out.println(output); + } + + @Test + public void testSetExamScore(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + student.setExamScore(1, 150.0); + String output = student.getExamScores(); + + // Then + System.out.println(output); + } + + @Test + public void testAverageExamScore(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + double output = student.getAverageExamScore(); + + // Then + System.out.println(output); + } + + @Test + + public void testToString(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 150.0, 250.0, 0.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + String output = student.toString(); + + // Then + System.out.println(output); + } + + @Test + public void testGetNumberOfExamsTaken(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 98.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + int output = student.getNumberOfExamsTaken(); + + // Then + System.out.println("Student took: " + output); + } +} + diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class new file mode 100644 index 0000000000000000000000000000000000000000..0178cacc9a7c8f5d5ae4e3ce2df2dd8eedab5538 GIT binary patch literal 3711 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 ao@Xf9vpj|P?ciF@(NatQhxtB)C;tlpoHT&| literal 0 HcmV?d00001 diff --git a/target/test-classes/io/zipcoder/StudentTest.class b/target/test-classes/io/zipcoder/StudentTest.class new file mode 100644 index 0000000000000000000000000000000000000000..4db1862829b4390f47cce4520dbfe2130ef36f16 GIT binary patch literal 2662 zcmbuAUsn@H7{;F^$tHvqCaq2@AF8L%>~5BYgwu=WVs>Wsot@|RzRyhl{^yTB0epp8827Lc!eR(ZK`hJ3 z9ZvHXh9A%5;To6DiR=Z^tUqVXR?Y3^(NDz8x(_FXW_=wAP5x zx8l2-A~Yk0Svk4=i~I6r5L;mk2|2ICb6Ye!qR9sFT@bqxM!-wjLnkcH}0+&|wa)GNtMYZuhtZ`*y zVPrRb7QJZHD236%s=cLz-d0K&AsaRGxMou7X02@MC2dQu>RdcmE*qw5>PDHWy3 zqN`c;NGnT_QWC-$qgKgj%eqK;wlU8H|@#h@w>(cQGXjUgM2~NQC;21wh=sVlWMw+kbMHXE` zrz3XAG>oI^Aq5pwMZ=u;wa}4e9?mJ>*gw>AoC=<(#hSKpz*@!@Kgt;rBZ*;niUjA5K3iA&;)5{v&rfRVszPg}ajw-)>e|Bf$;!0!lVcKlIHP()|_13GsejEWh~)K_S(2=01x@!;N#kEe2q!o+4E?}H+&nwBkmwjr}&gG z?SlR4fF*1&AHgn&CS@IwOT`Z(#7_=z+d*z{10A?Y$-``Kvk)W9Q0H$mJzqc|MNLZ(69asMYWt1pmL>WhvIUS<7IAu*RpO2VJ zVH3L+Q!dJ+i}KJxiQ=w$u&^O5LgBZi`!Cmte06_J+r6j~lC$p69KgdB9d( fu;yD~kUqBS73ZO}>otMvbaJw(UUT$b8|ME7Eqna6 literal 0 HcmV?d00001 From e2e4f4fa27e29f6664259e7cbd206744aa8c7389 Mon Sep 17 00:00:00 2001 From: Maira Botelho Date: Sat, 9 Nov 2019 21:09:15 -0500 Subject: [PATCH 2/2] missing gradeBook --- src/main/java/io/zipcoder/Classroom.java | 50 ++++-------------- src/main/java/io/zipcoder/NameComparator.java | 11 ++++ src/main/java/io/zipcoder/Student.java | 18 ++----- src/test/java/io/zipcoder/ClassroomTest.java | 48 +++-------------- src/test/java/io/zipcoder/StudentTest.java | 49 +++++++++++------ target/classes/io/zipcoder/Classroom.class | Bin 3711 -> 2510 bytes target/classes/io/zipcoder/Student.class | Bin 3050 -> 2821 bytes .../io/zipcoder/ClassroomTest.class | Bin 4630 -> 3581 bytes .../io/zipcoder/StudentTest.class | Bin 2662 -> 3103 bytes 9 files changed, 63 insertions(+), 113 deletions(-) create mode 100644 src/main/java/io/zipcoder/NameComparator.java diff --git a/src/main/java/io/zipcoder/Classroom.java b/src/main/java/io/zipcoder/Classroom.java index 9fe6907..65c5096 100644 --- a/src/main/java/io/zipcoder/Classroom.java +++ b/src/main/java/io/zipcoder/Classroom.java @@ -1,14 +1,12 @@ package io.zipcoder; -import java.util.ArrayList; -import java.util.List; -import java.util.TreeMap; +import java.util.*; public class Classroom { private Student[] students; - + //Constructors public Classroom(int maxNumberOfStudents) { students = new Student[maxNumberOfStudents]; } @@ -17,11 +15,11 @@ public Classroom(Student[] students) { this.students = students; } - // nullary constructor public Classroom() { this(30); } + public Student[] getStudents() { return students; } @@ -30,9 +28,8 @@ public Double getAverageExamScore() { double classTotalScore = 0; double numberOfStudents = students.length; - for (int i = 0; i < students.length; i++) { + for (int i = 0; i < students.length; i++) classTotalScore += students[i].getAverageExamScore(); - } return (classTotalScore / numberOfStudents); } @@ -42,6 +39,7 @@ public String addStudent(Student student) { for (int index = 0; index < students.length; index++) { if (students[index] == null) { students[index] = student; + return student.toString(); } } @@ -65,47 +63,17 @@ public boolean removeStudent(String firstName, String lasName) { return false; } - public Student[] getStudentByScore(double score) { + public List getStudentByScore(double score) { List studentScore = new ArrayList<>(); for (Student student : getStudents()) { - if (student.getExamScores().contains(String.valueOf(score))) { + if (student.getExamScores().contains(String.valueOf(score))) studentScore.add(student); - } } - return studentScore.toArray(new Student[0]); - } - - public TreeMap> getGradeBook() { - - TreeMap> gradeBook = new TreeMap<>(); - - int numOfStudents = students.length; - - for (int i = 1; i <= numOfStudents; i++) { - - Double percent = ((i - 1) / (double) numOfStudents); - - Character gradeLetter; - if (percent <= .1) gradeLetter = 'A'; - else if (percent > .1 && percent <= .29) gradeLetter = 'B'; - else if (percent > .29 && percent <= .50) gradeLetter = 'C'; - else if (percent > .50 && percent <= .89) gradeLetter = 'D'; - else gradeLetter = 'F'; - - if (!gradeBook.containsKey(gradeLetter)) { - gradeBook.put(gradeLetter, new ArrayList()); - } - - ArrayList currentStudents = gradeBook.get(gradeLetter); - - Student student = students[i - 1]; - currentStudents.add(student); - gradeBook.put(gradeLetter, currentStudents); - } - return gradeBook; + Collections.sort(studentScore, new NameComparator()); + return studentScore; } } \ No newline at end of file diff --git a/src/main/java/io/zipcoder/NameComparator.java b/src/main/java/io/zipcoder/NameComparator.java new file mode 100644 index 0000000..82cc13c --- /dev/null +++ b/src/main/java/io/zipcoder/NameComparator.java @@ -0,0 +1,11 @@ +package io.zipcoder; + +import java.util.Comparator; + +public class NameComparator implements Comparator { + + @Override + public int compare(Student o1, Student o2) { + return o1.getFirstName().compareTo(o2.getFirstName()); + } +} diff --git a/src/main/java/io/zipcoder/Student.java b/src/main/java/io/zipcoder/Student.java index 46af0d6..44ec3f2 100644 --- a/src/main/java/io/zipcoder/Student.java +++ b/src/main/java/io/zipcoder/Student.java @@ -10,16 +10,7 @@ public class Student { private ArrayList examScores; - //Constructors - - public Student(String firstName) { - this.firstName = firstName; - } - - public Student(String firstName, String lastName) { - this.firstName = firstName; - this.lastName = lastName; - } + //Constructor public Student(String firstName, String lastName, Double[] examScores) { this.firstName = firstName; @@ -30,6 +21,7 @@ public Student(String firstName, String lastName, Double[] examScores) { //setters and getters + public String getFirstName() { return firstName; } @@ -61,13 +53,11 @@ public String getExamScores(){ double score = examScores.get(index); outputOfScores += ("Exame " + exam + " -> " + score + "\n"); - } return outputOfScores; } - public void addExamScore(double newScore){ examScores.add(newScore); } @@ -79,11 +69,9 @@ public void setExamScore(int examNumber, double newScore){ public Double getAverageExamScore(){ double totalScore = 0.00; - for(int index = 0; index < examScores.size(); index++){ + for(int index = 0; index < examScores.size(); index++) totalScore += examScores.get(index); - } - return (totalScore/examScores.size()); } diff --git a/src/test/java/io/zipcoder/ClassroomTest.java b/src/test/java/io/zipcoder/ClassroomTest.java index a8cd800..93ff39c 100644 --- a/src/test/java/io/zipcoder/ClassroomTest.java +++ b/src/test/java/io/zipcoder/ClassroomTest.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.TreeMap; import static org.junit.Assert.*; @@ -12,7 +13,7 @@ public class ClassroomTest { @Test - public void testClassroonGetAverageExamScore(){ + public void getAverageExamScoreTest(){ // : Given Double[] s1Scores = { 100.0, 150.0 }; Double[] s2Scores = { 225.0, 25.0 }; @@ -31,7 +32,7 @@ public void testClassroonGetAverageExamScore(){ } @Test - public void testClassroomAddStudent(){ + public void addStudentTest(){ // : Given int maxNumberOfStudents = 1; Classroom classroom = new Classroom(maxNumberOfStudents); @@ -52,7 +53,7 @@ public void testClassroomAddStudent(){ } @Test - public void testClassroomRemoveStudent() { + public void removeStudentTest() { // : Given int maxNumberOfStudents = 2; Classroom classroom = new Classroom(maxNumberOfStudents); @@ -81,13 +82,13 @@ public void testClassroomRemoveStudent() { } @Test - public void testClassroomGetStudentByScore(){ + public void getStudentByScoreTest(){ int maxNumberOfStudents = 4; Classroom classroom = new Classroom(maxNumberOfStudents); Double[] examScoresS1 = {92.0, 150.0, 250.0, 50.0}; Double[] examScoresS2 = {250.0, 100.0, 100.0, 100.0}; Double[] examScoresS3 = {92.0, 150.0, 250.0, 50.00}; - Double[] examScoresS4 = {90.0, 120.0, 99.0, 10.0}; + Double[] examScoresS4 = {90.0, 120.0, 99.0, 100.0}; // When Student testS1 = new Student("Leon", "Hunter", examScoresS1); Student testS2 = new Student("Joe", "Smith", examScoresS2); @@ -98,43 +99,8 @@ public void testClassroomGetStudentByScore(){ classroom.addStudent(testS2); classroom.addStudent(testS3); classroom.addStudent(testS4); - Student[] actual = classroom.getStudentByScore(150.0); - // Then - Student [] expected = new Student[]{testS1, testS3}; - - Assert.assertArrayEquals(expected, actual); - } - - @Test - public void getGradeBook() { - //Given - - Double[] examScores1 = {99.0, 50.0, 82.0}; - Double[] examScores2 = {100.0, 100.0, 50.0}; - Double[] examScores3 = {92.0, 80.0, 73.0}; - Double[] examScores4 = {100.0, 84.0, 62.0}; - Double[] examScores5 = {60.0, 50.0, 40.0}; - - Student student1 = new Student ("Leon", "Hunter", examScores1); - Student student2 = new Student ("Joe", "Smith", examScores2); - Student student3 = new Student ("Mike", "Jones", examScores3); - Student student4 = new Student ("John", "Brown", examScores4); - Student student5 = new Student ("Tim", "Johnson", examScores5); - - Student[] students = new Student[5]; - Classroom classroom = new Classroom(students); - - classroom.addStudent(student1); - classroom.addStudent(student2); - classroom.addStudent(student3); - classroom.addStudent(student4); - classroom.addStudent(student5); - //When - TreeMap> output = classroom.getGradeBook(); - //Then - System.out.println(output); + System.out.println(classroom.getStudentByScore(100.0).toString()); } - } \ No newline at end of file diff --git a/src/test/java/io/zipcoder/StudentTest.java b/src/test/java/io/zipcoder/StudentTest.java index 930e387..1c91414 100644 --- a/src/test/java/io/zipcoder/StudentTest.java +++ b/src/test/java/io/zipcoder/StudentTest.java @@ -8,7 +8,38 @@ public class StudentTest { @Test - public void testGetExamsScores(){ + public void getStudentName(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 98.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + String output = student.getFirstName(); + String output2 = student.getLastName(); + + // Then + System.out.println(String.format("Student's name: %s %s", output, output2)); + } + + @Test + public void getNumberOfExamsTakenTest(){ + // : Given + String firstName = "Leon"; + String lastName = "Hunter"; + Double[] examScores = { 100.0, 98.0 }; + Student student = new Student(firstName, lastName, examScores); + + // When + int output = student.getNumberOfExamsTaken(); + + // Then + System.out.println("Student took: " + output); + } + + @Test + public void getExamsScoresTest(){ // : Given String firstName = "Leon"; String lastName = "Hunter"; @@ -23,7 +54,7 @@ public void testGetExamsScores(){ } @Test() - public void testAddExamScore(){ + public void addExamScoreTest(){ // : Given String firstName = "Leon"; String lastName = "Hunter"; @@ -85,19 +116,5 @@ public void testToString(){ System.out.println(output); } - @Test - public void testGetNumberOfExamsTaken(){ - // : Given - String firstName = "Leon"; - String lastName = "Hunter"; - Double[] examScores = { 100.0, 98.0 }; - Student student = new Student(firstName, lastName, examScores); - - // When - int output = student.getNumberOfExamsTaken(); - - // Then - System.out.println("Student took: " + output); - } } diff --git a/target/classes/io/zipcoder/Classroom.class b/target/classes/io/zipcoder/Classroom.class index 0178cacc9a7c8f5d5ae4e3ce2df2dd8eedab5538..9b463c497fb24025c1821affda6ca79965542306 100644 GIT binary patch delta 1200 zcmY*YSx*yT6g@N3cG~Hn#zNTn~TY{%!Y#C*4KLVcpy9!nOIIdOGGy_sg>wNYQz4kK6TyIQErFbwVn!u6a-#< z3)Gn?L%E3xRGMf)SjRmR_wm5Q93GlTVBXHUgL4a**Rg0KiAN?LW1ipw`#?IKcut9o zi3T*9Si-!(Qzn-2L_tN$ioQs#FIbDobaX1Qnv7Yi>xpzCW2JShm{`S{z3ZN~7d*eS zB?Z=)wX%|2$fT?_cIDcz(isJj@c&I^dJnw|w7roT)NyvDT!X^#u|ry3+H8|&6<=fY ztGtVvx1lsweunxETK^V3Dyn%NfyUE-3x1gV)$kR}A#ehyO z=p#fQg%8ILp^ZG+aO%pTLk{|vw`@t!vT|_A9uzxBlTkoFKq@k2$)_*MTVn3!x6t0u z$QAE#oMnf=?mU=F7O-vkhL%OFf-)ePAbrdVvbjdyt!z!2Ze|lEeG$Ihe4jmFQqj&> z3%Pu}TWM)%W84pQ52mImJ4{q?%Biu+t~Pq+3UWUXp{hz>9+ye_JBIjXYvzPxH5InI+^e4Vt^!}{$x{VsHiK68G0S-yzJ?U(*o_7eiL z+bI5kk~Ue6%lWcuxJe+!v|;u+!s*gEf>x+ppy^JvxG#j(#1N6n4?@$C=mwF)9ZC0WH#*DgXcg literal 3711 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 aw4DTLj_q>Vn&Z%u7;xUsFi0#0&i(}?tbsiM delta 1076 zcmYjQ%Tg0T6g@o?GLvBMan7{e1Hp=ZrQtbWhv$9A*QIQx;=gSo^$WHw|m3?Gjsjh-q#%f5xlmLhb|8S z=vJo3K+Hlfu3B)RPkH*)-!&5hYQ1jYhJ{oN8W^(RMVB(eCPvhH(?ndYqbA1GdP_x) zE7*iGlO}GPxMO0Qz975V}ZD%pnikvk2g zw1=S6rm;Ofc#w`V?)>}FC`Xt(;*gIM8p061N*&!#ZO$3mV&?HdpATs24BRyD7fB1lMcT&0AsYofW zL9KL~!R*KZHZ#e_#>-Z7VZDZx)v=RjskxrmMs#rBjV1>bVV(?TKErdJr$NRvP+?mi;skHRMY-$=S9G%HQ73kPD!yc_4{fYS^~~p>)Kqx+U^n6-DSz zGPpQPr9@Q}NpNYXWX&qCQer73E}c5^=;1Aw%hsTGi0@|@6&PV};&Ru@Op7LN++|`k GT=@ra(TOks diff --git a/target/test-classes/io/zipcoder/ClassroomTest.class b/target/test-classes/io/zipcoder/ClassroomTest.class index da9d1b3bf2bd613c6ff3012666b1a0f3fd8ca7d5..5cab40c200da058973e9d3a2aef7379c45730572 100644 GIT binary patch delta 1442 zcmZ8hTW}L)7(Kgbb~ou7nxyxtEeN!Zq%8$)O)944j;%^lD8X9YHf!40CXgm6^+KVD zl#61!2wD)e-p8lbu`r?xZ(bhc%?BTJoMC*^C*K?$&%cDKY-av^-g=_ZL?Itj8yAJb)n;2_+n5fsY$9o}I3_%NW+MQ^SZGI+7YvD)zbI#eQ+5MboGY z8D!naVNBExDB)DtM$j;>;W<%z-i;UVqK1Q_YeG~GX*jH5QiMmQF9xbLyrki%hL<%Q z(=a9K#|5PmDo(06Wi?8%^0K&@Y0H^uBW`X!V2nftQfaf>9L-ptOFwu#Ml2S|WMgJB z!4U)2`CmAZrRU;0}a% z>UQizD;{DdVFP<*_I~d=HX(Xf!^P8wGWb!C624Q4?I_0{RA2yiVg%L5qQ=JRg2vul z9;*yb;bDY{S&waKV&d|A*3MO z!EXtjd3wLQEt_5t9@bY8dNm4Bizd`@(0znk!`=XParl#HL=0<@;II3!4&%J!hiQlfz9&zEDBc*T9WsBKI+Q7F%^(aeA_q_Kw!kD`x)rYL2B)UPqS&inZjp2lzJ#~-|Ve!@YsdkY}U(? zM=ThpTx|Cp^Nb9k>{bvneN1T3ykjVsH)WeUinf){7kEsbzGmKA8g%Sjaa?dzh0e9{ z4D+X~k`r9LxYkfzeosxt17^XRHY-UtR#OW=%wdAbNMEK<@oo+ns~gNSjyb07J1b}j z%*U&4%WCqVV7#z>GoD=H)m#QChTxP51*aQpr<+Kr2rgE+1NyrIdb$JQV~javBTprn zr>4v?$ILR!xasV&jjY*cS;rLw;9#u4jBx@p2J_WOH-AVUe@KUBm$kB!%XbagrrB>y zk+#LP^)@r**WB=(?mYqCw@nx}(>LwzfM2g|8#9?)$?2()x`%7`R{o>-2CcF^X70?% za<7!Z5b;_obQQ-gJWQ!qHRhIQ96!Jhd5mBWs0g9KDw<;9kJwz}hZWlXC`dLCvWnsyv7;%jXP+i3}EU&O{u)#qXHh9*cb_+@CwnM`RDPF45R$jj|5+SQEvPRgB{$ zysY7sI9|nT^c80M_Sx1+zMH}8Vwc~uPt-l3fUyR=eWR0<7Q;^)`Len17@=w3-VtE3 z()?2G0jpQncUtQ7P0`Sk?e$xrc-Kr#-`R{?+UsV~n3c_VSY#`23%10776xZZj#=Of zwoK8VrAmmzezqnSux%Qmp*Ghs6M`w>lqZ^DLLhFT_TA#q$oxDdk&Pwo9rcgm=OHUd zN}b-iWBF}y6(OjK*2TR$c*aVvTvP{Xkx0x4wC|4gx|7(K_E9Tk&Z_c zG*!=D>3d0{b5{te7f^4hWZER5iT5xE5|JGz*w6?|M?Ea+!NXH8@`do0)>MO%59cuM z#SZ@F5+4`C-kA)~qV1sc(UO|*(StrZeX3ZcFrQhj;5pxo zMy$jJtU?;ADUSQeZzoT=21h81EY@KX>v4h}GuVi;{M|0p@TkQ4oQGcsXK<7lvK`>0 z#3e-k{dkQ38yL3_hQx0tdN3;S>&FAcFiX59$&N{z#yy&Fj5hr(NRC&Kyi6n;x%(@T z{}ajo4Su0KYV_X3eL{T;QmT)!0Q_yB?o5!jS-i_7B$|v0LSjKeVl{;9p=g24BqYTn z_7J`;1nwbB@cSeId;;6>6zO?}ReOnmJV#l+Kq{_~uB$A@8x-&y;eMI&6$DMWKvf8O zsY1~03PI0S2)f`AG{NTtqeQsp0CFTv<&IlPk|5|39>j4;&{dL_r!C5Tn^*!_{^?dL z|DsP?Xd$D`W1Cp5-AURCza_{{5s-fiR>}hKiE^ugEye9EtP^*jdV^Hh_k6pMsfh2{ z?r*+Y4j8jj4j6N-7^GB5zh8cuoUNl6!a@wXoUTu7aJ3PY(~XHuNmaa!btW~bktFMm zQb|VL2TA9QopBZqq#E5mm()a~iw>sZ$#}By2HsOGQ&$xSsET3od630-h&+zqJR8n6 z7U3L@;E%NYg~j&rIR)A!L;(OeKMF_jnemmP{EbS9Gs`zsuRFSYkaZ~rA&&@(ag27CSYmGxWv_Ya9dD(n+4?k2Abka&4HxuPKNvM0Nu=uPx_qR@GBrKkm7SW$6d z#gegPL~zchY#Mw@Vel!Hk)$HFr5Z&SZ=A(;L4AX~dv~(1L>adc`ZPg*jBuYNs22(6 z^91q=`|(YDkVHI=*YF|yi9Ptw^!O{z;qQ1F{~&Gu#sx|HX%|+H_BQ&RCW#8;-jd}W zV)V=S0BsG7aGFsC?H5_%kCVg*_dDt}gDZUV1Z^7k?&Yq6_Bq~^;#Q0@k9AT;G438^ ao@Xf9vpj|P?ciF@(NatQhxtB)C;tlpoHT&| diff --git a/target/test-classes/io/zipcoder/StudentTest.class b/target/test-classes/io/zipcoder/StudentTest.class index 4db1862829b4390f47cce4520dbfe2130ef36f16..457c18d6a35d60dc7552b11a1a002451be6f6ff0 100644 GIT binary patch literal 3103 zcmbuA+gB4;7{&LHWD>)OG=yTT+DN?w1!C3OCa4Y95{aM&(bQW9GT=ZmgUN)dZLPii zEq%5R(N&kN&wcIx)75=uhGCFlxw^_?&7AqpZU4^xzLUTH`TY+7=kQA$-6+OzIfj`i zN^+sXF#qBR<-*N3_HuIJ-e%*L9pJn;z7h{rE-X5I;%iYZm<4-;_*xR8s$wTieBO^@ zS%Q2)H+1WggivN+K|*-ktZEYWm2^X!ZPgdG#=N>%V>s)BhvfgM~PCHRrRX5aZO*K|Ht)Uw$ zoDr+3oBeU^ky(AAQc=Tn=Na-WpSv}I77kLTZX0A zwFSMYbD2@YFfG;6O@rHXm(0dWcD2P*$+`?FGB}4Zw>(Kj&3ScAGeoBZsmQZoza4j^ zIvw3=wJL&k%nezbQg+7LVF^hQ8r{$u>Wb!#=Bg7C6wx(rI_DxGUN&2eC2dL0?d)Z(DqBaaCKgqF7h(5RE9B3M{k~Y~X7NeOn?Nn6Z{#W2P`U+?CUoX|Cnd z3LfFHcsx*y`7POj1xto(C?|OEKX+pTX=cg$x$UQm3>Z>A2%(n&Wd9`inO(lhb&iF0IZdU zrq-FZ{t0$z(AH(MQCB%97ogs+)v;qFP*zXCcC3wcv3ZTT(;Kk1fbI<}0{h-z3CQaD zx@J@*3Hl zwmawDDVnEmy)x#6)BE72=gsgF`RSnGdJJ zZ7BJOcSAELO!+~h-wO;hGa z6nGq$al%Htz8*&nd1AR^B z1!{_TKK~rBL4plY{xFj(OF3sS#aq2@AF8L%>~5BYgwu=WVs>Wsot@|RzRyhl{^yTB0epp8827Lc!eR(ZK`hJ3 z9ZvHXh9A%5;To6DiR=Z^tUqVXR?Y3^(NDz8x(_FXW_=wAP5x zx8l2-A~Yk0Svk4=i~I6r5L;mk2|2ICb6Ye!qR9sFT@bqxM!-wjLnkcH}0+&|wa)GNtMYZuhtZ`*y zVPrRb7QJZHD236%s=cLz-d0K&AsaRGxMou7X02@MC2dQu>RdcmE*qw5>PDHWy3 zqN`c;NGnT_QWC-$qgKgj%eqK;wlU8H|@#h@w>(cQGXjUgM2~NQC;21wh=sVlWMw+kbMHXE` zrz3XAG>oI^Aq5pwMZ=u;wa}4e9?mJ>*gw>AoC=<(#hSKpz*@!@Kgt;rBZ*;niUjA5K3iA&;)5{v&rfRVszPg}ajw-)>e|Bf$;!0!lVcKlIHP()|_13GsejEWh~)K_S(2=01x@!;N#kEe2q!o+4E?}H+&nwBkmwjr}&gG z?SlR4fF*1&AHgn&CS@IwOT`Z(#7_=z+d*z{10A?Y$-``Kvk)W9Q0H$mJzqc|MNLZ(69asMYWt1pmL>WhvIUS<7IAu*RpO2VJ zVH3L+Q!dJ+i}KJxiQ=w$u&^O5LgBZi`!Cmte06_J+r6j~lC$p69KgdB9d( fu;yD~kUqBS73ZO}>otMvbaJw(UUT$b8|ME7Eqna6