分块传输内容可以写入到内存中/分块传输内容可以判断最大尺寸

This commit is contained in:
GoEdgeLab
2022-03-06 17:18:06 +08:00
parent f788f3894e
commit 96db004fb2
14 changed files with 259 additions and 40 deletions

View File

@@ -0,0 +1,57 @@
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package setutils_test
import (
setutils "github.com/TeaOSLab/EdgeNode/internal/utils/sets"
"github.com/iwind/TeaGo/assert"
"testing"
)
func TestNewFixedSet(t *testing.T) {
var a = assert.NewAssertion(t)
{
var set = setutils.NewFixedSet(0)
set.Push(1)
set.Push(2)
set.Push(2)
a.IsTrue(set.Size() == 2)
a.IsTrue(set.Has(1))
a.IsTrue(set.Has(2))
}
{
var set = setutils.NewFixedSet(1)
set.Push(1)
set.Push(2)
set.Push(3)
a.IsTrue(set.Size() == 1)
a.IsFalse(set.Has(1))
a.IsTrue(set.Has(3))
a.IsFalse(set.Has(4))
}
}
func TestFixedSet_Reset(t *testing.T) {
var a = assert.NewAssertion(t)
var set = setutils.NewFixedSet(3)
set.Push(1)
set.Push(2)
set.Push(3)
set.Reset()
a.IsTrue(set.Size() == 0)
}
func BenchmarkFixedSet_Has(b *testing.B) {
var count = 100_000
var set = setutils.NewFixedSet(count)
for i := 0; i < count; i++ {
set.Push(i)
}
for i := 0; i < b.N; i++ {
set.Has(i)
}
}