VBA test - add RATE, RGB functions

Change-Id: I284597a54067049479c56d6e6eea6322f0e3ee2b
Reviewed-on: https://gerrit.libreoffice.org/39377
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
This commit is contained in:
Zdeněk Crhonek 2017-06-29 06:18:30 +02:00 committed by Zdenek Crhonek
parent bae1367708
commit ad17c13cf1
3 changed files with 158 additions and 0 deletions

View File

@ -115,6 +115,8 @@ void VBATest::testMiscVBAFunctions()
"ppmt.vb",
"pv.vb",
"qbcolor.vb",
"rate.vb",
"rgb.vb",
#ifndef WIN32 // missing 64bit Currency marshalling.
"win32compat.vb", // windows compatibility hooks.
#endif

View File

@ -0,0 +1,84 @@
Option VBASupport 1
Rem Option VBASupport 1
Option Explicit
Dim passCount As Integer
Dim failCount As Integer
Dim result As String
Function doUnitTest() As String
result = verify_testRATE()
If failCount <> 0 And passCount > 0 Then
doUnitTest = result
Else
doUnitTest = "OK"
End If
End Function
Function verify_testRATE() 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 RATE function"
On Error GoTo errorHandler
date2 = 0.07
date1 = Rate(3, -5, 0, 16)
TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return RATE is: " & date1
date2 = 0
date1 = Rate(3, -5, 0, 15)
TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return RATE is: " & date1
date2 = 0.79
date1 = Rate(3, -5, 0, 30)
TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return RATE is: " & date1
date2 = 1
date1 = Rate(3, -5, 0, 35)
TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return RATE is: " & date1
date2 = 0.077
date1 = Rate(4, -300, 1000, 0, 0)
TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return RATE is: " & date1
date2 = 0.14
date1 = Rate(4, -300, 1000, 0, 1)
TestLog_ASSERT Round(date1, 2) = Round(date2, 2), "the return RATE is: " & date1
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
verify_testRATE = 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

72
basic/qa/vba_tests/rgb.vb Normal file
View File

@ -0,0 +1,72 @@
Option VBASupport 1
Rem Option VBASupport 1
Option Explicit
Dim passCount As Integer
Dim failCount As Integer
Dim result As String
Function doUnitTest() As String
result = verify_testRGB()
If failCount <> 0 And passCount > 0 Then
doUnitTest = result
Else
doUnitTest = "OK"
End If
End Function
Function verify_testRGB() 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 RGB function"
On Error GoTo errorHandler
date2 = 255
date1 = RGB(255, 0, 0)
TestLog_ASSERT date1 = date2, "the return RGB is: " & date1
date2 = 13339467
date1 = RGB(75, 139, 203)
TestLog_ASSERT date1 = date2, "the return RGB is: " & date1
date2 = 16777215
date1 = RGB(255, 255, 255)
TestLog_ASSERT date1 = date2, "the return RGB is: " & date1
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
verify_testRGB = 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