From 171a6c6b7d2925dbef58d4a7610e1790062079f0 Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Tue, 21 Jul 2020 10:23:41 -0400 Subject: [PATCH 1/7] part1 --- .../java/com/github/curriculeon/Person.java | 18 ++++++++++ .../com/github/curriculeon/TestPerson.java | 35 +++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/src/main/java/com/github/curriculeon/Person.java b/src/main/java/com/github/curriculeon/Person.java index 3c8350b..1ce43e8 100644 --- a/src/main/java/com/github/curriculeon/Person.java +++ b/src/main/java/com/github/curriculeon/Person.java @@ -1,5 +1,23 @@ package com.github.curriculeon; public class Person { + final Long id; + String name; + public Person(Long id, String name) { + this.id = id; + this.name = name; + } + + public long getId() { + return id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/src/test/java/com/github/curriculeon/TestPerson.java b/src/test/java/com/github/curriculeon/TestPerson.java index 6c523fe..2596ea8 100644 --- a/src/test/java/com/github/curriculeon/TestPerson.java +++ b/src/test/java/com/github/curriculeon/TestPerson.java @@ -1,5 +1,40 @@ package com.github.curriculeon; + +import org.junit.Assert; +import org.junit.Test; + public class TestPerson { + @Test + public void testConstructor() { + //given + Long expectedId=0L; + String expectedName="dummy name"; + + + //when + Person person=new Person(expectedId,expectedName); + Long actualId=person.getId(); + String actualName=person.getName(); + + + //then + Assert.assertEquals(expectedId,actualId); + Assert.assertEquals(expectedName,actualName); + } + @Test + public void testSetName(){ + //given + Person person=new Person(null,null); + String expectedName="dummy name"; + Assert.assertNotEquals(expectedName,person.getName()); + + //when + person.setName((expectedName)); + String actualName=person.getName(); + + //then + Assert.assertEquals(expectedName,actualName); + } } From 1536ffa6a3bc83e991d2fea4594ea817eb3a4248 Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Tue, 21 Jul 2020 15:42:07 -0400 Subject: [PATCH 2/7] part2,part3 --- .../java/com/github/curriculeon/Learner.java | 10 ++++ .../java/com/github/curriculeon/Person.java | 6 +- .../java/com/github/curriculeon/Student.java | 23 ++++++++ .../com/github/curriculeon/StudentTest.java | 55 +++++++++++++++++++ .../com/github/curriculeon/TestPerson.java | 53 +++++++++--------- 5 files changed, 116 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/github/curriculeon/Learner.java create mode 100644 src/main/java/com/github/curriculeon/Student.java create mode 100644 src/test/java/com/github/curriculeon/StudentTest.java diff --git a/src/main/java/com/github/curriculeon/Learner.java b/src/main/java/com/github/curriculeon/Learner.java new file mode 100644 index 0000000..5ed9a12 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Learner.java @@ -0,0 +1,10 @@ +package com.github.curriculeon; + +public interface Learner { + + public void learn(double numberOfHours); + + public double getTotalStudyTime(); + + +} diff --git a/src/main/java/com/github/curriculeon/Person.java b/src/main/java/com/github/curriculeon/Person.java index 1ce43e8..5fc7883 100644 --- a/src/main/java/com/github/curriculeon/Person.java +++ b/src/main/java/com/github/curriculeon/Person.java @@ -1,15 +1,15 @@ package com.github.curriculeon; public class Person { - final Long id; - String name; + private final Long id; + private String name; public Person(Long id, String name) { this.id = id; this.name = name; } - public long getId() { + public Long getId() { return id; } diff --git a/src/main/java/com/github/curriculeon/Student.java b/src/main/java/com/github/curriculeon/Student.java new file mode 100644 index 0000000..95ada18 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Student.java @@ -0,0 +1,23 @@ +package com.github.curriculeon; + +public class Student extends Person implements Learner { + double totalStudyTime; + + + + public Student(Long id, String name) { + super(id, name); + } + + + @Override + public void learn(double numberOfHours) { + totalStudyTime+=numberOfHours; + + } + + @Override + public double getTotalStudyTime() { + return totalStudyTime; + } +} diff --git a/src/test/java/com/github/curriculeon/StudentTest.java b/src/test/java/com/github/curriculeon/StudentTest.java new file mode 100644 index 0000000..bae8f28 --- /dev/null +++ b/src/test/java/com/github/curriculeon/StudentTest.java @@ -0,0 +1,55 @@ +package com.github.curriculeon; + +import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; + +public class StudentTest extends TestCase { + @Test + public void testInheritance(){ + //given + Long id=1L; + String name="some one"; + Student student = new Student(id,name ); + + // when + Boolean outcome = student instanceof Person; + + // then + Assert.assertTrue(outcome); + } + + + @Test + public void testLearn() { + //given + Long id=1L; + String name="some one"; + Student student = new Student(id,name ); + Double numberOfHours=9.4; + Double expected=student.getTotalStudyTime()+numberOfHours; + + //when + student.learn(numberOfHours); + Double actual=student.getTotalStudyTime(); + + //then + + Assert.assertEquals(expected,actual); + + } + + @Test + public void testImplementation() { + //given + Long id=1L; + String name="some one"; + Student student = new Student(id,name ); + + // when + Boolean outcome = student instanceof Learner; + + // then + Assert.assertTrue(outcome); + } +} \ No newline at end of file diff --git a/src/test/java/com/github/curriculeon/TestPerson.java b/src/test/java/com/github/curriculeon/TestPerson.java index 2596ea8..1cc894a 100644 --- a/src/test/java/com/github/curriculeon/TestPerson.java +++ b/src/test/java/com/github/curriculeon/TestPerson.java @@ -1,40 +1,37 @@ package com.github.curriculeon; - import org.junit.Assert; import org.junit.Test; public class TestPerson { - @Test public void testConstructor() { - //given - Long expectedId=0L; - String expectedName="dummy name"; - - - //when - Person person=new Person(expectedId,expectedName); - Long actualId=person.getId(); - String actualName=person.getName(); - - - //then - Assert.assertEquals(expectedId,actualId); - Assert.assertEquals(expectedName,actualName); + // given + Long expectedId = 0L; + String expectedName = "Some name"; + + // when + Person person = new Person(expectedId, expectedName); + Long actualId = person.getId(); + String actualName = person.getName(); + + // then + Assert.assertEquals(expectedId, actualId); + Assert.assertEquals(expectedName, actualName); } - @Test - public void testSetName(){ - //given - Person person=new Person(null,null); - String expectedName="dummy name"; - Assert.assertNotEquals(expectedName,person.getName()); - //when - person.setName((expectedName)); - String actualName=person.getName(); - - //then - Assert.assertEquals(expectedName,actualName); + @Test + public void testSetName() { + // given + Person person = new Person(null, null); + String expectedName = "Some name"; + Assert.assertNotEquals(expectedName, person.getName()); + + // when + person.setName(expectedName); + String actualName = person.getName(); + + // then + Assert.assertEquals(expectedName, actualName); } } From 30753f89fad0f1efc7ccb2ed426d92ce40394c12 Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Tue, 21 Jul 2020 16:41:25 -0400 Subject: [PATCH 3/7] part5 --- .../com/github/curriculeon/Instructor.java | 26 +++++++ .../java/com/github/curriculeon/Teacher.java | 8 ++ .../com/github/curriculeon/StudentTest.java | 13 +--- .../github/curriculeon/TestInstructor.java | 78 +++++++++++++++++++ 4 files changed, 116 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/github/curriculeon/Instructor.java create mode 100644 src/main/java/com/github/curriculeon/Teacher.java create mode 100644 src/test/java/com/github/curriculeon/TestInstructor.java diff --git a/src/main/java/com/github/curriculeon/Instructor.java b/src/main/java/com/github/curriculeon/Instructor.java new file mode 100644 index 0000000..2e733e4 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Instructor.java @@ -0,0 +1,26 @@ +package com.github.curriculeon; + +public class Instructor extends Person implements Teacher{ + + + public Instructor(Long id, String name) { + super(id, name); + } + + @Override + public void teach(Learner learner, double numberOfHours) { + learner.learn(numberOfHours); + + } + + @Override + public void lecture(Learner[] learners, double numberOfHours) { + double numberOfHoursPerLearner = numberOfHours / learners.length; + for (int i = 0; i < learners.length; i++) { + Learner learner = learners[i]; + learner.learn(numberOfHoursPerLearner); + + } + + } +} diff --git a/src/main/java/com/github/curriculeon/Teacher.java b/src/main/java/com/github/curriculeon/Teacher.java new file mode 100644 index 0000000..7b9ae36 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Teacher.java @@ -0,0 +1,8 @@ +package com.github.curriculeon; + +public interface Teacher { + + public void teach(Learner learner,double numberOfHours); + + public void lecture(Learner[] learners,double numberOfHours); +} diff --git a/src/test/java/com/github/curriculeon/StudentTest.java b/src/test/java/com/github/curriculeon/StudentTest.java index bae8f28..b27aad7 100644 --- a/src/test/java/com/github/curriculeon/StudentTest.java +++ b/src/test/java/com/github/curriculeon/StudentTest.java @@ -8,9 +8,7 @@ public class StudentTest extends TestCase { @Test public void testInheritance(){ //given - Long id=1L; - String name="some one"; - Student student = new Student(id,name ); + Student student = new Student(null,null); // when Boolean outcome = student instanceof Person; @@ -23,9 +21,8 @@ public void testInheritance(){ @Test public void testLearn() { //given - Long id=1L; - String name="some one"; - Student student = new Student(id,name ); + + Student student = new Student(null,null); Double numberOfHours=9.4; Double expected=student.getTotalStudyTime()+numberOfHours; @@ -42,9 +39,7 @@ public void testLearn() { @Test public void testImplementation() { //given - Long id=1L; - String name="some one"; - Student student = new Student(id,name ); + Student student = new Student(null,null); // when Boolean outcome = student instanceof Learner; diff --git a/src/test/java/com/github/curriculeon/TestInstructor.java b/src/test/java/com/github/curriculeon/TestInstructor.java new file mode 100644 index 0000000..9a866a9 --- /dev/null +++ b/src/test/java/com/github/curriculeon/TestInstructor.java @@ -0,0 +1,78 @@ +package com.github.curriculeon; + +import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; + +public class TestInstructor extends TestCase { + + @Test + public void testInheritance() { + //given + + Instructor instructor = new Instructor(null, null); + + // when + Boolean outcome = instructor instanceof Person; + + // then + Assert.assertTrue(outcome); + } + + @Test + public void testImplementation() { + //given + + Instructor instructor = new Instructor(null, null); + + // when + Boolean outcome = instructor instanceof Teacher; + + // then + Assert.assertTrue(outcome); + } + + + @Test + public void testLearn() { + //given + + Learner learners = new Student(null, null); + Instructor instructor = new Instructor(null, null); + Double numberOfHours = 9.4; + Double expected = learners.getTotalStudyTime() + numberOfHours; + + //when + instructor.teach(learners, numberOfHours); + Double actual= learners.getTotalStudyTime(); + // Double actual = instructor.lecture(learner, numberOfHours); + + //then + + Assert.assertEquals(expected, actual); + + } + + public void testLecture() { + //given + Teacher teacher=new Instructor(null,null); + Learner[] learners = { + new Student(1L, "student1"), + new Student(2L, "student2"), + new Student(3L, "student3"), + new Student(4L, "student4"), + }; + Double numberOfHours = 28.2; + Double expected = numberOfHours / learners.length; + //when + teacher.lecture(learners,numberOfHours); + //then + for (int i = 0; i < learners.length; i++) { + Learner learner = learners[i]; + Double actual=learner.getTotalStudyTime(); + Assert.assertEquals(expected,actual); + } + + + } +} \ No newline at end of file From e6743c74e00169a99cd9714ae14c700395b45de6 Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Sun, 26 Jul 2020 23:26:22 -0400 Subject: [PATCH 4/7] completed part 6 --- .../java/com/github/curriculeon/People.java | 63 ++++++++++++++++ .../java/com/github/curriculeon/Person.java | 6 +- .../com/github/curriculeon/PeopleTest.java | 73 +++++++++++++++++++ 3 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/github/curriculeon/People.java create mode 100644 src/test/java/com/github/curriculeon/PeopleTest.java diff --git a/src/main/java/com/github/curriculeon/People.java b/src/main/java/com/github/curriculeon/People.java new file mode 100644 index 0000000..6a6e714 --- /dev/null +++ b/src/main/java/com/github/curriculeon/People.java @@ -0,0 +1,63 @@ +package com.github.curriculeon; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class People implements Iterable{ + private List personList = new ArrayList<>(); + + public void add(Person person) { + personList.add(person); + } + + public Person findById(long id) { + for (Person person : personList) { + if (person.getId() == id) { + return person; + } + } + return null; + } + + public Boolean contains(Person person) { + if (personList.contains(person)) { + return true; + } else + return false; + } + + public void remove(Person person) { + if (personList.contains(person)) { + personList.remove(person); + } + + } + + public void removeById(long id) { + Person person = findById(id); + if (personList.contains(person)) { + personList.remove(person); + } + + } + + public void removeAll() { + personList.clear(); + } + + public int count() { + return personList.size(); + } + + public Person[] toArray() { + Person[] person = personList.toArray(new Person[personList.size()]); + return person; + } + + + @Override + public Iterator iterator() { + return personList.iterator(); + } +} diff --git a/src/main/java/com/github/curriculeon/Person.java b/src/main/java/com/github/curriculeon/Person.java index 5fc7883..29f7ecf 100644 --- a/src/main/java/com/github/curriculeon/Person.java +++ b/src/main/java/com/github/curriculeon/Person.java @@ -1,7 +1,7 @@ package com.github.curriculeon; public class Person { - private final Long id; + private Long id; private String name; public Person(Long id, String name) { @@ -20,4 +20,8 @@ public String getName() { public void setName(String name) { this.name = name; } + + public Person(){ + this.id = null; + } } diff --git a/src/test/java/com/github/curriculeon/PeopleTest.java b/src/test/java/com/github/curriculeon/PeopleTest.java new file mode 100644 index 0000000..428b3fa --- /dev/null +++ b/src/test/java/com/github/curriculeon/PeopleTest.java @@ -0,0 +1,73 @@ +package com.github.curriculeon; + +import junit.framework.TestCase; +import org.junit.Assert; + +public class PeopleTest extends TestCase { + + public void testAdd() { + //given + People people = new People(); + Person person1 = new Person(); + Person person2 = new Person(); + Assert.assertFalse(people.contains(person1)); + Assert.assertFalse(people.contains(person2)); + + //when + people.add(person1); + people.add(person2); + + //then + Assert.assertTrue(people.contains(person1)); + Assert.assertTrue(people.contains(person2)); + } + + public void testFindById() { + //given + People people = new People(); + Person expected = new Person(1L, null); + Person person1 = new Person(2L, null); + Person person2 = new Person(3L, null); + + Assert.assertFalse(people.contains(expected)); + Assert.assertFalse(people.contains(person1)); + Assert.assertFalse(people.contains(person2)); + + //when + people.add(expected); + people.add(person1); + people.add(person2); + + Assert.assertTrue(people.contains(expected)); + Assert.assertTrue(people.contains(person1)); + Assert.assertTrue(people.contains(person2)); + + Person actual = people.findById(expected.getId()); + //then + Assert.assertEquals(expected, actual); + + } + + public void testRemove() { + //given + People people = new People(); + Person person1 = new Person(); + Person person2 = new Person(); + + + people.add(person1); + people.add(person2); + + Assert.assertTrue(people.contains(person1)); + Assert.assertTrue(people.contains(person2)); + + //when + people.remove(person1); + people.remove(person2); + + //then + Assert.assertFalse(people.contains(person1)); + Assert.assertFalse(people.contains(person2)); + + } +} \ No newline at end of file From 0223d9f952956a29320ae8241768143f71f2fee4 Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Tue, 28 Jul 2020 14:34:19 -0400 Subject: [PATCH 5/7] completed part 8 --- .../com/github/curriculeon/Instructors.java | 17 +++++++++++ .../java/com/github/curriculeon/People.java | 8 ++--- .../java/com/github/curriculeon/Students.java | 19 ++++++++++++ .../github/curriculeon/InstructorsTest.java | 29 +++++++++++++++++++ .../com/github/curriculeon/StudentsTest.java | 28 ++++++++++++++++++ 5 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/github/curriculeon/Instructors.java create mode 100644 src/main/java/com/github/curriculeon/Students.java create mode 100644 src/test/java/com/github/curriculeon/InstructorsTest.java create mode 100644 src/test/java/com/github/curriculeon/StudentsTest.java diff --git a/src/main/java/com/github/curriculeon/Instructors.java b/src/main/java/com/github/curriculeon/Instructors.java new file mode 100644 index 0000000..2833f64 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Instructors.java @@ -0,0 +1,17 @@ +package com.github.curriculeon; + +public class Instructors extends People { + + private static final Instructors INSTANCE = new Instructors(); + + private Instructors() { + super(); + this.add(new Instructor(01L, "Leon")); + this.add(new Instructor(02L, "Haseeb")); + } + + + public static Instructors getInstance() { + return INSTANCE; + } +} diff --git a/src/main/java/com/github/curriculeon/People.java b/src/main/java/com/github/curriculeon/People.java index 6a6e714..39540d4 100644 --- a/src/main/java/com/github/curriculeon/People.java +++ b/src/main/java/com/github/curriculeon/People.java @@ -21,10 +21,8 @@ public Person findById(long id) { } public Boolean contains(Person person) { - if (personList.contains(person)) { - return true; - } else - return false; + return personList.contains(person); + } public void remove(Person person) { @@ -36,9 +34,7 @@ public void remove(Person person) { public void removeById(long id) { Person person = findById(id); - if (personList.contains(person)) { personList.remove(person); - } } diff --git a/src/main/java/com/github/curriculeon/Students.java b/src/main/java/com/github/curriculeon/Students.java new file mode 100644 index 0000000..040a203 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Students.java @@ -0,0 +1,19 @@ +package com.github.curriculeon; + +public class Students extends People { + + private static final Students INSTANCE = new Students(); + + private Students() { + super(); + this.add(new Student(01L, "Anjali")); + this.add(new Student(02L, "Deepti")); + } + + + public static Students getInstance() { + return INSTANCE; + } + + +} diff --git a/src/test/java/com/github/curriculeon/InstructorsTest.java b/src/test/java/com/github/curriculeon/InstructorsTest.java new file mode 100644 index 0000000..b429000 --- /dev/null +++ b/src/test/java/com/github/curriculeon/InstructorsTest.java @@ -0,0 +1,29 @@ +package com.github.curriculeon; + +import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +public class InstructorsTest extends TestCase { + + + @Test + public void testGetInstance() { + Instructors instructor = Instructors.getInstance(); + String[] instructorNameArray = {"Leon", "Haseeb"}; + List listInstructor = Arrays.asList(instructorNameArray); + + Person[] instructorArray = instructor.toArray(); + for (int i = 0; i < instructorArray.length; i++) { + Person person = instructorArray[i]; + String personName = person.getName(); + boolean hasPersonWithName = listInstructor.contains(personName); + Assert.assertTrue(hasPersonWithName); + + } + } + +} diff --git a/src/test/java/com/github/curriculeon/StudentsTest.java b/src/test/java/com/github/curriculeon/StudentsTest.java new file mode 100644 index 0000000..2ca4048 --- /dev/null +++ b/src/test/java/com/github/curriculeon/StudentsTest.java @@ -0,0 +1,28 @@ +package com.github.curriculeon; + +import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class StudentsTest extends TestCase { + + @Test + public void testGetInstance() { + Students student = Students.getInstance(); + String[] studentNameArray = {"Anjali", "Deepti"}; + List listStudent = Arrays.asList(studentNameArray); + + Person[] studentArray = student.toArray(); + for (int i = 0; i < studentArray.length; i++) { + Person person = studentArray[i]; + String personName = person.getName(); + boolean hasPersonWithName = listStudent.contains(personName); + Assert.assertTrue(hasPersonWithName); + + } + } +} \ No newline at end of file From 7e9d3fb76f1173a4c372c43c4acc18bad167045c Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Tue, 28 Jul 2020 23:27:32 -0400 Subject: [PATCH 6/7] completed part 9 --- .../com/github/curriculeon/Classroom.java | 45 +++++++++++++++++++ .../java/com/github/curriculeon/Students.java | 5 +++ .../com/github/curriculeon/ClassroomTest.java | 38 ++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 src/main/java/com/github/curriculeon/Classroom.java create mode 100644 src/test/java/com/github/curriculeon/ClassroomTest.java diff --git a/src/main/java/com/github/curriculeon/Classroom.java b/src/main/java/com/github/curriculeon/Classroom.java new file mode 100644 index 0000000..d763fd8 --- /dev/null +++ b/src/main/java/com/github/curriculeon/Classroom.java @@ -0,0 +1,45 @@ +package com.github.curriculeon; + +import java.util.HashMap; +import java.util.Map; + +public class Classroom { + + private static final Classroom INSTANCE = new Classroom(); + Students students=Students.getInstance(); + Instructors instructors=Instructors.getInstance(); + + private Classroom() { + + } + + + public static Classroom getInstance() { + return INSTANCE; + } + + + public void hostLecture(Teacher teacher, double numberOfHours){ + teacher.lecture((Learner[]) students.toArray(),numberOfHours); + + } + public void hostLecture(long id, double numberOfHours){ + Teacher instructor=(Teacher)instructors.findById(id); + instructor.lecture((Learner[]) students.toArray(),numberOfHours); + } + + public Map getStudyMap(){ + Map studentMap=new HashMap<>(); + + for(Person student1 : students.toArray()) { + Student student=(Student)student1; + Double studyTime =student.getTotalStudyTime(); + studentMap.put(student,studyTime); + } + return studentMap; + } + + +} + + diff --git a/src/main/java/com/github/curriculeon/Students.java b/src/main/java/com/github/curriculeon/Students.java index 040a203..7578339 100644 --- a/src/main/java/com/github/curriculeon/Students.java +++ b/src/main/java/com/github/curriculeon/Students.java @@ -1,5 +1,7 @@ package com.github.curriculeon; +import java.util.List; + public class Students extends People { private static final Students INSTANCE = new Students(); @@ -11,6 +13,9 @@ private Students() { } + + + public static Students getInstance() { return INSTANCE; } diff --git a/src/test/java/com/github/curriculeon/ClassroomTest.java b/src/test/java/com/github/curriculeon/ClassroomTest.java new file mode 100644 index 0000000..0b5b351 --- /dev/null +++ b/src/test/java/com/github/curriculeon/ClassroomTest.java @@ -0,0 +1,38 @@ +package com.github.curriculeon; + +import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Map; +import java.util.Set; + +public class ClassroomTest extends TestCase { + @Test + public void testHostLecture() { + //given + Classroom classroom = Classroom.getInstance(); + Teacher teacher = (Teacher) Instructors.getInstance().findById(1L); + Integer numberOfStudents = Students.getInstance().count(); + Double numberOfHoursToLecture = numberOfStudents.doubleValue(); + Double expectedHoursLearned = numberOfHoursToLecture / numberOfStudents; + Map preStudyMap = classroom.getStudyMap(); + + + //when + classroom.hostLecture(teacher, numberOfHoursToLecture); + Map postStudyMap = classroom.getStudyMap(); + Set keySet = postStudyMap.keySet(); + for (Student student : keySet) { + Double preStudyTime = preStudyMap.get(student); + Double expectedStudyTime = preStudyTime + expectedHoursLearned; + Double actualStudyTime = postStudyMap.get(student); + + // then + Assert.assertEquals(expectedStudyTime, actualStudyTime); + + } + + + } +} \ No newline at end of file From 5f3d487fb18a3c5b19f98c867785f27b0208d3b9 Mon Sep 17 00:00:00 2001 From: AnjaliG927 Date: Wed, 29 Jul 2020 00:02:45 -0400 Subject: [PATCH 7/7] completed part 10 --- .../com/github/curriculeon/Classroom.java | 13 ++++---- .../com/github/curriculeon/Instructors.java | 11 ++++++- .../java/com/github/curriculeon/People.java | 31 ++++++++++++------- .../java/com/github/curriculeon/Students.java | 10 ++++-- .../com/github/curriculeon/ClassroomTest.java | 2 +- .../com/github/curriculeon/PeopleTest.java | 7 +++-- 6 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/github/curriculeon/Classroom.java b/src/main/java/com/github/curriculeon/Classroom.java index d763fd8..8acd77e 100644 --- a/src/main/java/com/github/curriculeon/Classroom.java +++ b/src/main/java/com/github/curriculeon/Classroom.java @@ -20,21 +20,20 @@ public static Classroom getInstance() { public void hostLecture(Teacher teacher, double numberOfHours){ - teacher.lecture((Learner[]) students.toArray(),numberOfHours); + teacher.lecture( students.toArray(),numberOfHours); } public void hostLecture(long id, double numberOfHours){ - Teacher instructor=(Teacher)instructors.findById(id); - instructor.lecture((Learner[]) students.toArray(),numberOfHours); + Instructor instructor=instructors.findById(id); + instructor.lecture( students.toArray(),numberOfHours); } public Map getStudyMap(){ Map studentMap=new HashMap<>(); - for(Person student1 : students.toArray()) { - Student student=(Student)student1; - Double studyTime =student.getTotalStudyTime(); - studentMap.put(student,studyTime); + for(Student student1 : students.toArray()) { + Double studyTime =student1.getTotalStudyTime(); + studentMap.put(student1,studyTime); } return studentMap; } diff --git a/src/main/java/com/github/curriculeon/Instructors.java b/src/main/java/com/github/curriculeon/Instructors.java index 2833f64..a88e0f2 100644 --- a/src/main/java/com/github/curriculeon/Instructors.java +++ b/src/main/java/com/github/curriculeon/Instructors.java @@ -1,6 +1,8 @@ package com.github.curriculeon; -public class Instructors extends People { +import java.util.List; + +public class Instructors extends People { private static final Instructors INSTANCE = new Instructors(); @@ -10,6 +12,13 @@ private Instructors() { this.add(new Instructor(02L, "Haseeb")); } + @Override + public Instructor[] toArray() { + int sizeOfArray = count(); + List oldList = personList; + return oldList.toArray(new Instructor[sizeOfArray]); + } + public static Instructors getInstance() { return INSTANCE; diff --git a/src/main/java/com/github/curriculeon/People.java b/src/main/java/com/github/curriculeon/People.java index 39540d4..a33579c 100644 --- a/src/main/java/com/github/curriculeon/People.java +++ b/src/main/java/com/github/curriculeon/People.java @@ -4,15 +4,25 @@ import java.util.Iterator; import java.util.List; -public class People implements Iterable{ - private List personList = new ArrayList<>(); +abstract public class People implements Iterable{ + List personList; + + public People() { + this(new ArrayList<>()); + } + + public People(List personList) { + + this.personList = personList; + } + + public void add(SomeType person) { - public void add(Person person) { personList.add(person); } - public Person findById(long id) { - for (Person person : personList) { + public SomeType findById(long id) { + for (SomeType person : personList) { if (person.getId() == id) { return person; } @@ -20,12 +30,12 @@ public Person findById(long id) { return null; } - public Boolean contains(Person person) { + public Boolean contains(SomeType person) { return personList.contains(person); } - public void remove(Person person) { + public void remove(SomeType person) { if (personList.contains(person)) { personList.remove(person); } @@ -33,7 +43,7 @@ public void remove(Person person) { } public void removeById(long id) { - Person person = findById(id); + SomeType person = findById(id); personList.remove(person); } @@ -46,10 +56,7 @@ public int count() { return personList.size(); } - public Person[] toArray() { - Person[] person = personList.toArray(new Person[personList.size()]); - return person; - } + abstract public SomeType[] toArray(); @Override diff --git a/src/main/java/com/github/curriculeon/Students.java b/src/main/java/com/github/curriculeon/Students.java index 7578339..9194cb8 100644 --- a/src/main/java/com/github/curriculeon/Students.java +++ b/src/main/java/com/github/curriculeon/Students.java @@ -2,7 +2,7 @@ import java.util.List; -public class Students extends People { +public class Students extends People { private static final Students INSTANCE = new Students(); @@ -12,8 +12,12 @@ private Students() { this.add(new Student(02L, "Deepti")); } - - + @Override + public Student[] toArray() { + int sizeOfArray = count(); + List oldList = personList; + return oldList.toArray(new Student[sizeOfArray]); + } public static Students getInstance() { diff --git a/src/test/java/com/github/curriculeon/ClassroomTest.java b/src/test/java/com/github/curriculeon/ClassroomTest.java index 0b5b351..e5eed92 100644 --- a/src/test/java/com/github/curriculeon/ClassroomTest.java +++ b/src/test/java/com/github/curriculeon/ClassroomTest.java @@ -12,7 +12,7 @@ public class ClassroomTest extends TestCase { public void testHostLecture() { //given Classroom classroom = Classroom.getInstance(); - Teacher teacher = (Teacher) Instructors.getInstance().findById(1L); + Teacher teacher = Instructors.getInstance().findById(1L); Integer numberOfStudents = Students.getInstance().count(); Double numberOfHoursToLecture = numberOfStudents.doubleValue(); Double expectedHoursLearned = numberOfHoursToLecture / numberOfStudents; diff --git a/src/test/java/com/github/curriculeon/PeopleTest.java b/src/test/java/com/github/curriculeon/PeopleTest.java index 428b3fa..eac4e2c 100644 --- a/src/test/java/com/github/curriculeon/PeopleTest.java +++ b/src/test/java/com/github/curriculeon/PeopleTest.java @@ -7,7 +7,7 @@ public class PeopleTest extends TestCase { public void testAdd() { //given - People people = new People(); + People people = Instructors.getInstance(); Person person1 = new Person(); Person person2 = new Person(); Assert.assertFalse(people.contains(person1)); @@ -24,7 +24,8 @@ public void testAdd() { public void testFindById() { //given - People people = new People(); + People people = Instructors.getInstance(); + people.removeAll(); Person expected = new Person(1L, null); Person person1 = new Person(2L, null); Person person2 = new Person(3L, null); @@ -50,7 +51,7 @@ public void testFindById() { public void testRemove() { //given - People people = new People(); + People people = Instructors.getInstance(); Person person1 = new Person(); Person person2 = new Person();