@@ -196,6 +196,13 @@ pub fn btou<I: MinNumTraits>(bytes: &[u8]) -> Result<I, ParseIntegerError> {
196
196
btou_radix ( bytes, 10 )
197
197
}
198
198
199
+ #[ test]
200
+ fn btou_assert ( ) {
201
+ assert_eq ! ( Ok ( 12345 ) , btou( b"12345" ) ) ;
202
+ assert ! ( btou:: <u8 >( b"+1" ) . is_err( ) ) ; // only btoi allows signs
203
+ assert ! ( btou:: <u8 >( b"256" ) . is_err( ) ) ; // overflow
204
+ }
205
+
199
206
/// Converts a byte slice in a given base to an integer. Signs are not allowed.
200
207
///
201
208
/// # Errors
@@ -266,6 +273,12 @@ pub fn btou_radix<I: MinNumTraits>(bytes: &[u8], radix: u32) -> Result<I, ParseI
266
273
Ok ( result)
267
274
}
268
275
276
+ #[ test]
277
+ fn btou_radix_assert ( ) {
278
+ assert_eq ! ( Ok ( 255 ) , btou_radix( b"ff" , 16 ) ) ;
279
+ assert_eq ! ( Ok ( 42 ) , btou_radix( b"101010" , 2 ) ) ;
280
+ }
281
+
269
282
/// Converts a byte slice to an integer.
270
283
///
271
284
/// Like [`btou`], but numbers may optionally start with a sign (`-` or `+`).
@@ -304,6 +317,18 @@ pub fn btoi<I: MinNumTraits>(bytes: &[u8]) -> Result<I, ParseIntegerError> {
304
317
btoi_radix ( bytes, 10 )
305
318
}
306
319
320
+ #[ test]
321
+ fn btoi_assert ( ) {
322
+ assert_eq ! ( Ok ( 123 ) , btoi( b"123" ) ) ;
323
+ assert_eq ! ( Ok ( 123 ) , btoi( b"+123" ) ) ;
324
+ assert_eq ! ( Ok ( -123 ) , btoi( b"-123" ) ) ;
325
+
326
+ assert ! ( btoi:: <u8 >( b"123456789" ) . is_err( ) ) ; // overflow
327
+ assert ! ( btoi:: <u64 >( b"-1" ) . is_err( ) ) ; // underflow
328
+
329
+ assert ! ( btoi:: <i32 >( b" 42" ) . is_err( ) ) ; // leading space
330
+ }
331
+
307
332
/// Converts a byte slice in a given base to an integer.
308
333
///
309
334
/// Like [`btou_radix`], but numbers may optionally start with a sign
@@ -390,3 +415,10 @@ fn btoi_radix<I: MinNumTraits>(bytes: &[u8], radix: u32) -> Result<I, ParseInteg
390
415
391
416
Ok ( result)
392
417
}
418
+
419
+ #[ test]
420
+ fn btoi_radix_assert ( ) {
421
+ assert_eq ! ( Ok ( 10 ) , btoi_radix( b"a" , 16 ) ) ;
422
+ assert_eq ! ( Ok ( 10 ) , btoi_radix( b"+a" , 16 ) ) ;
423
+ assert_eq ! ( Ok ( -42 ) , btoi_radix( b"-101010" , 2 ) ) ;
424
+ }
0 commit comments