1
- use std :: fmt:: { Debug , Display } ;
1
+ use core :: fmt:: NumBuffer ;
2
2
use std:: str:: FromStr ;
3
3
4
- fn assert_nb < Int : ToString + FromStr + Debug + Display + Eq > ( value : Int ) {
5
- let s = value. to_string ( ) ;
6
- let s2 = format ! ( "s: {}." , value) ;
4
+ macro_rules! assert_nb {
5
+ ( $int: ident, $value: expr) => {
6
+ let value: $int = $value;
7
+ let s = value. to_string( ) ;
8
+ let s2 = format!( "s: {}." , value) ;
7
9
8
- assert_eq ! ( format!( "s: {s}." ) , s2) ;
9
- let Ok ( ret) = Int :: from_str ( & s) else {
10
- panic ! ( "failed to convert into to string" ) ;
10
+ assert_eq!( format!( "s: {s}." ) , s2) ;
11
+ let Ok ( ret) = $int:: from_str( & s) else {
12
+ panic!( "failed to convert into to string" ) ;
13
+ } ;
14
+ assert_eq!( ret, value) ;
15
+
16
+ let mut buffer = NumBuffer :: <$int>:: new( ) ;
17
+ assert_eq!( value. format_into( & mut buffer) , s. as_str( ) ) ;
11
18
} ;
12
- assert_eq ! ( ret, value) ;
13
19
}
14
20
15
21
macro_rules! uint_to_s {
16
22
( $( $fn_name: ident, $int: ident, ) +) => {
17
23
$(
18
24
#[ test]
19
25
fn $fn_name( ) {
20
- assert_nb:: < $int> ( $int:: MIN ) ;
21
- assert_nb:: < $int> ( $int:: MAX ) ;
22
- assert_nb:: < $int> ( 1 ) ;
23
- assert_nb:: < $int> ( $int:: MIN / 2 ) ;
24
- assert_nb:: < $int> ( $int:: MAX / 2 ) ;
26
+ assert_nb! ( $int, $int:: MIN ) ;
27
+ assert_nb! ( $int, $int:: MAX ) ;
28
+ assert_nb! ( $int, 1 ) ;
29
+ assert_nb! ( $int, $int:: MIN / 2 ) ;
30
+ assert_nb! ( $int, $int:: MAX / 2 ) ;
25
31
}
26
32
) +
27
33
}
@@ -31,13 +37,13 @@ macro_rules! int_to_s {
31
37
$(
32
38
#[ test]
33
39
fn $fn_name( ) {
34
- assert_nb:: < $int> ( $int:: MIN ) ;
35
- assert_nb:: < $int> ( $int:: MAX ) ;
36
- assert_nb:: < $int> ( 1 ) ;
37
- assert_nb:: < $int> ( 0 ) ;
38
- assert_nb:: < $int> ( -1 ) ;
39
- assert_nb:: < $int> ( $int:: MIN / 2 ) ;
40
- assert_nb:: < $int> ( $int:: MAX / 2 ) ;
40
+ assert_nb! ( $int, $int:: MIN ) ;
41
+ assert_nb! ( $int, $int:: MAX ) ;
42
+ assert_nb! ( $int, 1 ) ;
43
+ assert_nb! ( $int, 0 ) ;
44
+ assert_nb! ( $int, -1 ) ;
45
+ assert_nb! ( $int, $int:: MIN / 2 ) ;
46
+ assert_nb! ( $int, $int:: MAX / 2 ) ;
41
47
}
42
48
) +
43
49
}
0 commit comments