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("不得突" + "破动态上限")); } }