Merge branch 'develop' of ssh://git.dsv.su.se/git/scipro/scipro into develop
This commit is contained in:
commit
71435e5b31
src
main/java/se/su/dsv/scipro/match
test/java/se/su/dsv/scipro/match
@ -82,9 +82,10 @@ public class GreedyMatchingAlgorithm implements MatchingAlgorithm {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(availability.getProjectClass().toString().equalsIgnoreCase(ProjectClass.BACHELOR) &&
|
||||
projectIdea.getProjectClass().toString().equalsIgnoreCase(ProjectClass.MASTER)) {
|
||||
logger.info("A bachelor supervisor cannot handle master ideas.");
|
||||
if(!availability.getProjectClass().toString().equals(
|
||||
projectIdea.getProjectClass().toString()) ) {
|
||||
//logger.info("A bachelor supervisor cannot handle master ideas.");
|
||||
logger.info("Supervisor availability level and project idea level aren't equal.");
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ public class Availability implements Serializable {
|
||||
private Integer numCapable;
|
||||
private final Employee supervisor;
|
||||
|
||||
public Availability(final Employee supervisor,final Long numMatched,final Integer numCapable,final ProjectClass projectClass) {
|
||||
public Availability(final Employee supervisor, final Long numMatched, final Integer numCapable, final ProjectClass projectClass) {
|
||||
this.supervisor = supervisor;
|
||||
this.numMatched = numMatched;
|
||||
this.numCapable = numCapable;
|
||||
|
@ -579,18 +579,19 @@ public class TestGreedyMatchingAlgorithm {
|
||||
* Tests: We now perform a third test "testDavidH_Has_Less_Total_Available_Slots", here we test that "henrikH" is found, because "davidH"
|
||||
* has less "total available" slots (8) compared to 9 for "henrikH" for project ideas (master + bachelor)
|
||||
* */
|
||||
public void testDavidH_Has_Less_Total_Available_Slots() {
|
||||
public void testDavidH_Has_Less_Available_Slots() {
|
||||
List<ProjectIdea> projectIdeaList = new ArrayList<ProjectIdea>();
|
||||
List<Employee> supervisorList = new ArrayList<Employee>();
|
||||
Employee davidH = createEmployee("David", "Hallberg", languages);
|
||||
supervisorAvailability.add(new Availability(davidH, 0L, 4, bachelorProjectClass));
|
||||
supervisorAvailability.add(new Availability(davidH, 1L, 5, masterProjectClass));
|
||||
|
||||
Employee henrikH = createEmployee("Henrik", "Hansson", languages);
|
||||
supervisorAvailability.add(new Availability(henrikH, 1L, 5, bachelorProjectClass));
|
||||
supervisorAvailability.add(new Availability(henrikH, 0L, 5, masterProjectClass));
|
||||
supervisorAvailability.add(new Availability(henrikH, 0L, 4, bachelorProjectClass));
|
||||
//supervisorAvailability.add(new Availability(henrikH, 0L, 5, masterProjectClass));
|
||||
supervisorList.add(henrikH);
|
||||
|
||||
Employee davidH = createEmployee("David", "Hallberg", languages);
|
||||
supervisorAvailability.add(new Availability(davidH, 1L, 4, bachelorProjectClass));
|
||||
//supervisorAvailability.add(new Availability(davidH, 1L, 5, masterProjectClass));
|
||||
|
||||
ProjectIdea secondBachelorIdea = createProjectIdea(bachelorProjectClass, applicationPeriod);
|
||||
projectIdeaList.clear();
|
||||
projectIdeaList.add(secondBachelorIdea); // David Hallberg is preferred supervisor for this project idea
|
||||
@ -678,4 +679,34 @@ public class TestGreedyMatchingAlgorithm {
|
||||
assertTrue(result.matches.get(2).getProjectIdea().equals(masterIdea));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Rollback
|
||||
@Transactional
|
||||
/* Test 5
|
||||
* =============================================================================================
|
||||
* This test verifies that bachelor project ideas will never be matched with
|
||||
* a master level Availability object, as opposed to previous practice.
|
||||
* */
|
||||
public void testAvailabilityLevelMatching() {
|
||||
Employee davidH = createEmployee("David", "Hallberg", languages);
|
||||
supervisorAvailability.add(new Availability(davidH, 1L, 1, bachelorProjectClass));
|
||||
supervisorAvailability.add(new Availability(davidH, 0L, 1, masterProjectClass));
|
||||
|
||||
Employee henrikH = createEmployee("Henrik", "Hansson", languages);
|
||||
supervisorAvailability.add(new Availability(henrikH, 0L, 1, bachelorProjectClass));
|
||||
supervisorAvailability.add(new Availability(henrikH, 0L, 1, masterProjectClass));
|
||||
|
||||
ProjectIdea bachelorIdea = createProjectIdea(bachelorProjectClass, applicationPeriod);
|
||||
unmatchedProjectIdeas.add(bachelorIdea);
|
||||
|
||||
Keyword båtar = createKeyword(keywordTypeWord, "båtar", false);
|
||||
davidH.getKeywords().getAll().add(båtar);
|
||||
bachelorIdea.getKeywords().getAll().add(båtar);
|
||||
|
||||
Result result = new GreedyMatchingAlgorithm().match(supervisorAvailability, unmatchedProjectIdeas, weights);
|
||||
assertTrue(result.matches.get(0).getSupervisor().equals(henrikH));
|
||||
assertTrue(result.matches.get(0).getProjectIdea().equals(bachelorIdea));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user