55 lines
2.0 KiB
Java
Executable File
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();
|
|
}
|
|
}
|