snowflake_test.gno
1.56 Kb ยท 60 lines
1package snowflake
2
3import (
4 "testing"
5
6 "gno.land/p/nt/uassert"
7)
8
9func TestID(t *testing.T) {
10 u := NewSnowflakeID()
11 id1 := u.GenerateID()
12 id2 := u.GenerateID()
13 uuid1 := SnowflakeIDToUUIDString(id1)
14 uuid2 := SnowflakeIDToUUIDString(id2)
15
16 uassert.NotEqual(t, uuid1, uuid2)
17
18 idMap := make(map[uint64]bool)
19 uuidMap := make(map[string]bool)
20
21 for i := 0; i < 101; i++ {
22 id := u.GenerateID()
23 if _, exists := idMap[id]; exists {
24 t.Errorf("Duplicate ID found: %d", id)
25 }
26 idMap[id] = true
27
28 uuidStr := SnowflakeIDToUUIDString(id)
29 if _, exists := uuidMap[uuidStr]; exists {
30 t.Errorf("Duplicate UUID found: %s", uuidStr)
31 }
32 uuidMap[uuidStr] = true
33 t.Logf("Generated UUID %d: %s", i, uuidStr)
34 }
35}
36
37func TestGetEntropy(t *testing.T) {
38 u := NewSnowflakeID()
39 initialEntropyValue := u.entropy.Value()
40
41 for i := 0; i < 10; i++ {
42 u.GenerateID()
43 }
44
45 uassert.NotEqual(t, initialEntropyValue, u.entropy.Value())
46}
47
48// Output:
49// Generated UUID 0: 0007a63f-a542-4310-807a-63fa54253102
50// Generated UUID 1: 0007a63f-a542-43fe-807a-63fa54253fe1
51// Generated UUID 2: 0007a63f-a542-43e3-807a-63fa54253e34
52// Generated UUID 3: 0007a63f-a542-432f-807a-63fa542532fb
53// Generated UUID 4: 0007a63f-a542-4353-807a-63fa54253536
54// Generated UUID 5: 0007a63f-a542-43be-807a-63fa54253be5
55// Generated UUID 6: 0007a63f-a542-43e0-807a-63fa54253e08
56// Generated UUID 7: 0007a63f-a542-4329-807a-63fa5425329f
57// Generated UUID 8: 0007a63f-a542-430a-807a-63fa542530aa
58// Generated UUID 9: 0007a63f-a542-43f2-807a-63fa54253f29
59// Generated UUID 10: 0007a63f-a542-4351-807a-63fa5425351c
60// .......