Files
chapter-organizer/Tests/Parsers/TestEntityHandler.cs
T
poprhythm c937192496 Add tests for event occurrence parsing results for 2024 and 2025 competitions
This commit introduces new unit tests in EventOccurrenceParser_Tests to analyze and validate the parsing results for the 2025 Nationals, 2025 State, and 2024 State competitions. Each test verifies that the parser returns valid results without exceptions and provides detailed output on the total lines, occurrences parsed, and issues found. Additionally, a new method in TestEntityHandler has been added to retrieve the 2024 State competition event times file, supporting the new tests.
2026-01-07 08:37:00 -05:00

76 lines
2.6 KiB
C#

using System.Collections;
using Core.Entities;
using Core.Parsers;
using Core.Utility;
namespace Tests.Parsers;
public static class TestEntityHandler
{
private const string ContentDirectory = @"Parsers\TestInput\";
public static EventDefinition[] GetEvents()
{
var fileInfo = FileUtility.GetContentFile(ContentDirectory, "2024 Event Definitions.csv");
var eventRankingsParser = new EventDefinitionParser(fileInfo);
return eventRankingsParser.Parse();
}
public static FileInfo GetEventOccurrenceNationalsFileInfo()
{
return FileUtility.GetContentFile(ContentDirectory, "2025 TSA Nationals Competition Event Times.txt");
}
public static FileInfo GetEventOccurrenceStateFileInfo()
{
return FileUtility.GetContentFile(ContentDirectory, "2025 TN TSA State Competition Event Times.txt");
}
public static FileInfo GetEventOccurrenceState2024FileInfo()
{
return FileUtility.GetContentFile(ContentDirectory, "2024 TN TSA State Competition Event Times.txt");
}
public static Student[] GetStudents(IList<EventDefinition> events)
{
//var studentEventRankingsCsv = "Student Event Rankings.csv";
var studentEventRankingsCsv = "2024 Student Event Rankings.csv";
var fileInfo = FileUtility.GetContentFile(ContentDirectory, studentEventRankingsCsv);
var eventRankingsParser = new StudentParser(fileInfo);
return eventRankingsParser.Parse();
}
public static Team[] GetTeams(IList<EventDefinition> events, IList<Student> students)
{
//var studentEventRankingsCsv = "Student Event Rankings.csv";
var studentEventRankingsCsv = "2024 Teams.csv";
var fileInfo = FileUtility.GetContentFile(ContentDirectory, studentEventRankingsCsv);
var eventRankingsParser = new TeamParser(fileInfo);
var teams = eventRankingsParser.Parse(events, students);
foreach (var student in students)
{
student.Teams = teams.Where(t => t.Students.Contains(student)).ToList();
}
return teams;
}
public static AssignmentRequirement[] GetEventRequirements(IList<EventDefinition> events, IList<Student> students)
{
var fileInfo = FileUtility.GetContentFile(ContentDirectory, "2025 Assumptions.csv");
var assumptionParser = new AssignmentRequirementParser(fileInfo);
return assumptionParser.Parse(events, students);
}
public static StudentEventRanking[] GetStudentEventRankings(Student[] students, EventDefinition[] events)
{
var fileInfo = FileUtility.GetContentFile(ContentDirectory, "2025 Student Event Rankings.csv");
var rankingParser = new StudentEventRankingParser(fileInfo);
return rankingParser.Parse(students, events);
}
}