import test from "ava";
import {makeEffortTable, calculateSemesterEffort, parseCSV} from "../../src/lib/muster-effort.js";
test("makeEffortTable:", t=>{
const testData = [
{name:"A", code:"DFBI-311", sws:4, ects: 4, homework:1},
{name:"B", code:"DFBI-312", sws:3, ects: 4, homework:2}
];
const html = makeEffortTable(testData);
const expected = `
Vorlesung | Aufwand pro Woche in Stunden |
A | 1 |
B | 2 |
`;
t.is(html, expected);
});
test("calculateSemesterEffort: regular array", t => {
let testDate = [
{name:"Deutsch 3" , code:"DFBI-311", sws:4, ects: 4},
{name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4}
];
let result = calculateSemesterEffort(testDate);
let expected = [
{name:"Deutsch 3" , code:"DFBI-311", sws:4, ects: 4, homework: 5},
{name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4, homework: 5.75},
]
t.deepEqual(result, expected );
});
test("calculateSemesterEffort: empty array", t=>{
let testDate = [];
let result = calculateSemesterEffort(testDate);
let expected = [];
t.deepEqual(result, expected );
});
test("calculateSemesterEffort: lectures without sws or without ects have NaN homework", t=>{
let testDate = [
{name:"Deutsch 3" , code:"DFBI-311", ects: 4},
{name:"Französisch 3", code:"DFBI-312", sws:3},
];
let result = calculateSemesterEffort(testDate);
let expected = [
{code:"DFBI-311", sws: 0, ects: 4, homework:NaN, name:"Deutsch 3"},
{code:"DFBI-312", sws: 3, ects: 0, homework:NaN, name:"Französisch 3"},
];
t.deepEqual(result, expected );
});
test("parseCSV: regular input", t=> {
let csv = `
Deutsch 3; DFBI-311; 4; 4
Französisch 3; DFBI-312; 3; 4`;
let data = parseCSV(csv);
let expected = [
{name:"Deutsch 3" , code:"DFBI-311", sws:4, ects: 4},
{name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4}
];
t.deepEqual(data, expected);
});
test("parseCSV: input without sws", t=> {
let csv = `
Deutsch 3; DFBI-311; ; 4
Französisch 3; DFBI-312; 3; 4`;
let data = parseCSV(csv);
let expected = [
{name:"Deutsch 3" , code:"DFBI-311", sws:NaN, ects: 4},
{name:"Französisch 3", code:"DFBI-312", sws:3, ects: 4}
];
t.deepEqual(data, expected);
});