[335] | 1 | '--------------------------------------------------------------------
|
---|
| 2 | ' Test case of SPrintF Function and etc...
|
---|
| 3 | '--------------------------------------------------------------------
|
---|
| 4 |
|
---|
[355] | 5 | #require <Classes/ActiveBasic/Strings/SPrintF.ab>
|
---|
| 6 |
|
---|
[335] | 7 | Imports ActiveBasic.Strings
|
---|
| 8 | Imports ActiveBasic.Strings.Detail
|
---|
| 9 |
|
---|
| 10 | Namespace SPrintFTest
|
---|
| 11 |
|
---|
| 12 | Sub 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)
|
---|
[355] | 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")
|
---|
[335] | 26 |
|
---|
[355] | 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 |
|
---|
[335] | 52 | s = FormatIntegerU(777, 0, 0, None)
|
---|
| 53 | UnitTest("FormatIntegerU(777)", s = "777")
|
---|
| 54 | s = FormatIntegerU(513, 0, 5, None)
|
---|
[355] | 55 | UnitTest("FormatIntegerU(513, field width = 5)", s = " 513")
|
---|
[335] | 56 |
|
---|
[355] | 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 |
|
---|
[358] | 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 |
|
---|
[364] | 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 |
|
---|
[365] | 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")
|
---|
[335] | 106 | End Sub
|
---|
| 107 |
|
---|
| 108 | End Namespace 'SPrintFTest
|
---|
| 109 |
|
---|
| 110 | SPrintFTest.TestMain()
|
---|