@@ -54,6 +54,21 @@ func TestMiddleOutStrategy_Apply(t *testing.T) {
5454 require .Len (t , res , 3 )
5555 require .Equal (t , []string {"m0" , "m1" , "m3" }, []string {res [0 ].Parts [0 ].Text , res [1 ].Parts [0 ].Text , res [2 ].Parts [0 ].Text })
5656
57+ odd := []model.Message {
58+ {Role : "user" , Parts : []model.Part {{Type : "text" , Text : "first" }}},
59+ {Role : "user" , Parts : []model.Part {{Type : "text" , Text : "middle" }}},
60+ {Role : "user" , Parts : []model.Part {{Type : "text" , Text : "last" }}},
61+ }
62+ total , err = tokenizer .CountMessagePartsTokens (context .Background (), odd )
63+ require .NoError (t , err )
64+ midTokens , err = tokenizer .CountSingleMessageTokens (context .Background (), odd [1 ])
65+ require .NoError (t , err )
66+ resOdd , err := (& MiddleOutStrategy {TokenReduceTo : total - midTokens }).Apply (odd )
67+ require .NoError (t , err )
68+ require .Len (t , resOdd , 2 )
69+ require .Equal (t , "first" , resOdd [0 ].Parts [0 ].Text )
70+ require .Equal (t , "last" , resOdd [1 ].Parts [0 ].Text )
71+
5772 two := []model.Message {
5873 {Role : "user" , Parts : []model.Part {{Type : "text" , Text : "old" }}},
5974 {Role : "user" , Parts : []model.Part {{Type : "text" , Text : "new" }}},
0 commit comments