summaryrefslogtreecommitdiff
path: root/basic/qa
diff options
context:
space:
mode:
authorbaltasarq <baltasarq@gmail.com>2021-07-05 17:17:54 +0200
committerMike Kaganski <mike.kaganski@collabora.com>2021-07-06 14:50:09 +0200
commit0eacbfa75132724faaeeb9ea22a1c3e44eefb515 (patch)
tree8397b8e1c121aa23fdf48404ab320e7efa6795cd /basic/qa
parent6e0b7d2aad6f1a041dd9e0e28aa4bf27eb3fc077 (diff)
tdf#142922 fixes Round to follow half-to-even rounding
The LibreOffice's Basic Round function does not return values that are compatible with VBA's Round. This can be easily fixed using rtl/round, which has a flag parameter called rtl_math_RoundingMode_HalfEven which rounds real numbers exactly in the expected way. Change-Id: I2215f08427e5777fc2d35f054b635dfa6247af8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118444 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'basic/qa')
-rw-r--r--basic/qa/vba_tests/roundcompatibility.vb29
1 files changed, 29 insertions, 0 deletions
diff --git a/basic/qa/vba_tests/roundcompatibility.vb b/basic/qa/vba_tests/roundcompatibility.vb
new file mode 100644
index 000000000000..aaa078925d3b
--- /dev/null
+++ b/basic/qa/vba_tests/roundcompatibility.vb
@@ -0,0 +1,29 @@
+'
+' 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
+ verify_roundCompatibility
+ doUnitTest = TestUtil.GetResult()
+End Function
+
+Sub verify_roundCompatibility()
+ On Error GoTo errorHandler
+
+ TestUtil.AssertEqual(Round(0.12335,4), 0.1234, "Round(0.12335,4)")
+ TestUtil.AssertEqual(Round(0.12345,4), 0.1234, "Round(0.12345,4)")
+ TestUtil.AssertEqual(Round(0.12355,4), 0.1236, "Round(0.12355,4)")
+ TestUtil.AssertEqual(Round(0.12365,4), 0.1236, "Round(0.12365,4)")
+
+ Exit Sub
+errorHandler:
+ TestUtil.ReportErrorHandler("verify_roundCompatibility", Err, Error$, Erl)
+End Sub