49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package ucca
|
|
|
|
import "testing"
|
|
|
|
func TestConceptNorms(t *testing.T) {
|
|
q := "Was muss ich beachten wenn ich meine Datenschutzerklärung schreibe für meine Website mit Cookie Banner?"
|
|
got := ConceptNorms(q)
|
|
want := map[string]bool{
|
|
"EU-DSGVO-Art12": true, "EU-DSGVO-Art13": true, "EU-DSGVO-Art14": true,
|
|
"DE-TDDDG-§25": true, "EU-DSGVO-Art6": true, "EU-DSGVO-Art7": true,
|
|
}
|
|
for _, nid := range got {
|
|
delete(want, nid)
|
|
}
|
|
if len(want) > 0 {
|
|
t.Errorf("ConceptNorms missing %v; got %v", want, got)
|
|
}
|
|
if len(ConceptNorms("Wie ist das Wetter heute?")) != 0 {
|
|
t.Errorf("no concept named should yield no norms")
|
|
}
|
|
}
|
|
|
|
func TestInjectConceptNorms(t *testing.T) {
|
|
results := []LegalSearchResult{
|
|
{CitationUnit: "DSK OH Telemedien", Score: 0.98},
|
|
{CitationUnit: "Art. 25 DSGVO", Score: 0.95},
|
|
}
|
|
injected := []LegalSearchResult{
|
|
{CitationUnit: "Art. 13 DSGVO", Score: 0.979},
|
|
{CitationUnit: "Art. 25 DSGVO", Score: 0.979}, // already present -> must not double
|
|
}
|
|
out := InjectConceptNorms(results, injected, 10)
|
|
if out[0].CitationUnit != "DSK OH Telemedien" {
|
|
t.Errorf("top document hit must stay #1 (not dominated), got %s", out[0].CitationUnit)
|
|
}
|
|
if len(out) != 3 {
|
|
t.Errorf("expected 3 (Art.25 not duplicated), got %d", len(out))
|
|
}
|
|
found := false
|
|
for _, r := range out {
|
|
if r.CitationUnit == "Art. 13 DSGVO" {
|
|
found = true
|
|
}
|
|
}
|
|
if !found {
|
|
t.Errorf("Art. 13 DSGVO must be injected + visible")
|
|
}
|
|
}
|