@@ -17,8 +17,74 @@ class RandomTests: XCTestCase {
17
17
let random = Random ( )
18
18
XCTAssertEqual ( random. charSet. chars, CharSet . charSet32. chars)
19
19
}
20
+
21
+ func testSmallID( ) {
22
+ random = Random ( )
23
+ XCTAssertEqual ( 6 , random. smallID ( ) . count)
24
+ XCTAssertEqual ( 5 , random. smallID ( . charSet64) . count)
25
+ XCTAssertEqual ( 6 , random. smallID ( . charSet32) . count)
26
+ XCTAssertEqual ( 8 , random. smallID ( . charSet16) . count)
27
+ XCTAssertEqual ( 10 , random. smallID ( . charSet8) . count)
28
+ XCTAssertEqual ( 15 , random. smallID ( . charSet4) . count)
29
+ XCTAssertEqual ( 29 , random. smallID ( . charSet2) . count)
30
+
31
+ for charSet in charSets {
32
+ let smallIDBits = Float ( 29 )
33
+ let random = Random ( charSet)
34
+ let id = random. smallID ( )
35
+ let count = Int ( ceilf ( smallIDBits / Float( charSet. bitsPerChar) ) )
36
+ XCTAssertEqual ( id. characters. count, count)
37
+ }
38
+ }
39
+
40
+ func testMediumID( ) {
41
+ random = Random ( )
42
+ XCTAssertEqual ( 14 , random. mediumID ( ) . count)
43
+ XCTAssertEqual ( 12 , random. mediumID ( . charSet64) . count)
44
+ XCTAssertEqual ( 14 , random. mediumID ( . charSet32) . count)
45
+ XCTAssertEqual ( 18 , random. mediumID ( . charSet16) . count)
46
+ XCTAssertEqual ( 23 , random. mediumID ( . charSet8) . count)
47
+ XCTAssertEqual ( 35 , random. mediumID ( . charSet4) . count)
48
+ XCTAssertEqual ( 69 , random. mediumID ( . charSet2) . count)
49
+
50
+ for charSet in charSets {
51
+ let mediumIDBits = Float ( 69 )
52
+ let random = Random ( charSet)
53
+ let id = random. mediumID ( )
54
+ let count = Int ( ceilf ( mediumIDBits / Float( charSet. bitsPerChar) ) )
55
+ XCTAssertEqual ( id. characters. count, count)
56
+ }
57
+ }
58
+
59
+ func testLargeID( ) {
60
+ random = Random ( )
61
+ XCTAssertEqual ( 20 , random. largeID ( ) . count)
62
+ XCTAssertEqual ( 17 , random. largeID ( . charSet64) . count)
63
+ XCTAssertEqual ( 20 , random. largeID ( . charSet32) . count)
64
+ XCTAssertEqual ( 25 , random. largeID ( . charSet16) . count)
65
+ XCTAssertEqual ( 33 , random. largeID ( . charSet8) . count)
66
+ XCTAssertEqual ( 50 , random. largeID ( . charSet4) . count)
67
+ XCTAssertEqual ( 99 , random. largeID ( . charSet2) . count)
68
+
69
+ for charSet in charSets {
70
+ let largeIDBits = Float ( 99 )
71
+ let random = Random ( charSet)
72
+ let id = random. largeID ( )
73
+ let count = Int ( ceilf ( largeIDBits / Float( charSet. bitsPerChar) ) )
74
+ XCTAssertEqual ( id. characters. count, count)
75
+ }
76
+ }
20
77
21
78
func testSessionID( ) {
79
+ random = Random ( )
80
+ XCTAssertEqual ( 26 , random. sessionID ( ) . count)
81
+ XCTAssertEqual ( 22 , random. sessionID ( . charSet64) . count)
82
+ XCTAssertEqual ( 26 , random. sessionID ( . charSet32) . count)
83
+ XCTAssertEqual ( 32 , random. sessionID ( . charSet16) . count)
84
+ XCTAssertEqual ( 43 , random. sessionID ( . charSet8) . count)
85
+ XCTAssertEqual ( 64 , random. sessionID ( . charSet4) . count)
86
+ XCTAssertEqual ( 128 , random. sessionID ( . charSet2) . count)
87
+
22
88
for charSet in charSets {
23
89
let sessionIDBits = Float ( 128 )
24
90
let random = Random ( charSet)
@@ -27,6 +93,25 @@ class RandomTests: XCTestCase {
27
93
XCTAssertEqual ( id. characters. count, count)
28
94
}
29
95
}
96
+
97
+ func testToken( ) {
98
+ random = Random ( )
99
+ XCTAssertEqual ( 52 , random. token ( ) . count)
100
+ XCTAssertEqual ( 43 , random. token ( . charSet64) . count)
101
+ XCTAssertEqual ( 52 , random. token ( . charSet32) . count)
102
+ XCTAssertEqual ( 64 , random. token ( . charSet16) . count)
103
+ XCTAssertEqual ( 86 , random. token ( . charSet8) . count)
104
+ XCTAssertEqual ( 128 , random. token ( . charSet4) . count)
105
+ XCTAssertEqual ( 256 , random. token ( . charSet2) . count)
106
+
107
+ for charSet in charSets {
108
+ let tokenBits = Float ( 256 )
109
+ let random = Random ( charSet)
110
+ let id = random. token ( )
111
+ let count = Int ( ceilf ( tokenBits / Float( charSet. bitsPerChar) ) )
112
+ XCTAssertEqual ( id. characters. count, count)
113
+ }
114
+ }
30
115
31
116
func testCharSet64( ) {
32
117
random = Random ( . charSet64)
0 commit comments