package flow import ( "testing" "ai-agent/workflow/model/entity" ) func TestPlanSegmentResumePositionBased(t *testing.T) { params := []map[string]any{{"a": 1}, {"a": 2}, {"a": 3}} saved := map[int]entity.SegmentRef{0: {Key: "video", URL: "url0"}, 2: {Key: "video", URL: "url2"}} idxList, needGen := planSegmentResume(params, saved) if len(idxList) != 3 || len(needGen) != 3 { t.Fatalf("长度应等于段数") } if needGen[0] || !needGen[1] || needGen[2] { t.Fatalf("位置0/2已保存应复用,位置1应生成: %v", needGen) } } func TestMergeSegmentOutputsOrder(t *testing.T) { idxList := []int{0, 1, 2} needGen := []bool{false, true, false} newRes := [][]map[string]any{nil, {{"video": "new1"}}, nil} saved := map[int]entity.SegmentRef{0: {Key: "video", URL: "url0"}, 2: {Key: "video", URL: "url2"}} merged := mergeSegmentOutputs(idxList, needGen, newRes, saved) if len(merged) != 3 { t.Fatalf("应合并 3 条: %v", merged) } if merged[0]["video"] != "url0" || merged[1]["video"] != "new1" || merged[2]["video"] != "url2" { t.Fatalf("合并顺序应为 url0,new1,url2: %v", merged) } }