Ignore:
Timestamp:
Oct 24, 2007, 12:32:20 AM (17 years ago)
Author:
イグトランス (egtra)
Message:

FormatFloatFを実装

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/TestCase/SimpleTestCase/SPrintFTest.ab

    r358 r364  
    1515    s = FloatToChars(1., e, sign)
    1616    UnitTest("FloatToChars(1)", s = "10000000000000000" And e = 0 And sign = False)
    17 
    1817    s = FloatToChars(-93.75e-3, e, sign)
    1918    UnitTest("FloatToChars(-93.75e-3)", s = "93750000000000000" And e = 1 - 3 And sign = True)
    20 
    2119    s = FloatToChars(.0, e, sign)
    2220    UnitTest("FloatToChars(0)", s = "00000000000000000" And e = 0 And sign = False)
     
    2422    s = FormatFloatE(9.876543e021, 6, 0, None)
    2523    UnitTest("FormatFloatE(9876543e+21)", s = "9.876543e+21")
    26 
    2724    s = FormatFloatE(7.81250000E-03, 8, 0, Cap)
    2825    UnitTest("FormatFloatE(7.81250000E-03)", s = "7.81250000E-03")
     
    4946    s = FormatFloatE(1.2345e+67, 4, 0, Cap)
    5047    UnitTest("FormatFloatE(1.2345E+67, Cap)", s = "1.2345E+67")
    51 
    5248    s = FormatFloatE(1.2345e67, 3, 0, None)
    5349    UnitTest("FormatFloatE(1.2345e+67, precision = 3)", s = "1.234e+67")
     
    5652    s = FormatIntegerU(777, 0, 0, None)
    5753    UnitTest("FormatIntegerU(777)", s = "777")
    58 
    5954    s = FormatIntegerU(513, 0, 5, None)
    6055    UnitTest("FormatIntegerU(513, field width = 5)", s = "  513")
     
    6257    s = FormatIntegerD(-3, 2, 0, Sign)
    6358    UnitTest("FormatIntegerD(-3, precision = 2)", s = "-03")
    64 
    6559    s = FormatIntegerD(3, 0, 5, Sign)
    6660    UnitTest("FormatIntegerD(+3, field width = 5)", s = "   +3")
     
    6862    s = FormatIntegerO(&o1234567, DWORD_MAX, 0, None)
    6963    UnitTest("FormatIntegerO(&o1234567)", s = "1234567")
    70 
    7164    s = FormatIntegerO(&o1234567, DWORD_MAX, 0, Alt)
    7265    UnitTest("FormatIntegerO(&o1234567, Alt)", s = "01234567")
    73 
    7466    s = FormatIntegerO(0, DWORD_MAX, 0, Alt)
    7567    UnitTest("FormatIntegerO(0, Alt)", s = "0")
     
    7769    s = FormatIntegerX(&hffff, DWORD_MAX, 0, None)
    7870    UnitTest("FormatIntegerX(&hffff)", s = "ffff")
    79 
    8071    s = FormatIntegerX(&hffff, DWORD_MAX, 0, Cap)
    8172    UnitTest("FormatIntegerX(&hffff, Cap)", s = "FFFF")
    82 
    8373    s = FormatIntegerX(&h12345678, DWORD_MAX, 0, Alt)
    8474    UnitTest("FormatIntegerX(&h12345678, Alt)", s = "0x12345678")
    85 
    8675    s = FormatIntegerX(1, 2, 0, Alt Or Cap)
    8776    UnitTest("FormatIntegerX(1, precision = 2, Alt, Cap)", s = "0X01")
    88 
    8977    s = FormatIntegerX(0, 4, 0, Alt)
    9078    UnitTest("FormatIntegerX(0, precision = 4, Alt)", s = "0000")
     79
     80    s = FormatFloatF(1, 2, 0, None)
     81    UnitTest("FormatFloatF(1.00, precision = 2)", s = "1.00")
     82    s = FormatFloatF(123.456, 3, 0, None)
     83    UnitTest("FormatFloatF(123.456, precision = 3)", s = "123.456")
     84    s = FormatFloatF(2., 0, 0, Alt)
     85    UnitTest("FormatFloatF(2., precision = 0, Alt", s = "2.")
     86    s = FormatFloatF(-1.234e-1, 3, 0, None)
     87    UnitTest("FormatFloatF(-1.234e-1, precision = 3) = -0.123", s = "-0.123")
     88    s = FormatFloatF(-1.234e-2, 3, 0, None)
     89    UnitTest("FormatFloatF(-1.234e-2, precision = 3) = -0.012", s = "-0.012")
     90    s = FormatFloatF(-1.234e-3, 3, 0, None)
     91    UnitTest("FormatFloatF(-1.234e-3, precision = 3) = -0.001", s = "-0.001")
     92    s = FormatFloatF(-1.234e-4, 3, 0, None)
     93    UnitTest("FormatFloatF(-1.234e-4, precision = 3) = -0.000", s = "-0.000")
     94    '現状では末尾の桁の誤差を制御しきれないので、文字列全体の一致比較を避けている。
     95    s = FormatFloatF(12345678901234567e3, 2, 0, None)
     96    UnitTest("FormatFloatF(1.00, precision = 2)", Right$(s, 6) = "000.00")
    9197
    9298'   s = FormatIntegerLU(8589934590, DWORD_MAX, 0, None)
Note: See TracChangeset for help on using the changeset viewer.