package com.gzzm.lobster.guardrails;

import com.gzzm.lobster.tool.ToolResult;
import org.junit.Test;

import java.util.Arrays;
import java.util.Collections;

import static org.junit.Assert.*;

public class ClaimConsistencyCheckerTest {

    @Test
    public void claimWithoutEvidenceWarns() {
        ClaimConsistencyChecker checker = new ClaimConsistencyChecker();
        ClaimConsistencyChecker.CheckResult r = checker.check("我已经生成了报告并保存。",
                Collections.<ToolResult>emptyList());
        assertEquals(ClaimConsistencyChecker.Severity.WARN, r.getSeverity());
    }

    @Test
    public void claimWithOkEvidencePasses() {
        ClaimConsistencyChecker checker = new ClaimConsistencyChecker();
        ClaimConsistencyChecker.CheckResult r = checker.check("已保存报告到 OA 文件库。",
                Arrays.asList(ToolResult.ok("saved", null)));
        assertTrue(r.isPass());
    }

    @Test
    public void neutralTextPasses() {
        ClaimConsistencyChecker checker = new ClaimConsistencyChecker();
        ClaimConsistencyChecker.CheckResult r = checker.check("我正在读取文件。",
                Collections.<ToolResult>emptyList());
        assertTrue(r.isPass());
    }
}
