1- use  std :: fmt:: { Debug ,   Display } ; 
1+ use  core :: fmt:: NumBuffer ; 
22use  std:: str:: FromStr ; 
33
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) ; 
79
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( ) ) ; 
1118    } ; 
12-     assert_eq ! ( ret,  value) ; 
1319} 
1420
1521macro_rules!  uint_to_s { 
1622    ( $( $fn_name: ident,  $int: ident, ) +)  => { 
1723        $( 
1824            #[ test] 
1925            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 ) ; 
2531            } 
2632        ) +
2733    } 
@@ -31,13 +37,13 @@ macro_rules! int_to_s {
3137        $( 
3238            #[ test] 
3339            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 ) ; 
4147            } 
4248        ) +
4349    } 
0 commit comments