Hong-Phuc Bui
2025-01-16 2889de7f0c2d587a17fbd322af57c29e84238620
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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 = `<table>
    <tr><th class="name">Vorlesung</th><th class="effort">Aufwand pro Woche in Stunden</th></tr>
<tr><td class="name">A</td> <td class="effort">1</td></tr>
<tr><td class="name">B</td> <td class="effort">2</td></tr>
</table>`;
    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);
});