diff options
author | Zdeněk Crhonek <zcrhonek@gmail.com> | 2017-05-26 19:43:05 +0200 |
---|---|---|
committer | Zdenek Crhonek <zcrhonek@gmail.com> | 2017-05-27 21:01:06 +0200 |
commit | f15afbcbb2c828cae6eb87f58d0f1cfe3b14ac16 (patch) | |
tree | 17ac7c19c76d31633b555b00aa8bde9756ca14fd /basic | |
parent | 7d70516bb1aef8c234788c1cc515d78ac2df7a0c (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.cxx | 4 | ||||
-rw-r--r-- | basic/qa/vba_tests/pmt.vb | 70 | ||||
-rw-r--r-- | basic/qa/vba_tests/ppmt.vb | 70 | ||||
-rw-r--r-- | basic/qa/vba_tests/pv.vb | 70 | ||||
-rw-r--r-- | basic/qa/vba_tests/qbcolor.vb | 94 |
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 + |