Add Team functions
This commit is contained in:
@@ -36,40 +36,40 @@ public class TeamSchedulerTest
|
||||
//var eventAssignment = new EventAssignment(events, students);
|
||||
//var teams = eventAssignment.Solve();
|
||||
|
||||
IList<Team>[] timeSlots;
|
||||
TeamSchedulerSolution solution;
|
||||
if (true)
|
||||
{
|
||||
var teamScheduler = TeamScheduler.CreateInstance(teams, 3);
|
||||
timeSlots = teamScheduler.Solve();
|
||||
solution = teamScheduler.Solve();
|
||||
}
|
||||
else
|
||||
{
|
||||
var teamScheduler = new TeamScheduler_DecisionTree(teams, 3);
|
||||
timeSlots = teamScheduler.Solve();
|
||||
solution = teamScheduler.Solve();
|
||||
}
|
||||
|
||||
timeSlots = new UnassignedStudentScheduler(allTeams, timeSlots).ScheduleStrategy(UnassignedScheduleStrategy.BiggestGroup);
|
||||
timeSlots = new UnassignedStudentScheduler(allTeams, timeSlots).ScheduleStrategy(UnassignedScheduleStrategy.IndividualEvents);
|
||||
solution = new UnassignedStudentScheduler(allTeams, solution.TimeSlots).ScheduleStrategy(UnassignedScheduleStrategy.BiggestGroup);
|
||||
solution = new UnassignedStudentScheduler(allTeams, solution.TimeSlots).ScheduleStrategy(UnassignedScheduleStrategy.IndividualEvents);
|
||||
|
||||
var i = 1;
|
||||
foreach (var slot in timeSlots)
|
||||
foreach (var slot in solution.TimeSlots)
|
||||
{
|
||||
Console.WriteLine($"Time slot {i++}");
|
||||
foreach (var team in slot.OrderBy(s => s.Event.Name))
|
||||
{
|
||||
var names = string.Join(", ", team.Students.OrderByDescending(s => s.Grade + s.TsaYear).Select(s => s.FirstName));
|
||||
Console.WriteLine($"\t{team.Name}");
|
||||
Console.WriteLine($"\t{team.Event.Name}");
|
||||
Console.WriteLine($"\t\t{names}");
|
||||
}
|
||||
|
||||
var overlaps = Team.GetStudentTeamOverlaps(slot).ToList();
|
||||
var overlaps = TeamSchedulerSolution.GetStudentTeamOverlaps(slot).ToList();
|
||||
|
||||
if (overlaps.Any())
|
||||
{
|
||||
Console.WriteLine("\toverlaps");
|
||||
foreach (var overlap in overlaps)
|
||||
Console.WriteLine(
|
||||
$"\t\t{overlap.Item1.Name} : {string.Join(", ", overlap.Item2.Select(t => t.Name))}");
|
||||
$"\t\t{overlap.Item1.Name} : {string.Join(", ", overlap.Item2.Select(t => t.Event.Name))}");
|
||||
}
|
||||
|
||||
var unassigned = UnassignedStudentScheduler.UnassignedStudents(students, slot).ToList();
|
||||
|
||||
@@ -11,7 +11,7 @@ public class TeamParser_Tests
|
||||
foreach (var team in teams)
|
||||
{
|
||||
|
||||
Console.WriteLine($"{team.Name}");
|
||||
Console.WriteLine($"{team.Event.Name}");
|
||||
var join = string.Join(", ", team.Students.OrderByDescending(s=> s.Grade + s.TsaYear).Select(s => $"{s.FirstNameLastName}{(team.Captain == s ? " *" : "")}"));
|
||||
Console.WriteLine($"\t{join}");
|
||||
|
||||
@@ -29,7 +29,7 @@ public class TeamParser_Tests
|
||||
|
||||
foreach (var team in teams.Where(t => t.Event.RegionalEvent))
|
||||
{
|
||||
Console.WriteLine($"{team.Name} {team.Event.RegionalPresubmit} team.RegionalTimeSlot");
|
||||
Console.WriteLine($"{team.Event.Name} {team.Event.RegionalPresubmit} team.RegionalTimeSlot");
|
||||
var join = string.Join(", ", team.Students.OrderByDescending(s => team.Captain == s).ThenByDescending(s => s.Grade + s.TsaYear).Select(s => $"{s.FirstNameLastName}{(team.Captain == s ? " *" +
|
||||
"(Cpt.)" : "")}"));
|
||||
Console.WriteLine($"\t{join}");
|
||||
|
||||
@@ -11,7 +11,7 @@ public static class TestEntityHandler
|
||||
|
||||
public static EventDefinition[] GetEvents()
|
||||
{
|
||||
var fileInfo = FileUtility.GetContentFile(ContentDirectory, "2025-26 RMS TSA - Event Definitions.csv");
|
||||
var fileInfo = FileUtility.GetContentFile(ContentDirectory, "2023-24 RMS TSA student & event - Event Definitions.csv");
|
||||
var eventRankingsParser = new EventDefinitionParser(fileInfo);
|
||||
return eventRankingsParser.Parse();
|
||||
}
|
||||
@@ -24,7 +24,7 @@ public static class TestEntityHandler
|
||||
public static Student[] GetStudents(IList<EventDefinition> events)
|
||||
{
|
||||
//var studentEventRankingsCsv = "Student Event Rankings.csv";
|
||||
var studentEventRankingsCsv = "2025-26 RMS TSA student & eventDefinition - Nationals Student Event Rankings.csv";
|
||||
var studentEventRankingsCsv = "2023-24 RMS TSA student & event - Student Event Rankings.csv";
|
||||
|
||||
var fileInfo = FileUtility.GetContentFile(ContentDirectory, studentEventRankingsCsv);
|
||||
var eventRankingsParser = new StudentParser(fileInfo);
|
||||
@@ -35,7 +35,7 @@ public static class TestEntityHandler
|
||||
public static Team[] GetTeams(IList<EventDefinition> events, IList<Student> students)
|
||||
{
|
||||
//var studentEventRankingsCsv = "Student Event Rankings.csv";
|
||||
var studentEventRankingsCsv = "2025-26 RMS TSA Teams.csv";
|
||||
var studentEventRankingsCsv = "2023-24 RMS TSA student & event - TimeSlots.csv";
|
||||
|
||||
var fileInfo = FileUtility.GetContentFile(ContentDirectory, studentEventRankingsCsv);
|
||||
var eventRankingsParser = new TeamParser(fileInfo);
|
||||
|
||||
Reference in New Issue
Block a user