@@ -2735,48 +2735,54 @@ internal struct SYSTEMTIME
2735
2735
public static void TryFormat_MatchesToString ( string format )
2736
2736
{
2737
2737
DateTime dt = DateTime . UtcNow ;
2738
- string expected = dt . ToString ( format ) ;
2739
-
2740
- // UTF16
2738
+ foreach ( CultureInfo culture in CultureInfo . GetCultures ( CultureTypes . AllCultures ) )
2741
2739
{
2742
- // Just the right length, succeeds
2743
- Span < char > dest = new char [ expected . Length ] ;
2744
- Assert . True ( dt . TryFormat ( dest , out int charsWritten , format ) ) ;
2745
- Assert . Equal ( expected . Length , charsWritten ) ;
2746
- Assert . Equal < char > ( expected . ToCharArray ( ) , dest . ToArray ( ) ) ;
2747
-
2748
- // Too short, fails
2749
- dest = new char [ expected . Length - 1 ] ;
2750
- Assert . False ( dt . TryFormat ( dest , out charsWritten , format ) ) ;
2751
- Assert . Equal ( 0 , charsWritten ) ;
2752
-
2753
- // Longer than needed, succeeds
2754
- dest = new char [ expected . Length + 1 ] ;
2755
- Assert . True ( dt . TryFormat ( dest , out charsWritten , format ) ) ;
2756
- Assert . Equal ( expected . Length , charsWritten ) ;
2757
- Assert . Equal < char > ( expected . ToCharArray ( ) , dest . Slice ( 0 , expected . Length ) . ToArray ( ) ) ;
2758
- Assert . Equal ( 0 , dest [ dest . Length - 1 ] ) ;
2759
- }
2740
+ using ( new ThreadCultureChange ( culture ) )
2741
+ {
2742
+ string expected = dt . ToString ( format ) ;
2760
2743
2761
- // UTF8
2762
- {
2763
- // Just the right length, succeeds
2764
- Span < byte > dest = new byte [ Encoding . UTF8 . GetByteCount ( expected ) ] ;
2765
- Assert . True ( dt . TryFormat ( dest , out int bytesWritten , format ) ) ;
2766
- Assert . Equal ( dest . Length , bytesWritten ) ;
2767
- Assert . Equal ( expected , Encoding . UTF8 . GetString ( dest ) ) ;
2768
-
2769
- // Too short, fails
2770
- dest = new byte [ Encoding . UTF8 . GetByteCount ( expected ) - 1 ] ;
2771
- Assert . False ( dt . TryFormat ( dest , out bytesWritten , format ) ) ;
2772
- Assert . Equal ( 0 , bytesWritten ) ;
2773
-
2774
- // Longer than needed, succeeds
2775
- dest = new byte [ Encoding . UTF8 . GetByteCount ( expected ) + 1 ] ;
2776
- Assert . True ( dt . TryFormat ( dest , out bytesWritten , format ) ) ;
2777
- Assert . Equal ( dest . Length - 1 , bytesWritten ) ;
2778
- Assert . Equal ( expected , Encoding . UTF8 . GetString ( dest . Slice ( 0 , bytesWritten ) ) ) ;
2779
- Assert . Equal ( 0 , dest [ dest . Length - 1 ] ) ;
2744
+ // UTF16
2745
+ {
2746
+ // Just the right length, succeeds
2747
+ Span < char > dest = new char [ expected . Length ] ;
2748
+ Assert . True ( dt . TryFormat ( dest , out int charsWritten , format ) ) ;
2749
+ Assert . Equal ( expected . Length , charsWritten ) ;
2750
+ Assert . Equal < char > ( expected . ToCharArray ( ) , dest . ToArray ( ) ) ;
2751
+
2752
+ // Too short, fails
2753
+ dest = new char [ expected . Length - 1 ] ;
2754
+ Assert . False ( dt . TryFormat ( dest , out charsWritten , format ) ) ;
2755
+ Assert . Equal ( 0 , charsWritten ) ;
2756
+
2757
+ // Longer than needed, succeeds
2758
+ dest = new char [ expected . Length + 1 ] ;
2759
+ Assert . True ( dt . TryFormat ( dest , out charsWritten , format ) ) ;
2760
+ Assert . Equal ( expected . Length , charsWritten ) ;
2761
+ Assert . Equal < char > ( expected . ToCharArray ( ) , dest . Slice ( 0 , expected . Length ) . ToArray ( ) ) ;
2762
+ Assert . Equal ( 0 , dest [ dest . Length - 1 ] ) ;
2763
+ }
2764
+
2765
+ // UTF8
2766
+ {
2767
+ // Just the right length, succeeds
2768
+ Span < byte > dest = new byte [ Encoding . UTF8 . GetByteCount ( expected ) ] ;
2769
+ Assert . True ( dt . TryFormat ( dest , out int bytesWritten , format ) ) ;
2770
+ Assert . Equal ( dest . Length , bytesWritten ) ;
2771
+ Assert . Equal ( expected , Encoding . UTF8 . GetString ( dest ) ) ;
2772
+
2773
+ // Too short, fails
2774
+ dest = new byte [ Encoding . UTF8 . GetByteCount ( expected ) - 1 ] ;
2775
+ Assert . False ( dt . TryFormat ( dest , out bytesWritten , format ) ) ;
2776
+ Assert . Equal ( 0 , bytesWritten ) ;
2777
+
2778
+ // Longer than needed, succeeds
2779
+ dest = new byte [ Encoding . UTF8 . GetByteCount ( expected ) + 1 ] ;
2780
+ Assert . True ( dt . TryFormat ( dest , out bytesWritten , format ) ) ;
2781
+ Assert . Equal ( dest . Length - 1 , bytesWritten ) ;
2782
+ Assert . Equal ( expected , Encoding . UTF8 . GetString ( dest . Slice ( 0 , bytesWritten ) ) ) ;
2783
+ Assert . Equal ( 0 , dest [ dest . Length - 1 ] ) ;
2784
+ }
2785
+ }
2780
2786
}
2781
2787
}
2782
2788
0 commit comments