@@ -129,3 +129,81 @@ func TestClient_BfExistsMulti(t *testing.T) {
129129 assert .Equal (t , int64 (1 ), existsResult [1 ])
130130 assert .Equal (t , int64 (0 ), existsResult [2 ])
131131}
132+
133+ func TestClient_TopkReserve (t * testing.T ) {
134+ client .FlushAll ()
135+ ret , err := client .TopkReserve ("test_topk_reserve" , 10 , 2000 , 7 , 0.925 )
136+ assert .Nil (t , err )
137+ assert .Equal (t , "OK" , ret )
138+ }
139+
140+ func TestClient_TopkAdd (t * testing.T ) {
141+ client .FlushAll ()
142+ key := "test_topk_add"
143+ ret , err := client .TopkReserve (key , 10 , 2000 , 7 , 0.925 )
144+ assert .Nil (t , err )
145+ assert .Equal (t , "OK" , ret )
146+ rets , err := client .TopkAdd (key , []string {"test" , "test1" , "test3" })
147+ assert .Nil (t , err )
148+ assert .Equal (t , 3 , len (rets ))
149+ }
150+
151+ func TestClient_TopkQuery (t * testing.T ) {
152+ client .FlushAll ()
153+ key := "test_topk_query"
154+ ret , err := client .TopkReserve (key , 10 , 2000 , 7 , 0.925 )
155+ assert .Nil (t , err )
156+ assert .Equal (t , "OK" , ret )
157+ rets , err := client .TopkAdd (key , []string {"test" })
158+ assert .Nil (t , err )
159+ assert .NotNil (t , rets )
160+ queryRet , err := client .TopkQuery (key , []string {"test" , "nonexist" })
161+ assert .Nil (t , err )
162+ assert .Equal (t , 2 , len (queryRet ))
163+ assert .Equal (t , int64 (1 ), queryRet [0 ])
164+ assert .Equal (t , int64 (0 ), queryRet [1 ])
165+
166+ key1 := "test_topk_list"
167+ ret , err = client .TopkReserve (key1 , 3 , 50 , 3 , 0.9 )
168+ assert .Nil (t , err )
169+ assert .Equal (t , "OK" , ret )
170+ client .TopkAdd (key1 , []string {"A" , "B" , "C" , "D" , "E" , "A" , "A" , "B" , "C" ,
171+ "G" , "D" , "B" , "D" , "A" , "E" , "E" })
172+ keys , err := client .TopkList (key1 )
173+ assert .Nil (t , err )
174+ assert .Equal (t , 3 , len (keys ))
175+ assert .Equal (t , []string {"D" , "A" , "B" }, keys )
176+ }
177+
178+ func TestClient_TopkInfo (t * testing.T ) {
179+ client .FlushAll ()
180+ key := "test_topk_info"
181+ ret , err := client .TopkReserve (key , 10 , 2000 , 7 , 0.925 )
182+ assert .Nil (t , err )
183+ assert .Equal (t , "OK" , ret )
184+
185+ info , err := client .TopkInfo (key )
186+ assert .Equal (t , "10" , info ["k" ])
187+ assert .Equal (t , "2000" , info ["width" ])
188+ assert .Equal (t , "7" , info ["depth" ])
189+
190+ info , err = client .TopkInfo ("notexists" )
191+ assert .NotNil (t , err )
192+ }
193+
194+ func TestClient_TopkIncrBy (t * testing.T ) {
195+ client .FlushAll ()
196+ key := "test_topk_incrby"
197+ ret , err := client .TopkReserve (key , 50 , 2000 , 7 , 0.925 )
198+ assert .Nil (t , err )
199+ assert .Equal (t , "OK" , ret )
200+
201+ rets , err := client .TopkAdd (key , []string {"foo" , "bar" , "42" })
202+ assert .Nil (t , err )
203+ assert .NotNil (t , rets )
204+
205+ rets , err = client .TopkIncrBy (key , map [string ]int64 {"foo" : 3 , "bar" : 2 , "42" : 30 })
206+ assert .Nil (t , err )
207+ assert .Equal (t , 3 , len (rets ))
208+ assert .Equal (t , "" , rets [2 ])
209+ }
0 commit comments