File: test_format_function.bas

package info (click to toggle)
libreoffice 4%3A26.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,833,120 kB
  • sloc: cpp: 4,395,780; xml: 499,109; java: 254,438; python: 81,820; ansic: 33,823; perl: 30,297; javascript: 19,722; sh: 12,050; makefile: 10,854; cs: 8,865; yacc: 8,549; objc: 2,131; lex: 1,385; asm: 1,231; awk: 996; pascal: 914; csh: 20; sed: 5
file content (51 lines) | stat: -rw-r--r-- 2,589 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'
' This file is part of the LibreOffice project.
'
' This Source Code Form is subject to the terms of the Mozilla Public
' License, v. 2.0. If a copy of the MPL was not distributed with this
' file, You can obtain one at http://mozilla.org/MPL/2.0/.
'

Option Explicit

Function doUnitTest as String
    TestUtil.TestInit
    verify_testFormat
    doUnitTest = TestUtil.GetResult()
End Function

Sub verify_testFormat
    On Error GoTo errorHandler

    Dim d As Date
    d = "2024-09-16 17:03:30"
    TestUtil.AssertEqual(Format(d, "YYYY-MM-DD"), "2024-09-16", "Format(d, ""YYYY-MM-DD"")")
    TestUtil.AssertEqual(Format("2024-09-16 05:03:30 PM", "hh-mm-ss"), "17-03-30", "Format(""2024-09-16 05:03:30 PM"", ""hh-mm-ss"")")
    ' A string that can be converted to number, with a text-format string
    TestUtil.AssertEqual(Format("001", "foo @ bar"), "foo 001 bar", "Format(""001"", ""foo @ bar"")")
    ' A string that cannot be converted to number, with a text-format string
    TestUtil.AssertEqual(Format("baz", "foo @ bar"), "foo baz bar", "Format(""baz"", ""foo @ bar"")")
    ' Legacy format strings
    ' leading '!': get only the first character of the source string
    TestUtil.AssertEqual(Format("abc", "! @"), "a", "Format(""abc"", ""! @"")")
    ' leading '\': get as many characters from source string, as in format string until the next '\', padding with spaces as needed
    TestUtil.AssertEqual(Format("abcdefgh", "\123\45"), "abcde", "Format(""abcdefgh"", ""\123\45"")")
    TestUtil.AssertEqual(Format("abcdefgh", "\12345"), "abcdef", "Format(""abcdefgh"", ""\12345"")")
    TestUtil.AssertEqual(Format("abc", "\12345\"), "abc    ", "Format(""abc"", ""\12345\"")")
    ' leading '&': get the whole source string unmodified
    TestUtil.AssertEqual(Format("abc", "& @"), "abc", "Format(""abc"", ""& @"")")
    ' non-leading positions
    TestUtil.AssertEqual(Format("abc", "@ !"), "abc !", "Format(""abc"", ""@ !"")")
    TestUtil.AssertEqual(Format("abc", "1\2345"), "abc", "Format(""abc"", ""1\2345"")")
    TestUtil.AssertEqual(Format("abc", "@ &"), "abc &", "Format(""abc"", ""@ &"")")

    TestUtil.AssertEqual(Format(""), "", "Format("""")")
    TestUtil.AssertEqual(Format(" "), " ", "Format("" "")")
    TestUtil.AssertEqual(Format(" 00 "), "0", "Format("" 00 "")")
    TestUtil.AssertEqual(Format(CDate("2025-09-26")), "09/26/2025", "Format(CDate(""2025-09-26""))")
    TestUtil.AssertEqual(Format(#2025-09-26#), "09/26/2025", "Format(#2025-09-26#)")

    Exit Sub
errorHandler:
    TestUtil.ReportErrorHandler("verify_testFormat", Err, Error$, Erl)
End Sub