Files
CS345-Software-Engineering/Homework 5/src/testing/CourseReaderTest.java
2025-09-10 14:25:37 -04:00

55 lines
2.0 KiB
Java
Executable File

package testing;
import org.junit.jupiter.api.Test;
import grading.*;
import grading.io.*;
import static org.junit.jupiter.api.Assertions.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
class CourseReaderTest
{
@Test
void grdFileTests() throws IOException, SizeException
{
assertNotNull(new CourseReader()); // Nonsense test for coverage
final Double complete01Grade = calculateCourseGradeFromFile("complete_01.grd");
final Double complete02Grade = calculateCourseGradeFromFile("complete_02.grd");
final Double complete03Grade = calculateCourseGradeFromFile("complete_03.grd");
final Double fiveCategories01Grade = calculateCourseGradeFromFile("five-categories_01.grd");
final Double missingAllGrade = calculateCourseGradeFromFile("missing_all.grd");
final Double missingMultipleInEachGrade = calculateCourseGradeFromFile(
"missing_multiple-in-each.grd");
final Double missingOneInEachGrade = calculateCourseGradeFromFile("missing_one-in-each.grd");
final Double missingOneInOneGrade = calculateCourseGradeFromFile("missing_one-in-one.grd");
final Double sixCategories01Grade = calculateCourseGradeFromFile("six-categories_01.grd");
assertEquals(80.7, complete01Grade);
assertEquals(100, complete02Grade);
assertEquals(54.0, complete03Grade);
assertEquals(64.75, fiveCategories01Grade);
assertEquals(0.0, missingAllGrade);
assertEquals(19.5, missingMultipleInEachGrade);
assertEquals(35.2, missingOneInEachGrade);
assertEquals(80.7, missingOneInOneGrade);
assertEquals(76.6, sixCategories01Grade);
}
private static Double calculateCourseGradeFromFile(final String filename)
throws IOException, SizeException
{
BufferedReader in = new BufferedReader(new FileReader(filename));
String line = in.readLine();
int categories = Integer.parseInt(line);
CompositeGrade course = CourseReader.readCourse(in, categories);
in.close();
return course.getValue();
}
}