mirror of
https://gitee.com/wanwujie/sub2api
synced 2026-04-18 22:04:45 +08:00
37 lines
887 B
Go
37 lines
887 B
Go
|
|
//go:build unit
|
||
|
|
|
||
|
|
package antigravity
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestGenerateRandomID_Uniqueness(t *testing.T) {
|
||
|
|
seen := make(map[string]struct{}, 100)
|
||
|
|
for i := 0; i < 100; i++ {
|
||
|
|
id := generateRandomID()
|
||
|
|
require.Len(t, id, 12, "ID 长度应为 12")
|
||
|
|
_, dup := seen[id]
|
||
|
|
require.False(t, dup, "第 %d 次调用生成了重复 ID: %s", i, id)
|
||
|
|
seen[id] = struct{}{}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestGenerateRandomID_Charset(t *testing.T) {
|
||
|
|
const validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||
|
|
validSet := make(map[byte]struct{}, len(validChars))
|
||
|
|
for i := 0; i < len(validChars); i++ {
|
||
|
|
validSet[validChars[i]] = struct{}{}
|
||
|
|
}
|
||
|
|
|
||
|
|
for i := 0; i < 50; i++ {
|
||
|
|
id := generateRandomID()
|
||
|
|
for j := 0; j < len(id); j++ {
|
||
|
|
_, ok := validSet[id[j]]
|
||
|
|
require.True(t, ok, "ID 包含非法字符: %c (ID=%s)", id[j], id)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|