source: trunk/TestCase/SimpleTestCase/SPrintFTest.ab@ 367

Last change on this file since 367 was 365, checked in by イグトランス (egtra), 17 years ago

QWord, Int64用書式化関数群を実装

File size: 5.1 KB
Line 
1'--------------------------------------------------------------------
2' Test case of SPrintF Function and etc...
3'--------------------------------------------------------------------
4
5#require <Classes/ActiveBasic/Strings/SPrintF.ab>
6
7Imports ActiveBasic.Strings
8Imports ActiveBasic.Strings.Detail
9
10Namespace SPrintFTest
11
12Sub TestMain()
13 Dim s = Nothing As String, e As Long, sign As Boolean
14
15 s = FloatToChars(1., e, sign)
16 UnitTest("FloatToChars(1)", s = "10000000000000000" And e = 0 And sign = False)
17 s = FloatToChars(-93.75e-3, e, sign)
18 UnitTest("FloatToChars(-93.75e-3)", s = "93750000000000000" And e = 1 - 3 And sign = True)
19 s = FloatToChars(.0, e, sign)
20 UnitTest("FloatToChars(0)", s = "00000000000000000" And e = 0 And sign = False)
21
22 s = FormatFloatE(9.876543e021, 6, 0, None)
23 UnitTest("FormatFloatE(9876543e+21)", s = "9.876543e+21")
24 s = FormatFloatE(7.81250000E-03, 8, 0, Cap)
25 UnitTest("FormatFloatE(7.81250000E-03)", s = "7.81250000E-03")
26
27 s = FormatFloatE(1.2345e67, 4, 15, 0)
28 UnitTest("FormatFloatE(1.2345e+67, field width = 15)", s = " 1.2345e+67")
29 s = FormatFloatE(1.2345e67, 4, 15, Zero)
30 UnitTest("FormatFloatE(1.2345e+67, field width = 15, Zero)", s = "000001.2345e+67")
31 s = FormatFloatE(-1.2345e67, 4, 15, 0)
32 UnitTest("FormatFloatE(-1.2345e+67, field width = 15)", s = " -1.2345e+67")
33 s = FormatFloatE(-1.2345e67, 4, 15, Zero)
34 UnitTest("FormatFloatE(-1.2345e+67, field width = 15, Zero)", s = "-00001.2345e+67")
35 s = FormatFloatE(1.2345e67, 4, 15, Sign)
36 UnitTest("FormatFloatE(1.2345e+67, field width = 15, Sign)", s = " +1.2345e+67")
37 s = FormatFloatE(1.2345e67, 4, 15, Zero Or Sign)
38 UnitTest("FormatFloatE(1.2345e+67, field width = 15, Zero Or Sign)", s = "+00001.2345e+67")
39 s = FormatFloatE(1.2345e67, 4, 15, Zero Or Blank)
40 UnitTest("FormatFloatE(1.2345e+67, field width = 15, Zero Or Blank)", s = " 00001.2345e+67")
41 s = FormatFloatE(-1.2345e67, 4, 15, Zero Or Sign)
42 UnitTest("FormatFloatE(-1.2345e+67, field width = 15, Zero Or Sign)", s = "-00001.2345e+67")
43 s = FormatFloatE(-1.2345e67, 4, 15, Zero Or Blank)
44 UnitTest("FormatFloatE(-1.2345e+67, field width = 15, Zero Or Blank)", s = "-00001.2345e+67")
45
46 s = FormatFloatE(1.2345e+67, 4, 0, Cap)
47 UnitTest("FormatFloatE(1.2345E+67, Cap)", s = "1.2345E+67")
48 s = FormatFloatE(1.2345e67, 3, 0, None)
49 UnitTest("FormatFloatE(1.2345e+67, precision = 3)", s = "1.234e+67")
50
51
52 s = FormatIntegerU(777, 0, 0, None)
53 UnitTest("FormatIntegerU(777)", s = "777")
54 s = FormatIntegerU(513, 0, 5, None)
55 UnitTest("FormatIntegerU(513, field width = 5)", s = " 513")
56
57 s = FormatIntegerD(-3, 2, 0, Sign)
58 UnitTest("FormatIntegerD(-3, precision = 2)", s = "-03")
59 s = FormatIntegerD(3, 0, 5, Sign)
60 UnitTest("FormatIntegerD(+3, field width = 5)", s = " +3")
61
62 s = FormatIntegerO(&o1234567, DWORD_MAX, 0, None)
63 UnitTest("FormatIntegerO(&o1234567)", s = "1234567")
64 s = FormatIntegerO(&o1234567, DWORD_MAX, 0, Alt)
65 UnitTest("FormatIntegerO(&o1234567, Alt)", s = "01234567")
66 s = FormatIntegerO(0, DWORD_MAX, 0, Alt)
67 UnitTest("FormatIntegerO(0, Alt)", s = "0")
68
69 s = FormatIntegerX(&hffff, DWORD_MAX, 0, None)
70 UnitTest("FormatIntegerX(&hffff)", s = "ffff")
71 s = FormatIntegerX(&hffff, DWORD_MAX, 0, Cap)
72 UnitTest("FormatIntegerX(&hffff, Cap)", s = "FFFF")
73 s = FormatIntegerX(&h12345678, DWORD_MAX, 0, Alt)
74 UnitTest("FormatIntegerX(&h12345678, Alt)", s = "0x12345678")
75 s = FormatIntegerX(1, 2, 0, Alt Or Cap)
76 UnitTest("FormatIntegerX(1, precision = 2, Alt, Cap)", s = "0X01")
77 s = FormatIntegerX(0, 4, 0, Alt)
78 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")
97
98 s = FormatIntegerLO(&hFFFFFFFFFFFFFFFF, 0, 0, Alt)
99 UnitTest("FormatIntegerLO(&hFFFFFFFFFFFFFFFF, Alt) = 01777777777777777777777", s = "01777777777777777777777")
100 s = FormatIntegerLX(&h123456789abcdef0, 0, 0, None)
101 UnitTest("FormatIntegerLX(&h123456789abcdef0)", s = "123456789abcdef0")
102 s = FormatIntegerLU(8589934590 As QWord, DWORD_MAX, 0, None)
103 UnitTest("FormatIntegerLU(8589934590)", s = "8589934590")
104 s = FormatIntegerLD(-8589934590, DWORD_MAX, 0, None)
105 UnitTest("FormatIntegerLD(-8589934590)", s = "-8589934590")
106End Sub
107
108End Namespace 'SPrintFTest
109
110SPrintFTest.TestMain()
Note: See TracBrowser for help on using the repository browser.