Mercurial > hg > octave-nkf > gnulib-hg
comparison tests/test-vasnprintf-posix.c @ 8804:6ce313658b4d
Work around an incorrect implementation of the 0 flag on most platforms.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 06 May 2007 23:02:10 +0000 |
parents | 6c1d98929550 |
children | 4c705f82cd20 |
comparison
equal
deleted
inserted
replaced
8803:6c1d98929550 | 8804:6ce313658b4d |
---|---|
835 ASSERT (strcmp (result, "nan 33") == 0); | 835 ASSERT (strcmp (result, "nan 33") == 0); |
836 ASSERT (length == strlen (result)); | 836 ASSERT (length == strlen (result)); |
837 free (result); | 837 free (result); |
838 } | 838 } |
839 | 839 |
840 { /* FLAG_ZERO. */ | 840 { /* Width. */ |
841 size_t length; | |
842 char *result = | |
843 my_asnprintf (NULL, &length, "%10f %d", 1.75, 33, 44, 55); | |
844 ASSERT (result != NULL); | |
845 ASSERT (strcmp (result, " 1.750000 33") == 0); | |
846 ASSERT (length == strlen (result)); | |
847 free (result); | |
848 } | |
849 | |
850 { /* FLAG_LEFT. */ | |
851 size_t length; | |
852 char *result = | |
853 my_asnprintf (NULL, &length, "%-10f %d", 1.75, 33, 44, 55); | |
854 ASSERT (result != NULL); | |
855 ASSERT (strcmp (result, "1.750000 33") == 0); | |
856 ASSERT (length == strlen (result)); | |
857 free (result); | |
858 } | |
859 | |
860 { /* FLAG_SHOWSIGN. */ | |
861 size_t length; | |
862 char *result = | |
863 my_asnprintf (NULL, &length, "%+f %d", 1.75, 33, 44, 55); | |
864 ASSERT (result != NULL); | |
865 ASSERT (strcmp (result, "+1.750000 33") == 0); | |
866 ASSERT (length == strlen (result)); | |
867 free (result); | |
868 } | |
869 | |
870 { /* FLAG_SPACE. */ | |
871 size_t length; | |
872 char *result = | |
873 my_asnprintf (NULL, &length, "% f %d", 1.75, 33, 44, 55); | |
874 ASSERT (result != NULL); | |
875 ASSERT (strcmp (result, " 1.750000 33") == 0); | |
876 ASSERT (length == strlen (result)); | |
877 free (result); | |
878 } | |
879 | |
880 { /* FLAG_ALT. */ | |
881 size_t length; | |
882 char *result = | |
883 my_asnprintf (NULL, &length, "%#f %d", 1.75, 33, 44, 55); | |
884 ASSERT (result != NULL); | |
885 ASSERT (strcmp (result, "1.750000 33") == 0); | |
886 ASSERT (length == strlen (result)); | |
887 free (result); | |
888 } | |
889 | |
890 { /* FLAG_ALT. */ | |
891 size_t length; | |
892 char *result = | |
893 my_asnprintf (NULL, &length, "%#.f %d", 1.75, 33, 44, 55); | |
894 ASSERT (result != NULL); | |
895 ASSERT (strcmp (result, "2. 33") == 0); | |
896 ASSERT (length == strlen (result)); | |
897 free (result); | |
898 } | |
899 | |
900 { /* FLAG_ZERO with finite number. */ | |
841 size_t length; | 901 size_t length; |
842 char *result = | 902 char *result = |
843 my_asnprintf (NULL, &length, "%015f %d", 1234.0, 33, 44, 55); | 903 my_asnprintf (NULL, &length, "%015f %d", 1234.0, 33, 44, 55); |
844 ASSERT (result != NULL); | 904 ASSERT (result != NULL); |
845 ASSERT (strcmp (result, "00001234.000000 33") == 0); | 905 ASSERT (strcmp (result, "00001234.000000 33") == 0); |
856 || strcmp (result, " -infinity 33") == 0); | 916 || strcmp (result, " -infinity 33") == 0); |
857 ASSERT (length == strlen (result)); | 917 ASSERT (length == strlen (result)); |
858 free (result); | 918 free (result); |
859 } | 919 } |
860 | 920 |
921 { /* FLAG_ZERO with NaN. */ | |
922 size_t length; | |
923 char *result = | |
924 my_asnprintf (NULL, &length, "%015f %d", NaN (), 33, 44, 55); | |
925 ASSERT (result != NULL); | |
926 ASSERT (strcmp (result, " nan 33") == 0); | |
927 ASSERT (length == strlen (result)); | |
928 free (result); | |
929 } | |
930 | |
861 { /* Precision. */ | 931 { /* Precision. */ |
862 size_t length; | 932 size_t length; |
863 char *result = | 933 char *result = |
864 my_asnprintf (NULL, &length, "%.f %d", 1234.0, 33, 44, 55); | 934 my_asnprintf (NULL, &length, "%.f %d", 1234.0, 33, 44, 55); |
865 ASSERT (result != NULL); | 935 ASSERT (result != NULL); |
949 ASSERT (strcmp (result, "nan 33") == 0); | 1019 ASSERT (strcmp (result, "nan 33") == 0); |
950 ASSERT (length == strlen (result)); | 1020 ASSERT (length == strlen (result)); |
951 free (result); | 1021 free (result); |
952 } | 1022 } |
953 | 1023 |
954 { /* FLAG_ZERO. */ | 1024 { /* Width. */ |
1025 size_t length; | |
1026 char *result = | |
1027 my_asnprintf (NULL, &length, "%10Lf %d", 1.75L, 33, 44, 55); | |
1028 ASSERT (result != NULL); | |
1029 ASSERT (strcmp (result, " 1.750000 33") == 0); | |
1030 ASSERT (length == strlen (result)); | |
1031 free (result); | |
1032 } | |
1033 | |
1034 { /* FLAG_LEFT. */ | |
1035 size_t length; | |
1036 char *result = | |
1037 my_asnprintf (NULL, &length, "%-10Lf %d", 1.75L, 33, 44, 55); | |
1038 ASSERT (result != NULL); | |
1039 ASSERT (strcmp (result, "1.750000 33") == 0); | |
1040 ASSERT (length == strlen (result)); | |
1041 free (result); | |
1042 } | |
1043 | |
1044 { /* FLAG_SHOWSIGN. */ | |
1045 size_t length; | |
1046 char *result = | |
1047 my_asnprintf (NULL, &length, "%+Lf %d", 1.75L, 33, 44, 55); | |
1048 ASSERT (result != NULL); | |
1049 ASSERT (strcmp (result, "+1.750000 33") == 0); | |
1050 ASSERT (length == strlen (result)); | |
1051 free (result); | |
1052 } | |
1053 | |
1054 { /* FLAG_SPACE. */ | |
1055 size_t length; | |
1056 char *result = | |
1057 my_asnprintf (NULL, &length, "% Lf %d", 1.75L, 33, 44, 55); | |
1058 ASSERT (result != NULL); | |
1059 ASSERT (strcmp (result, " 1.750000 33") == 0); | |
1060 ASSERT (length == strlen (result)); | |
1061 free (result); | |
1062 } | |
1063 | |
1064 { /* FLAG_ALT. */ | |
1065 size_t length; | |
1066 char *result = | |
1067 my_asnprintf (NULL, &length, "%#Lf %d", 1.75L, 33, 44, 55); | |
1068 ASSERT (result != NULL); | |
1069 ASSERT (strcmp (result, "1.750000 33") == 0); | |
1070 ASSERT (length == strlen (result)); | |
1071 free (result); | |
1072 } | |
1073 | |
1074 { /* FLAG_ALT. */ | |
1075 size_t length; | |
1076 char *result = | |
1077 my_asnprintf (NULL, &length, "%#.Lf %d", 1.75L, 33, 44, 55); | |
1078 ASSERT (result != NULL); | |
1079 ASSERT (strcmp (result, "2. 33") == 0); | |
1080 ASSERT (length == strlen (result)); | |
1081 free (result); | |
1082 } | |
1083 | |
1084 { /* FLAG_ZERO with finite number. */ | |
955 size_t length; | 1085 size_t length; |
956 char *result = | 1086 char *result = |
957 my_asnprintf (NULL, &length, "%015Lf %d", 1234.0L, 33, 44, 55); | 1087 my_asnprintf (NULL, &length, "%015Lf %d", 1234.0L, 33, 44, 55); |
958 ASSERT (result != NULL); | 1088 ASSERT (result != NULL); |
959 ASSERT (strcmp (result, "00001234.000000 33") == 0); | 1089 ASSERT (strcmp (result, "00001234.000000 33") == 0); |
966 char *result = | 1096 char *result = |
967 my_asnprintf (NULL, &length, "%015Lf %d", -1.0L / 0.0L, 33, 44, 55); | 1097 my_asnprintf (NULL, &length, "%015Lf %d", -1.0L / 0.0L, 33, 44, 55); |
968 ASSERT (result != NULL); | 1098 ASSERT (result != NULL); |
969 ASSERT (strcmp (result, " -inf 33") == 0 | 1099 ASSERT (strcmp (result, " -inf 33") == 0 |
970 || strcmp (result, " -infinity 33") == 0); | 1100 || strcmp (result, " -infinity 33") == 0); |
1101 ASSERT (length == strlen (result)); | |
1102 free (result); | |
1103 } | |
1104 | |
1105 { /* FLAG_ZERO with NaN. */ | |
1106 static long double zero = 0.0L; | |
1107 size_t length; | |
1108 char *result = | |
1109 my_asnprintf (NULL, &length, "%015Lf %d", zero / zero, 33, 44, 55); | |
1110 ASSERT (result != NULL); | |
1111 ASSERT (strcmp (result, " nan 33") == 0); | |
971 ASSERT (length == strlen (result)); | 1112 ASSERT (length == strlen (result)); |
972 free (result); | 1113 free (result); |
973 } | 1114 } |
974 | 1115 |
975 { /* Precision. */ | 1116 { /* Precision. */ |