@@ -49,4 +49,40 @@ public unsafe void FormatDoubleTest(double value, int digit, string expected)
4949 // Assert
5050 Assert . That ( Encoding . UTF8 . GetString ( utf8Span ) , Is . EqualTo ( expected ) ) ;
5151 }
52+
53+ [ TestCase ( 10 , 0 , "en-US" , "10" ) ]
54+ [ TestCase ( 10 , 0 , "de-DE" , "10" ) ]
55+ [ TestCase ( 0.75f , 2 , "en-US" , "0.75" ) ]
56+ [ TestCase ( 0.75f , 2 , "de-DE" , "0,75" ) ]
57+ public unsafe void FormatFloatCultureTest ( float value , int digit , string cultureName , string expected )
58+ {
59+ // Arrange
60+ byte * buffer = stackalloc byte [ 128 ] ;
61+ CultureInfo culture = new CultureInfo ( cultureName , false ) ;
62+
63+ // Act
64+ int len = Utf8Formatter . Format ( value , buffer , 128 , culture , digit ) ;
65+ ReadOnlySpan < byte > utf8Span = new ReadOnlySpan < byte > ( buffer , len ) ;
66+
67+ // Assert
68+ Assert . That ( Encoding . UTF8 . GetString ( utf8Span ) , Is . EqualTo ( expected ) ) ;
69+ }
70+
71+ [ TestCase ( 10 , 0 , "en-US" , "10" ) ]
72+ [ TestCase ( 10 , 0 , "de-DE" , "10" ) ]
73+ [ TestCase ( 0.75f , 2 , "en-US" , "0.75" ) ]
74+ [ TestCase ( 0.75f , 2 , "de-DE" , "0,75" ) ]
75+ public unsafe void FormatDoubleCultureTest ( double value , int digit , string cultureName , string expected )
76+ {
77+ // Arrange
78+ byte * buffer = stackalloc byte [ 128 ] ;
79+ CultureInfo culture = new CultureInfo ( cultureName , false ) ; // uses comma as decimal operator
80+
81+ // Act
82+ int len = Utf8Formatter . Format ( value , buffer , 128 , culture , digit ) ;
83+ ReadOnlySpan < byte > utf8Span = new ReadOnlySpan < byte > ( buffer , len ) ;
84+
85+ // Assert
86+ Assert . That ( Encoding . UTF8 . GetString ( utf8Span ) , Is . EqualTo ( expected ) ) ;
87+ }
5288}
0 commit comments