Skip to content
Snippets Groups Projects
Commit 62d5e989 authored by Alexandre's avatar Alexandre
Browse files

tpQU-03::exo-planning

parent 5f633eae
No related branches found
No related tags found
No related merge requests found
package tpQU.tp03;
public class Defense {
}
package tpQU.tp03;
public class Person {
String name;
String forename;
Person(String name, String forename){
this.name = name;
this.forename = forename;
}
String getName(){
return this.name;
}
String getForeame(){
return this.forename;
}
}
package tpQU.tp03;
public class Planning {
}
package tpQU.tp03;
public class Student {
}
package tpQU.tp03;
public class Student1 extends Person{
boolean thirdtimecredit;
final static int DEFAULT_DURATION_STUDENT1=20;
Student1(boolean thirdtimecredit, String name, String forename){
super(name, forename);
this.thirdtimecredit = thirdtimecredit;
}
}
package tpQU.tp03;
public class Student2 {
}
package tpQU.tp03;
public class StudentBUT1 {
}
package tpQU.tp03;
public class StudentBUT2 {
}
package tpQU.tp03;
public class UseStudent {
}
package tpQU.tp03;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import java.time.LocalDate;
import java.time.LocalTime;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class DefenseTest {
public LocalDate day1, day2;
public LocalTime time1, time2;
public Student s1, s2, s3;
public Defense d1, d2, d3;
public String titleA, titleB, titleC;
@BeforeEach
public void initialization() {
titleA = "defenseA";
titleB = "defenseB";
titleC = "defenseC";
day1 = LocalDate.of(2022, 2, 2);
day2 = LocalDate.of(2023, 3, 3);
time1 = LocalTime.of(11, 11);
time2 = LocalTime.of(22, 22);
s1 = new StudentBUT1("Alice", "a");
s2 = new StudentBUT1("Bruno", "b");
s3 = new StudentBUT2("Clément", "c");
d1 = new Defense(Room.r0A20, s1, titleA);
d2 = new Defense(day1, Room.r0A20, s2, time1, titleB);
d3 = new Defense(day2, Room.r0A49, s3, time2, titleC);
}
@Test
void testGetDay() {
assertNull(d1.getDay());
assertEquals(day1, d2.getDay());
assertEquals(day2, d3.getDay());
}
@Test
void testGetDuration() {
assertEquals(s1.getDuration(), d1.getDuration());
assertEquals(s2.getDuration(), d2.getDuration());
assertEquals(s3.getDuration(), d3.getDuration());
}
@Test
void testGetHour() {
assertNull(d1.getHour());
assertEquals(time1, d2.getHour());
assertEquals(time2, d3.getHour());
}
@Test
void testSetDay() {
assertNull(d1.getDay());
d1.setDay(day1);
assertEquals(day1, d1.getDay());
d1.setDay(day2);
assertEquals(day2, d1.getDay());
d1.setDay(LocalDate.now());
assertEquals(LocalDate.now(), d1.getDay());
d1.setDay(null);
assertNull(d1.getDay());
}
@Test
void testSetHour() {
assertNull(d1.getHour());
d1.setHour(time1);
assertEquals(time1, d1.getHour());
d1.setHour(time2);
assertEquals(time2, d1.getHour());
d1.setHour(null);
assertNull(d1.getHour());
}
@Test
void testToString() {
String result = d1.getDay() + ":" + d1.getHour() + " in " + d1.getPlace() + " --> " + d1.getStudent() + " :: " + d1.getTitle();
assertEquals(result, d1.toString());
result = d2.getDay() + ":" + d2.getHour() + " in " + d2.getPlace() + " --> " + d2.getStudent() + " :: " + d2.getTitle();
assertEquals(result, d2.toString());
result = d3.getDay() + ":" + d3.getHour() + " in " + d3.getPlace() + " --> " + d3.getStudent() + " :: " + d3.getTitle();
assertEquals(result, d3.toString());
}
}
package tpQU.tp03;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.ArrayList;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class PlanningTest {
public LocalDate day1, day2;
public LocalTime time1, time2;
public Student s1, s2, s3;
public Defense d1, d2, d3;
public String titleA, titleB, titleC;
public Planning plan;
@BeforeEach
public void initialization() {
titleA = "defenseA";
titleB = "defenseB";
titleC = "defenseC";
day1 = LocalDate.of(2022, 2, 2);
day2 = LocalDate.of(2023, 3, 3);
time1 = LocalTime.of(11, 11);
time2 = LocalTime.of(22, 22);
s1 = new StudentBUT1("Alice", "a");
s2 = new StudentBUT1("Bruno", "b");
s3 = new StudentBUT2("Clément", "c");
d1 = new Defense(Room.r0A20, s1, titleA);
d2 = new Defense(Room.r0A20, s2, titleB);
d3 = new Defense(day2, Room.r0A49, s3, time1, titleC);
plan = new Planning(day1);
}
@Test
void testAddDefense() {
assertEquals(0, plan.getNbDefense());
plan.addDefense(d1);
assertEquals(1, plan.getNbDefense());
assertEquals(d1, plan.getDefense(0));
plan.addDefense(d2);
assertEquals(2, plan.getNbDefense());
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
}
@Test
void testAddDefense2() {
ArrayList<Defense> tmp = new ArrayList<Defense>();
tmp.add(d1); tmp.add(d2);
assertEquals(0, plan.getNbDefense());
plan.addDefense(tmp);
assertEquals(2, plan.getNbDefense());
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
}
@Test
void testSetDay() {
assertEquals(day1, plan.getDay());
plan.setDay(LocalDate.now());
assertEquals(LocalDate.now(), plan.getDay());
}
@Test
void testGetDefense() {
plan.addDefense(d1); plan.addDefense(d2); plan.addDefense(d3);
assertNull(plan.getDefense(-1));
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
assertEquals(d3, plan.getDefense(2));
assertNull(plan.getDefense(3));
}
@Test
void testScheduling() {
assertNull(d1.getHour());
assertNull(d1.getDay());
assertNull(d2.getHour());
assertNull(d2.getDay());
assertEquals(time1, d3.getHour());
assertEquals(day2, d3.getDay());
assertEquals(0, plan.getNbDefense());
plan.addDefense(d1); plan.addDefense(d2); plan.addDefense(d3);
plan.scheduling();
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
assertEquals(d3, plan.getDefense(2));
assertEquals(day1, d1.getDay());
assertEquals(day1, d2.getDay());
assertEquals(day1, d3.getDay());
assertEquals(Planning.defaultStart, d1.getHour());
assertEquals(Planning.defaultStart.plusMinutes(d1.getDuration() + Planning.breakDuration), d2.getHour());
assertEquals(Planning.defaultStart.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2)), d3.getHour());
}
@Test
void testScheduling2() {
assertEquals(0, plan.getNbDefense());
assertNull(d1.getHour());
assertNull(d1.getDay());
assertNull(d2.getHour());
assertNull(d2.getDay());
assertEquals(time1, d3.getHour());
assertEquals(day2, d3.getDay());
assertEquals(0, plan.getNbDefense());
plan.addDefense(d1); plan.addDefense(d2); plan.addDefense(d3);
plan.scheduling(time2);
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
assertEquals(d3, plan.getDefense(2));
assertEquals(time2, d1.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + Planning.breakDuration), d2.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2)), d3.getHour());
}
@Test
void testSwapDefense() {
assertEquals(0, plan.getNbDefense());
plan.addDefense(d1); plan.addDefense(d2); plan.addDefense(d3);
plan.scheduling(time2);
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
assertEquals(d3, plan.getDefense(2));
assertEquals(time2, d1.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + Planning.breakDuration), d2.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2)), d3.getHour());
plan.swapDefense(d1, d3);
assertEquals(d3, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
assertEquals(d1, plan.getDefense(2));
assertEquals(time2, d3.getHour());
assertEquals(time2.plusMinutes(d3.getDuration() + Planning.breakDuration), d2.getHour());
assertEquals(time2.plusMinutes(d3.getDuration() + d2.getDuration() + (Planning.breakDuration*2)), d1.getHour());
}
@Test
void testDelayDefense() {
assertEquals(0, plan.getNbDefense());
plan.addDefense(d1); plan.addDefense(d2); plan.addDefense(d3);
plan.scheduling(time2);
assertEquals(d1, plan.getDefense(0));
assertEquals(d2, plan.getDefense(1));
assertEquals(d3, plan.getDefense(2));
assertEquals(time2, d1.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + Planning.breakDuration), d2.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2)), d3.getHour());
// 5 minutes delay for d3 only
plan.delayDefense(d3, 5);
assertEquals(time2, d1.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + Planning.breakDuration), d2.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2)+5), d3.getHour());
// 10 minutes delay for d2 and d3
plan.delayDefense(d2, 10);
assertEquals(time2, d1.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + Planning.breakDuration + 10), d2.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2) + 15), d3.getHour());
// 20 minutes delay for every defenses
plan.delayDefense(d1, 20);
assertEquals(time2.plusMinutes(20), d1.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + Planning.breakDuration + 30), d2.getHour());
assertEquals(time2.plusMinutes(d1.getDuration() + d2.getDuration() + (Planning.breakDuration*2) + 35), d3.getHour());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment