Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions src/main/java/com/github/curriculeon/Instructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.github.curriculeon;

public class Instructor extends Person implements Teacher {

public void teach(Learner learner, double numberOfHours) {

learner.learn(numberOfHours);
}

public void lecture(Learner[] learners, double numberOfHours) {

double numberOfHoursPerLearner = numberOfHours / learners.length;

for(int i=0;i<learners.length;i++)
{
learners[i].learn(numberOfHoursPerLearner);
}
}
}


8 changes: 8 additions & 0 deletions src/main/java/com/github/curriculeon/Learner.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.github.curriculeon;

public interface Learner {

public void learn(double numberofhours);

public Double getStudyTotalTime();
}
5 changes: 5 additions & 0 deletions src/main/java/com/github/curriculeon/People.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.github.curriculeon;

public class People {

}
26 changes: 26 additions & 0 deletions src/main/java/com/github/curriculeon/Person.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
package com.github.curriculeon;

public class Person {
final long id1=0L;
String name1="something";

public Person(){};

public Person(long id, String name )
{
name1=name;
}

public Person(String name1) {
this.name1 = name1;
}

public long getid()
{
return(id1);
}
public String getname()
{
return(name1);
}
public void setname(String name)
{
name1=name;
}

}
14 changes: 14 additions & 0 deletions src/main/java/com/github/curriculeon/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.curriculeon;

public class Student extends Person implements Learner {

public double totalStudyTime;

public void learn(double numberOfHours) {
totalStudyTime = totalStudyTime + numberOfHours;
}

public Double getStudyTotalTime() {
return totalStudyTime;
}
}
7 changes: 7 additions & 0 deletions src/main/java/com/github/curriculeon/Teacher.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.github.curriculeon;

public interface Teacher {
void teach(Learner learner, double numberOfHours);

void lecture(Learner[] learners, double numberOfHours);
}
55 changes: 55 additions & 0 deletions src/test/java/com/github/curriculeon/TestInstructor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.github.curriculeon;
import org.junit.Assert;
import org.junit.Test;



public class TestInstructor {
@Test
public void testimplementation() {
Instructor i = new Instructor();
boolean a = i instanceof Teacher;
//then
Assert.assertTrue(a);
}

@Test
public void testInheritance() {
Instructor i = new Instructor();
boolean a = i instanceof Person;
//then
Assert.assertTrue(a);
}

@Test
public void testteach() {
//given
double expectedStudyTime = 4;
double numberofHours = 4;
double delta = 0;
Instructor i = new Instructor();
Student s = new Student();

i.teach(s, numberofHours);
double actualStudytime = s.getStudyTotalTime();

//then
Assert.assertEquals(expectedStudyTime, actualStudytime, delta);


}

/**public void testlecture() {
double numberofHours = 5;

Learner[] learners = new Learner[]{
new Student(0L, "Leon"),
new Student(1L, "Christopher"),
new Student(2L, "Hunter"),
};

Instructor i = new Instructor();
i.lecture(learners, numberofHours);
} */
}

34 changes: 34 additions & 0 deletions src/test/java/com/github/curriculeon/TestPerson.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
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 = "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(0L, null);
String expectedName = "Testing";



// when
person.setname(expectedName);
String actualName = person.getname();

// then
Assert.assertEquals(expectedName, actualName);
}
}

47 changes: 47 additions & 0 deletions src/test/java/com/github/curriculeon/TestStudent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.github.curriculeon;

import org.junit.Assert;
import org.junit.Test;

public class TestStudent
{
@Test
public void testimplementation()
{
Student s = new Student();

Boolean a= s instanceof Learner;

//then
Assert.assertTrue(a);
}

@Test
public void testinheritance()
{
Student s = new Student();

Boolean a= s instanceof Person;

//then
Assert.assertTrue(a);

}

@Test
public void testlearn()
{
//given
double expectedStudyTime = 4;
double numberofHours =4;
double delta =0;

//when
Student st = new Student();
st.learn(numberofHours);
double actualStudytime = st.getStudyTotalTime();

//then
Assert.assertEquals(expectedStudyTime, actualStudytime,delta);
}
}