@@ -11,8 +11,33 @@ import (
1111func TestCache_hashKeyForCache (t * testing.T ) {
1212 t .Parallel ()
1313
14- rq := require .New (t )
15-
14+ cases := []struct {
15+ name string
16+ v1 []llms.MessageContent
17+ v1opt []llms.CallOption
18+ v2 []llms.MessageContent
19+ shouldMatch bool
20+ }{
21+ {
22+ name : "empty" ,
23+ v1 : []llms.MessageContent {},
24+ v2 : []llms.MessageContent {},
25+ shouldMatch : true ,
26+ },
27+ {
28+ name : "empty vs non-empty" ,
29+ v1 : []llms.MessageContent {},
30+ v2 : []llms.MessageContent {{}},
31+ shouldMatch : false ,
32+ },
33+ {
34+ name : "different options" ,
35+ v1 : []llms.MessageContent {{}},
36+ v1opt : []llms.CallOption {llms .WithCandidateCount (1 )},
37+ v2 : []llms.MessageContent {{}},
38+ shouldMatch : false ,
39+ },
40+ }
1641 mustHashKeyForCache := func (messages []llms.MessageContent , options ... llms.CallOption ) string {
1742 var opts llms.CallOptions
1843 for _ , opt := range options {
@@ -26,26 +51,16 @@ func TestCache_hashKeyForCache(t *testing.T) {
2651
2752 return key
2853 }
29-
30- rq .Equal (
31- mustHashKeyForCache ([]llms.MessageContent {}),
32- mustHashKeyForCache ([]llms.MessageContent {}),
33- )
34-
35- rq .Equal (
36- mustHashKeyForCache ([]llms.MessageContent {}, llms .WithCandidateCount (1 )),
37- mustHashKeyForCache ([]llms.MessageContent {}, llms .WithCandidateCount (1 )),
38- )
39-
40- rq .NotEqual (
41- mustHashKeyForCache ([]llms.MessageContent {{}}),
42- mustHashKeyForCache ([]llms.MessageContent {}),
43- )
44-
45- rq .NotEqual (
46- mustHashKeyForCache ([]llms.MessageContent {}, llms .WithCandidateCount (1 )),
47- mustHashKeyForCache ([]llms.MessageContent {}),
48- )
54+ for _ , tc := range cases {
55+ t .Run (tc .name , func (t * testing.T ) {
56+ t .Parallel ()
57+ v1hash := mustHashKeyForCache (tc .v1 , tc .v1opt ... )
58+ v2hash := mustHashKeyForCache (tc .v2 )
59+ if (v1hash == v2hash ) != tc .shouldMatch {
60+ t .Fatalf ("expected %v, got %v" , tc .shouldMatch , v1hash == v2hash )
61+ }
62+ })
63+ }
4964}
5065
5166func TestCache_Call (t * testing.T ) {
0 commit comments