diff --git a/tests/string/format.bas b/tests/string/format.bas index fc39cbc08c..40427552cc 100644 --- a/tests/string/format.bas +++ b/tests/string/format.bas @@ -1,147 +1,158 @@ #include "fbcunit.bi" # include "vbcompat.bi" +'' tests marked with "BUG" might be bugged on some platforms +#if ENABLE_CHECK_BUGS + #define BUG 1 +#else + #if defined(__FB_WIN32__) and defined(__FB_64BIT__) + #define BUG 0 + #else + #define BUG 1 + #endif +#endif + tests_num: - data 0.1236, "", ".1236" + data 1, 0.1236, "", ".1236" ' The following example now works because FORMAT now restricts the precision ' to 11 when no format specifier was given. - data 4578.1236, "", "4578.1236" - data 4578.125, "", "4578.125" - data 1234.0, "", "1234" - - data 0.1236, "##0.00%", "12.36%" - data 123, !"\"asd\\\"", !"asd\\" - data 0, "###", "0" - data 123, "###", "123" - data 123, "###00000", "00123" - data 123, "00000###", "00000123" - data 123.5, "0", "123" - data 123.51, "0", "124" - data 123.6, "0", "124" - data 1.23, "###.###", "1.23" - data 0.123, "###.###", ".123" - data 0.1234, "###.###", ".123" - data 0.1235, "###.###", ".123" - data 0.12351, "###.###", ".124" - data 0.1236, "###.###", ".124" - data 123, "###.###", "123." - data 123, "#", "123" - data 123, "#.##e-000", "1.23e002" - data 123, "#.##e+000", "1.23e+002" - data 0.123, "#.##e-000", "1.23e-001" - data 0.1234, "#.##e-000", "1.23e-001" - data 0.1235, "#.##e-000", "1.23e-001" - data 0.12351, "#.##e-000", "1.24e-001" - data 0.1236, "#.##e-000", "1.24e-001" - data 0.000000000125, "#.##e-0", "1.25e-10" - data 0.999999, "#.00e+000", "1.00e+000" - data 9.9e+20, "#", "990000000000000000000" - data 4.9e-324, "#.#e+#", "4.9e-324" - data 9.9e-100, "###################e+#", "9900000000000000000e-118" - - data -0.1236, "##0.00%", "-12.36%" - data -123, !"\"asd\\\"", !"asd\\" - data -0, "###", "0" - data -123, "###", "-123" - data -123, "###00000", "-00123" - data -123, "00000###", "-00000123" - data -123.5, "0", "-123" - data -123.51, "0", "-124" - data -123.6, "0", "-124" - data -1.23, "###.###", "-1.23" - data -0.123, "###.###", "-.123" - data -0.1234, "###.###", "-.123" - data -0.1235, "###.###", "-.123" - data -0.12351, "###.###", "-.124" - data -0.1236, "###.###", "-.124" - data -123, "###.###", "-123." - data -123, "#", "-123" - data -123, "#.##e-000", "-1.23e002" - data -123, "#.##e+000", "-1.23e+002" - data -0.123, "#.##e-000", "-1.23e-001" - data -0.1234, "#.##e-000", "-1.23e-001" - data -0.1235, "#.##e-000", "-1.23e-001" - data -0.12351, "#.##e-000", "-1.24e-001" - data -0.1236, "#.##e-000", "-1.24e-001" - data -0.000000000125, "#.##e-0", "-1.25e-10" - data -0.999999, "#.00e+000", "-1.00e+000" - data -9.9e+20, "#", "-990000000000000000000" - data -4.9e-324, "#.#e+#", "-4.9e-324" - data -9.9e-100, "###################e+#", "-9900000000000000000e-118" - - data -0.1236, "##0.00%-", "12.36%-" - data -123, !"\"asd\\\"", !"asd\\" - data -0, "###-", "0" - data -123, "###-", "123-" - data -123, "###00000-", "00123-" - data -123, "00000###-", "00000123-" - data -123.5, "0-", "123-" - data -123.51, "0-", "124-" - data -123.6, "0-", "124-" - data -1.23, "###.###-", "1.23-" - data -0.123, "###.###-", ".123-" - data -0.1234, "###.###-", ".123-" - data -0.1235, "###.###-", ".123-" - data -0.12351, "###.###-", ".124-" - data -0.1236, "###.###-", ".124-" - data -123, "###.###-", "123.-" - data -123, "#-", "123-" - data -123, "#.##e-000-", "1.23e002-" - data -123, "#.##e+000-", "1.23e+002-" - data -0.123, "#.##e-000-", "1.23e-001-" - data -0.1234, "#.##e-000-", "1.23e-001-" - data -0.1235, "#.##e-000-", "1.23e-001-" - data -0.12351, "#.##e-000-", "1.24e-001-" - data -0.1236, "#.##e-000-", "1.24e-001-" - data -0.000000000125, "#.##e-0-", "1.25e-10-" - data -0.999999, "#.00e+000-", "1.00e+000-" - data -9.9e+20, "#-", "990000000000000000000-" - data -4.9e-324, "#.#e+#-", "4.9e-324-" - data -9.9e-100, "###################e+#-", "9900000000000000000e-118-" - - data 0.1236, "##0.00%-", "12.36%" - data 123, !"\"asd\\\"", !"asd\\" - data 0, "###-", "0" - data 123, "###-", "123" - data 123, "###00000-", "00123" - data 123, "00000###-", "00000123" - data 123.5, "0-", "123" - data 123.51, "0-", "124" - data 123.6, "0-", "124" - data 1.23, "###.###-", "1.23" - data 0.123, "###.###-", ".123" - data 0.1234, "###.###-", ".123" - data 0.1235, "###.###-", ".123" - data 0.12351, "###.###-", ".124" - data 0.1236, "###.###-", ".124" - data 123, "###.###-", "123." - data 123, "#-", "123" - data 123, "#.##e-000-", "1.23e002" - data 123, "#.##e+000-", "1.23e+002" - data 0.123, "#.##e-000-", "1.23e-001" - data 0.1234, "#.##e-000-", "1.23e-001" - data 0.1235, "#.##e-000-", "1.23e-001" - data 0.12351, "#.##e-000-", "1.24e-001" - data 0.1236, "#.##e-000-", "1.24e-001" - data 0.000000000125, "#.##e-0-", "1.25e-10" - data 0.999999, "#.00e+000-", "1.00e+000" - data 9.9e+20, "#-", "990000000000000000000" - data 4.9e-324, "#.#e+#-", "4.9e-324" - data 9.9e-100, "###################e+#-", "9900000000000000000e-118" - - data 1234, "###,0.00", "1,234.00" - data 1234567, "#,#,#,0.00", "1,234,567.00" - data 1234, "###,,0.00", "0.00" - data 1234567, "###,,0.00", "1.23" - data 1234567, "###0,,.00", "1.23" - data 1234, "###0,.00", "1.23" - data 1234, "#########,0.00", "1,234.00" - data 123456, "#######,##0.00", "123,456.00" - data 12345678, "#######,##0.00", "12,345,678.00" - data 123, "#########,0.00", "123.00" - data 100000, "#,##0.00", "100,000.00" - - data "." + data 1, 4578.1236, "", "4578.1236" + data 1, 4578.125, "", "4578.125" + data 1, 1234.0, "", "1234" + + data 1, 0.1236, "##0.00%", "12.36%" + data 1, 123, !"\"asd\\\"", !"asd\\" + data 1, 0, "###", "0" + data 1, 123, "###", "123" + data 1, 123, "###00000", "00123" + data 1, 123, "00000###", "00000123" + data 1, 123.5, "0", "123" + data 1, 123.51, "0", "124" + data 1, 123.6, "0", "124" + data 1, 1.23, "###.###", "1.23" + data 1, 0.123, "###.###", ".123" + data 1, 0.1234, "###.###", ".123" + data 1, 0.1235, "###.###", ".123" + data 1, 0.12351, "###.###", ".124" + data 1, 0.1236, "###.###", ".124" + data 1, 123, "###.###", "123." + data 1, 123, "#", "123" + data 1, 123, "#.##e-000", "1.23e002" + data 1, 123, "#.##e+000", "1.23e+002" + data 1, 0.123, "#.##e-000", "1.23e-001" + data 1, 0.1234, "#.##e-000", "1.23e-001" + data 1, 0.1235, "#.##e-000", "1.23e-001" + data 1, 0.12351, "#.##e-000", "1.24e-001" + data 1, 0.1236, "#.##e-000", "1.24e-001" + data 1, 0.000000000125, "#.##e-0", "1.25e-10" + data 1, 0.999999, "#.00e+000", "1.00e+000" + data BUG, 9.9e+20, "#", "990000000000000000000" + data 1, 4.9e-324, "#.#e+#", "4.9e-324" + data BUG, 9.9e-100, "###################e+#", "9900000000000000000e-118" + + data 1, -0.1236, "##0.00%", "-12.36%" + data 1, -123, !"\"asd\\\"", !"asd\\" + data 1, -0, "###", "0" + data 1, -123, "###", "-123" + data 1, -123, "###00000", "-00123" + data 1, -123, "00000###", "-00000123" + data 1, -123.5, "0", "-123" + data 1, -123.51, "0", "-124" + data 1, -123.6, "0", "-124" + data 1, -1.23, "###.###", "-1.23" + data 1, -0.123, "###.###", "-.123" + data 1, -0.1234, "###.###", "-.123" + data 1, -0.1235, "###.###", "-.123" + data 1, -0.12351, "###.###", "-.124" + data 1, -0.1236, "###.###", "-.124" + data 1, -123, "###.###", "-123." + data 1, -123, "#", "-123" + data 1, -123, "#.##e-000", "-1.23e002" + data 1, -123, "#.##e+000", "-1.23e+002" + data 1, -0.123, "#.##e-000", "-1.23e-001" + data 1, -0.1234, "#.##e-000", "-1.23e-001" + data 1, -0.1235, "#.##e-000", "-1.23e-001" + data 1, -0.12351, "#.##e-000", "-1.24e-001" + data 1, -0.1236, "#.##e-000", "-1.24e-001" + data 1, -0.000000000125, "#.##e-0", "-1.25e-10" + data 1, -0.999999, "#.00e+000", "-1.00e+000" + data BUG, -9.9e+20, "#", "-990000000000000000000" + data 1, -4.9e-324, "#.#e+#", "-4.9e-324" + data BUG, -9.9e-100, "###################e+#", "-9900000000000000000e-118" + + data 1, -0.1236, "##0.00%-", "12.36%-" + data 1, -123, !"\"asd\\\"", !"asd\\" + data 1, -0, "###-", "0" + data 1, -123, "###-", "123-" + data 1, -123, "###00000-", "00123-" + data 1, -123, "00000###-", "00000123-" + data 1, -123.5, "0-", "123-" + data 1, -123.51, "0-", "124-" + data 1, -123.6, "0-", "124-" + data 1, -1.23, "###.###-", "1.23-" + data 1, -0.123, "###.###-", ".123-" + data 1, -0.1234, "###.###-", ".123-" + data 1, -0.1235, "###.###-", ".123-" + data 1, -0.12351, "###.###-", ".124-" + data 1, -0.1236, "###.###-", ".124-" + data 1, -123, "###.###-", "123.-" + data 1, -123, "#-", "123-" + data 1, -123, "#.##e-000-", "1.23e002-" + data 1, -123, "#.##e+000-", "1.23e+002-" + data 1, -0.123, "#.##e-000-", "1.23e-001-" + data 1, -0.1234, "#.##e-000-", "1.23e-001-" + data 1, -0.1235, "#.##e-000-", "1.23e-001-" + data 1, -0.12351, "#.##e-000-", "1.24e-001-" + data 1, -0.1236, "#.##e-000-", "1.24e-001-" + data 1, -0.000000000125, "#.##e-0-", "1.25e-10-" + data 1, -0.999999, "#.00e+000-", "1.00e+000-" + data BUG, -9.9e+20, "#-", "990000000000000000000-" + data 1, -4.9e-324, "#.#e+#-", "4.9e-324-" + data BUG, -9.9e-100, "###################e+#-", "9900000000000000000e-118-" + + data 1, 0.1236, "##0.00%-", "12.36%" + data 1, 123, !"\"asd\\\"", !"asd\\" + data 1, 0, "###-", "0" + data 1, 123, "###-", "123" + data 1, 123, "###00000-", "00123" + data 1, 123, "00000###-", "00000123" + data 1, 123.5, "0-", "123" + data 1, 123.51, "0-", "124" + data 1, 123.6, "0-", "124" + data 1, 1.23, "###.###-", "1.23" + data 1, 0.123, "###.###-", ".123" + data 1, 0.1234, "###.###-", ".123" + data 1, 0.1235, "###.###-", ".123" + data 1, 0.12351, "###.###-", ".124" + data 1, 0.1236, "###.###-", ".124" + data 1, 123, "###.###-", "123." + data 1, 123, "#-", "123" + data 1, 123, "#.##e-000-", "1.23e002" + data 1, 123, "#.##e+000-", "1.23e+002" + data 1, 0.123, "#.##e-000-", "1.23e-001" + data 1, 0.1234, "#.##e-000-", "1.23e-001" + data 1, 0.1235, "#.##e-000-", "1.23e-001" + data 1, 0.12351, "#.##e-000-", "1.24e-001" + data 1, 0.1236, "#.##e-000-", "1.24e-001" + data 1, 0.000000000125, "#.##e-0-", "1.25e-10" + data 1, 0.999999, "#.00e+000-", "1.00e+000" + data BUG, 9.9e+20, "#-", "990000000000000000000" + data 1, 4.9e-324, "#.#e+#-", "4.9e-324" + data BUG, 9.9e-100, "###################e+#-", "9900000000000000000e-118" + + data 1, 1234, "###,0.00", "1,234.00" + data 1, 1234567, "#,#,#,0.00", "1,234,567.00" + data 1, 1234, "###,,0.00", "0.00" + data 1, 1234567, "###,,0.00", "1.23" + data 1, 1234567, "###0,,.00", "1.23" + data 1, 1234, "###0,.00", "1.23" + data 1, 1234, "#########,0.00", "1,234.00" + data 1, 123456, "#######,##0.00", "123,456.00" + data 1, 12345678, "#######,##0.00", "12,345,678.00" + data 1, 123, "#########,0.00", "123.00" + data 1, 100000, "#,##0.00", "100,000.00" + + data 1, "." tests_dt: data "Jun 1, 2005", "yyyy-mm-dd", "2005-06-01" @@ -170,17 +181,20 @@ SUITE( fbc_tests.string_.format_ ) TEST( numberFormatTest ) dim as string sValue, sMask, sWanted, sResult dim as double dblValue + dim as integer bTest restore tests_num - read sValue + read bTest, sValue while sValue<>"." dblValue = val(sValue) read sMask, sWanted ' print sWanted, sResult = Format(dblValue, sMask) ' print sResult - CU_ASSERT_EQUAL( sWanted, sResult ) - read sValue + if( bTest ) then + CU_ASSERT_EQUAL( sWanted, sResult ) + end if + read bTest, sValue wend END_TEST