Search Apps Documentation Source Content File Folder Download Copy Actions Download

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// .......