Kaydet (Commit) f15afbcb authored tarafından Zdeněk Crhonek's avatar Zdeněk Crhonek Kaydeden (comit) Zdenek Crhonek

add VBA tests- PMT, PPMT, PV,QBCOLOR functions

Change-Id: Idcbecbdee6a6c054886d6a11ce22e525ecf23736
Reviewed-on: https://gerrit.libreoffice.org/38084Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarZdenek Crhonek <zcrhonek@gmail.com>
üst 7d70516b
......@@ -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
......
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
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
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
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment