summaryrefslogtreecommitdiffstats
path: root/basic/qa/vba_tests/stringplusdouble.vb
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /basic/qa/vba_tests/stringplusdouble.vb
parentInitial commit. (diff)
downloadlibreoffice-upstream/4%7.4.7.tar.xz
libreoffice-upstream/4%7.4.7.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--basic/qa/vba_tests/stringplusdouble.vb243
1 files changed, 243 insertions, 0 deletions
diff --git a/basic/qa/vba_tests/stringplusdouble.vb b/basic/qa/vba_tests/stringplusdouble.vb
new file mode 100644
index 000000000..7c5045ead
--- /dev/null
+++ b/basic/qa/vba_tests/stringplusdouble.vb
@@ -0,0 +1,243 @@
+'
+' 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 VBASupport 1
+Option Explicit
+
+Function doUnitTest() As String
+ TestUtil.TestInit
+ DSD ' double = string + double
+ SSD ' string = string + double
+ DSS ' double = string + string
+ doUnitTest = TestUtil.GetResult()
+End Function
+
+Sub DSD()
+ Dim s As String
+ Dim d As Double
+ Dim r As Double
+
+ On Error GoTo ErrorHandler
+
+ r = s + d
+ TestUtil.AssertEqual(r, -1, "s = null, d = null, r = s + d")
+
+ r = s & d
+ TestUtil.AssertEqual(r, 0, "s = null, d = null, r = s & d")
+
+ d = 20
+ r = s + d
+ TestUtil.AssertEqual(r, -1, "s = null, d = 20, r = s + d")
+
+ d = 20
+ r = s & d
+ TestUtil.AssertEqual(r, 20, "s = null, d = 20, r = s & d")
+
+ ''''''''''''''
+ s = "10"
+ Dim d2 As Double
+ r = s + d2
+ TestUtil.AssertEqual(r, 10, "s = '10', d = null, r = s + d")
+
+ r = s & d2
+ TestUtil.AssertEqual(r, 100, "s = '10', d = null, r = s & d")
+
+ d2 = 20
+ r = s + d2
+ TestUtil.AssertEqual(r, 30, "s = '10', d = 20, r = s + d")
+
+ d2 = 20
+ r = s & d2
+ TestUtil.AssertEqual(r, 1020, "s = '10', d = 20, r = s & d")
+
+ ''''''''''''''
+ s = "abc"
+ Dim d3 As Double
+ r = s + d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = null, r = s + d")
+
+ r = s & d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = null, r = s & d")
+
+ d3 = 20
+ r = s + d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = 20, r = s + d")
+
+ d3 = 20
+ r = s & d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = 20, r = s & d")
+
+ Exit Sub
+
+ErrorHandler:
+ r = -1
+ Resume Next
+End Sub
+
+Sub SSD()
+ Dim s As String
+ Dim d As Double
+ Dim r As String
+
+ On Error GoTo ErrorHandler
+
+ r = s + d
+ TestUtil.AssertEqual(r, "-1", "s = null, d = null, r = s + d")
+
+ r = s & d
+ TestUtil.AssertEqual(r, "0", "s = null, d = null, r = s & d")
+
+ d = 20
+ r = s + d
+ TestUtil.AssertEqual(r, "-1", "s = null, d = 20, r = s + d")
+
+ d = 20
+ r = s & d
+ TestUtil.AssertEqual(r, "20", "s = null, d = 20, r = s & d")
+
+ ''''''''''''''
+ s = "10"
+ Dim d2 As Double
+ r = s + d2
+ TestUtil.AssertEqual(r, "10", "s = '10', d = null, r = s + d")
+
+ r = s & d2
+ TestUtil.AssertEqual(r, "100", "s = '10', d = null, r = s & d")
+
+ d2 = 20
+ r = s + d2
+ TestUtil.AssertEqual(r, "30", "s = '10', d = 20, r = s + d")
+
+ d2 = 20
+ r = s & d2
+ TestUtil.AssertEqual(r, "1020", "s = '10', d = 20, r = s & d")
+
+ ''''''''''''''
+ s = "abc"
+ Dim d3 As Double
+ r = s + d3
+ TestUtil.AssertEqual(r, "-1", "s = 'abc', d = null, r = s + d")
+
+ r = s & d3
+ TestUtil.AssertEqual(r, "abc0", "s = 'abc', d = null, r = s & d")
+
+ d3 = 20
+ r = s + d3
+ TestUtil.AssertEqual(r, "-1", "s = 'abc', d = 20, r = s + d")
+
+ d3 = 20
+ r = s & d3
+ TestUtil.AssertEqual(r, "abc20", "s = 'abc', d = 20, r = s & d")
+ Exit Sub
+
+ErrorHandler:
+ r = "-1"
+ Resume Next
+End Sub
+
+Sub DSS()
+ Dim s As String
+ Dim d As String
+ Dim r As Double
+
+ On Error GoTo ErrorHandler
+
+ r = s + d
+ TestUtil.AssertEqual(r, -1, "s = null, d = null, r = s + d")
+
+ r = s & d
+ TestUtil.AssertEqual(r, -1, "s = null, d = null, r = s & d")
+
+ d = "20"
+ r = s + d
+ TestUtil.AssertEqual(r, 20, "s = null, d = 20, r = s + d")
+
+ d = "20"
+ r = s & d
+ TestUtil.AssertEqual(r, 20, "s = null, d = 20, r = s & d")
+
+ ''''''''''''''
+ s = "10"
+ Dim d2 As String
+ r = s + d2
+ TestUtil.AssertEqual(r, 10, "s = '10', d = null, r = s + d")
+
+ r = s & d2
+ TestUtil.AssertEqual(r, 10, "s = '10', d = null, r = s & d")
+
+ d2 = "20"
+ r = s + d2
+ TestUtil.AssertEqual(r, 1020, "s = '10', d = 20, r = s + d")
+
+ d2 = "20"
+ r = s & d2
+ TestUtil.AssertEqual(r, 1020, "s = '10', d = 20, r = s & d")
+
+ ''''''''''''''
+ s = "abc"
+ Dim d3 As String
+ r = s + d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = null, r = s + d")
+
+ r = s & d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = null, r = s & d")
+
+ d3 = "20"
+ r = s + d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = 20, r = s + d")
+
+ d3 = "20"
+ r = s & d3
+ TestUtil.AssertEqual(r, -1, "s = 'abc', d = 20, r = s & d")
+ Exit Sub
+
+ErrorHandler:
+ r = -1
+ Resume Next
+End Sub
+
+Sub test2()
+ Dim s As String
+ Dim d As Double
+ s = ""
+ d = s ' fail in MSO
+ MsgBox d
+End Sub
+
+Sub testBoolean()
+ Dim a As String
+ Dim b As Boolean
+ Dim c As Boolean
+ Dim d As String
+
+ b = True
+
+ a = "1"
+ c = a + b ' c = false
+ MsgBox c
+
+ d = a + b 'd = 0
+ MsgBox d
+End Sub
+
+Sub testCurrency()
+ Dim a As String
+ Dim b As Currency
+ Dim c As Currency
+ Dim d As String
+
+ a = "10"
+ b = 30.3
+
+ c = a + b ' c = 40.3
+ MsgBox c
+
+ d = a + b ' c =40.3
+ MsgBox d
+
+End Sub