Skip to content

Commit f5bd18a

Browse files
tests
1 parent 1eec676 commit f5bd18a

File tree

2 files changed

+126
-8
lines changed

2 files changed

+126
-8
lines changed

client.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,39 +29,39 @@ type TDigestInfo struct {
2929
totalCompressions int64
3030
}
3131

32-
// Compression
32+
// Compression
3333
func (info *TDigestInfo) Compression() int64 {
34-
return info.compression
34+
return info.compression
3535
}
3636

3737
// Capacity
3838
func (info *TDigestInfo) Capacity() int64 {
39-
return info.capacity
39+
return info.capacity
4040
}
4141

4242
// MergedNodes
4343
func (info *TDigestInfo) MergedNodes() int64 {
44-
return info.mergedNodes
44+
return info.mergedNodes
4545
}
4646

4747
// UnmergedNodes
4848
func (info *TDigestInfo) UnmergedNodes() int64 {
49-
return info.unmergedNodes
49+
return info.unmergedNodes
5050
}
5151

5252
// MergedWeight
5353
func (info *TDigestInfo) MergedWeight() float64 {
54-
return info.mergedWeight
54+
return info.mergedWeight
5555
}
5656

5757
// UnmergedWeight
5858
func (info *TDigestInfo) UnmergedWeight() float64 {
59-
return info.unmergedWeight
59+
return info.unmergedWeight
6060
}
6161

6262
// TotalCompressions
6363
func (info *TDigestInfo) TotalCompressions() int64 {
64-
return info.totalCompressions
64+
return info.totalCompressions
6565
}
6666

6767
// NewClient creates a new client connecting to the redis host, and using the given name as key prefix.

client_test.go

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,5 +527,123 @@ func TestClient_BfScanDump(t *testing.T) {
527527
assert.Nil(t, err)
528528
_, _, err = client.BfScanDump(notBfKey, 0)
529529
assert.Equal(t, err.Error(), "WRONGTYPE Operation against a key holding the wrong kind of value")
530+
}
531+
532+
func TestClient_TdReset(t *testing.T) {
533+
client.FlushAll()
534+
key := "test_td"
535+
ret, err := client.TdCreate(key, 100)
536+
assert.Nil(t, err)
537+
assert.Equal(t, "OK", ret)
538+
539+
ret, err = client.TdReset(key)
540+
assert.Nil(t, err)
541+
assert.Equal(t, "OK", ret)
542+
543+
samples := map[string]float64{"1": 1.0, "2": 2.0}
544+
ret, err = client.TdAdd(key, samples)
545+
assert.Nil(t, err)
546+
assert.Equal(t, "OK", ret)
547+
548+
ret, err = client.TdReset(key)
549+
assert.Nil(t, err)
550+
assert.Equal(t, "OK", ret)
551+
552+
info, err := client.TdInfo(key)
553+
assert.Nil(t, err)
554+
assert.Equal(t, 0.0, info.UnmergedWeight())
555+
}
530556

557+
func TestClient_TdMerge(t *testing.T) {
558+
key1 := "toKey"
559+
key2 := "fromKey"
560+
ret, err := client.TdCreate(key1, 10)
561+
assert.Nil(t, err)
562+
assert.Equal(t, "OK", ret)
563+
ret, err = client.TdCreate(key2, 10)
564+
assert.Nil(t, err)
565+
assert.Equal(t, "OK", ret)
566+
567+
//Add values
568+
samples1 := map[string]float64{"1": 1.0, "2": 2.0}
569+
samples2 := map[string]float64{"3": 3.0, "4": 4.0}
570+
ret, err = client.TdAdd(key1, samples1)
571+
assert.Nil(t, err)
572+
assert.Equal(t, "OK", ret)
573+
ret, err = client.TdAdd(key2, samples2)
574+
assert.Nil(t, err)
575+
assert.Equal(t, "OK", ret)
576+
577+
//Merge
578+
ret, err = client.TdMerge(key1, key2)
579+
assert.Nil(t, err)
580+
assert.Equal(t, "OK", ret)
581+
582+
// we should now have 10 weight on to-histogram
583+
info, err := client.TdInfo(key1)
584+
assert.Nil(t, err)
585+
assert.Equal(t, 10.0, info.UnmergedWeight()+info.MergedWeight())
586+
}
587+
588+
func TestClient_TdMinMax(t *testing.T) {
589+
client.FlushAll()
590+
key := "test_td"
591+
ret, err := client.TdCreate(key, 10)
592+
assert.Nil(t, err)
593+
assert.Equal(t, "OK", ret)
594+
595+
samples := map[string]float64{"1": 1.0, "2": 2.0, "3": 3.0}
596+
ret, err = client.TdAdd(key, samples)
597+
assert.Nil(t, err)
598+
assert.Equal(t, "OK", ret)
599+
600+
ans, err := client.TdMin(key)
601+
assert.Nil(t, err)
602+
assert.Equal(t, 1.0, ans)
603+
604+
ans, err = client.TdMax(key)
605+
assert.Nil(t, err)
606+
assert.Equal(t, 3.0, ans)
607+
}
608+
609+
func TestClient_TdQuantile(t *testing.T) {
610+
client.FlushAll()
611+
key := "test_td"
612+
ret, err := client.TdCreate(key, 10)
613+
assert.Nil(t, err)
614+
assert.Equal(t, "OK", ret)
615+
616+
samples := map[string]float64{"1": 1.0, "2": 1.0, "3": 1.0}
617+
ret, err = client.TdAdd(key, samples)
618+
assert.Nil(t, err)
619+
assert.Equal(t, "OK", ret)
620+
621+
ans, err := client.TdQuantile(key, 1.0)
622+
assert.Nil(t, err)
623+
assert.Equal(t, 3.0, ans)
624+
625+
ans, err = client.TdQuantile(key, 0.0)
626+
assert.Nil(t, err)
627+
assert.Equal(t, 1.0, ans)
628+
}
629+
630+
func TestClient_TdCdf(t *testing.T) {
631+
client.FlushAll()
632+
key := "test_td"
633+
ret, err := client.TdCreate(key, 10)
634+
assert.Nil(t, err)
635+
assert.Equal(t, "OK", ret)
636+
637+
samples := map[string]float64{"1": 1.0, "2": 1.0, "3": 1.0}
638+
ret, err = client.TdAdd(key, samples)
639+
assert.Nil(t, err)
640+
assert.Equal(t, "OK", ret)
641+
642+
ans, err := client.TdCdf(key, 10.0)
643+
assert.Nil(t, err)
644+
assert.Equal(t, 1.0, ans)
645+
646+
ans, err = client.TdCdf(key, 0.0)
647+
assert.Nil(t, err)
648+
assert.Equal(t, 0.0, ans)
531649
}

0 commit comments

Comments
 (0)