package lingtai import "testing" func TestEngineLifecycleAndTransform(t *testing.T) { e, err := New() if err != nil { t.Fatal(err) } defer e.Close() if TransformVersion() != "hunjing-markdown-v1" { t.Fatalf("parser version: %s", TransformVersion()) } out, err := e.TransformMarkdown("x\n```mermaid\nA-->B\n```\n$$\nz\n$$\n") if err != nil { t.Fatal(err) } want := `{"parser_version":"hunjing-markdown-v1","blocks":[{"type":"markdown","text":"x","flavor":"hunjing-gfm-v1","status":"completed"},{"type":"mermaid","source":"A-->B","status":"completed"},{"type":"math","notation":"latex","display":"block","source":"z","status":"completed"}]}` if out != want { t.Fatalf("golden mismatch:\n got: %s\nwant: %s", out, want) } } func TestPolicyPrimitives(t *testing.T) { if err := ValidateURL("https://ok.example"); err != nil { t.Fatal(err) } if err := ValidateURL("javascript:alert(1)"); err == nil { t.Fatal("javascript: 应被拒绝") } if err := ValidatePath("/data/d/f", "/data/d"); err != nil { t.Fatal(err) } if err := ValidatePath("/data/d/../x", "/data/d"); err == nil { t.Fatal(".. 应被拒绝") } if d := Decide(AutonomyRuleBound, RiskReadOnly); d != DecisionAllow { t.Fatalf("循律+只读应 allow: %d", d) } if d := Decide(AutonomyIntrospective, RiskHighImpact); d != DecisionDeny { t.Fatalf("自省+高影响应 deny: %d", d) } if err := CheckBudget(10, 10); err == nil { t.Fatal("预算达限应报错") } } func TestRecallRerankDeterministic(t *testing.T) { e, _ := New() defer e.Close() in := `{"query_terms":["魂镜"],"candidates":[{"id":"a","text":"魂镜 系统"},{"id":"b","text":"无"}]}` out1, err := e.RecallRerank(in) if err != nil { t.Fatal(err) } out2, _ := e.RecallRerank(in) if out1 != out2 { t.Fatalf("确定性失败: %s vs %s", out1, out2) } if out1 != `{"ranked":[{"id":"a","score":10},{"id":"b","score":0}]}` { t.Fatalf("golden mismatch: %s", out1) } }