This commit is contained in:
@@ -1,96 +0,0 @@
|
||||
package random
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/perfect-panel/server/pkg/snowflake"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestEncodeBase62(t *testing.T) {
|
||||
start := 1112275807
|
||||
length := 1558080
|
||||
n := length + start
|
||||
// n := 328564998144
|
||||
m := make(map[string]struct{})
|
||||
// m := make(map[string]struct{}, length)
|
||||
var inviteCode string
|
||||
for i := start; i < n; i++ {
|
||||
// inviteCode = EncodeBase36(int64(i))
|
||||
inviteCode = EncodeBase36(snowflake.GetID())
|
||||
if v, ok := m[inviteCode]; ok {
|
||||
t.Fatal(v, inviteCode)
|
||||
}
|
||||
m[inviteCode] = struct{}{}
|
||||
}
|
||||
t.Log(inviteCode)
|
||||
|
||||
assert.Equal(t, length, len(m))
|
||||
}
|
||||
|
||||
func TestInt64ToDashedString(t *testing.T) {
|
||||
type args struct {
|
||||
strNum string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want string
|
||||
}{
|
||||
// TODO: Add test cases.
|
||||
{
|
||||
name: "",
|
||||
args: args{
|
||||
strNum: "123",
|
||||
},
|
||||
want: "123",
|
||||
},
|
||||
{
|
||||
name: "",
|
||||
args: args{
|
||||
strNum: "1234",
|
||||
},
|
||||
want: "1234",
|
||||
},
|
||||
{
|
||||
name: "",
|
||||
args: args{
|
||||
strNum: "12345",
|
||||
},
|
||||
want: "1234-5",
|
||||
},
|
||||
{
|
||||
name: "",
|
||||
args: args{
|
||||
strNum: "12345678",
|
||||
},
|
||||
want: "1234-5678",
|
||||
},
|
||||
{
|
||||
name: "",
|
||||
args: args{
|
||||
strNum: "123456789",
|
||||
},
|
||||
want: "1234-5678-9",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
assert.Equalf(t, tt.want, StrToDashedString(tt.args.strNum), "StrToDashedString(%v)", tt.args.strNum)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// ShuffleString shuffles the characters in a string.
|
||||
func ShuffleString(s string) string {
|
||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
runes := []rune(s)
|
||||
for i := range runes {
|
||||
j := r.Intn(i + 1)
|
||||
runes[i], runes[j] = runes[j], runes[i]
|
||||
}
|
||||
return string(runes)
|
||||
}
|
||||
Reference in New Issue
Block a user