@@ -253,8 +253,10 @@ TEST_CASE("space flag", "[]" ) {
253
253
PRINTING_CHECK (" 42" , ==, test::sprintf_, buffer, " % 15d" , 42 );
254
254
PRINTING_CHECK (" -42" , ==, test::sprintf_, buffer, " % 15d" , -42 );
255
255
PRINTING_CHECK (" -42" , ==, test::sprintf_, buffer, " % 15d" , -42 );
256
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
256
257
PRINTING_CHECK (" -42.987" , ==, test::sprintf_, buffer, " % 15.3f" , -42.987 );
257
258
PRINTING_CHECK (" 42.987" , ==, test::sprintf_, buffer, " % 15.3f" , 42.987 );
259
+ #endif
258
260
PRINTING_CHECK (" 1024" , ==, test::sprintf_, buffer, " % d" , 1024 );
259
261
PRINTING_CHECK (" -1024" , ==, test::sprintf_, buffer, " % d" , -1024 );
260
262
PRINTING_CHECK (" 1024" , ==, test::sprintf_, buffer, " % i" , 1024 );
@@ -319,9 +321,11 @@ TEST_CASE("0 flag", "[]" ) {
319
321
PRINTING_CHECK (" -0042" , ==, test::sprintf_, buffer, " %05d" , -42 );
320
322
PRINTING_CHECK (" 000000000000042" , ==, test::sprintf_, buffer, " %015d" , 42 );
321
323
PRINTING_CHECK (" -00000000000042" , ==, test::sprintf_, buffer, " %015d" , -42 );
324
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
322
325
PRINTING_CHECK (" 000000000042.12" , ==, test::sprintf_, buffer, " %015.2f" , 42.1234 );
323
326
PRINTING_CHECK (" 00000000042.988" , ==, test::sprintf_, buffer, " %015.3f" , 42.9876 );
324
327
PRINTING_CHECK (" -00000042.98760" , ==, test::sprintf_, buffer, " %015.5f" , -42.9876 );
328
+ #endif
325
329
}
326
330
327
331
@@ -515,7 +519,9 @@ TEST_CASE("width -20", "[]" ) {
515
519
PRINTING_CHECK (" 1024 " , ==, test::sprintf_, buffer, " %-20i" , 1024 );
516
520
PRINTING_CHECK (" -1024 " , ==, test::sprintf_, buffer, " %-20i" , -1024 );
517
521
PRINTING_CHECK (" 1024 " , ==, test::sprintf_, buffer, " %-20u" , 1024 );
522
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
518
523
PRINTING_CHECK (" 1024.1234 " , ==, test::sprintf_, buffer, " %-20.4f" , 1024.1234 );
524
+ #endif
519
525
PRINTING_CHECK (" 4294966272 " , ==, test::sprintf_, buffer, " %-20u" , 4294966272U );
520
526
PRINTING_CHECK (" 777 " , ==, test::sprintf_, buffer, " %-20o" , 511 );
521
527
PRINTING_CHECK (" 37777777001 " , ==, test::sprintf_, buffer, " %-20o" , 4294966785U );
@@ -667,9 +673,11 @@ TEST_CASE("float padding neg numbers", "[]" ) {
667
673
char buffer[100 ];
668
674
669
675
// space padding
676
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
670
677
PRINTING_CHECK (" -5.0" , ==, test::sprintf_, buffer, " % 3.1f" , -5 .);
671
678
PRINTING_CHECK (" -5.0" , ==, test::sprintf_, buffer, " % 4.1f" , -5 .);
672
679
PRINTING_CHECK (" -5.0" , ==, test::sprintf_, buffer, " % 5.1f" , -5 .);
680
+ #endif
673
681
674
682
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
675
683
PRINTING_CHECK (" -5" , ==, test::sprintf_, buffer, " % 6.1g" , -5 .);
@@ -678,6 +686,7 @@ TEST_CASE("float padding neg numbers", "[]" ) {
678
686
#endif
679
687
680
688
// zero padding
689
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
681
690
PRINTING_CHECK (" -5.0" , ==, test::sprintf_, buffer, " %03.1f" , -5 .);
682
691
PRINTING_CHECK (" -5.0" , ==, test::sprintf_, buffer, " %04.1f" , -5 .);
683
692
PRINTING_CHECK (" -05.0" , ==, test::sprintf_, buffer, " %05.1f" , -5 .);
@@ -686,6 +695,7 @@ TEST_CASE("float padding neg numbers", "[]" ) {
686
695
PRINTING_CHECK (" -5" , ==, test::sprintf_, buffer, " %01.0f" , -5 .);
687
696
PRINTING_CHECK (" -5" , ==, test::sprintf_, buffer, " %02.0f" , -5 .);
688
697
PRINTING_CHECK (" -05" , ==, test::sprintf_, buffer, " %03.0f" , -5 .);
698
+ #endif
689
699
690
700
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
691
701
PRINTING_CHECK (" -005.0e+00" , ==, test::sprintf_, buffer, " %010.1e" , -5 .);
@@ -735,13 +745,15 @@ TEST_CASE("float", "[]" ) {
735
745
char buffer[100 ];
736
746
737
747
// test special-case floats using math.h macros
748
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
738
749
PRINTING_CHECK (" nan" , ==, test::sprintf_, buffer, " %8f" , (double ) NAN);
739
750
PRINTING_CHECK (" inf" , ==, test::sprintf_, buffer, " %8f" , (double ) INFINITY);
740
751
PRINTING_CHECK (" -inf " , ==, test::sprintf_, buffer, " %-8f" , (double ) -INFINITY);
741
-
752
+ # endif
742
753
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
743
754
PRINTING_CHECK (" +inf" , ==, test::sprintf_, buffer, " %+8e" , (double ) INFINITY);
744
755
#endif
756
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
745
757
PRINTING_CHECK (" 3.1415" , ==, test::sprintf_, buffer, " %.4f" , 3.1415354 );
746
758
PRINTING_CHECK (" 30343.142" , ==, test::sprintf_, buffer, " %.3f" , 30343.1415354 );
747
759
@@ -752,6 +764,7 @@ TEST_CASE("float", "[]" ) {
752
764
CHECK (!strcmp (buffer, " 10e+2" ));
753
765
}
754
766
else {
767
+
755
768
CHECK (!strcmp (buffer, " 1000" ));
756
769
}
757
770
@@ -810,7 +823,7 @@ TEST_CASE("float", "[]" ) {
810
823
PRINTING_CHECK (" 3.5" , ==, test::sprintf_, buffer, " %.1f" , 3.49 );
811
824
PRINTING_CHECK (" a0.5 " , ==, test::sprintf_, buffer, " a%-5.1f" , 0.5 );
812
825
PRINTING_CHECK (" a0.5 end" , ==, test::sprintf_, buffer, " a%-5.1fend" , 0.5 );
813
-
826
+ # endif
814
827
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
815
828
PRINTING_CHECK (" 0.5" , ==, test::sprintf_, buffer, " %.4g" , 0.5 );
816
829
PRINTING_CHECK (" 1" , ==, test::sprintf_, buffer, " %.4g" , 1.0 );
@@ -839,13 +852,16 @@ TEST_CASE("float", "[]" ) {
839
852
#endif
840
853
841
854
// out of range for float: should switch to exp notation if supported, else empty
855
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
842
856
CAPTURE_AND_PRINT (test::sprintf_, buffer, " %.1f" , 1E20 );
857
+ #endif
843
858
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
844
859
CHECK (!strcmp (buffer, " 1.0e+20" ));
845
860
#else
846
861
CHECK (!strcmp (buffer, " " ));
847
862
#endif
848
863
864
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
849
865
// brute force float
850
866
bool fail = false ;
851
867
std::stringstream str;
@@ -857,7 +873,7 @@ TEST_CASE("float", "[]" ) {
857
873
fail = fail || !!strcmp (buffer, str.str ().c_str ());
858
874
}
859
875
CHECK (!fail);
860
-
876
+ # endif
861
877
862
878
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
863
879
// brute force exp
@@ -1050,6 +1066,7 @@ DISABLE_WARNING_POP
1050
1066
TEST_CASE (" misc" , " []" ) {
1051
1067
char buffer[100 ];
1052
1068
PRINTING_CHECK (" 53000atest-20 bit" , ==, test::sprintf_, buffer, " %u%u%ctest%d %s" , 5 , 3000 , ' a' , -20 , " bit" );
1069
+ #ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
1053
1070
PRINTING_CHECK (" 0.33" , ==, test::sprintf_, buffer, " %.*f" , 2 , 0.33333333 );
1054
1071
PRINTING_CHECK (" 1" , ==, test::sprintf_, buffer, " %.*d" , -1 , 1 );
1055
1072
PRINTING_CHECK (" foo" , ==, test::sprintf_, buffer, " %.3s" , " foobar" );
@@ -1058,7 +1075,7 @@ TEST_CASE("misc", "[]" ) {
1058
1075
PRINTING_CHECK (" hi x" , ==, test::sprintf_, buffer, " %*sx" , -3 , " hi" );
1059
1076
PRINTING_CHECK (" 00123 " , ==, test::sprintf_, buffer, " %-20.5i" , 123 );
1060
1077
PRINTING_CHECK (" -67224.546875000000000000" , ==, test::sprintf_, buffer, " %.18f" , -67224.546875 );
1061
-
1078
+ # endif
1062
1079
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
1063
1080
PRINTING_CHECK (" 0.33" , ==, test::sprintf_, buffer, " %.*g" , 2 , 0.33333333 );
1064
1081
PRINTING_CHECK (" 3.33e-01" , ==, test::sprintf_, buffer, " %.*e" , 2 , 0.33333333 );
0 commit comments