2 ' Copyright 2011 Jacek Caban for CodeWeavers
4 ' This library is free software; you can redistribute it and/or
5 ' modify it under the terms of the GNU Lesser General Public
6 ' License as published by the Free Software Foundation; either
7 ' version 2.1 of the License, or (at your option) any later version.
9 ' This library is distributed in the hope that it will be useful,
10 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 ' Lesser General Public License for more details.
14 ' You should have received a copy of the GNU Lesser General Public
15 ' License along with this library; if not, write to the Free Software
16 ' Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
26 Call ok(vbSunday
= 1, "vbSunday = " & vbSunday
)
27 Call ok(getVT(vbSunday
) = "VT_I2", "getVT(vbSunday) = " & getVT(vbSunday
))
28 Call ok(vbMonday
= 2, "vbMonday = " & vbMonday
)
29 Call ok(getVT(vbMonday
) = "VT_I2", "getVT(vbMonday) = " & getVT(vbMonday
))
30 Call ok(vbTuesday
= 3, "vbTuesday = " & vbTuesday
)
31 Call ok(getVT(vbTuesday
) = "VT_I2", "getVT(vbTuesday) = " & getVT(vbTuesday
))
32 Call ok(vbWednesday
= 4, "vbWednesday = " & vbWednesday
)
33 Call ok(getVT(vbWednesday
) = "VT_I2", "getVT(vbWednesday) = " & getVT(vbWednesday
))
34 Call ok(vbThursday
= 5, "vbThursday = " & vbThursday
)
35 Call ok(getVT(vbThursday
) = "VT_I2", "getVT(vbThursday) = " & getVT(vbThursday
))
36 Call ok(vbFriday
= 6, "vbFriday = " & vbFriday
)
37 Call ok(getVT(vbFriday
) = "VT_I2", "getVT(vbFriday) = " & getVT(vbFriday
))
38 Call ok(vbSaturday
= 7, "vbSaturday = " & vbSaturday
)
39 Call ok(getVT(vbSaturday
) = "VT_I2", "getVT(vbSaturday) = " & getVT(vbSaturday
))
41 Sub TestConstant(name
, val
, exval
)
42 Call ok(val
= exval
, name
& " = " & val
& " expected " & exval
)
43 Call ok(getVT(val
) = "VT_I2*", "getVT(" & name
& ") = " & getVT(val
))
46 Sub TestConstantI4(name
, val
, exval
)
47 Call ok(val
= exval
, name
& " = " & val
& " expected " & exval
)
48 Call ok(getVT(val
) = "VT_I4*", "getVT(" & name
& ") = " & getVT(val
))
51 Sub TestConstantBSTR(name
, val
, exval
)
52 Call ok(val
= exval
, name
& " = " & val
& " expected " & exval
)
53 Call ok(getVT(val
) = "VT_BSTR*", "getVT(" & name
& ") = " & getVT(val
))
56 TestConstant
"vbEmpty", vbEmpty
, 0
57 TestConstant
"vbNull", vbNull
, 1
58 TestConstant
"vbLong", vbLong
, 3
59 TestConstant
"vbSingle", vbSingle
, 4
60 TestConstant
"vbDouble", vbDouble
, 5
61 TestConstant
"vbCurrency", vbCurrency
, 6
62 TestConstant
"vbDate", vbDate
, 7
63 TestConstant
"vbString", vbString
, 8
64 TestConstant
"vbObject", vbObject
, 9
65 TestConstant
"vbError", vbError
, 10
66 TestConstant
"vbBoolean", vbBoolean
, 11
67 TestConstant
"vbVariant", vbVariant
, 12
68 TestConstant
"vbDataObject", vbDataObject
, 13
69 TestConstant
"vbDecimal", vbDecimal
, 14
70 TestConstant
"vbByte", vbByte
, 17
71 TestConstant
"vbArray", vbArray
, 8192
72 TestConstant
"vbCritical", vbCritical
, 16
73 TestConstant
"vbQuestion", vbQuestion
, 32
74 TestConstant
"vbExclamation", vbExclamation
, 48
75 TestConstant
"vbInformation", vbInformation
, 64
76 TestConstant
"vbDefaultButton1", vbDefaultButton1
, 0
77 TestConstant
"vbDefaultButton2", vbDefaultButton2
, 256
78 TestConstant
"vbDefaultButton3", vbDefaultButton3
, 512
79 TestConstant
"vbDefaultButton4", vbDefaultButton4
, 768
80 TestConstant
"vbApplicationModal", vbApplicationModal
, 0
81 TestConstant
"vbSystemModal", vbSystemModal
, 4096
82 TestConstant
"vbUseSystem", vbUseSystem
, 0
83 TestConstant
"vbUseSystemDayOfWeek", vbUseSystemDayOfWeek
, 0
84 TestConstant
"vbFirstJan1", vbFirstJan1
, 1
85 TestConstant
"vbFirstFourDays", vbFirstFourDays
, 2
86 TestConstant
"vbFirstFullWeek", vbFirstFullWeek
, 3
87 TestConstant
"vbTrue", vbTrue
, -1
88 TestConstant
"vbFalse", vbFalse
, 0
89 TestConstantI4
"vbMsgBoxHelpButton", vbMsgBoxHelpButton
, 16384
90 TestConstantI4
"vbMsgBoxSetForeground", vbMsgBoxSetForeground
, 65536
91 TestConstantI4
"vbMsgBoxRight", vbMsgBoxRight
, 524288
92 TestConstantI4
"vbMsgBoxRtlReading", vbMsgBoxRtlReading
, 1048576
93 TestConstant
"vbUseDefault", vbUseDefault
, -2
94 TestConstant
"vbBinaryCompare", vbBinaryCompare
, 0
95 TestConstant
"vbTextCompare", vbTextCompare
, 1
96 TestConstant
"vbDatabaseCompare", vbDatabaseCompare
, 2
97 TestConstant
"vbGeneralDate", vbGeneralDate
, 0
98 TestConstant
"vbLongDate", vbLongDate
, 1
99 TestConstant
"vbShortDate", vbShortDate
, 2
100 TestConstant
"vbLongTime", vbLongTime
, 3
101 TestConstant
"vbShortTime", vbShortTime
, 4
102 TestConstantI4
"vbObjectError", vbObjectError
, &h80040000
&
103 TestConstantI4
"vbBlack", vbBlack
, 0
104 TestConstantI4
"vbBlue", vbBlue
, &hff0000
&
105 TestConstantI4
"vbCyan", vbCyan
, &hffff00
&
106 TestConstantI4
"vbGreen", vbGreen
, &h00ff00
&
107 TestConstantI4
"vbMagenta", vbMagenta
, &hff00ff
&
108 TestConstantI4
"vbRed", vbRed
, &h0000ff
&
109 TestConstantI4
"vbWhite", vbWhite
, &hffffff
&
110 TestConstantI4
"vbYellow", vbYellow
, &h00ffff
&
111 TestConstantBSTR
"vbCr", vbCr
, Chr(13)
112 TestConstantBSTR
"vbCrLf", vbCrLf
, Chr(13)&Chr(10)
113 TestConstantBSTR
"vbNewLine", vbNewLine
, Chr(13)&Chr(10)
114 TestConstantBSTR
"vbFormFeed", vbFormFeed
, Chr(12)
115 TestConstantBSTR
"vbLf", vbLf
, Chr(10)
116 TestConstantBSTR
"vbNullChar", vbNullChar
, Chr(0)
117 TestConstantBSTR
"vbNullString", vbNullString
, ""
118 TestConstantBSTR
"vbTab", vbTab
, chr(9)
119 TestConstantBSTR
"vbVerticalTab", vbVerticalTab
, chr(11)
121 Sub TestCStr(arg
, exval
)
124 Call ok(getVT(x
) = "VT_BSTR*", "getVT(x) = " & getVT(x
))
125 Call ok(x
= exval
, "CStr(" & arg
& ") = " & x
)
128 TestCStr
"test", "test"
130 if isEnglishLang
then TestCStr
3.5, "3.5"
131 if isEnglishLang
then TestCStr
true, "True"
133 Call ok(getVT(Chr(120)) = "VT_BSTR", "getVT(Chr(120)) = " & getVT(Chr(120)))
134 Call ok(getVT(Chr(255)) = "VT_BSTR", "getVT(Chr(255)) = " & getVT(Chr(255)))
135 Call ok(Chr(120) = "x", "Chr(120) = " & Chr(120))
136 Call ok(Chr(0) <> "", "Chr(0) = """"")
137 Call ok(Chr(120.5) = "x", "Chr(120.5) = " & Chr(120.5))
138 Call ok(Chr(119.5) = "x", "Chr(119.5) = " & Chr(119.5))
139 Call ok(Chr("120") = "x", "Chr(""120"") = " & Chr("120"))
144 if isEnglishLang
then
147 call ok(Err
.number
= 5, "Err.number = " & Err
.number
)
151 call ok(Err
.number
= 5, "Err.number = " & Err
.number
)
156 call ok(Err
.number
= 5, "Err.number = " & Err
.number
)
160 call ok(Err
.number
= 5, "Err.number = " & Err
.number
)
165 Call ok(isObject(new EmptyClass
), "isObject(new EmptyClass) is not true?")
166 Set x
= new EmptyClass
167 Call ok(isObject(x
), "isObject(x) is not true?")
168 Call ok(isObject(Nothing), "isObject(Nothing) is not true?")
169 Call ok(not isObject(true), "isObject(true) is true?")
170 Call ok(not isObject(4), "isObject(4) is true?")
171 Call ok(not isObject("x"), "isObject(""x"") is true?")
172 Call ok(not isObject(Null
), "isObject(Null) is true?")
174 Call ok(not isEmpty(new EmptyClass
), "isEmpty(new EmptyClass) is true?")
175 Set x
= new EmptyClass
176 Call ok(not isEmpty(x
), "isEmpty(x) is true?")
178 Call ok(isEmpty(x
), "isEmpty(x) is not true?")
179 Call ok(isEmpty(empty
), "isEmpty(empty) is not true?")
180 Call ok(not isEmpty(Nothing), "isEmpty(Nothing) is not true?")
181 Call ok(not isEmpty(true), "isEmpty(true) is true?")
182 Call ok(not isEmpty(4), "isEmpty(4) is true?")
183 Call ok(not isEmpty("x"), "isEmpty(""x"") is true?")
184 Call ok(not isEmpty(Null
), "isEmpty(Null) is true?")
186 Call ok(not isNull(new EmptyClass
), "isNull(new EmptyClass) is true?")
187 Set x
= new EmptyClass
188 Call ok(not isNull(x
), "isNull(x) is true?")
190 Call ok(isNull(x
), "isNull(x) is not true?")
191 Call ok(not isNull(empty
), "isNull(empty) is true?")
192 Call ok(not isNull(Nothing), "isNull(Nothing) is true?")
193 Call ok(not isNull(true), "isNull(true) is true?")
194 Call ok(not isNull(4), "isNull(4) is true?")
195 Call ok(not isNull("x"), "isNull(""x"") is true?")
196 Call ok(isNull(Null
), "isNull(Null) is not true?")
198 Call ok(getVT(err
) = "VT_DISPATCH", "getVT(err) = " & getVT(err
))
201 Call ok(hex(x
) = ex
, "hex(" & x
& ") = " & hex(x
) & " expected " & ex
)
207 TestHex
&hdeadbeef
&, "DEADBEEF"
210 TestHex
-934859845, "C8472BBB"
213 Call ok(getVT(hex(null
)) = "VT_NULL", "getVT(hex(null)) = " & getVT(hex(null
)))
214 Call ok(getVT(hex(empty
)) = "VT_BSTR", "getVT(hex(empty)) = " & getVT(hex(empty
)))
216 x
= InStr(1, "abcd", "bc")
217 Call ok(x
= 2, "InStr returned " & x
)
219 x
= InStr("abcd", "bc")
220 Call ok(x
= 2, "InStr returned " & x
)
222 x
= InStr("abc", "bc")
223 Call ok(x
= 2, "InStr returned " & x
)
225 x
= InStr("abcbc", "bc")
226 Call ok(x
= 2, "InStr returned " & x
)
228 x
= InStr("bcabc", "bc")
229 Call ok(x
= 1, "InStr returned " & x
)
231 x
= InStr(3, "abcd", "bc")
232 Call ok(x
= 0, "InStr returned " & x
)
234 x
= InStr("abcd", "bcx")
235 Call ok(x
= 0, "InStr returned " & x
)
237 x
= InStr(5, "abcd", "bc")
238 Call ok(x
= 0, "InStr returned " & x
)
242 Call ok(x
= 2, "InStr returned " & x
)
244 x
= InStr("abcd", null
)
245 Call ok(isNull(x
), "InStr returned " & x
)
246 x
= InStr(null
, "abcd")
247 Call ok(isNull(x
), "InStr returned " & x
)
248 x
= InStr(2, null
, "abcd")
249 Call ok(isNull(x
), "InStr returned " & x
)
251 x
= InStr(1.3, "abcd", "bc")
252 Call ok(x
= 2, "InStr returned " & x
)
254 x
= InStr(2.3, "abcd", "bc")
255 Call ok(x
= 2, "InStr returned " & x
)
257 x
= InStr(2.6, "abcd", "bc")
258 Call ok(x
= 0, "InStr returned " & x
)
260 Sub TestMid(str
, start
, len
, ex
)
261 x
= Mid(str
, start
, len
)
262 Call ok(x
= ex
, "Mid(" & str
& ", " & start
& ", " & len
& ") = " & x
& " expected " & ex
)
265 Sub TestMid2(str
, start
, ex
)
267 Call ok(x
= ex
, "Mid(" & str
& ", " & start
& ") = " & x
& " expected " & ex
)
270 TestMid
"test", 2, 2, "es"
271 TestMid
"test", 2, 4, "est"
272 TestMid
"test", 1, 2, "te"
273 TestMid
"test", 1, 0, ""
274 TestMid
"test", 1, 0, ""
275 TestMid
"test", 5, 2, ""
276 TestMid2
"test", 1, "test"
277 TestMid2
"test", 2, "est"
278 TestMid2
"test", 4, "t"
279 TestMid2
"test", 5, ""
281 Sub TestUCase(str
, ex
)
283 Call ok(x
= ex
, "UCase(" & str
& ") = " & x
& " expected " & ex
)
286 TestUCase
"test", "TEST"
287 TestUCase
"123aBC?", "123ABC?"
290 if isEnglishLang
then TestUCase
true, "TRUE"
291 TestUCase
0.123, doubleAsString(0.123)
293 Call ok(getVT(UCase(Null
)) = "VT_NULL", "getVT(UCase(Null)) = " & getVT(UCase(Null
)))
295 Sub TestLCase(str
, ex
)
297 Call ok(x
= ex
, "LCase(" & str
& ") = " & x
& " expected " & ex
)
300 TestLCase
"test", "test"
301 TestLCase
"123aBC?", "123abc?"
304 if isEnglishLang
then TestLCase
true, "true"
305 TestLCase
0.123, doubleAsString(0.123)
307 Call ok(getVT(LCase(Null
)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null
)))
309 Call ok(Len("abc") = 3, "Len(abc) = " & Len("abc"))
310 Call ok(Len("") = 0, "Len() = " & Len(""))
311 Call ok(Len(1) = 1, "Len(1) = " & Len(1))
312 Call ok(isNull(Len(null
)), "Len(null) = " & Len(null
))
313 Call ok(Len(empty
) = 0, "Len(empty) = " & Len(empty
))
315 Call ok(Space(1) = " ", "Space(1) = " & Space(1) & """")
316 Call ok(Space(0) = "", "Space(0) = " & Space(0) & """")
317 Call ok(Space(false) = "", "Space(false) = " & Space(false) & """")
318 Call ok(Space(5) = " ", "Space(5) = " & Space(5) & """")
319 Call ok(Space(5.2) = " ", "Space(5.2) = " & Space(5.2) & """")
320 Call ok(Space(5.8) = " ", "Space(5.8) = " & Space(5.8) & """")
321 Call ok(Space(5.5) = " ", "Space(5.5) = " & Space(5.5) & """")
322 Call ok(Space(4.5) = " ", "Space(4.5) = " & Space(4.5) & """")
323 Call ok(Space(0.5) = "", "Space(0.5) = " & Space(0.5) & """")
324 Call ok(Space(1.5) = " ", "Space(1.5) = " & Space(1.5) & """")
325 Call ok(Space("1") = " ", "Space(""1"") = " & Space("1") & """")
327 Sub TestStrReverse(str
, ex
)
328 Call ok(StrReverse(str
) = ex
, "StrReverse(" & str
& ") = " & StrReverse(str
))
331 TestStrReverse
"test", "tset"
332 TestStrReverse
"", ""
333 TestStrReverse
123, "321"
334 if isEnglishLang
then TestStrReverse
true, "eurT"
336 Sub TestLeft(str
, len
, ex
)
337 Call ok(Left(str
, len
) = ex
, "Left(" & str
& ", " & len
& ") = " & Left(str
, len
))
340 TestLeft
"test", 2, "te"
341 TestLeft
"test", 5, "test"
342 TestLeft
"test", 0, ""
343 TestLeft
123, 2, "12"
344 TestLeft
"123456", 1.5, "12"
345 TestLeft
"123456", 2.5, "12"
346 TestLeft
"test", "2", "te"
347 if isEnglishLang
then TestLeft
true, 2, "Tr"
349 Sub TestRight(str
, len
, ex
)
350 Call ok(Right(str
, len
) = ex
, "Right(" & str
& ", " & len
& ") = " & Right(str
, len
))
353 TestRight
"test", 2, "st"
354 TestRight
"test", 5, "test"
355 TestRight
"test", 0, ""
356 TestRight
123, 2, "23"
357 if isEnglishLang
then TestRight
true, 2, "ue"
359 Sub TestTrim(str
, exstr
)
360 Call ok(Trim(str
) = exstr
, "Trim(" & str
& ") = " & Trim(str
))
363 TestTrim
" test ", "test"
364 TestTrim
"test ", "test"
365 TestTrim
" test", "test"
366 TestTrim
"test", "test"
369 if isEnglishLang
then TestTrim
true, "True"
371 Sub TestLTrim(str
, exstr
)
372 Call ok(LTrim(str
) = exstr
, "LTrim(" & str
& ") = " & LTrim(str
))
375 TestLTrim
" test ", "test "
376 TestLTrim
"test ", "test "
377 TestLTrim
" test", "test"
378 TestLTrim
"test", "test"
381 if isEnglishLang
then TestLTrim
true, "True"
383 Sub TestRound(val
, exval
, vt
)
384 Call ok(Round(val
) = exval
, "Round(" & val
& ") = " & Round(val
))
385 Call ok(getVT(Round(val
)) = vt
, "getVT(Round(" & val
& ")) = " & getVT(Round(val
)))
388 Sub TestRTrim(str
, exstr
)
389 Call ok(RTrim(str
) = exstr
, "RTrim(" & str
& ") = " & RTrim(str
))
392 TestRTrim
" test ", " test"
393 TestRTrim
"test ", "test"
394 TestRTrim
" test", " test"
395 TestRTrim
"test", "test"
398 if isEnglishLang
then TestRTrim
true, "True"
400 TestRound
3, 3, "VT_I2"
401 TestRound
3.3, 3, "VT_R8"
402 TestRound
3.8, 4, "VT_R8"
403 TestRound
3.5, 4, "VT_R8"
404 TestRound
-3.3, -3, "VT_R8"
405 TestRound
-3.5, -4, "VT_R8"
406 TestRound
"2", 2, "VT_R8"
407 TestRound
true, true, "VT_BOOL"
408 TestRound
false, false, "VT_BOOL"
410 if isEnglishLang
then
411 Call ok(WeekDayName(1) = "Sunday", "WeekDayName(1) = " & WeekDayName(1))
412 Call ok(WeekDayName(3) = "Tuesday", "WeekDayName(3) = " & WeekDayName(3))
413 Call ok(WeekDayName(7) = "Saturday", "WeekDayName(7) = " & WeekDayName(7))
414 Call ok(WeekDayName(1.1) = "Sunday", "WeekDayName(1.1) = " & WeekDayName(1.1))
415 Call ok(WeekDayName(1, false) = "Sunday", "WeekDayName(1, false) = " & WeekDayName(1, false))
416 Call ok(WeekDayName(1, true) = "Sun", "WeekDayName(1, true) = " & WeekDayName(1, true))
417 Call ok(WeekDayName(1, 10) = "Sun", "WeekDayName(1, 10) = " & WeekDayName(1, 10))
418 Call ok(WeekDayName(1, true, 0) = "Sun", "WeekDayName(1, true, 0) = " & WeekDayName(1, true, 0))
419 Call ok(WeekDayName(1, true, 2) = "Mon", "WeekDayName(1, true, 2) = " & WeekDayName(1, true, 2))
420 Call ok(WeekDayName(1, true, 2.5) = "Mon", "WeekDayName(1, true, 2.5) = " & WeekDayName(1, true, 2.5))
421 Call ok(WeekDayName(1, true, 1.5) = "Mon", "WeekDayName(1, true, 1.5) = " & WeekDayName(1, true, 1.5))
422 Call ok(WeekDayName(1, true, 7) = "Sat", "WeekDayName(1, true, 7) = " & WeekDayName(1, true, 7))
423 Call ok(WeekDayName(1, true, 7.1) = "Sat", "WeekDayName(1, true, 7.1) = " & WeekDayName(1, true, 7.1))
425 Call ok(MonthName(1) = "January", "MonthName(1) = " & MonthName(1))
426 Call ok(MonthName(12) = "December", "MonthName(12) = " & MonthName(12))
427 Call ok(MonthName(1, 0) = "January", "MonthName(1, 0) = " & MonthName(1, 0))
428 Call ok(MonthName(12, false) = "December", "MonthName(12, false) = " & MonthName(12, false))
429 Call ok(MonthName(1, 10) = "Jan", "MonthName(1, 10) = " & MonthName(1, 10))
430 Call ok(MonthName(12, true) = "Dec", "MonthName(12, true) = " & MonthName(12, true))
433 Call ok(getVT(Now()) = "VT_DATE", "getVT(Now()) = " & getVT(Now()))
435 Call ok(vbOKOnly
= 0, "vbOKOnly = " & vbOKOnly
)
436 Call ok(getVT(vbOKOnly
) = "VT_I2", "getVT(vbOKOnly) = " & getVT(vbOKOnly
))
437 Call ok(vbOKCancel
= 1, "vbOKCancel = " & vbOKCancel
)
438 Call ok(getVT(vbOKCancel
) = "VT_I2", "getVT(vbOKCancel) = " & getVT(vbOKCancel
))
439 Call ok(vbAbortRetryIgnore
= 2, "vbAbortRetryIgnore = " & vbAbortRetryIgnore
)
440 Call ok(getVT(vbAbortRetryIgnore
) = "VT_I2", "getVT(vbAbortRetryIgnore) = " & getVT(vbAbortRetryIgnore
))
441 Call ok(vbYesNoCancel
= 3, "vbYesNoCancel = " & vbYesNoCancel
)
442 Call ok(getVT(vbYesNoCancel
) = "VT_I2", "getVT(vbYesNoCancel) = " & getVT(vbYesNoCancel
))
443 Call ok(vbYesNo
= 4, "vbYesNo = " & vbYesNo
)
444 Call ok(getVT(vbYesNo
) = "VT_I2", "getVT(vbYesNo) = " & getVT(vbYesNo
))
445 Call ok(vbRetryCancel
= 5, "vbRetryCancel = " & vbRetryCancel
)
446 Call ok(getVT(vbRetryCancel
) = "VT_I2", "getVT(vbRetryCancel) = " & getVT(vbRetryCancel
))
448 Call ok(vbOK
= 1, "vbOK = " & vbOK
)
449 Call ok(getVT(vbOK
) = "VT_I2", "getVT(vbOK) = " & getVT(vbOK
))
450 Call ok(vbCancel
= 2, "vbCancel = " & vbCancel
)
451 Call ok(getVT(vbCancel
) = "VT_I2", "getVT(vbCancel) = " & getVT(vbCancel
))
452 Call ok(vbAbort
= 3, "vbAbort = " & vbAbort
)
453 Call ok(getVT(vbAbort
) = "VT_I2", "getVT(vbAbort) = " & getVT(vbAbort
))
454 Call ok(vbRetry
= 4, "vbRetry = " & vbRetry
)
455 Call ok(getVT(vbRetry
) = "VT_I2", "getVT(vbRetry) = " & getVT(vbRetry
))
456 Call ok(vbIgnore
= 5, "vbIgnore = " & vbIgnore
)
457 Call ok(getVT(vbIgnore
) = "VT_I2", "getVT(vbIgnore) = " & getVT(vbIgnore
))
458 Call ok(vbYes
= 6, "vbYes = " & vbYes
)
459 Call ok(getVT(vbYes
) = "VT_I2", "getVT(vbYes) = " & getVT(vbYes
))
460 Call ok(vbNo
= 7, "vbNo = " & vbNo
)
461 Call ok(getVT(vbNo
) = "VT_I2", "getVT(vbNo) = " & getVT(vbNo
))
463 Call ok(CInt(-36.75) = -37, "CInt(-36.75) = " & CInt(-36.75))
464 Call ok(getVT(CInt(-36.75)) = "VT_I2", "getVT(CInt(-36.75)) = " & getVT(CInt(-36.75)))
465 Call ok(CInt(-36.50) = -36, "CInt(-36.50) = " & CInt(-36.50))
466 Call ok(getVT(CInt(-36.50)) = "VT_I2", "getVT(CInt(-36.50)) = " & getVT(CInt(-36.50)))
467 Call ok(CInt(-36.25) = -36, "CInt(-36.25) = " & CInt(-36.25))
468 Call ok(getVT(CInt(-36.25)) = "VT_I2", "getVT(CInt(-36.25)) = " & getVT(CInt(-36.25)))
469 Call ok(CInt(-36) = -36, "CInt(-36) = " & CInt(-36))
470 Call ok(getVT(CInt(-36)) = "VT_I2", "getVT(CInt(-36)) = " & getVT(CInt(-36)))
471 Call ok(CInt(0) = 0, "CInt(0) = " & CInt(0))
472 Call ok(getVT(CInt(0)) = "VT_I2", "getVT(CInt(0)) = " & getVT(CInt(0)))
473 Call ok(CInt(0.0) = 0, "CInt(0.0) = " & CInt(0))
474 Call ok(getVT(CInt(0.0)) = "VT_I2", "getVT(CInt(0.0)) = " & getVT(CInt(0.0)))
475 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0))
476 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
477 Call ok(CInt(36) = 36, "CInt(36) = " & CInt(36))
478 Call ok(getVT(CInt(36)) = "VT_I2", "getVT(CInt(36)) = " & getVT(CInt(36)))
479 Call ok(CInt(36.25) = 36, "CInt(36.25) = " & CInt(36.25))
480 Call ok(getVT(CInt(36.25)) = "VT_I2", "getVT(CInt(36.25)) = " & getVT(CInt(36.25)))
481 Call ok(CInt(36.50) = 36, "CInt(36.50) = " & CInt(36.50))
482 Call ok(getVT(CInt(36.50)) = "VT_I2", "getVT(CInt(36.50)) = " & getVT(CInt(36.50)))
483 Call ok(CInt(36.75) = 37, "CInt(36.75) = " & CInt(36.75))
484 Call ok(getVT(CInt(36.75)) = "VT_I2", "getVT(CInt(36.75)) = " & getVT(CInt(36.75)))
487 Call ok(CBool(5) = true, "CBool(5) = " & CBool(5))
488 Call ok(getVT(CBool(5)) = "VT_BOOL", "getVT(CBool(5)) = " & getVT(CBool(5)))
489 Call ok(CBool(0) = false, "CBool(0) = " & CBool(0))
490 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
491 Call ok(CBool(-5) = true, "CBool(-5) = " & CBool(-5))
492 Call ok(getVT(CBool(-5)) = "VT_BOOL", "getVT(CBool(-5)) = " & getVT(CBool(-5)))
494 Sub testCBoolError(strings
, error_num
)
499 Call ok(Err
.number
= error_num
, "Err.number = " & Err
.number
)
505 Public default
Property Get defprop
511 Set MyObject
= New ValClass
513 Call ok(CBool(Empty
) = False, "CBool(Empty) = " & CBool(Empty
))
514 Call ok(getVT(CBool(Empty
)) = "VT_BOOL", "getVT(CBool(Empty)) = " & getVT(CBool(Empty
)))
515 Call ok(CBool(1) = True, "CBool(1) = " & CBool(1))
516 Call ok(getVT(CBool(1)) = "VT_BOOL", "getVT(CBool(1)) = " & getVT(CBool(1)))
517 Call ok(CBool(0) = False, "CBool(0) = " & CBool(0))
518 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
519 Call ok(CBool(-0.56) = True, "CBool(-0.56) = " & CBool(-0.56))
520 Call ok(getVT(CBool(-0.56)) = "VT_BOOL", "getVT(CBool(-0.56)) = " & getVT(CBool(-0.56)))
521 Call testCBoolError("", 13)
522 Call ok(CBool("0") = False, "CBool(""0"") = " & CBool("0"))
523 Call ok(getVT(CBool("0")) = "VT_BOOL", "getVT(CBool(""0"")) = " & getVT(CBool("0")))
524 If isEnglishLang
Then
525 Call ok(CBool("0.1") = True, "CBool(""0.1"") = " & CBool("0.1"))
526 Call ok(getVT(CBool("0.1")) = "VT_BOOL", "getVT(CBool(""0.1"")) = " & getVT(CBool("0.1")))
528 Call ok(CBool("true") = True, "CBool(""true"") = " & CBool("true"))
529 Call ok(getVT(CBool("true")) = "VT_BOOL", "getVT(CBool(""true"")) = " & getVT(CBool("true")))
530 Call ok(CBool("false") = False, "CBool(""false"") = " & CBool("false"))
531 Call ok(getVT(CBool("false")) = "VT_BOOL", "getVT(CBool(""false"")) = " & getVT(CBool("false")))
532 Call ok(CBool("TRUE") = True, "CBool(""TRUE"") = " & CBool("TRUE"))
533 Call ok(getVT(CBool("TRUE")) = "VT_BOOL", "getVT(CBool(""TRUE"")) = " & getVT(CBool("TRUE")))
534 Call ok(CBool("FALSE") = False, "CBool(""FALSE"") = " & CBool("FALSE"))
535 Call ok(getVT(CBool("FALSE")) = "VT_BOOL", "getVT(CBool(""FALSE"")) = " & getVT(CBool("FALSE")))
536 Call ok(CBool("#TRUE#") = True, "CBool(""#TRUE#"") = " & CBool("#TRUE#"))
537 Call ok(getVT(CBool("#TRUE#")) = "VT_BOOL", "getVT(CBool(""#TRUE#"")) = " & getVT(CBool("#TRUE#")))
538 Call ok(CBool("#FALSE#") = False, "CBool(""#FALSE#"") = " & CBool("#FALSE#"))
539 Call ok(getVT(CBool("#FALSE#")) = "VT_BOOL", "getVT(CBool(""#FALSE#"")) = " & getVT(CBool("#FALSE#")))
540 Call ok(CBool(MyObject
) = False, "CBool(MyObject) = " & CBool(MyObject
))
541 Call ok(getVT(CBool(MyObject
)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject
)))
543 Call ok(CBool(MyObject
) = True, "CBool(MyObject) = " & CBool(MyObject
))
544 Call ok(getVT(CBool(MyObject
)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject
)))
546 Call ok(CBool(MyObject
) = False, "CBool(MyObject) = " & CBool(MyObject
))
547 Call ok(getVT(CBool(MyObject
)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject
)))
549 Sub testCByteError(strings
, error_num1
,error_num2
)
555 Call ok(Err
.number
= error_num1
, "Err.number = " & Err
.number
)
559 Call ok(Err
.number
= error_num2
, "Err.number = " & Err
.number
)
562 Call ok(CByte(Empty
) = 0, "CByte(Empty) = " & CByte(Empty
))
563 Call ok(getVT(CByte(Empty
)) = "VT_UI1", "getVT(CByte(Empty)) = " & getVT(CByte(Empty
)))
564 Call ok(CByte(255) = 255, "CByte(255) = " & CByte(255))
565 Call ok(getVT(CByte(255)) = "VT_UI1", "getVT(CByte(255)) = " & getVT(CByte(255)))
566 Call ok(CByte(255.49) = 255, "CByte(255.49) = " & CByte(255.49))
567 Call ok(getVT(CByte(255.49)) = "VT_UI1", "getVT(CByte(255.49)) = " & getVT(CByte(255.49)))
568 Call testCByteError(1, 0, 458)
569 Call testCByteError("", 13, 13)
570 Call testCByteError("-1", 6, 6)
571 Call testCByteError("258", 6, 6)
572 Call testCByteError("TRUE", 13, 13)
573 Call testCByteError("FALSE", 13, 13)
574 Call testCByteError("#TRue#", 13, 13)
575 Call testCByteError("#fAlSE#", 13, 13)
576 If isEnglishLang
Then
577 Call ok(CByte("-0.5") = 0, "CByte(""-0.5"") = " & CByte("-0.5"))
578 Call ok(getVT(CByte("-0.5")) = "VT_UI1", "getVT(CByte(""-0.5"")) = " & getVT(CByte("-0.5")))
580 Call ok(CByte(True) = 255, "CByte(True) = " & CByte(True))
581 Call ok(getVT(CByte(True)) = "VT_UI1", "getVT(CByte(True)) = " & getVT(CByte(True)))
582 Call ok(CByte(False) = 0, "CByte(False) = " & CByte(False))
583 Call ok(getVT(CByte(False)) = "VT_UI1", "getVT(CByte(False)) = " & getVT(CByte(False)))
584 Call ok(CByte(MyObject
) = 0, "CByte(MyObject) = " & CByte(MyObject
))
585 Call ok(getVT(CByte(MyObject
)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject
)))
587 Call ok(CByte(MyObject
) = 1, "CByte(MyObject) = " & CByte(MyObject
))
588 Call ok(getVT(CByte(MyObject
)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject
)))
590 Call ok(CByte(MyObject
) = 0, "CByte(MyObject) = " & CByte(MyObject
))
591 Call ok(getVT(CByte(MyObject
)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject
)))
593 Sub testCCurError(strings
, error_num1
, error_num2
)
599 Call ok(Err
.number
= error_num1
, "Err.number = " & Err
.number
)
603 Call ok(Err
.number
= error_num2
, "Err.number = " & Err
.number
)
606 Call ok(CCur(Empty
) = 0, "CCur(Empty) = " & CCur(Empty
))
607 Call ok(getVT(CCur(Empty
)) = "VT_CY", "getVT(CCur(Empty)) = " & getVT(CCur(Empty
)))
608 Call ok(CCur(-32768) = -32768, "CCur(-32768) = " & CCur(-32768))
609 Call ok(getVT(CCur(-32768)) = "VT_CY", "getVT(CCur(-32768)) = " & getVT(CCur(-32768)))
610 Call ok(CCur(32768) = 32768, "CCur(32768) = " & CCur(32768))
611 Call ok(getVT(CCur(32768)) = "VT_CY", "getVT(CCur(32768)) = " & getVT(CCur(32768)))
612 Call ok(CCur(0.000149) = 0.0001, "CCur(0.000149) = " & CCur(0.000149))
613 Call ok(getVT(CCur(0.000149)) = "VT_CY", "getVT(CCur(0.000149)) = " & getVT(CCur(0.000149)))
614 Call ok(CCur(2147483647.99) = 2147483647.99, "CCur(2147483647.99) = " & CCur(2147483647.99))
615 Call ok(getVT(CCur(2147483647.99)) = "VT_CY", "getVT(CCur(2147483647.99)) = " & getVT(CCur(2147483647.99)))
616 Call ok(CCur("-1") = -1, "CCur(""-1"") = " & CCur("-1"))
617 Call ok(getVT(CCur("-1")) = "VT_CY", "getVT(CCur(""-1"")) = " & getVT(CCur("-1")))
618 If isEnglishLang
Then
619 Call ok(CCur("-0.5") = -0.5, "CCur(""-0.5"") = " & CCur("-0.5"))
620 Call ok(getVT(CCur("-0.5")) = "VT_CY", "getVT(CCur(""-0.5"")) = " & getVT(CCur("-0.5")))
622 Call testCCurError("", 13, 13)
623 Call testCCurError("-1", 0, 458)
624 Call testCCurError("TRUE", 13, 13)
625 Call testCCurError("FALSE", 13, 13)
626 Call testCCurError("#TRue#", 13, 13)
627 Call testCCurError("#fAlSE#", 13, 13)
628 Call testCCurError(1, 0, 458)
629 Call ok(CCur(True) = -1, "CCur(True) = " & CCur(True))
630 Call ok(getVT(CCur(True)) = "VT_CY", "getVT(CCur(True)) = " & getVT(CCur(True)))
631 Call ok(CCur(False) = 0, "CCur(False) = " & CCur(False))
632 Call ok(getVT(CCur(False)) = "VT_CY", "getVT(CCur(False)) = " & getVT(CCur(False)))
634 Call ok(CCur(MyObject
) = 0.1, "CCur(MyObject) = " & CCur(MyObject
))
635 Call ok(getVT(CCur(MyObject
)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject
)))
637 Call ok(CCur(MyObject
) = 0, "CCur(MyObject) = " & CCur(MyObject
))
638 Call ok(getVT(CCur(MyObject
)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject
)))
640 Sub testCDblError(strings
, error_num1
, error_num2
)
646 Call ok(Err
.number
= error_num1
, "Err.number = " & Err
.number
)
650 Call ok(Err
.number
= error_num2
, "Err.number = " & Err
.number
)
653 Call ok(CDbl(Empty
) = 0, "CDbl(Empty) = " & CDbl(Empty
))
654 Call ok(getVT(CDbl(Empty
)) = "VT_R8", "getVT(CDbl(Empty)) = " & getVT(CDbl(Empty
)))
655 Call ok(CDbl(CByte(0)) = 0, "CDbl(CByte(0)) = " & CDbl(CByte(0)))
656 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
657 Call ok(CDbl(CCur(0)) = 0, "CDbl(CCur(0)) = " & CDbl(CCur(0)))
658 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
659 Call ok(CDbl(0) = 0, "CDbl(0) = " & CDbl(0))
660 Call ok(getVT(CDbl(0)) = "VT_R8", "getVT(CDbl(0)) = " & getVT(CDbl(0)))
661 Call ok(CDbl(32768) = 32768, "CDbl(32768) = " & CDbl(32768))
662 Call ok(getVT(CDbl(32768)) = "VT_R8", "getVT(CDbl(32768)) = " & getVT(CDbl(32768)))
663 Call ok(CDbl(0.001 * 0.001) = 0.000001, "CDbl(0.001 * 0.001) = " & CDbl(0.001 * 0.001))
664 Call ok(getVT(CDbl(0.001 * 0.001)) = "VT_R8", "getVT(CDbl(0.001 * 0.001)) = " & getVT(CDbl(0.001 * 0.001)))
665 Call ok(CDbl("-1") = -1, "CDbl(""-1"") = " & CDbl("-1"))
666 Call ok(getVT(CDbl("-1")) = "VT_R8", "getVT(CDbl(""-1"")) = " & getVT(CDbl("-1")))
667 If isEnglishLang
Then
668 Call ok(CDbl("-0.5") = -0.5, "CDbl(""-0.5"") = " & CDbl("-0.5"))
669 Call ok(getVT(CDbl("-0.5")) = "VT_R8", "getVT(CDbl(""-0.5"")) = " & getVT(CDbl("-0.5")))
671 Call testCDblError("", 13, 13)
672 Call testCDblError("TRUE", 13, 13)
673 Call testCDblError("FALSE", 13, 13)
674 Call testCDblError("#TRue#", 13, 13)
675 Call testCDblError("#fAlSE#", 13, 13)
676 Call testCDblError(1, 0, 458)
677 Call ok(CDbl(True) = -1, "CDbl(True) = " & CDbl(True))
678 Call ok(getVT(CDbl(True)) = "VT_R8", "getVT(CDbl(True)) = " & getVT(CDbl(True)))
679 Call ok(CDbl(False) = 0, "CDbl(False) = " & CDbl(False))
680 Call ok(getVT(CDbl(False)) = "VT_R8", "getVT(CDbl(False)) = " & getVT(CDbl(False)))
682 Call ok(CDbl(MyObject
) = 0.1, "CDbl(MyObject) = " & CDbl(MyObject
))
683 Call ok(getVT(CDbl(MyObject
)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject
)))
685 Call ok(CDbl(MyObject
) = 0, "CDbl(MyObject) = " & CDbl(MyObject
))
686 Call ok(getVT(CDbl(MyObject
)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject
)))
688 Sub testCLngError(strings
, error_num1
, error_num2
)
694 Call ok(Err
.number
= error_num1
, "Err.number = " & Err
.number
)
698 Call ok(Err
.number
= error_num2
, "Err.number = " & Err
.number
)
701 Call ok(CLng(Empty
) = 0, "CLng(Empty) = " & CLng(Empty
))
702 Call ok(getVT(CLng(Empty
)) = "VT_I4", "getVT(CLng(Empty)) = " & getVT(CLng(Empty
)))
703 Call ok(CLng(CByte(0)) = 0, "CLng(CByte(0)) = " & CLng(CByte(0)))
704 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
705 Call ok(CLng(CCur(0)) = 0, "CLng(CCur(0)) = " & CLng(CCur(0)))
706 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
707 Call ok(CLng(0) = 0, "CLng(0) = " & CLng(0))
708 Call ok(getVT(CLng(0)) = "VT_I4", "getVT(CLng(0)) = " & getVT(CLng(0)))
709 Call ok(CLng(0.49) = 0, "CLng(0.49) = " & CLng(0.49))
710 Call ok(getVT(CLng(0.49)) = "VT_I4", "getVT(CLng(0.49)) = " & getVT(CLng(0.49)))
711 Call ok(CLng(0.5) = 0, "CLng(0.5) = " & CLng(0.5))
712 Call ok(getVT(CLng(0.5)) = "VT_I4", "getVT(CLng(0.5)) = " & getVT(CLng(0.5)))
713 Call ok(CLng(0.51) = 1, "CLng(0.51) = " & CLng(0.51))
714 Call ok(getVT(CLng(0.51)) = "VT_I4", "getVT(CLng(0.51)) = " & getVT(CLng(0.51)))
715 Call ok(CLng(1.49) = 1, "CLng(1.49) = " & CLng(1.49))
716 Call ok(getVT(CLng(1.49)) = "VT_I4", "getVT(CLng(1.49)) = " & getVT(CLng(1.49)))
717 Call ok(CLng(1.5) = 2, "CLng(1.5) = " & CLng(1.5))
718 Call ok(getVT(CLng(1.5)) = "VT_I4", "getVT(CLng(1.5)) = " & getVT(CLng(1.5)))
719 Call ok(CLng(1.51) = 2, "CLng(1.51) = " & CLng(1.51))
720 Call ok(getVT(CLng(1.51)) = "VT_I4", "getVT(CLng(1.51)) = " & getVT(CLng(1.51)))
721 Call ok(CLng("-1") = -1, "CLng(""-1"") = " & CLng("-1"))
722 Call ok(getVT(CLng("-1")) = "VT_I4", "getVT(CLng(""-1"")) = " & getVT(CLng("-1")))
723 If isEnglishLang
Then
724 Call ok(CLng("-0.5") = 0, "CLng(""-0.5"") = " & CLng("-0.5"))
725 Call ok(getVT(CLng("-0.5")) = "VT_I4", "getVT(CLng(""-0.5"")) = " & getVT(CLng("-0.5")))
727 Call testCLngError("", 13, 13)
728 Call testCLngError("TRUE", 13, 13)
729 Call testCLngError("FALSE", 13, 13)
730 Call testCLngError("#TRue#", 13, 13)
731 Call testCLngError("#fAlSE#", 13, 13)
732 Call testCLngError(1, 0, 458)
733 Call ok(CLng(True) = -1, "CLng(True) = " & CLng(True))
734 Call ok(getVT(CLng(True)) = "VT_I4", "getVT(CLng(True)) = " & getVT(CLng(True)))
735 Call ok(CLng(False) = 0, "CLng(False) = " & CLng(False))
736 Call ok(getVT(CLng(False)) = "VT_I4", "getVT(CLng(False)) = " & getVT(CLng(False)))
738 Call ok(CLng(MyObject
) = 1, "CLng(MyObject) = " & CLng(MyObject
))
739 Call ok(getVT(CLng(MyObject
)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject
)))
741 Call ok(CLng(MyObject
) = 0, "CLng(MyObject) = " & CLng(MyObject
))
742 Call ok(getVT(CLng(MyObject
)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject
)))
744 Sub testCIntError(strings
, error_num1
, error_num2
)
750 Call ok(Err
.number
= error_num1
, "Err.number = " & Err
.number
)
754 Call ok(Err
.number
= error_num2
, "Err.number = " & Err
.number
)
757 Call ok(CInt(Empty
) = 0, "CInt(Empty) = " & CInt(Empty
))
758 Call ok(getVT(CInt(Empty
)) = "VT_I2", "getVT(CInt(Empty)) = " & getVT(CInt(Empty
)))
759 Call ok(CInt(CByte(0)) = 0, "CInt(CByte(0)) = " & CInt(CByte(0)))
760 Call ok(getVT(CInt(CByte(0))) = "VT_I2", "getVT(CInt(CByte(0))) = " & getVT(CInt(CByte(0))))
761 Call ok(CInt(CCur(0)) = 0, "CInt(CCur(0)) = " & CInt(CCur(0)))
762 Call ok(getVT(CInt(CCur(0))) = "VT_I2", "getVT(CInt(CCur(0))) = " & getVT(CInt(CCur(0))))
763 Call ok(CInt(0.49) = 0, "CInt(0.49) = " & CInt(0.49))
764 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
765 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0.5))
766 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
767 Call ok(CInt(0.51) = 1, "CInt(0.51) = " & CInt(0.51))
768 Call ok(getVT(CInt(0.51)) = "VT_I2", "getVT(CInt(0.51)) = " & getVT(CInt(0.51)))
769 Call ok(CInt(1.49) = 1, "CInt(0.49) = " & CInt(0.49))
770 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
771 Call ok(CInt(1.5) = 2, "CInt(1.5) = " & CInt(1.5))
772 Call ok(getVT(CInt(1.5)) = "VT_I2", "getVT(CInt(1.5)) = " & getVT(CInt(1.5)))
773 Call ok(CInt(1.51) = 2, "CInt(1.51) = " & CInt(1.51))
774 Call ok(getVT(CInt(1.51)) = "VT_I2", "getVT(CInt(1.51)) = " & getVT(CInt(1.51)))
775 Call ok(CInt("-1") = -1, "CInt(""-1"") = " & CInt("-1"))
776 Call ok(getVT(CInt("-1")) = "VT_I2", "getVT(CInt(""-1"")) = " & getVT(CInt("-1")))
777 If isEnglishLang
Then
778 Call ok(CInt("-0.5") = 0, "CInt(""-0.5"") = " & CInt("-0.5"))
779 Call ok(getVT(CInt("-0.5")) = "VT_I2", "getVT(CInt(""-0.5"")) = " & getVT(CInt("-0.5")))
781 Call testCIntError("", 13, 13)
782 Call testCIntError("-1", 0, 458)
783 Call testCIntError("TRUE", 13, 13)
784 Call testCIntError("FALSE", 13, 13)
785 Call testCIntError("#TRue#", 13, 13)
786 Call testCIntError("#fAlSE#", 13, 13)
787 Call testCIntError(1, 0, 458)
788 Call testCIntError(32767.49, 0, 458)
789 Call testCIntError(32767.5, 6, 6)
790 Call testCIntError(-32768.5, 0, 458)
791 Call testCIntError(-32768.51, 6, 6)
792 Call ok(CInt(True) = -1, "CInt(True) = " & CInt(True))
793 Call ok(getVT(CInt(True)) = "VT_I2", "getVT(CInt(True)) = " & getVT(CInt(True)))
794 Call ok(CInt(False) = 0, "CInt(False) = " & CInt(False))
795 Call ok(getVT(CInt(False)) = "VT_I2", "getVT(CInt(False)) = " & getVT(CInt(False)))
797 Call ok(CInt(MyObject
) = 2, "CInt(MyObject) = " & CInt(MyObject
))
798 Call ok(getVT(CInt(MyObject
)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject
)))
800 Call ok(CInt(MyObject
) = 2, "CInt(MyObject) = " & CInt(MyObject
))
801 Call ok(getVT(CInt(MyObject
)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject
)))
803 Sub testCSngError(strings
, error_num1
, error_num2
)
809 Call ok(Err
.number
= error_num1
, "Err.number = " & Err
.number
)
813 Call ok(Err
.number
= error_num2
, "Err.number = " & Err
.number
)
816 Call ok(CSng(Empty
) = 0, "CSng(Empty) = " & CSng(Empty
))
817 Call ok(getVT(CSng(Empty
)) = "VT_R4", "getVT(CSng(Empty)) = " & getVT(CSng(Empty
)))
818 Call ok(CSng(CByte(0)) = 0, "CSng(CByte(0)) = " & CSng(CByte(0)))
819 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
820 Call ok(CSng(CCur(0)) = 0, "CSng(CCur(0)) = " & CSng(CCur(0)))
821 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
822 Call ok(CSng(0) = 0, "CSng(0) = " & CSng(0))
823 Call ok(getVT(CSng(0)) = "VT_R4", "getVT(CSng(0)) = " & getVT(CSng(0)))
824 Call ok(CSng(32768) = 32768, "CSng(32768) = " & CSng(32768))
825 Call ok(getVT(CSng(32768)) = "VT_R4", "getVT(CSng(32768)) = " & getVT(CSng(32768)))
826 Call ok(CSng(0.001 * 0.001) = 0.000001, "CSng(0.001 * 0.001) = " & CSng(0.001 * 0.001))
827 Call ok(getVT(CSng(0.001 * 0.001)) = "VT_R4", "getVT(CSng(0.001 * 0.001)) = " & getVT(CSng(0.001 * 0.001)))
828 Call ok(CSng("-1") = -1, "CSng(""-1"") = " & CSng("-1"))
829 Call ok(getVT(CSng("-1")) = "VT_R4", "getVT(CSng(""-1"")) = " & getVT(CSng("-1")))
830 If isEnglishLang
Then
831 Call ok(CSng("-0.5") = -0.5, "CSng(""-0.5"") = " & CSng("-0.5"))
832 Call ok(getVT(CSng("-0.5")) = "VT_R4", "getVT(CSng(""-0.5"")) = " & getVT(CSng("-0.5")))
834 Call testCSngError("", 13, 13)
835 Call testCSngError("TRUE", 13, 13)
836 Call testCSngError("FALSE", 13, 13)
837 Call testCSngError("#TRue#", 13, 13)
838 Call testCSngError("#fAlSE#", 13, 13)
839 Call testCSngError(1, 0, 458)
840 Call ok(CSng(True) = -1, "CSng(True) = " & CSng(True))
841 Call ok(getVT(CSng(True)) = "VT_R4", "getVT(CSng(True)) = " & getVT(CSng(True)))
842 Call ok(CSng(False) = 0, "CSng(False) = " & CSng(False))
843 Call ok(getVT(CSng(False)) = "VT_R4", "getVT(CSng(False)) = " & getVT(CSng(False)))
845 Call ok(CSng(MyObject
) = 0.1, "CSng(MyObject) = " & CSng(MyObject
))
846 Call ok(getVT(CSng(MyObject
)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject
)))
848 Call ok(CSng(MyObject
) = 0, "CSng(MyObject) = " & CSng(MyObject
))
849 Call ok(getVT(CSng(MyObject
)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject
)))
851 Call ok(TypeName(Empty
) = "Empty", "TypeName(MyEmpty) = " & TypeName(Empty
))
852 Call ok(getVT(TypeName(Empty
)) = "VT_BSTR", "getVT(TypeName(Empty)) = " & getVT(TypeName(Empty
)))
853 Call ok(TypeName(Null
) = "Null", "TypeName(Null) = " & TypeName(Null
))
854 Call ok(getVT(TypeName(Null
)) = "VT_BSTR", "getVT(TypeName(Null)) = " & getVT(TypeName(Null
)))
855 Call ok(TypeName(CByte(255)) = "Byte", "TypeName(CByte(255)) = " & TypeName(CByte(255)))
856 Call ok(getVT(TypeName(CByte(255))) = "VT_BSTR", "getVT(TypeName(CByte(255))) = " & getVT(TypeName(CByte(255))))
857 Call ok(TypeName(255) = "Integer", "TypeName(255) = " & TypeName(255))
858 Call ok(getVT(TypeName(255)) = "VT_BSTR", "getVT(TypeName(255)) = " & getVT(TypeName(255)))
859 Call ok(TypeName(32768) = "Long", "TypeName(32768) = " & TypeName(32768))
860 Call ok(getVT(TypeName(32768)) = "VT_BSTR", "getVT(TypeName(32768)) = " & getVT(TypeName(32768)))
861 Call ok(TypeName(CSng(0.5)) = "Single", "TypeName(CSng(0.5)) = " & TypeName(CSng(0.5)))
862 Call ok(getVT(TypeName(CSng(0.5))) = "VT_BSTR", "getVT(TypeName(CSng(0.5))) = " & getVT(TypeName(CSng(0.5))))
863 Call ok(TypeName(-0.5) = "Double", "TypeName(-0.5) = " & TypeName(-0.5))
864 Call ok(getVT(TypeName(-0.5)) = "VT_BSTR", "getVT(TypeName(-0.5)) = " & getVT(TypeName(-0.5)))
865 Call ok(TypeName(CCur(0.5)) = "Currency", "TypeName(CCur(0.5)) = " & TypeName(CCur(0.5)))
866 Call ok(getVT(TypeName(CCur(0.5))) = "VT_BSTR", "getVT(TypeName(CCur(0.5))) = " & getVT(TypeName(CCur(0.5))))
867 Call ok(TypeName(CStr(0.5)) = "String", "TypeName(CStr(0.5)) = " & TypeName(CStr(0.5)))
868 Call ok(getVT(TypeName(CStr(0.5))) = "VT_BSTR", "getVT(TypeName(CStr(0.5))) = " & getVT(TypeName(CStr(0.5))))
869 Call ok(TypeName(True) = "Boolean", "TypeName(True) = " & TypeName(True))
870 Call ok(getVT(TypeName(True)) = "VT_BSTR", "getVT(TypeName(True)) = " & getVT(TypeName(True)))
872 Call ok(VarType(Empty
) = vbEmpty
, "VarType(Empty) = " & VarType(Empty
))
873 Call ok(getVT(VarType(Empty
)) = "VT_I2", "getVT(VarType(Empty)) = " & getVT(VarType(Empty
)))
874 Call ok(VarType(Null
) = vbNull
, "VarType(Null) = " & VarType(Null
))
875 Call ok(getVT(VarType(Null
)) = "VT_I2", "getVT(VarType(Null)) = " & getVT(VarType(Null
)))
876 Call ok(VarType(255) = vbInteger
, "VarType(255) = " & VarType(255))
877 Call ok(getVT(VarType(255)) = "VT_I2", "getVT(VarType(255)) = " & getVT(VarType(255)))
878 Call ok(VarType(32768) = vbLong
, "VarType(32768) = " & VarType(32768))
879 Call ok(getVT(VarType(32768)) = "VT_I2", "getVT(VarType(32768)) = " & getVT(VarType(32768)))
880 Call ok(VarType(CSng(0.5)) = vbSingle
, "VarType(CSng(0.5)) = " & VarType(CSng(0.5)))
881 Call ok(getVT(VarType(CSng(0.5))) = "VT_I2", "getVT(VarType(CSng(0.5))) = " & getVT(VarType(CSng(0.5))))
882 Call ok(VarType(-0.5) = vbDouble
, "VarType(-0.5) = " & VarType(-0.5))
883 Call ok(getVT(VarType(-0.5)) = "VT_I2", "getVT(VarType(-0.5)) = " & getVT(VarType(-0.5)))
884 Call ok(VarType(CCur(0.5)) = vbCurrency
, "VarType(CCur(0.5)) = " & VarType(CCur(0.5)))
885 Call ok(getVT(VarType(CCur(0.5))) = "VT_I2", "getVT(VarType(CCur(0.5))) = " & getVT(VarType(CCur(0.5))))
886 Call ok(VarType(CStr(0.5)) = vbString
, "VarType(CStr(0.5)) = " & VarType(CStr(0.5)))
887 Call ok(getVT(VarType(CStr(0.5))) = "VT_I2", "getVT(VarType(CStr(0.5))) = " & getVT(VarType(CStr(0.5))))
888 Call ok(VarType(CBool(0.5)) = vbBoolean
, "VarType(CBool(0.5)) = " & VarType(CBool(0.5)))
889 Call ok(getVT(VarType(CBool(0.5))) = "VT_I2", "getVT(VarType(CBool(0.5))) = " & getVT(VarType(CBool(0.5))))
890 Call ok(VarType(CByte(255)) = vbByte
, "VarType(CByte(255)) = " & VarType(CByte(255)))
891 Call ok(getVT(VarType(CByte(255))) = "VT_I2", "getVT(VarType(CByte(255))) = " & getVT(VarType(CByte(255))))
893 Call ok(Sgn(Empty
) = 0, "Sgn(MyEmpty) = " & Sgn(Empty
))
894 Call ok(getVT(Sgn(Empty
)) = "VT_I2", "getVT(Sgn(MyEmpty)) = " & getVT(Sgn(Empty
)))
895 Call ok(Sgn(0) = 0, "Sgn(0) = " & Sgn(0))
896 Call ok(getVT(Sgn(0)) = "VT_I2", "getVT(Sgn(0)) = " & getVT(Sgn(0)))
897 Call ok(Sgn(-32769) = -1, "Sgn(-32769) = " & Sgn(-32769))
898 Call ok(getVT(Sgn(-32769)) = "VT_I2", "getVT(Sgn(-32769)) = " & getVT(Sgn(-32769)))
899 Call ok(Sgn(CSng(-0.5)) = -1, "Sgn(CSng(-0.5)) = " & Sgn(CSng(-0.5)))
900 Call ok(getVT(Sgn(CSng(-0.5))) = "VT_I2", "getVT(Sgn(CSng(-0.5))) = " & getVT(Sgn(CSng(-0.5))))
901 Call ok(Sgn(0.5) = 1, "Sgn(0.5) = " & Sgn(0.5))
902 Call ok(getVT(Sgn(0.5)) = "VT_I2", "getVT(Sgn(0.5)) = " & getVT(Sgn(0.5)))
903 Call ok(Sgn(CCur(-1)) = -1, "Sgn(CCur(-1)) = " & Sgn(CCur(-1)))
904 Call ok(getVT(Sgn(CCur(-1))) = "VT_I2", "getVT(Sgn(CCur(-1))) = " & getVT(Sgn(CCur(-1))))
905 Call ok(Sgn(CStr(-1)) = -1, "Sgn(CStr(-1)) = " & Sgn(CStr(-1)))
906 Call ok(getVT(Sgn(CStr(-1))) = "VT_I2", "getVT(Sgn(CStr(-1))) = " & getVT(Sgn(CStr(-1))))
907 Call ok(Sgn(False) = 0, "Sgn(False) = " & Sgn(False))
908 Call ok(getVT(Sgn(False)) = "VT_I2", "getVT(Sgn(False)) = " & getVT(Sgn(False)))
909 Call ok(Sgn(True) = -1, "Sgn(True) = " & Sgn(True))
910 Call ok(getVT(Sgn(True)) = "VT_I2", "getVT(Sgn(True)) = " & getVT(Sgn(True)))
911 Call ok(Sgn(CByte(1)) = 1, "Sgn(CByte(1)) = " & Sgn(CByte(1)))
912 Call ok(getVT(Sgn(CByte(1))) ="VT_I2", "getVT(Sgn(CByte(1))) = " & getVT(Sgn(CByte(1))))
914 Sub testSgnError(strings
, error_num
)
919 Call ok(Err
.number
= error_num
, "Err.number = " & Err
.number
)
922 Call testSgnError(Null
, 94)
924 Call ok(Abs(Empty
) = 0, "Abs(Empty) = " & Abs(Empty
))
925 Call ok(getVT(Abs(Empty
)) = "VT_I2", "getVT(Abs(Empty)) = " & getVT(Abs(Empty
)))
926 Call ok(IsNull(Abs(Null
)), "Is Abs(Null) not Null?")
927 Call ok(getVT(Abs(Null
)) = "VT_NULL", "getVT(Abs(Null)) = " & getVT(Abs(Null
)))
928 Call ok(Abs(0) = 0, "Abs(0) = " & Abs(0))
929 Call ok(getVT(Abs(0)) = "VT_I2", "getVT(Abs(0)) = " & getVT(Abs(0)))
930 Call ok(Abs(-32769) = 32769, "Abs(-32769) = " & Abs(-32769))
931 Call ok(getVT(Abs(-32769)) = "VT_I4", "getVT(Abs(-32769)) = " & getVT(Abs(-32769)))
932 Call ok(Abs(CSng(-0.5)) = 0.5, "Abs(CSng(-0.5)) = " & Abs(CSng(-0.5)))
933 Call ok(getVT(Abs(CSng(-0.5))) = "VT_R4", "getVT(Abs(CSng(-0.5))) = " & getVT(Abs(CSng(-0.5))))
934 Call ok(Abs(0.5) = 0.5, "Abs(0.5) = " & Abs(0.5))
935 Call ok(getVT(Abs(0.5)) = "VT_R8", "getVT(Abs(0.5)) = " & getVT(Abs(0.5)))
936 Call ok(Abs(CCur(-1)) = 1, "Abs(CCur(-1)) = " & Abs(CCur(-1)))
937 Call ok(getVT(Abs(CCur(-1))) = "VT_CY", "getVT(Abs(CCur(-1))) = " & getVT(Abs(CCur(-1))))
938 Call ok(Abs("-1") = 1, "Abs(""-1"") = " & Abs("-1"))
939 Call ok(getVT(Abs("-1")) = "VT_R8", "getVT(Abs(""-1"")) = " & getVT(Abs("-1")))
940 Call ok(Abs(False) = 0, "Abs(False) = " & Abs(False))
941 Call ok(getVT(Abs(False)) = "VT_I2", "getVT(Abs(False)) = " & getVT(Abs(False)))
942 Call ok(Abs(True) = 1, "Abs(True) = " & Abs(True))
943 Call ok(getVT(Abs(True)) = "VT_I2", "getVT(Abs(True)) = " & getVT(Abs(True)))
944 Call ok(Abs(CByte(1)) = 1, "Abs(CByte(1)) = " & Abs(CByte(1)))
945 Call ok(getVT(Abs(CByte(1))) = "VT_UI1", "getVT(Abs(CByte(1))) = " & getVT(Abs(CByte(1))))
947 Sub testAbsError(strings
, error_num1
, error_num2
)
953 Call ok(Err
.number
= error_num1
, "Err.number1 = " & Err
.number
)
957 Call ok(Err
.number
= error_num2
, "Err.number2 = " & Err
.number
)
960 Call testAbsError("strings", 13, 13)
961 Call testAbsError(-4, 0, 0)