Junjie
2 天以前 63b01db83d9aad8a15276b4236a9a22e4aeef065
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
package com.zy.ai.utils;
 
import com.zy.ai.domain.autotune.AutoTuneControlModeSnapshot;
import com.zy.ai.enums.AiPromptScene;
import org.junit.jupiter.api.Test;
 
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
 
class AiPromptUtilsTest {
 
    @Test
    void defaultAutoTunePromptTreatsOutBufferCapacityAsRiskReferenceNotHardLimit() {
        AiPromptUtils promptUtils = new AiPromptUtils();
 
        String prompt = promptUtils.getDefaultPrompt(AiPromptScene.AUTO_TUNE_DISPATCH);
 
        assertOutBufferCapacityRiskReferenceSemantics(prompt);
    }
 
    @Test
    void runtimeAutoTuneGuardDoesNotRestoreOutBufferCapacityHardLimitSemantics() {
        String prompt = AiPromptUtils.buildAutoTuneRuntimeGuard("auto", new AutoTuneControlModeSnapshot());
 
        assertFalse(prompt.contains("找不到规则或无法证" + "明动态上限时禁止提交"));
        assertTrue(prompt.contains("不得把 outBufferCapacity 推导为 outTaskLimit 的动态上限"));
    }
 
    private void assertOutBufferCapacityRiskReferenceSemantics(String prompt) {
        assertTrue(prompt.contains("outBufferCapacity 只表示站点出库缓存容量"));
        assertTrue(prompt.contains("主干道占用风险"));
        assertTrue(prompt.contains("不是 outTaskLimit 的硬上限或动态上限"));
        assertTrue(prompt.contains("增大 outTaskLimit 可以超过对应站点 outBufferCapacity"));
        assertFalse(prompt.contains("增大 outTaskLimit 时建议值不得超过"
                + "对应站点 outBufferCapacity"));
        assertFalse(prompt.contains("只用于证" + "明 outTaskLimit 可上调上限"));
        assertFalse(prompt.contains("不得突" + "破动态上限"));
    }
}