1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
'
' 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 Explicit
Type UDF ' User defined type
l As Object
s as String
End Type
Dim myUDF as UDF
Dim int16 As Integer, int32 As Long, flt32 As Single, flt64 As Double, _
curr As Currency, dat As Date, str As String, obj As Object, _
myErr As Variant, var As Variant, byt3 As Byte, bool As Boolean
Dim int_%, long_&, single_!, double_#, currency_@, string_$, array_
Dim intArray() As Integer, lngArray(5) As Long, sngArray!() As Single, dblArray#(8) As Double, _
curArray@() As Currency, datArray() As Date, strArray$() As String, objArray(5,15) As Object, _
varArray() As Variant, byteArray() As Byte, boolArray() As Boolean
Function doUnitTest ' TypeName()
myErr = CVErr(0.56E-41)
assert( TypeName(int16) = "Integer" , "TypeName(int16) is not ""Integer""")
assert( TypeName(int32) = "Long" , "TypeName(int32) is not ""Long""")
assert( TypeName(flt32) = "Single" , "TypeName(flt32) is not ""Single""" )
assert( TypeName(flt64) = "Double" , "TypeName(flt64) is not ""Double""" )
assert( TypeName(curr) = "Currency", "TypeName(curr) is not ""Currency""" )
assert( TypeName(dat) = "Date" , "TypeName(dat) is not ""Date""" )
assert( TypeName(byt3) = "Byte" , "TypeName(byt3) is not ""Byte""" )
assert( TypeName(MyErr) = "Error" , "TypeName(MyErr) is not ""Error""" )
assert( TypeName(bool) = "Boolean" , "TypeName(bool) is not ""Boolean""" )
assert( TypeName(str) = "String" , "TypeName(str) is not ""String""" )
assert( TypeName(obj) = "Object" , "TypeName(obj) is not ""Object""" )
assert( TypeName(myUDF) = "Object" , "TypeName(myUDF) is not ""Object""" )
assert( TypeName(var) = "Empty" , "TypeName(var) is not ""Empty""" )
assert( TypeName(int_) = "Integer" , "TypeName(int_) is not ""Integer""" )
assert( TypeName(long_) = "Long" , "TypeName(long_) is not ""Long""" )
assert( TypeName(single_) = "Single" , "TypeName(single_) is not ""Single""" )
assert( TypeName(double_) = "Double" , "TypeName(double_) is not ""Double""" )
assert( TypeName(currency_) = "Currency", "TypeName(currency_) is not ""Currency""" )
assert( TypeName(string_) = "String" , "TypeName(string_) is not ""String""" )
assert( TypeName(intArray) = "Integer()" , "TypeName(intArray) is not ""Integer()""" )
assert( TypeName(lngArray) = "Long()" , "TypeName(lngArray) is not ""Long()""" )
assert( TypeName(sngArray) = "Single()" , "TypeName(sngArray) is not ""Single()""" )
assert( TypeName(dblArray) = "Double()" , "TypeName(dblArray) is not ""Double()""" )
assert( TypeName(curArray) = "Currency()", "TypeName(curArray) is not ""Currency()""" )
assert( TypeName(datArray) = "Date()" , "TypeName(datArray) is not ""Date()""" )
assert( TypeName(strArray) = "String()" , "TypeName(strArray) is not ""String()""" )
assert( TypeName(objArray) = "Object()" , "TypeName(objArray) is not ""Object()""" )
assert( TypeName(boolArray) = "Boolean()" , "TypeName(boolArray) is not ""Boolean()""" )
assert( TypeName(varArray) = "Variant()" , "TypeName(varArray) is not ""Variant()""" )
assert( TypeName(byteArray) = "Byte()" , "TypeName(byteArray) is not ""Byte()""" )
If FailedAssertion Then
doUnitTest = "test_typename_method.vb failed" + messages
Exit Function
EndIf
doUnitTest = "OK" ' All checks passed
End Function
Sub DEV_TEST : Print doUnitTest : End Sub
Dim failedAssertion As Boolean, messages As String
Sub assert(expression As Boolean, errMessage As String)
if ( Not expression ) Then
messages = messages + Chr(10) + ErrMessage
failedAssertion = True
EndIf
End Sub
|