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