@@ -167,6 +167,37 @@ def test_ulid_invalid_input(constructor: Callable[[Params], ULID], value: Params
167167 constructor (value )
168168
169169
170+ @pytest .mark .parametrize (
171+ ("constructor" , "value" ),
172+ [
173+ (ULID , b"\x00 " * 16 ),
174+ (ULID .from_timestamp , 0 ),
175+ (ULID .from_bytes , b"\x00 " * 16 ),
176+ (ULID .from_str , "0" * 26 ),
177+ (ULID .from_hex , "0" * 32 ),
178+ (ULID .from_uuid , uuid .UUID ("0" * 32 )),
179+ ],
180+ )
181+ def test_ulid_min_input (constructor : Callable [[Params ], ULID ], value : Params ) -> None :
182+ constructor (value )
183+
184+
185+ @pytest .mark .parametrize (
186+ ("constructor" , "value" ),
187+ [
188+ (ULID , b"\xff " * 16 ),
189+ (ULID .from_timestamp , 281474976710655 ),
190+ (ULID .from_datetime , datetime .max .replace (tzinfo = timezone .utc )),
191+ (ULID .from_bytes , b"\xff " * 16 ),
192+ (ULID .from_str , "7" + "Z" * 25 ),
193+ (ULID .from_hex , "f" * 32 ),
194+ (ULID .from_uuid , uuid .UUID ("f" * 32 )),
195+ ],
196+ )
197+ def test_ulid_max_input (constructor : Callable [[Params ], ULID ], value : Params ) -> None :
198+ constructor (value )
199+
200+
170201def test_pydantic_protocol () -> None :
171202 ulid = ULID ()
172203
0 commit comments