summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorZdeněk Crhonek <zcrhonek@gmail.com>2017-05-26 19:43:05 +0200
committerZdenek Crhonek <zcrhonek@gmail.com>2017-05-27 21:01:06 +0200
commitf15afbcbb2c828cae6eb87f58d0f1cfe3b14ac16 (patch)
tree17ac7c19c76d31633b555b00aa8bde9756ca14fd /basic
parent7d70516bb1aef8c234788c1cc515d78ac2df7a0c (diff)
add VBA tests- PMT, PPMT, PV,QBCOLOR functions
Change-Id: Idcbecbdee6a6c054886d6a11ce22e525ecf23736 Reviewed-on: https://gerrit.libreoffice.org/38084 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
Diffstat (limited to 'basic')
-rw-r--r--basic/qa/cppunit/test_vba.cxx4
-rw-r--r--basic/qa/vba_tests/pmt.vb70
-rw-r--r--basic/qa/vba_tests/ppmt.vb70
-rw-r--r--basic/qa/vba_tests/pv.vb70
-rw-r--r--basic/qa/vba_tests/qbcolor.vb94
5 files changed, 308 insertions, 0 deletions
diff --git a/basic/qa/cppunit/test_vba.cxx b/basic/qa/cppunit/test_vba.cxx
index ddd640d371d4..db8d44ea2108 100644
--- a/basic/qa/cppunit/test_vba.cxx
+++ b/basic/qa/cppunit/test_vba.cxx
@@ -111,6 +111,10 @@ void VBATest::testMiscVBAFunctions()
"oct.vb",
"nper.vb",
"npv.vb",
+ "pmt.vb",
+ "ppmt.vb",
+ "pv.vb",
+ "qbcolor.vb",
#ifndef WIN32 // missing 64bit Currency marshalling.
"win32compat.vb", // windows compatibility hooks.
#endif
diff --git a/basic/qa/vba_tests/pmt.vb b/basic/qa/vba_tests/pmt.vb
new file mode 100644
index 000000000000..4998dd492fe0
--- /dev/null
+++ b/basic/qa/vba_tests/pmt.vb
@@ -0,0 +1,70 @@
+Option VBASupport 1
+Option Explicit
+Dim passCount As Integer
+Dim failCount As Integer
+Dim result As String
+
+Function doUnitTest() As String
+result = verify_testPMT()
+If failCount <> 0 And passCount > 0 Then
+ doUnitTest = result
+Else
+ doUnitTest = "OK"
+End If
+End Function
+
+
+
+Function verify_testPMT() As String
+
+ passCount = 0
+ failCount = 0
+
+ result = "Test Results" & Chr$(10) & "============" & Chr$(10)
+
+ Dim testName As String
+ Dim TestDateTime As Date
+ Dim TestStr As String
+ Dim date1, date2
+ testName = "Test PMT function"
+ On Error GoTo errorHandler
+
+ date2 = -255.14
+ date1 = Pmt(0.0083, 48, 10000, 100, 0)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PMT is: " & date1
+
+ date2 = -253.04
+ date1 = Pmt(0.0083, 48, 10000, 100, 1)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PMT is: " & date1
+
+ date2 = -253.43
+ date1 = Pmt(0.0083, 48, 10000)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PMT is: " & date1
+
+ result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
+ verify_testPMT = result
+
+ Exit Function
+errorHandler:
+ TestLog_ASSERT (False), testName & ": hit error handler"
+End Function
+
+Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String)
+
+ If assertion = True Then
+ passCount = passCount + 1
+ Else
+ Dim testMsg As String
+ If Not IsMissing(testId) Then
+ testMsg = testMsg + " : " + testId
+ End If
+ If Not IsMissing(testComment) And Not (testComment = "") Then
+ testMsg = testMsg + " (" + testComment + ")"
+ End If
+
+ result = result & Chr$(10) & " Failed: " & testMsg
+ failCount = failCount + 1
+ End If
+
+End Sub
+
diff --git a/basic/qa/vba_tests/ppmt.vb b/basic/qa/vba_tests/ppmt.vb
new file mode 100644
index 000000000000..984c97ff3b6e
--- /dev/null
+++ b/basic/qa/vba_tests/ppmt.vb
@@ -0,0 +1,70 @@
+Option VBASupport 1
+Option Explicit
+Dim passCount As Integer
+Dim failCount As Integer
+Dim result As String
+
+Function doUnitTest() As String
+result = verify_testPPMT()
+If failCount <> 0 And passCount > 0 Then
+ doUnitTest = result
+Else
+ doUnitTest = "OK"
+End If
+End Function
+
+
+
+Function verify_testPPMT() As String
+
+ passCount = 0
+ failCount = 0
+
+ result = "Test Results" & Chr$(10) & "============" & Chr$(10)
+
+ Dim testName As String
+ Dim TestDateTime As Date
+ Dim TestStr As String
+ Dim date1, date2
+ testName = "Test PPMT function"
+ On Error GoTo errorHandler
+
+ date2 = -188.52
+ date1 = PPmt(0.0083, 12, 48, 10000, 100, 0)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PPMT is: " & date1
+
+ date2 = -186.97
+ date1 = PPmt(0.0083, 12, 48, 10000, 100, 1)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PPMT is: " & date1
+
+ date2 = -186.66
+ date1 = PPmt(0.0083, 12, 48, 10000)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PPMT is: " & date1
+
+ result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
+ verify_testPPMT = result
+
+ Exit Function
+errorHandler:
+ TestLog_ASSERT (False), testName & ": hit error handler"
+End Function
+
+Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String)
+
+ If assertion = True Then
+ passCount = passCount + 1
+ Else
+ Dim testMsg As String
+ If Not IsMissing(testId) Then
+ testMsg = testMsg + " : " + testId
+ End If
+ If Not IsMissing(testComment) And Not (testComment = "") Then
+ testMsg = testMsg + " (" + testComment + ")"
+ End If
+
+ result = result & Chr$(10) & " Failed: " & testMsg
+ failCount = failCount + 1
+ End If
+
+End Sub
+
diff --git a/basic/qa/vba_tests/pv.vb b/basic/qa/vba_tests/pv.vb
new file mode 100644
index 000000000000..e951c66f119c
--- /dev/null
+++ b/basic/qa/vba_tests/pv.vb
@@ -0,0 +1,70 @@
+Option VBASupport 1
+Option Explicit
+Dim passCount As Integer
+Dim failCount As Integer
+Dim result As String
+
+Function doUnitTest() As String
+result = verify_testPV()
+If failCount <> 0 And passCount > 0 Then
+ doUnitTest = result
+Else
+ doUnitTest = "OK"
+End If
+End Function
+
+
+
+Function verify_testPV() As String
+
+ passCount = 0
+ failCount = 0
+
+ result = "Test Results" & Chr$(10) & "============" & Chr$(10)
+
+ Dim testName As String
+ Dim TestDateTime As Date
+ Dim TestStr As String
+ Dim date1, date2
+ testName = "Test PV function"
+ On Error GoTo errorHandler
+
+ date2 = -394647.64
+ date1 = PV(0.0083, 48, 10000, 100, 0)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PV is: " & date1
+
+ date2 = -397922.66
+ date1 = PV(0.0083, 48, 10000, 100, 1)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PV is: " & date1
+
+ date2 = -394580.39
+ date1 = PV(0.0083, 48, 10000)
+ TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return PV is: " & date1
+
+ result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
+ verify_testPV = result
+
+ Exit Function
+errorHandler:
+ TestLog_ASSERT (False), testName & ": hit error handler"
+End Function
+
+Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String)
+
+ If assertion = True Then
+ passCount = passCount + 1
+ Else
+ Dim testMsg As String
+ If Not IsMissing(testId) Then
+ testMsg = testMsg + " : " + testId
+ End If
+ If Not IsMissing(testComment) And Not (testComment = "") Then
+ testMsg = testMsg + " (" + testComment + ")"
+ End If
+
+ result = result & Chr$(10) & " Failed: " & testMsg
+ failCount = failCount + 1
+ End If
+
+End Sub
+
diff --git a/basic/qa/vba_tests/qbcolor.vb b/basic/qa/vba_tests/qbcolor.vb
new file mode 100644
index 000000000000..aebfc4ff4bf8
--- /dev/null
+++ b/basic/qa/vba_tests/qbcolor.vb
@@ -0,0 +1,94 @@
+Option VBASupport 1
+Option Explicit
+Dim passCount As Integer
+Dim failCount As Integer
+Dim result As String
+
+Function doUnitTest() As String
+result = verify_testQBcolor()
+If failCount <> 0 And passCount > 0 Then
+ doUnitTest = result
+Else
+ doUnitTest = "OK"
+End If
+End Function
+
+
+
+Function verify_testQBcolor() As String
+
+ passCount = 0
+ failCount = 0
+
+ result = "Test Results" & Chr$(10) & "============" & Chr$(10)
+
+ Dim testName As String
+ Dim TestDateTime As Date
+ Dim TestStr As String
+ Dim date1, date2 As Long
+ testName = "Test QBcolor function"
+ On Error GoTo errorHandler
+
+ date2 = 0
+ date1 = QBColor(0)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 8388608
+ date1 = QBColor(1)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 32768
+ date1 = QBColor(2)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 8421376
+ date1 = QBColor(3)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 128
+ date1 = QBColor(4)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 8388736
+ date1 = QBColor(5)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 32896
+ date1 = QBColor(6)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 12632256
+ date1 = QBColor(7)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ date2 = 8421504
+ date1 = QBColor(8)
+ TestLog_ASSERT date1 = date2, "the return QBcolor is: " & date1
+
+ result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
+ verify_testQBcolor = result
+
+ Exit Function
+errorHandler:
+ TestLog_ASSERT (False), testName & ": hit error handler"
+End Function
+
+Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String)
+
+ If assertion = True Then
+ passCount = passCount + 1
+ Else
+ Dim testMsg As String
+ If Not IsMissing(testId) Then
+ testMsg = testMsg + " : " + testId
+ End If
+ If Not IsMissing(testComment) And Not (testComment = "") Then
+ testMsg = testMsg + " (" + testComment + ")"
+ End If
+
+ result = result & Chr$(10) & " Failed: " & testMsg
+ failCount = failCount + 1
+ End If
+
+End Sub
+