vbscript: Don't try to convert int to short in return_int.
[wine.git] / dlls / vbscript / tests / api.vbs
blob9e64412ee332c405bab06216b3e53a747f3e668b
1 ' Copyright 2011 Jacek Caban for CodeWeavers
3 ' This library is free software; you can redistribute it and/or
4 ' modify it under the terms of the GNU Lesser General Public
5 ' License as published by the Free Software Foundation; either
6 ' version 2.1 of the License, or (at your option) any later version.
8 ' This library is distributed in the hope that it will be useful,
9 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ' Lesser General Public License for more details.
13 ' You should have received a copy of the GNU Lesser General Public
14 ' License along with this library; if not, write to the Free Software
15 ' Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 Option Explicit
20 Dim x
22 Class EmptyClass
23 End Class
25 Call ok(vbSunday = 1, "vbSunday = " & vbSunday)
26 Call ok(getVT(vbSunday) = "VT_I2", "getVT(vbSunday) = " & getVT(vbSunday))
27 Call ok(vbMonday = 2, "vbMonday = " & vbMonday)
28 Call ok(getVT(vbMonday) = "VT_I2", "getVT(vbMonday) = " & getVT(vbMonday))
29 Call ok(vbTuesday = 3, "vbTuesday = " & vbTuesday)
30 Call ok(getVT(vbTuesday) = "VT_I2", "getVT(vbTuesday) = " & getVT(vbTuesday))
31 Call ok(vbWednesday = 4, "vbWednesday = " & vbWednesday)
32 Call ok(getVT(vbWednesday) = "VT_I2", "getVT(vbWednesday) = " & getVT(vbWednesday))
33 Call ok(vbThursday = 5, "vbThursday = " & vbThursday)
34 Call ok(getVT(vbThursday) = "VT_I2", "getVT(vbThursday) = " & getVT(vbThursday))
35 Call ok(vbFriday = 6, "vbFriday = " & vbFriday)
36 Call ok(getVT(vbFriday) = "VT_I2", "getVT(vbFriday) = " & getVT(vbFriday))
37 Call ok(vbSaturday = 7, "vbSaturday = " & vbSaturday)
38 Call ok(getVT(vbSaturday) = "VT_I2", "getVT(vbSaturday) = " & getVT(vbSaturday))
40 Sub TestConstant(name, val, exval)
41 Call ok(val = exval, name & " = " & val & " expected " & exval)
42 Call ok(getVT(val) = "VT_I2*", "getVT(" & name & ") = " & getVT(val))
43 End Sub
45 Sub TestConstantI4(name, val, exval)
46 Call ok(val = exval, name & " = " & val & " expected " & exval)
47 Call ok(getVT(val) = "VT_I4*", "getVT(" & name & ") = " & getVT(val))
48 End Sub
50 Sub TestConstantBSTR(name, val, exval)
51 Call ok(val = exval, name & " = " & val & " expected " & exval)
52 Call ok(getVT(val) = "VT_BSTR*", "getVT(" & name & ") = " & getVT(val))
53 End Sub
55 TestConstant "vbEmpty", vbEmpty, 0
56 TestConstant "vbNull", vbNull, 1
57 TestConstant "vbLong", vbLong, 3
58 TestConstant "vbSingle", vbSingle, 4
59 TestConstant "vbDouble", vbDouble, 5
60 TestConstant "vbCurrency", vbCurrency, 6
61 TestConstant "vbDate", vbDate, 7
62 TestConstant "vbString", vbString, 8
63 TestConstant "vbObject", vbObject, 9
64 TestConstant "vbError", vbError, 10
65 TestConstant "vbBoolean", vbBoolean, 11
66 TestConstant "vbVariant", vbVariant, 12
67 TestConstant "vbDataObject", vbDataObject, 13
68 TestConstant "vbDecimal", vbDecimal, 14
69 TestConstant "vbByte", vbByte, 17
70 TestConstant "vbArray", vbArray, 8192
71 TestConstant "vbCritical", vbCritical, 16
72 TestConstant "vbQuestion", vbQuestion, 32
73 TestConstant "vbExclamation", vbExclamation, 48
74 TestConstant "vbInformation", vbInformation, 64
75 TestConstant "vbDefaultButton1", vbDefaultButton1, 0
76 TestConstant "vbDefaultButton2", vbDefaultButton2, 256
77 TestConstant "vbDefaultButton3", vbDefaultButton3, 512
78 TestConstant "vbDefaultButton4", vbDefaultButton4, 768
79 TestConstant "vbApplicationModal", vbApplicationModal, 0
80 TestConstant "vbSystemModal", vbSystemModal, 4096
81 TestConstant "vbUseSystem", vbUseSystem, 0
82 TestConstant "vbUseSystemDayOfWeek", vbUseSystemDayOfWeek, 0
83 TestConstant "vbFirstJan1", vbFirstJan1, 1
84 TestConstant "vbFirstFourDays", vbFirstFourDays, 2
85 TestConstant "vbFirstFullWeek", vbFirstFullWeek, 3
86 TestConstant "vbTrue", vbTrue, -1
87 TestConstant "vbFalse", vbFalse, 0
88 TestConstantI4 "vbMsgBoxHelpButton", vbMsgBoxHelpButton, 16384
89 TestConstantI4 "vbMsgBoxSetForeground", vbMsgBoxSetForeground, 65536
90 TestConstantI4 "vbMsgBoxRight", vbMsgBoxRight, 524288
91 TestConstantI4 "vbMsgBoxRtlReading", vbMsgBoxRtlReading, 1048576
92 TestConstant "vbUseDefault", vbUseDefault, -2
93 TestConstant "vbBinaryCompare", vbBinaryCompare, 0
94 TestConstant "vbTextCompare", vbTextCompare, 1
95 TestConstant "vbDatabaseCompare", vbDatabaseCompare, 2
96 TestConstant "vbGeneralDate", vbGeneralDate, 0
97 TestConstant "vbLongDate", vbLongDate, 1
98 TestConstant "vbShortDate", vbShortDate, 2
99 TestConstant "vbLongTime", vbLongTime, 3
100 TestConstant "vbShortTime", vbShortTime, 4
101 TestConstantI4 "vbObjectError", vbObjectError, &h80040000&
102 TestConstantI4 "vbBlack", vbBlack, 0
103 TestConstantI4 "vbBlue", vbBlue, &hff0000&
104 TestConstantI4 "vbCyan", vbCyan, &hffff00&
105 TestConstantI4 "vbGreen", vbGreen, &h00ff00&
106 TestConstantI4 "vbMagenta", vbMagenta, &hff00ff&
107 TestConstantI4 "vbRed", vbRed, &h0000ff&
108 TestConstantI4 "vbWhite", vbWhite, &hffffff&
109 TestConstantI4 "vbYellow", vbYellow, &h00ffff&
110 TestConstantBSTR "vbCr", vbCr, Chr(13)
111 TestConstantBSTR "vbCrLf", vbCrLf, Chr(13)&Chr(10)
112 TestConstantBSTR "vbNewLine", vbNewLine, Chr(13)&Chr(10)
113 TestConstantBSTR "vbFormFeed", vbFormFeed, Chr(12)
114 TestConstantBSTR "vbLf", vbLf, Chr(10)
115 TestConstantBSTR "vbNullChar", vbNullChar, Chr(0)
116 TestConstantBSTR "vbNullString", vbNullString, ""
117 TestConstantBSTR "vbTab", vbTab, chr(9)
118 TestConstantBSTR "vbVerticalTab", vbVerticalTab, chr(11)
120 Sub TestCStr(arg, exval)
121 dim x
122 x = CStr(arg)
123 Call ok(getVT(x) = "VT_BSTR*", "getVT(x) = " & getVT(x))
124 Call ok(x = exval, "CStr(" & arg & ") = " & x)
125 End Sub
127 TestCStr "test", "test"
128 TestCStr 3, "3"
129 if isEnglishLang then TestCStr 3.5, "3.5"
130 if isEnglishLang then TestCStr true, "True"
132 Call ok(getVT(Chr(120)) = "VT_BSTR", "getVT(Chr(120)) = " & getVT(Chr(120)))
133 Call ok(getVT(Chr(255)) = "VT_BSTR", "getVT(Chr(255)) = " & getVT(Chr(255)))
134 Call ok(Chr(120) = "x", "Chr(120) = " & Chr(120))
135 Call ok(Chr(0) <> "", "Chr(0) = """"")
136 Call ok(Chr(120.5) = "x", "Chr(120.5) = " & Chr(120.5))
137 Call ok(Chr(119.5) = "x", "Chr(119.5) = " & Chr(119.5))
138 Call ok(Chr("120") = "x", "Chr(""120"") = " & Chr("120"))
140 sub testChrError
141 on error resume next
143 if isEnglishLang then
144 call Err.clear()
145 call Chr(-1)
146 call ok(Err.number = 5, "Err.number = " & Err.number)
148 call Err.clear()
149 call Chr(256)
150 call ok(Err.number = 5, "Err.number = " & Err.number)
151 end if
153 call Err.clear()
154 call Chr(65536)
155 call ok(Err.number = 5, "Err.number = " & Err.number)
157 call Err.clear()
158 call Chr(-32769)
159 call ok(Err.number = 5, "Err.number = " & Err.number)
160 end sub
162 call testChrError
164 Call ok(isObject(new EmptyClass), "isObject(new EmptyClass) is not true?")
165 Set x = new EmptyClass
166 Call ok(isObject(x), "isObject(x) is not true?")
167 Call ok(isObject(Nothing), "isObject(Nothing) is not true?")
168 Call ok(not isObject(true), "isObject(true) is true?")
169 Call ok(not isObject(4), "isObject(4) is true?")
170 Call ok(not isObject("x"), "isObject(""x"") is true?")
171 Call ok(not isObject(Null), "isObject(Null) is true?")
173 Call ok(not isEmpty(new EmptyClass), "isEmpty(new EmptyClass) is true?")
174 Set x = new EmptyClass
175 Call ok(not isEmpty(x), "isEmpty(x) is true?")
176 x = empty
177 Call ok(isEmpty(x), "isEmpty(x) is not true?")
178 Call ok(isEmpty(empty), "isEmpty(empty) is not true?")
179 Call ok(not isEmpty(Nothing), "isEmpty(Nothing) is not true?")
180 Call ok(not isEmpty(true), "isEmpty(true) is true?")
181 Call ok(not isEmpty(4), "isEmpty(4) is true?")
182 Call ok(not isEmpty("x"), "isEmpty(""x"") is true?")
183 Call ok(not isEmpty(Null), "isEmpty(Null) is true?")
185 Call ok(not isNull(new EmptyClass), "isNull(new EmptyClass) is true?")
186 Set x = new EmptyClass
187 Call ok(not isNull(x), "isNull(x) is true?")
188 x = null
189 Call ok(isNull(x), "isNull(x) is not true?")
190 Call ok(not isNull(empty), "isNull(empty) is true?")
191 Call ok(not isNull(Nothing), "isNull(Nothing) is true?")
192 Call ok(not isNull(true), "isNull(true) is true?")
193 Call ok(not isNull(4), "isNull(4) is true?")
194 Call ok(not isNull("x"), "isNull(""x"") is true?")
195 Call ok(isNull(Null), "isNull(Null) is not true?")
197 Call ok(isNumeric(Empty), "isNumeric(empty) is not true?")
198 Call ok(not isNumeric(Null), "isNumeric(Null) is not true?")
199 Call ok(isNumeric(32767), "isNumeric(32767) is true?")
200 Call ok(isNumeric(32768), "isNumeric(32768) is true?")
201 Call ok(isNumeric(CSng(3242.4)), "isNumeric(CSng(3242.4)) is true?")
202 Call ok(isNumeric(32768.4), "isNumeric(32768.4) is true?")
203 Call ok(isNumeric(CCur(32768.4)), "isNumeric(CCur(32768.4)) is true?")
204 Call ok(isNumeric("44"), "isNumeric(""44"") is true?")
205 Call ok(not isNumeric("rwrf"), "isNumeric(""rwrf"") is not true?")
206 Call ok(not isNumeric(Nothing), "isNumeric(Nothing) is not true?")
207 Call ok(not isNumeric(New EmptyClass), "isNumeric(New EmptyClass) is not true?")
208 Call ok(isNumeric(true), "isNumeric(true) is true?")
209 Call ok(isNumeric(CByte(32)), "isNumeric(CByte(32)) is true?")
210 Dim arr(2)
211 arr(0) = 2
212 arr(1) = 3
213 Call ok(not isNumeric(arr), "isNumeric(arr) is not true?")
215 Dim newObject
216 Set newObject = New ValClass
217 newObject.myval = 1
218 Call ok(isNumeric(newObject), "isNumeric(newObject) is true?")
219 newObject.myval = "test"
220 Call ok(not isNumeric(newObject), "isNumeric(newObject) is not true?")
222 Call ok(getVT(err) = "VT_DISPATCH", "getVT(err) = " & getVT(err))
224 Sub TestHex(x, ex)
225 Call ok(hex(x) = ex, "hex(" & x & ") = " & hex(x) & " expected " & ex)
226 End Sub
228 TestHex 0, "0"
229 TestHex 6, "6"
230 TestHex 16, "10"
231 TestHex &hdeadbeef&, "DEADBEEF"
232 TestHex -1, "FFFF"
233 TestHex -16, "FFF0"
234 TestHex -934859845, "C8472BBB"
235 TestHex empty, "0"
237 Call ok(getVT(hex(null)) = "VT_NULL", "getVT(hex(null)) = " & getVT(hex(null)))
238 Call ok(getVT(hex(empty)) = "VT_BSTR", "getVT(hex(empty)) = " & getVT(hex(empty)))
240 x = InStr(1, "abcd", "bc")
241 Call ok(x = 2, "InStr returned " & x)
243 x = InStr("abcd", "bc")
244 Call ok(x = 2, "InStr returned " & x)
245 Call ok(getVT(x) = "VT_I4*", "getVT(InStr) returned " & getVT(x))
247 x = InStr("abc", "bc")
248 Call ok(x = 2, "InStr returned " & x)
250 x = InStr("abcbc", "bc")
251 Call ok(x = 2, "InStr returned " & x)
253 x = InStr("bcabc", "bc")
254 Call ok(x = 1, "InStr returned " & x)
256 x = InStr(3, "abcd", "bc")
257 Call ok(x = 0, "InStr returned " & x)
259 x = InStr("abcd", "bcx")
260 Call ok(x = 0, "InStr returned " & x)
262 x = InStr(5, "abcd", "bc")
263 Call ok(x = 0, "InStr returned " & x)
265 x = "abcd"
266 x = InStr(x, "bc")
267 Call ok(x = 2, "InStr returned " & x)
269 x = InStr("abcd", null)
270 Call ok(isNull(x), "InStr returned " & x)
271 x = InStr(null, "abcd")
272 Call ok(isNull(x), "InStr returned " & x)
273 x = InStr(2, null, "abcd")
274 Call ok(isNull(x), "InStr returned " & x)
276 x = InStr(1.3, "abcd", "bc")
277 Call ok(x = 2, "InStr returned " & x)
279 x = InStr(2.3, "abcd", "bc")
280 Call ok(x = 2, "InStr returned " & x)
282 x = InStr(2.6, "abcd", "bc")
283 Call ok(x = 0, "InStr returned " & x)
285 Sub TestMid(str, start, len, ex)
286 x = Mid(str, start, len)
287 Call ok(x = ex, "Mid(" & str & ", " & start & ", " & len & ") = " & x & " expected " & ex)
288 End Sub
290 Sub TestMid2(str, start, ex)
291 x = Mid(str, start)
292 Call ok(x = ex, "Mid(" & str & ", " & start & ") = " & x & " expected " & ex)
293 End Sub
295 TestMid "test", 2, 2, "es"
296 TestMid "test", 2, 4, "est"
297 TestMid "test", 1, 2, "te"
298 TestMid "test", 1, 0, ""
299 TestMid "test", 1, 0, ""
300 TestMid "test", 5, 2, ""
301 TestMid2 "test", 1, "test"
302 TestMid2 "test", 2, "est"
303 TestMid2 "test", 4, "t"
304 TestMid2 "test", 5, ""
306 Sub TestUCase(str, ex)
307 x = UCase(str)
308 Call ok(x = ex, "UCase(" & str & ") = " & x & " expected " & ex)
309 End Sub
311 TestUCase "test", "TEST"
312 TestUCase "123aBC?", "123ABC?"
313 TestUCase "", ""
314 TestUCase 1, "1"
315 if isEnglishLang then TestUCase true, "TRUE"
316 TestUCase 0.123, doubleAsString(0.123)
317 TestUCase Empty, ""
318 Call ok(getVT(UCase(Null)) = "VT_NULL", "getVT(UCase(Null)) = " & getVT(UCase(Null)))
320 Sub TestLCase(str, ex)
321 x = LCase(str)
322 Call ok(x = ex, "LCase(" & str & ") = " & x & " expected " & ex)
323 End Sub
325 TestLCase "test", "test"
326 TestLCase "123aBC?", "123abc?"
327 TestLCase "", ""
328 TestLCase 1, "1"
329 if isEnglishLang then TestLCase true, "true"
330 TestLCase 0.123, doubleAsString(0.123)
331 TestLCase Empty, ""
332 Call ok(getVT(LCase(Null)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null)))
334 Call ok(Len("abc") = 3, "Len(abc) = " & Len("abc"))
335 Call ok(Len("") = 0, "Len() = " & Len(""))
336 Call ok(Len(1) = 1, "Len(1) = " & Len(1))
337 Call ok(isNull(Len(null)), "Len(null) = " & Len(null))
338 Call ok(Len(empty) = 0, "Len(empty) = " & Len(empty))
339 Call ok(getVT(Len("abc")) = "VT_I4", "getVT(Len(abc)) = " & getVT(Len("abc")))
341 Call ok(Space(1) = " ", "Space(1) = " & Space(1) & """")
342 Call ok(Space(0) = "", "Space(0) = " & Space(0) & """")
343 Call ok(Space(false) = "", "Space(false) = " & Space(false) & """")
344 Call ok(Space(5) = " ", "Space(5) = " & Space(5) & """")
345 Call ok(Space(5.2) = " ", "Space(5.2) = " & Space(5.2) & """")
346 Call ok(Space(5.8) = " ", "Space(5.8) = " & Space(5.8) & """")
347 Call ok(Space(5.5) = " ", "Space(5.5) = " & Space(5.5) & """")
348 Call ok(Space(4.5) = " ", "Space(4.5) = " & Space(4.5) & """")
349 Call ok(Space(0.5) = "", "Space(0.5) = " & Space(0.5) & """")
350 Call ok(Space(1.5) = " ", "Space(1.5) = " & Space(1.5) & """")
351 Call ok(Space("1") = " ", "Space(""1"") = " & Space("1") & """")
353 Sub TestStrReverse(str, ex)
354 Call ok(StrReverse(str) = ex, "StrReverse(" & str & ") = " & StrReverse(str))
355 End Sub
357 TestStrReverse "test", "tset"
358 TestStrReverse "", ""
359 TestStrReverse 123, "321"
360 if isEnglishLang then TestStrReverse true, "eurT"
362 Sub TestLeft(str, len, ex)
363 Call ok(Left(str, len) = ex, "Left(" & str & ", " & len & ") = " & Left(str, len))
364 End Sub
366 TestLeft "test", 2, "te"
367 TestLeft "test", 5, "test"
368 TestLeft "test", 0, ""
369 TestLeft 123, 2, "12"
370 TestLeft "123456", 1.5, "12"
371 TestLeft "123456", 2.5, "12"
372 TestLeft "test", "2", "te"
373 if isEnglishLang then TestLeft true, 2, "Tr"
375 Sub TestRight(str, len, ex)
376 Call ok(Right(str, len) = ex, "Right(" & str & ", " & len & ") = " & Right(str, len))
377 End Sub
379 TestRight "test", 2, "st"
380 TestRight "test", 5, "test"
381 TestRight "test", 0, ""
382 TestRight 123, 2, "23"
383 if isEnglishLang then TestRight true, 2, "ue"
385 Sub TestTrim(str, exstr)
386 Call ok(Trim(str) = exstr, "Trim(" & str & ") = " & Trim(str))
387 End Sub
389 TestTrim " test ", "test"
390 TestTrim "test ", "test"
391 TestTrim " test", "test"
392 TestTrim "test", "test"
393 TestTrim "", ""
394 TestTrim 123, "123"
395 if isEnglishLang then TestTrim true, "True"
397 Sub TestLTrim(str, exstr)
398 Call ok(LTrim(str) = exstr, "LTrim(" & str & ") = " & LTrim(str))
399 End Sub
401 TestLTrim " test ", "test "
402 TestLTrim "test ", "test "
403 TestLTrim " test", "test"
404 TestLTrim "test", "test"
405 TestLTrim "", ""
406 TestLTrim 123, "123"
407 if isEnglishLang then TestLTrim true, "True"
409 Sub TestRound(val, exval, vt)
410 Call ok(Round(val) = exval, "Round(" & val & ") = " & Round(val))
411 Call ok(getVT(Round(val)) = vt, "getVT(Round(" & val & ")) = " & getVT(Round(val)))
412 End Sub
414 Sub TestRTrim(str, exstr)
415 Call ok(RTrim(str) = exstr, "RTrim(" & str & ") = " & RTrim(str))
416 End Sub
418 TestRTrim " test ", " test"
419 TestRTrim "test ", "test"
420 TestRTrim " test", " test"
421 TestRTrim "test", "test"
422 TestRTrim "", ""
423 TestRTrim 123, "123"
424 if isEnglishLang then TestRTrim true, "True"
426 TestRound 3, 3, "VT_I2"
427 TestRound 3.3, 3, "VT_R8"
428 TestRound 3.8, 4, "VT_R8"
429 TestRound 3.5, 4, "VT_R8"
430 TestRound -3.3, -3, "VT_R8"
431 TestRound -3.5, -4, "VT_R8"
432 TestRound "2", 2, "VT_R8"
433 TestRound true, true, "VT_BOOL"
434 TestRound false, false, "VT_BOOL"
436 if isEnglishLang then
437 Call ok(WeekDayName(1) = "Sunday", "WeekDayName(1) = " & WeekDayName(1))
438 Call ok(WeekDayName(3) = "Tuesday", "WeekDayName(3) = " & WeekDayName(3))
439 Call ok(WeekDayName(7) = "Saturday", "WeekDayName(7) = " & WeekDayName(7))
440 Call ok(WeekDayName(1.1) = "Sunday", "WeekDayName(1.1) = " & WeekDayName(1.1))
441 Call ok(WeekDayName(1, false) = "Sunday", "WeekDayName(1, false) = " & WeekDayName(1, false))
442 Call ok(WeekDayName(1, true) = "Sun", "WeekDayName(1, true) = " & WeekDayName(1, true))
443 Call ok(WeekDayName(1, 10) = "Sun", "WeekDayName(1, 10) = " & WeekDayName(1, 10))
444 Call ok(WeekDayName(1, true, 0) = "Sun", "WeekDayName(1, true, 0) = " & WeekDayName(1, true, 0))
445 Call ok(WeekDayName(1, true, 2) = "Mon", "WeekDayName(1, true, 2) = " & WeekDayName(1, true, 2))
446 Call ok(WeekDayName(1, true, 2.5) = "Mon", "WeekDayName(1, true, 2.5) = " & WeekDayName(1, true, 2.5))
447 Call ok(WeekDayName(1, true, 1.5) = "Mon", "WeekDayName(1, true, 1.5) = " & WeekDayName(1, true, 1.5))
448 Call ok(WeekDayName(1, true, 7) = "Sat", "WeekDayName(1, true, 7) = " & WeekDayName(1, true, 7))
449 Call ok(WeekDayName(1, true, 7.1) = "Sat", "WeekDayName(1, true, 7.1) = " & WeekDayName(1, true, 7.1))
451 Call ok(MonthName(1) = "January", "MonthName(1) = " & MonthName(1))
452 Call ok(MonthName(12) = "December", "MonthName(12) = " & MonthName(12))
453 Call ok(MonthName(1, 0) = "January", "MonthName(1, 0) = " & MonthName(1, 0))
454 Call ok(MonthName(12, false) = "December", "MonthName(12, false) = " & MonthName(12, false))
455 Call ok(MonthName(1, 10) = "Jan", "MonthName(1, 10) = " & MonthName(1, 10))
456 Call ok(MonthName(12, true) = "Dec", "MonthName(12, true) = " & MonthName(12, true))
457 end if
459 Call ok(getVT(Now()) = "VT_DATE", "getVT(Now()) = " & getVT(Now()))
461 Call ok(vbOKOnly = 0, "vbOKOnly = " & vbOKOnly)
462 Call ok(getVT(vbOKOnly) = "VT_I2", "getVT(vbOKOnly) = " & getVT(vbOKOnly))
463 Call ok(vbOKCancel = 1, "vbOKCancel = " & vbOKCancel)
464 Call ok(getVT(vbOKCancel) = "VT_I2", "getVT(vbOKCancel) = " & getVT(vbOKCancel))
465 Call ok(vbAbortRetryIgnore = 2, "vbAbortRetryIgnore = " & vbAbortRetryIgnore)
466 Call ok(getVT(vbAbortRetryIgnore) = "VT_I2", "getVT(vbAbortRetryIgnore) = " & getVT(vbAbortRetryIgnore))
467 Call ok(vbYesNoCancel = 3, "vbYesNoCancel = " & vbYesNoCancel)
468 Call ok(getVT(vbYesNoCancel) = "VT_I2", "getVT(vbYesNoCancel) = " & getVT(vbYesNoCancel))
469 Call ok(vbYesNo = 4, "vbYesNo = " & vbYesNo)
470 Call ok(getVT(vbYesNo) = "VT_I2", "getVT(vbYesNo) = " & getVT(vbYesNo))
471 Call ok(vbRetryCancel = 5, "vbRetryCancel = " & vbRetryCancel)
472 Call ok(getVT(vbRetryCancel) = "VT_I2", "getVT(vbRetryCancel) = " & getVT(vbRetryCancel))
474 Call ok(vbOK = 1, "vbOK = " & vbOK)
475 Call ok(getVT(vbOK) = "VT_I2", "getVT(vbOK) = " & getVT(vbOK))
476 Call ok(vbCancel = 2, "vbCancel = " & vbCancel)
477 Call ok(getVT(vbCancel) = "VT_I2", "getVT(vbCancel) = " & getVT(vbCancel))
478 Call ok(vbAbort = 3, "vbAbort = " & vbAbort)
479 Call ok(getVT(vbAbort) = "VT_I2", "getVT(vbAbort) = " & getVT(vbAbort))
480 Call ok(vbRetry = 4, "vbRetry = " & vbRetry)
481 Call ok(getVT(vbRetry) = "VT_I2", "getVT(vbRetry) = " & getVT(vbRetry))
482 Call ok(vbIgnore = 5, "vbIgnore = " & vbIgnore)
483 Call ok(getVT(vbIgnore) = "VT_I2", "getVT(vbIgnore) = " & getVT(vbIgnore))
484 Call ok(vbYes = 6, "vbYes = " & vbYes)
485 Call ok(getVT(vbYes) = "VT_I2", "getVT(vbYes) = " & getVT(vbYes))
486 Call ok(vbNo = 7, "vbNo = " & vbNo)
487 Call ok(getVT(vbNo) = "VT_I2", "getVT(vbNo) = " & getVT(vbNo))
489 Call ok(CInt(-36.75) = -37, "CInt(-36.75) = " & CInt(-36.75))
490 Call ok(getVT(CInt(-36.75)) = "VT_I2", "getVT(CInt(-36.75)) = " & getVT(CInt(-36.75)))
491 Call ok(CInt(-36.50) = -36, "CInt(-36.50) = " & CInt(-36.50))
492 Call ok(getVT(CInt(-36.50)) = "VT_I2", "getVT(CInt(-36.50)) = " & getVT(CInt(-36.50)))
493 Call ok(CInt(-36.25) = -36, "CInt(-36.25) = " & CInt(-36.25))
494 Call ok(getVT(CInt(-36.25)) = "VT_I2", "getVT(CInt(-36.25)) = " & getVT(CInt(-36.25)))
495 Call ok(CInt(-36) = -36, "CInt(-36) = " & CInt(-36))
496 Call ok(getVT(CInt(-36)) = "VT_I2", "getVT(CInt(-36)) = " & getVT(CInt(-36)))
497 Call ok(CInt(0) = 0, "CInt(0) = " & CInt(0))
498 Call ok(getVT(CInt(0)) = "VT_I2", "getVT(CInt(0)) = " & getVT(CInt(0)))
499 Call ok(CInt(0.0) = 0, "CInt(0.0) = " & CInt(0))
500 Call ok(getVT(CInt(0.0)) = "VT_I2", "getVT(CInt(0.0)) = " & getVT(CInt(0.0)))
501 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0))
502 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
503 Call ok(CInt(36) = 36, "CInt(36) = " & CInt(36))
504 Call ok(getVT(CInt(36)) = "VT_I2", "getVT(CInt(36)) = " & getVT(CInt(36)))
505 Call ok(CInt(36.25) = 36, "CInt(36.25) = " & CInt(36.25))
506 Call ok(getVT(CInt(36.25)) = "VT_I2", "getVT(CInt(36.25)) = " & getVT(CInt(36.25)))
507 Call ok(CInt(36.50) = 36, "CInt(36.50) = " & CInt(36.50))
508 Call ok(getVT(CInt(36.50)) = "VT_I2", "getVT(CInt(36.50)) = " & getVT(CInt(36.50)))
509 Call ok(CInt(36.75) = 37, "CInt(36.75) = " & CInt(36.75))
510 Call ok(getVT(CInt(36.75)) = "VT_I2", "getVT(CInt(36.75)) = " & getVT(CInt(36.75)))
513 Call ok(CBool(5) = true, "CBool(5) = " & CBool(5))
514 Call ok(getVT(CBool(5)) = "VT_BOOL", "getVT(CBool(5)) = " & getVT(CBool(5)))
515 Call ok(CBool(0) = false, "CBool(0) = " & CBool(0))
516 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
517 Call ok(CBool(-5) = true, "CBool(-5) = " & CBool(-5))
518 Call ok(getVT(CBool(-5)) = "VT_BOOL", "getVT(CBool(-5)) = " & getVT(CBool(-5)))
520 Sub testCBoolError(strings, error_num)
521 on error resume next
523 Call Err.clear()
524 Call CBool(strings)
525 Call ok(Err.number = error_num, "Err.number = " & Err.number)
526 End Sub
528 Class ValClass
529 Public myval
531 Public default Property Get defprop
532 defprop = myval
533 End Property
534 End Class
536 Dim MyObject
537 Set MyObject = New ValClass
539 Call ok(CBool(Empty) = False, "CBool(Empty) = " & CBool(Empty))
540 Call ok(getVT(CBool(Empty)) = "VT_BOOL", "getVT(CBool(Empty)) = " & getVT(CBool(Empty)))
541 Call ok(CBool(1) = True, "CBool(1) = " & CBool(1))
542 Call ok(getVT(CBool(1)) = "VT_BOOL", "getVT(CBool(1)) = " & getVT(CBool(1)))
543 Call ok(CBool(0) = False, "CBool(0) = " & CBool(0))
544 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
545 Call ok(CBool(-0.56) = True, "CBool(-0.56) = " & CBool(-0.56))
546 Call ok(getVT(CBool(-0.56)) = "VT_BOOL", "getVT(CBool(-0.56)) = " & getVT(CBool(-0.56)))
547 Call testCBoolError("", 13)
548 Call ok(CBool("0") = False, "CBool(""0"") = " & CBool("0"))
549 Call ok(getVT(CBool("0")) = "VT_BOOL", "getVT(CBool(""0"")) = " & getVT(CBool("0")))
550 If isEnglishLang Then
551 Call ok(CBool("0.1") = True, "CBool(""0.1"") = " & CBool("0.1"))
552 Call ok(getVT(CBool("0.1")) = "VT_BOOL", "getVT(CBool(""0.1"")) = " & getVT(CBool("0.1")))
553 End If
554 Call ok(CBool("true") = True, "CBool(""true"") = " & CBool("true"))
555 Call ok(getVT(CBool("true")) = "VT_BOOL", "getVT(CBool(""true"")) = " & getVT(CBool("true")))
556 Call ok(CBool("false") = False, "CBool(""false"") = " & CBool("false"))
557 Call ok(getVT(CBool("false")) = "VT_BOOL", "getVT(CBool(""false"")) = " & getVT(CBool("false")))
558 Call ok(CBool("TRUE") = True, "CBool(""TRUE"") = " & CBool("TRUE"))
559 Call ok(getVT(CBool("TRUE")) = "VT_BOOL", "getVT(CBool(""TRUE"")) = " & getVT(CBool("TRUE")))
560 Call ok(CBool("FALSE") = False, "CBool(""FALSE"") = " & CBool("FALSE"))
561 Call ok(getVT(CBool("FALSE")) = "VT_BOOL", "getVT(CBool(""FALSE"")) = " & getVT(CBool("FALSE")))
562 Call ok(CBool("#TRUE#") = True, "CBool(""#TRUE#"") = " & CBool("#TRUE#"))
563 Call ok(getVT(CBool("#TRUE#")) = "VT_BOOL", "getVT(CBool(""#TRUE#"")) = " & getVT(CBool("#TRUE#")))
564 Call ok(CBool("#FALSE#") = False, "CBool(""#FALSE#"") = " & CBool("#FALSE#"))
565 Call ok(getVT(CBool("#FALSE#")) = "VT_BOOL", "getVT(CBool(""#FALSE#"")) = " & getVT(CBool("#FALSE#")))
566 Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject))
567 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
568 MyObject.myval = 1
569 Call ok(CBool(MyObject) = True, "CBool(MyObject) = " & CBool(MyObject))
570 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
571 MyObject.myval = 0
572 Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject))
573 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
575 Sub testCByteError(strings, error_num1,error_num2)
576 on error resume next
577 Dim x
579 Call Err.clear()
580 x = CByte(strings)
581 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
583 Call Err.clear()
584 Call CByte(strings)
585 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
586 End Sub
588 Call ok(CByte(Empty) = 0, "CByte(Empty) = " & CByte(Empty))
589 Call ok(getVT(CByte(Empty)) = "VT_UI1", "getVT(CByte(Empty)) = " & getVT(CByte(Empty)))
590 Call ok(CByte(255) = 255, "CByte(255) = " & CByte(255))
591 Call ok(getVT(CByte(255)) = "VT_UI1", "getVT(CByte(255)) = " & getVT(CByte(255)))
592 Call ok(CByte(255.49) = 255, "CByte(255.49) = " & CByte(255.49))
593 Call ok(getVT(CByte(255.49)) = "VT_UI1", "getVT(CByte(255.49)) = " & getVT(CByte(255.49)))
594 Call testCByteError(1, 0, 458)
595 Call testCByteError("", 13, 13)
596 Call testCByteError("-1", 6, 6)
597 Call testCByteError("258", 6, 6)
598 Call testCByteError("TRUE", 13, 13)
599 Call testCByteError("FALSE", 13, 13)
600 Call testCByteError("#TRue#", 13, 13)
601 Call testCByteError("#fAlSE#", 13, 13)
602 If isEnglishLang Then
603 Call ok(CByte("-0.5") = 0, "CByte(""-0.5"") = " & CByte("-0.5"))
604 Call ok(getVT(CByte("-0.5")) = "VT_UI1", "getVT(CByte(""-0.5"")) = " & getVT(CByte("-0.5")))
605 End If
606 Call ok(CByte(True) = 255, "CByte(True) = " & CByte(True))
607 Call ok(getVT(CByte(True)) = "VT_UI1", "getVT(CByte(True)) = " & getVT(CByte(True)))
608 Call ok(CByte(False) = 0, "CByte(False) = " & CByte(False))
609 Call ok(getVT(CByte(False)) = "VT_UI1", "getVT(CByte(False)) = " & getVT(CByte(False)))
610 Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject))
611 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
612 MyObject.myval = 1
613 Call ok(CByte(MyObject) = 1, "CByte(MyObject) = " & CByte(MyObject))
614 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
615 MyObject.myval = 0
616 Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject))
617 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
619 Sub testCCurError(strings, error_num1, error_num2)
620 on error resume next
621 Dim x
623 Call Err.clear()
624 x = CCur(strings)
625 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
627 Call Err.clear()
628 Call CCur(strings)
629 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
630 End Sub
632 Call ok(CCur(Empty) = 0, "CCur(Empty) = " & CCur(Empty))
633 Call ok(getVT(CCur(Empty)) = "VT_CY", "getVT(CCur(Empty)) = " & getVT(CCur(Empty)))
634 Call ok(CCur(-32768) = -32768, "CCur(-32768) = " & CCur(-32768))
635 Call ok(getVT(CCur(-32768)) = "VT_CY", "getVT(CCur(-32768)) = " & getVT(CCur(-32768)))
636 Call ok(CCur(32768) = 32768, "CCur(32768) = " & CCur(32768))
637 Call ok(getVT(CCur(32768)) = "VT_CY", "getVT(CCur(32768)) = " & getVT(CCur(32768)))
638 Call ok(CCur(0.000149) = 0.0001, "CCur(0.000149) = " & CCur(0.000149))
639 Call ok(getVT(CCur(0.000149)) = "VT_CY", "getVT(CCur(0.000149)) = " & getVT(CCur(0.000149)))
640 Call ok(CCur(2147483647.99) = 2147483647.99, "CCur(2147483647.99) = " & CCur(2147483647.99))
641 Call ok(getVT(CCur(2147483647.99)) = "VT_CY", "getVT(CCur(2147483647.99)) = " & getVT(CCur(2147483647.99)))
642 Call ok(CCur("-1") = -1, "CCur(""-1"") = " & CCur("-1"))
643 Call ok(getVT(CCur("-1")) = "VT_CY", "getVT(CCur(""-1"")) = " & getVT(CCur("-1")))
644 If isEnglishLang Then
645 Call ok(CCur("-0.5") = -0.5, "CCur(""-0.5"") = " & CCur("-0.5"))
646 Call ok(getVT(CCur("-0.5")) = "VT_CY", "getVT(CCur(""-0.5"")) = " & getVT(CCur("-0.5")))
647 End If
648 Call testCCurError("", 13, 13)
649 Call testCCurError("-1", 0, 458)
650 Call testCCurError("TRUE", 13, 13)
651 Call testCCurError("FALSE", 13, 13)
652 Call testCCurError("#TRue#", 13, 13)
653 Call testCCurError("#fAlSE#", 13, 13)
654 Call testCCurError(1, 0, 458)
655 Call ok(CCur(True) = -1, "CCur(True) = " & CCur(True))
656 Call ok(getVT(CCur(True)) = "VT_CY", "getVT(CCur(True)) = " & getVT(CCur(True)))
657 Call ok(CCur(False) = 0, "CCur(False) = " & CCur(False))
658 Call ok(getVT(CCur(False)) = "VT_CY", "getVT(CCur(False)) = " & getVT(CCur(False)))
659 MyObject.myval = 0.1
660 Call ok(CCur(MyObject) = 0.1, "CCur(MyObject) = " & CCur(MyObject))
661 Call ok(getVT(CCur(MyObject)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject)))
662 MyObject.myval = 0
663 Call ok(CCur(MyObject) = 0, "CCur(MyObject) = " & CCur(MyObject))
664 Call ok(getVT(CCur(MyObject)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject)))
666 Sub testCDblError(strings, error_num1, error_num2)
667 on error resume next
668 Dim x
670 Call Err.clear()
671 x = CDbl(strings)
672 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
674 Call Err.clear()
675 Call CDbl(strings)
676 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
677 End Sub
679 Call ok(CDbl(Empty) = 0, "CDbl(Empty) = " & CDbl(Empty))
680 Call ok(getVT(CDbl(Empty)) = "VT_R8", "getVT(CDbl(Empty)) = " & getVT(CDbl(Empty)))
681 Call ok(CDbl(CByte(0)) = 0, "CDbl(CByte(0)) = " & CDbl(CByte(0)))
682 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
683 Call ok(CDbl(CCur(0)) = 0, "CDbl(CCur(0)) = " & CDbl(CCur(0)))
684 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
685 Call ok(CDbl(0) = 0, "CDbl(0) = " & CDbl(0))
686 Call ok(getVT(CDbl(0)) = "VT_R8", "getVT(CDbl(0)) = " & getVT(CDbl(0)))
687 Call ok(CDbl(32768) = 32768, "CDbl(32768) = " & CDbl(32768))
688 Call ok(getVT(CDbl(32768)) = "VT_R8", "getVT(CDbl(32768)) = " & getVT(CDbl(32768)))
689 Call ok(CDbl(0.001 * 0.001) = 0.000001, "CDbl(0.001 * 0.001) = " & CDbl(0.001 * 0.001))
690 Call ok(getVT(CDbl(0.001 * 0.001)) = "VT_R8", "getVT(CDbl(0.001 * 0.001)) = " & getVT(CDbl(0.001 * 0.001)))
691 Call ok(CDbl("-1") = -1, "CDbl(""-1"") = " & CDbl("-1"))
692 Call ok(getVT(CDbl("-1")) = "VT_R8", "getVT(CDbl(""-1"")) = " & getVT(CDbl("-1")))
693 If isEnglishLang Then
694 Call ok(CDbl("-0.5") = -0.5, "CDbl(""-0.5"") = " & CDbl("-0.5"))
695 Call ok(getVT(CDbl("-0.5")) = "VT_R8", "getVT(CDbl(""-0.5"")) = " & getVT(CDbl("-0.5")))
696 End If
697 Call testCDblError("", 13, 13)
698 Call testCDblError("TRUE", 13, 13)
699 Call testCDblError("FALSE", 13, 13)
700 Call testCDblError("#TRue#", 13, 13)
701 Call testCDblError("#fAlSE#", 13, 13)
702 Call testCDblError(1, 0, 458)
703 Call ok(CDbl(True) = -1, "CDbl(True) = " & CDbl(True))
704 Call ok(getVT(CDbl(True)) = "VT_R8", "getVT(CDbl(True)) = " & getVT(CDbl(True)))
705 Call ok(CDbl(False) = 0, "CDbl(False) = " & CDbl(False))
706 Call ok(getVT(CDbl(False)) = "VT_R8", "getVT(CDbl(False)) = " & getVT(CDbl(False)))
707 MyObject.myval = 0.1
708 Call ok(CDbl(MyObject) = 0.1, "CDbl(MyObject) = " & CDbl(MyObject))
709 Call ok(getVT(CDbl(MyObject)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject)))
710 MyObject.myval = 0
711 Call ok(CDbl(MyObject) = 0, "CDbl(MyObject) = " & CDbl(MyObject))
712 Call ok(getVT(CDbl(MyObject)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject)))
714 Sub testCLngError(strings, error_num1, error_num2)
715 on error resume next
716 Dim x
718 Call Err.clear()
719 x = CLng(strings)
720 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
722 Call Err.clear()
723 Call CLng(strings)
724 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
725 End Sub
727 Call ok(CLng(Empty) = 0, "CLng(Empty) = " & CLng(Empty))
728 Call ok(getVT(CLng(Empty)) = "VT_I4", "getVT(CLng(Empty)) = " & getVT(CLng(Empty)))
729 Call ok(CLng(CByte(0)) = 0, "CLng(CByte(0)) = " & CLng(CByte(0)))
730 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
731 Call ok(CLng(CCur(0)) = 0, "CLng(CCur(0)) = " & CLng(CCur(0)))
732 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
733 Call ok(CLng(0) = 0, "CLng(0) = " & CLng(0))
734 Call ok(getVT(CLng(0)) = "VT_I4", "getVT(CLng(0)) = " & getVT(CLng(0)))
735 Call ok(CLng(0.49) = 0, "CLng(0.49) = " & CLng(0.49))
736 Call ok(getVT(CLng(0.49)) = "VT_I4", "getVT(CLng(0.49)) = " & getVT(CLng(0.49)))
737 Call ok(CLng(0.5) = 0, "CLng(0.5) = " & CLng(0.5))
738 Call ok(getVT(CLng(0.5)) = "VT_I4", "getVT(CLng(0.5)) = " & getVT(CLng(0.5)))
739 Call ok(CLng(0.51) = 1, "CLng(0.51) = " & CLng(0.51))
740 Call ok(getVT(CLng(0.51)) = "VT_I4", "getVT(CLng(0.51)) = " & getVT(CLng(0.51)))
741 Call ok(CLng(1.49) = 1, "CLng(1.49) = " & CLng(1.49))
742 Call ok(getVT(CLng(1.49)) = "VT_I4", "getVT(CLng(1.49)) = " & getVT(CLng(1.49)))
743 Call ok(CLng(1.5) = 2, "CLng(1.5) = " & CLng(1.5))
744 Call ok(getVT(CLng(1.5)) = "VT_I4", "getVT(CLng(1.5)) = " & getVT(CLng(1.5)))
745 Call ok(CLng(1.51) = 2, "CLng(1.51) = " & CLng(1.51))
746 Call ok(getVT(CLng(1.51)) = "VT_I4", "getVT(CLng(1.51)) = " & getVT(CLng(1.51)))
747 Call ok(CLng("-1") = -1, "CLng(""-1"") = " & CLng("-1"))
748 Call ok(getVT(CLng("-1")) = "VT_I4", "getVT(CLng(""-1"")) = " & getVT(CLng("-1")))
749 If isEnglishLang Then
750 Call ok(CLng("-0.5") = 0, "CLng(""-0.5"") = " & CLng("-0.5"))
751 Call ok(getVT(CLng("-0.5")) = "VT_I4", "getVT(CLng(""-0.5"")) = " & getVT(CLng("-0.5")))
752 End If
753 Call testCLngError("", 13, 13)
754 Call testCLngError("TRUE", 13, 13)
755 Call testCLngError("FALSE", 13, 13)
756 Call testCLngError("#TRue#", 13, 13)
757 Call testCLngError("#fAlSE#", 13, 13)
758 Call testCLngError(1, 0, 458)
759 Call ok(CLng(True) = -1, "CLng(True) = " & CLng(True))
760 Call ok(getVT(CLng(True)) = "VT_I4", "getVT(CLng(True)) = " & getVT(CLng(True)))
761 Call ok(CLng(False) = 0, "CLng(False) = " & CLng(False))
762 Call ok(getVT(CLng(False)) = "VT_I4", "getVT(CLng(False)) = " & getVT(CLng(False)))
763 MyObject.myval = 1
764 Call ok(CLng(MyObject) = 1, "CLng(MyObject) = " & CLng(MyObject))
765 Call ok(getVT(CLng(MyObject)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject)))
766 MyObject.myval = 0
767 Call ok(CLng(MyObject) = 0, "CLng(MyObject) = " & CLng(MyObject))
768 Call ok(getVT(CLng(MyObject)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject)))
770 Sub testCIntError(strings, error_num1, error_num2)
771 on error resume next
772 Dim x
774 Call Err.clear()
775 x = CInt(strings)
776 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
778 Call Err.clear()
779 Call CInt(strings)
780 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
781 End Sub
783 Call ok(CInt(Empty) = 0, "CInt(Empty) = " & CInt(Empty))
784 Call ok(getVT(CInt(Empty)) = "VT_I2", "getVT(CInt(Empty)) = " & getVT(CInt(Empty)))
785 Call ok(CInt(CByte(0)) = 0, "CInt(CByte(0)) = " & CInt(CByte(0)))
786 Call ok(getVT(CInt(CByte(0))) = "VT_I2", "getVT(CInt(CByte(0))) = " & getVT(CInt(CByte(0))))
787 Call ok(CInt(CCur(0)) = 0, "CInt(CCur(0)) = " & CInt(CCur(0)))
788 Call ok(getVT(CInt(CCur(0))) = "VT_I2", "getVT(CInt(CCur(0))) = " & getVT(CInt(CCur(0))))
789 Call ok(CInt(0.49) = 0, "CInt(0.49) = " & CInt(0.49))
790 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
791 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0.5))
792 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
793 Call ok(CInt(0.51) = 1, "CInt(0.51) = " & CInt(0.51))
794 Call ok(getVT(CInt(0.51)) = "VT_I2", "getVT(CInt(0.51)) = " & getVT(CInt(0.51)))
795 Call ok(CInt(1.49) = 1, "CInt(0.49) = " & CInt(0.49))
796 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
797 Call ok(CInt(1.5) = 2, "CInt(1.5) = " & CInt(1.5))
798 Call ok(getVT(CInt(1.5)) = "VT_I2", "getVT(CInt(1.5)) = " & getVT(CInt(1.5)))
799 Call ok(CInt(1.51) = 2, "CInt(1.51) = " & CInt(1.51))
800 Call ok(getVT(CInt(1.51)) = "VT_I2", "getVT(CInt(1.51)) = " & getVT(CInt(1.51)))
801 Call ok(CInt("-1") = -1, "CInt(""-1"") = " & CInt("-1"))
802 Call ok(getVT(CInt("-1")) = "VT_I2", "getVT(CInt(""-1"")) = " & getVT(CInt("-1")))
803 If isEnglishLang Then
804 Call ok(CInt("-0.5") = 0, "CInt(""-0.5"") = " & CInt("-0.5"))
805 Call ok(getVT(CInt("-0.5")) = "VT_I2", "getVT(CInt(""-0.5"")) = " & getVT(CInt("-0.5")))
806 End If
807 Call testCIntError("", 13, 13)
808 Call testCIntError("-1", 0, 458)
809 Call testCIntError("TRUE", 13, 13)
810 Call testCIntError("FALSE", 13, 13)
811 Call testCIntError("#TRue#", 13, 13)
812 Call testCIntError("#fAlSE#", 13, 13)
813 Call testCIntError(1, 0, 458)
814 Call testCIntError(32767.49, 0, 458)
815 Call testCIntError(32767.5, 6, 6)
816 Call testCIntError(-32768.5, 0, 458)
817 Call testCIntError(-32768.51, 6, 6)
818 Call ok(CInt(True) = -1, "CInt(True) = " & CInt(True))
819 Call ok(getVT(CInt(True)) = "VT_I2", "getVT(CInt(True)) = " & getVT(CInt(True)))
820 Call ok(CInt(False) = 0, "CInt(False) = " & CInt(False))
821 Call ok(getVT(CInt(False)) = "VT_I2", "getVT(CInt(False)) = " & getVT(CInt(False)))
822 MyObject.myval = 2.5
823 Call ok(CInt(MyObject) = 2, "CInt(MyObject) = " & CInt(MyObject))
824 Call ok(getVT(CInt(MyObject)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject)))
825 MyObject.myval = 1.5
826 Call ok(CInt(MyObject) = 2, "CInt(MyObject) = " & CInt(MyObject))
827 Call ok(getVT(CInt(MyObject)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject)))
829 Sub testCSngError(strings, error_num1, error_num2)
830 on error resume next
831 Dim x
833 Call Err.clear()
834 x = CSng(strings)
835 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
837 Call Err.clear()
838 Call CSng(strings)
839 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
840 End Sub
842 Call ok(CSng(Empty) = 0, "CSng(Empty) = " & CSng(Empty))
843 Call ok(getVT(CSng(Empty)) = "VT_R4", "getVT(CSng(Empty)) = " & getVT(CSng(Empty)))
844 Call ok(CSng(CByte(0)) = 0, "CSng(CByte(0)) = " & CSng(CByte(0)))
845 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
846 Call ok(CSng(CCur(0)) = 0, "CSng(CCur(0)) = " & CSng(CCur(0)))
847 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
848 Call ok(CSng(0) = 0, "CSng(0) = " & CSng(0))
849 Call ok(getVT(CSng(0)) = "VT_R4", "getVT(CSng(0)) = " & getVT(CSng(0)))
850 Call ok(CSng(32768) = 32768, "CSng(32768) = " & CSng(32768))
851 Call ok(getVT(CSng(32768)) = "VT_R4", "getVT(CSng(32768)) = " & getVT(CSng(32768)))
852 Call ok(CSng(0.001 * 0.001) = 0.000001, "CSng(0.001 * 0.001) = " & CSng(0.001 * 0.001))
853 Call ok(getVT(CSng(0.001 * 0.001)) = "VT_R4", "getVT(CSng(0.001 * 0.001)) = " & getVT(CSng(0.001 * 0.001)))
854 Call ok(CSng("-1") = -1, "CSng(""-1"") = " & CSng("-1"))
855 Call ok(getVT(CSng("-1")) = "VT_R4", "getVT(CSng(""-1"")) = " & getVT(CSng("-1")))
856 If isEnglishLang Then
857 Call ok(CSng("-0.5") = -0.5, "CSng(""-0.5"") = " & CSng("-0.5"))
858 Call ok(getVT(CSng("-0.5")) = "VT_R4", "getVT(CSng(""-0.5"")) = " & getVT(CSng("-0.5")))
859 End If
860 Call testCSngError("", 13, 13)
861 Call testCSngError("TRUE", 13, 13)
862 Call testCSngError("FALSE", 13, 13)
863 Call testCSngError("#TRue#", 13, 13)
864 Call testCSngError("#fAlSE#", 13, 13)
865 Call testCSngError(1, 0, 458)
866 Call ok(CSng(True) = -1, "CSng(True) = " & CSng(True))
867 Call ok(getVT(CSng(True)) = "VT_R4", "getVT(CSng(True)) = " & getVT(CSng(True)))
868 Call ok(CSng(False) = 0, "CSng(False) = " & CSng(False))
869 Call ok(getVT(CSng(False)) = "VT_R4", "getVT(CSng(False)) = " & getVT(CSng(False)))
870 MyObject.myval = 0.1
871 Call ok(CSng(MyObject) = 0.1, "CSng(MyObject) = " & CSng(MyObject))
872 Call ok(getVT(CSng(MyObject)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject)))
873 MyObject.myval = 0
874 Call ok(CSng(MyObject) = 0, "CSng(MyObject) = " & CSng(MyObject))
875 Call ok(getVT(CSng(MyObject)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject)))
877 Call ok(TypeName(Empty) = "Empty", "TypeName(MyEmpty) = " & TypeName(Empty))
878 Call ok(getVT(TypeName(Empty)) = "VT_BSTR", "getVT(TypeName(Empty)) = " & getVT(TypeName(Empty)))
879 Call ok(TypeName(Null) = "Null", "TypeName(Null) = " & TypeName(Null))
880 Call ok(getVT(TypeName(Null)) = "VT_BSTR", "getVT(TypeName(Null)) = " & getVT(TypeName(Null)))
881 Call ok(TypeName(CByte(255)) = "Byte", "TypeName(CByte(255)) = " & TypeName(CByte(255)))
882 Call ok(getVT(TypeName(CByte(255))) = "VT_BSTR", "getVT(TypeName(CByte(255))) = " & getVT(TypeName(CByte(255))))
883 Call ok(TypeName(255) = "Integer", "TypeName(255) = " & TypeName(255))
884 Call ok(getVT(TypeName(255)) = "VT_BSTR", "getVT(TypeName(255)) = " & getVT(TypeName(255)))
885 Call ok(TypeName(32768) = "Long", "TypeName(32768) = " & TypeName(32768))
886 Call ok(getVT(TypeName(32768)) = "VT_BSTR", "getVT(TypeName(32768)) = " & getVT(TypeName(32768)))
887 Call ok(TypeName(CSng(0.5)) = "Single", "TypeName(CSng(0.5)) = " & TypeName(CSng(0.5)))
888 Call ok(getVT(TypeName(CSng(0.5))) = "VT_BSTR", "getVT(TypeName(CSng(0.5))) = " & getVT(TypeName(CSng(0.5))))
889 Call ok(TypeName(-0.5) = "Double", "TypeName(-0.5) = " & TypeName(-0.5))
890 Call ok(getVT(TypeName(-0.5)) = "VT_BSTR", "getVT(TypeName(-0.5)) = " & getVT(TypeName(-0.5)))
891 Call ok(TypeName(CCur(0.5)) = "Currency", "TypeName(CCur(0.5)) = " & TypeName(CCur(0.5)))
892 Call ok(getVT(TypeName(CCur(0.5))) = "VT_BSTR", "getVT(TypeName(CCur(0.5))) = " & getVT(TypeName(CCur(0.5))))
893 Call ok(TypeName(CStr(0.5)) = "String", "TypeName(CStr(0.5)) = " & TypeName(CStr(0.5)))
894 Call ok(getVT(TypeName(CStr(0.5))) = "VT_BSTR", "getVT(TypeName(CStr(0.5))) = " & getVT(TypeName(CStr(0.5))))
895 Call ok(TypeName(True) = "Boolean", "TypeName(True) = " & TypeName(True))
896 Call ok(getVT(TypeName(True)) = "VT_BSTR", "getVT(TypeName(True)) = " & getVT(TypeName(True)))
898 Call ok(VarType(Empty) = vbEmpty, "VarType(Empty) = " & VarType(Empty))
899 Call ok(getVT(VarType(Empty)) = "VT_I2", "getVT(VarType(Empty)) = " & getVT(VarType(Empty)))
900 Call ok(VarType(Null) = vbNull, "VarType(Null) = " & VarType(Null))
901 Call ok(getVT(VarType(Null)) = "VT_I2", "getVT(VarType(Null)) = " & getVT(VarType(Null)))
902 Call ok(VarType(255) = vbInteger, "VarType(255) = " & VarType(255))
903 Call ok(getVT(VarType(255)) = "VT_I2", "getVT(VarType(255)) = " & getVT(VarType(255)))
904 Call ok(VarType(32768) = vbLong, "VarType(32768) = " & VarType(32768))
905 Call ok(getVT(VarType(32768)) = "VT_I2", "getVT(VarType(32768)) = " & getVT(VarType(32768)))
906 Call ok(VarType(CSng(0.5)) = vbSingle, "VarType(CSng(0.5)) = " & VarType(CSng(0.5)))
907 Call ok(getVT(VarType(CSng(0.5))) = "VT_I2", "getVT(VarType(CSng(0.5))) = " & getVT(VarType(CSng(0.5))))
908 Call ok(VarType(-0.5) = vbDouble, "VarType(-0.5) = " & VarType(-0.5))
909 Call ok(getVT(VarType(-0.5)) = "VT_I2", "getVT(VarType(-0.5)) = " & getVT(VarType(-0.5)))
910 Call ok(VarType(CCur(0.5)) = vbCurrency, "VarType(CCur(0.5)) = " & VarType(CCur(0.5)))
911 Call ok(getVT(VarType(CCur(0.5))) = "VT_I2", "getVT(VarType(CCur(0.5))) = " & getVT(VarType(CCur(0.5))))
912 Call ok(VarType(CStr(0.5)) = vbString, "VarType(CStr(0.5)) = " & VarType(CStr(0.5)))
913 Call ok(getVT(VarType(CStr(0.5))) = "VT_I2", "getVT(VarType(CStr(0.5))) = " & getVT(VarType(CStr(0.5))))
914 Call ok(VarType(CBool(0.5)) = vbBoolean, "VarType(CBool(0.5)) = " & VarType(CBool(0.5)))
915 Call ok(getVT(VarType(CBool(0.5))) = "VT_I2", "getVT(VarType(CBool(0.5))) = " & getVT(VarType(CBool(0.5))))
916 Call ok(VarType(CByte(255)) = vbByte, "VarType(CByte(255)) = " & VarType(CByte(255)))
917 Call ok(getVT(VarType(CByte(255))) = "VT_I2", "getVT(VarType(CByte(255))) = " & getVT(VarType(CByte(255))))
919 Call ok(Sgn(Empty) = 0, "Sgn(MyEmpty) = " & Sgn(Empty))
920 Call ok(getVT(Sgn(Empty)) = "VT_I2", "getVT(Sgn(MyEmpty)) = " & getVT(Sgn(Empty)))
921 Call ok(Sgn(0) = 0, "Sgn(0) = " & Sgn(0))
922 Call ok(getVT(Sgn(0)) = "VT_I2", "getVT(Sgn(0)) = " & getVT(Sgn(0)))
923 Call ok(Sgn(-32769) = -1, "Sgn(-32769) = " & Sgn(-32769))
924 Call ok(getVT(Sgn(-32769)) = "VT_I2", "getVT(Sgn(-32769)) = " & getVT(Sgn(-32769)))
925 Call ok(Sgn(CSng(-0.5)) = -1, "Sgn(CSng(-0.5)) = " & Sgn(CSng(-0.5)))
926 Call ok(getVT(Sgn(CSng(-0.5))) = "VT_I2", "getVT(Sgn(CSng(-0.5))) = " & getVT(Sgn(CSng(-0.5))))
927 Call ok(Sgn(0.5) = 1, "Sgn(0.5) = " & Sgn(0.5))
928 Call ok(getVT(Sgn(0.5)) = "VT_I2", "getVT(Sgn(0.5)) = " & getVT(Sgn(0.5)))
929 Call ok(Sgn(CCur(-1)) = -1, "Sgn(CCur(-1)) = " & Sgn(CCur(-1)))
930 Call ok(getVT(Sgn(CCur(-1))) = "VT_I2", "getVT(Sgn(CCur(-1))) = " & getVT(Sgn(CCur(-1))))
931 Call ok(Sgn(CStr(-1)) = -1, "Sgn(CStr(-1)) = " & Sgn(CStr(-1)))
932 Call ok(getVT(Sgn(CStr(-1))) = "VT_I2", "getVT(Sgn(CStr(-1))) = " & getVT(Sgn(CStr(-1))))
933 Call ok(Sgn(False) = 0, "Sgn(False) = " & Sgn(False))
934 Call ok(getVT(Sgn(False)) = "VT_I2", "getVT(Sgn(False)) = " & getVT(Sgn(False)))
935 Call ok(Sgn(True) = -1, "Sgn(True) = " & Sgn(True))
936 Call ok(getVT(Sgn(True)) = "VT_I2", "getVT(Sgn(True)) = " & getVT(Sgn(True)))
937 Call ok(Sgn(CByte(1)) = 1, "Sgn(CByte(1)) = " & Sgn(CByte(1)))
938 Call ok(getVT(Sgn(CByte(1))) ="VT_I2", "getVT(Sgn(CByte(1))) = " & getVT(Sgn(CByte(1))))
940 Sub testSgnError(strings, error_num)
941 on error resume next
943 Call Err.clear()
944 Call Sgn(strings)
945 Call ok(Err.number = error_num, "Err.number = " & Err.number)
946 End Sub
948 Call testSgnError(Null, 94)
950 Call ok(Abs(Empty) = 0, "Abs(Empty) = " & Abs(Empty))
951 Call ok(getVT(Abs(Empty)) = "VT_I2", "getVT(Abs(Empty)) = " & getVT(Abs(Empty)))
952 Call ok(IsNull(Abs(Null)), "Is Abs(Null) not Null?")
953 Call ok(getVT(Abs(Null)) = "VT_NULL", "getVT(Abs(Null)) = " & getVT(Abs(Null)))
954 Call ok(Abs(0) = 0, "Abs(0) = " & Abs(0))
955 Call ok(getVT(Abs(0)) = "VT_I2", "getVT(Abs(0)) = " & getVT(Abs(0)))
956 Call ok(Abs(-32769) = 32769, "Abs(-32769) = " & Abs(-32769))
957 Call ok(getVT(Abs(-32769)) = "VT_I4", "getVT(Abs(-32769)) = " & getVT(Abs(-32769)))
958 Call ok(Abs(CSng(-0.5)) = 0.5, "Abs(CSng(-0.5)) = " & Abs(CSng(-0.5)))
959 Call ok(getVT(Abs(CSng(-0.5))) = "VT_R4", "getVT(Abs(CSng(-0.5))) = " & getVT(Abs(CSng(-0.5))))
960 Call ok(Abs(0.5) = 0.5, "Abs(0.5) = " & Abs(0.5))
961 Call ok(getVT(Abs(0.5)) = "VT_R8", "getVT(Abs(0.5)) = " & getVT(Abs(0.5)))
962 Call ok(Abs(CCur(-1)) = 1, "Abs(CCur(-1)) = " & Abs(CCur(-1)))
963 Call ok(getVT(Abs(CCur(-1))) = "VT_CY", "getVT(Abs(CCur(-1))) = " & getVT(Abs(CCur(-1))))
964 Call ok(Abs("-1") = 1, "Abs(""-1"") = " & Abs("-1"))
965 Call ok(getVT(Abs("-1")) = "VT_R8", "getVT(Abs(""-1"")) = " & getVT(Abs("-1")))
966 Call ok(Abs(False) = 0, "Abs(False) = " & Abs(False))
967 Call ok(getVT(Abs(False)) = "VT_I2", "getVT(Abs(False)) = " & getVT(Abs(False)))
968 Call ok(Abs(True) = 1, "Abs(True) = " & Abs(True))
969 Call ok(getVT(Abs(True)) = "VT_I2", "getVT(Abs(True)) = " & getVT(Abs(True)))
970 Call ok(Abs(CByte(1)) = 1, "Abs(CByte(1)) = " & Abs(CByte(1)))
971 Call ok(getVT(Abs(CByte(1))) = "VT_UI1", "getVT(Abs(CByte(1))) = " & getVT(Abs(CByte(1))))
973 Sub testAbsError(strings, error_num1, error_num2)
974 on error resume next
975 Dim x
977 Call Err.clear()
978 x = Abs(strings)
979 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
981 Call Err.clear()
982 Call Abs(strings)
983 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
984 End Sub
986 Call testAbsError("strings", 13, 13)
987 Call testAbsError(-4, 0, 0)
989 Call ok(ScriptEngine = "VBScript", "Is scriptengine not VBScript?")
990 Call ok(getVT(ScriptEngine) = "VT_BSTR", "getVT(ScriptEngine) = " & getVT(ScriptEngine))
992 Call ok(getVT(ScriptEngineBuildVersion) = "VT_I4", "getVT(ScriptEngineBuildVersion) = " & getVT(ScriptEngineBuildVersion))
994 Call ok(getVT(ScriptEngineMajorVersion) = "VT_I4", "getVT(ScriptEngineMajorVersion) = " & getVT(ScriptEngineMajorVersion))
996 Call ok(getVT(ScriptEngineMinorVersion) = "VT_I4", "getVT(ScriptEngineMinorVersion) = " & getVT(ScriptEngineMinorVersion))
998 Call ok(Fix(Empty) = 0, "Fix(Empty) = " & Fix(Empty))
999 Call ok(getVT(Fix(Empty)) = "VT_I2", "getVT(Fix(Empty)) = " & getVT(Fix(Empty)))
1000 Call ok(Fix(CCur(-0.99)) = 0, "Fix(CCur(-0.99)) = " & Fix(CCur(-0.99)))
1001 Call ok(getVT(Fix(CCur(-0.99))) = "VT_CY", "getVT(Fix(CCur(-0.99))) = " & getVT(Fix(CCur(-0.99))))
1002 Call ok(Fix(1.99) = 1, "Fix(1.99) = " & Fix(1.99))
1003 Call ok(getVT(Fix(1.99)) = "VT_R8", "getVT(Fix(1.99)) = " & getVT(Fix(1.99)))
1004 Call ok(Fix(-1.99) = -1, "Fix(-1.99) = " & Fix(-1.99))
1005 Call ok(getVT(Fix(-1.99)) = "VT_R8", "getVT(Fix(-1.99)) = " & getVT(Fix(-1.99)))
1006 If isEnglishLang Then
1007 Call ok(Fix("1.99") = 1, "Fix(""1.99"") = " & Fix("1.99"))
1008 Call ok(getVT(Fix("1.99")) = "VT_R8", "getVT(Fix(""1.99"")) = " & getVT(Fix("1.99")))
1009 Call ok(Fix("-1.99") = -1, "Fix(""-1.99"") = " & Fix("-1.99"))
1010 Call ok(getVT(Fix("-1.99")) = "VT_R8", "getVT(Fix(""-1.99"")) = " & getVT(Fix("-1.99")))
1011 End If
1012 Call ok(Fix(True) = -1, "Fix(True) = " & Fix(True))
1013 Call ok(getVT(Fix(True)) = "VT_I2", "getVT(Fix(True)) = " & getVT(Fix(True)))
1014 Call ok(Fix(False) = 0, "Fix(False) = " & Fix(False))
1015 Call ok(getVT(Fix(False)) = "VT_I2", "getVT(Fix(False)) = " & getVT(Fix(False)))
1016 MyObject.myval = 2.5
1017 Call ok(Fix(MyObject) = 2, "Fix(MyObject) = " & Fix(MyObject))
1018 Call ok(getVT(Fix(MyObject)) = "VT_R8", "getVT(Fix(MyObject)) = " & getVT(Fix(MyObject)))
1019 MyObject.myval = -2.5
1020 Call ok(Fix(MyObject) = -2, "Fix(MyObject) = " & Fix(MyObject))
1021 Call ok(getVT(Fix(MyObject)) = "VT_R8", "getVT(Fix(MyObject)) = " & getVT(Fix(MyObject)))
1023 Call ok(Int(Empty) = 0, "Int(Empty) = " & Int(Empty))
1024 Call ok(getVT(Int(Empty)) = "VT_I2", "getVT(Int(Empty)) = " & getVT(Int(Empty)))
1025 Call ok(Int(CCur(-0.99)) = -1, "Int(CCur(-0.99)) = " & Int(CCur(-0.99)))
1026 Call ok(getVT(Int(CCur(-0.99))) = "VT_CY", "getVT(Int(CCur(-0.99))) = " & getVT(Int(CCur(-0.99))))
1027 Call ok(Int(1.99) = 1, "Int(1.99) = " & Int(1.99))
1028 Call ok(getVT(Int(1.99)) = "VT_R8", "getVT(Int(1.99)) = " & getVT(Int(1.99)))
1029 Call ok(Int(-1.99) = -2, "Int(-1.99) = " & Int(-1.99))
1030 Call ok(getVT(Int(-1.99)) = "VT_R8", "getVT(Int(-1.99)) = " & getVT(Int(-1.99)))
1031 If isEnglishLang Then
1032 Call ok(Int("1.99") = 1, "Int(""1.99"") = " & Int("1.99"))
1033 Call ok(getVT(Int("1.99")) = "VT_R8", "getVT(Int(""1.99"")) = " & getVT(Int("1.99")))
1034 Call ok(Int("-1.99") = -2, "Int(""-1.99"") = " & Int("-1.99"))
1035 Call ok(getVT(Int("-1.99")) = "VT_R8", "getVT(Int(""-1.99"")) = " & getVT(Int("-1.99")))
1036 End If
1037 Call ok(Int(True) = -1, "Int(True) = " & Int(True))
1038 Call ok(getVT(Int(True)) = "VT_I2", "getVT(Int(True)) = " & getVT(Int(True)))
1039 Call ok(Int(False) = 0, "Int(False) = " & Int(False))
1040 Call ok(getVT(Int(False)) = "VT_I2", "getVT(Int(False)) = " & getVT(Int(False)))
1041 MyObject.myval = 2.5
1042 Call ok(Int(MyObject) = 2, "Int(MyObject) = " & Int(MyObject))
1043 Call ok(getVT(Int(MyObject)) = "VT_R8", "getVT(Int(MyObject)) = " & getVT(Int(MyObject)))
1044 MyObject.myval = -2.5
1045 Call ok(Int(MyObject) = -3, "Int(MyObject) = " & Int(MyObject))
1046 Call ok(getVT(Int(MyObject)) = "VT_R8", "getVT(Int(MyObject)) = " & getVT(Int(MyObject)))
1048 Sub testSqrError(strings, error_num1, error_num2)
1049 on error resume next
1050 Dim x
1052 Call Err.clear()
1053 x = Sqr(strings)
1054 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1056 Call Err.clear()
1057 Call Sqr(strings)
1058 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1059 End Sub
1061 Call testSqrError(-2, 5, 5)
1062 Call testSqrError(True, 5, 5)
1064 Call ok(Sqr(Empty) = 0, "Sqr(Empty) = " & Sqr(Empty))
1065 Call ok(getVT(Sqr(Empty)) = "VT_R8", "getVT(Sqr(Empty)) = " & getVT(Sqr(Empty)))
1066 Call ok(Sqr(0) = 0, "Sqr(0) = " & Sqr(0))
1067 Call ok(getVT(Sqr(0)) = "VT_R8", "getVT(Sqr(0)) = " & getVT(Sqr(0)))
1068 Call ok(Sqr(1) = 1, "Sqr(1) = " & Sqr(1))
1069 Call ok(getVT(Sqr(1)) = "VT_R8", "getVT(Sqr(1)) = " & getVT(Sqr(1)))
1070 Call ok(Sqr(CSng(121)) = 11, "Sqr(CSng(121)) = " & Sqr(CSng(121)))
1071 Call ok(getVT(Sqr(CSng(121))) = "VT_R8", "getVT(Sqr(CSng(121))) = " & getVT(Sqr(CSng(121))))
1072 Call ok(Sqr(36100) = 190, "Sqr(36100) = " & Sqr(36100))
1073 Call ok(getVT(Sqr(36100)) = "VT_R8", "getVT(Sqr(36100)) = " & getVT(Sqr(36100)))
1074 Call ok(Sqr(CCur(0.0625)) = 0.25, "Sqr(CCur(0.0625)) = " & Sqr(CCur(0.0625)))
1075 Call ok(getVT(Sqr(CCur(0.0625))) = "VT_R8", "getVT(Sqr(CCur(0.0625))) = " & getVT(Sqr(CCur(0.0625))))
1076 Call ok(Sqr("100000000") = 10000, "Sqr(""100000000"") = " & Sqr("100000000"))
1077 Call ok(getVT(Sqr("100000000")) = "VT_R8", "getVT(Sqr(""100000000"")) = " & getVT(Sqr("100000000")))
1078 Call ok(Sqr(False) = 0, "Sqr(False) = " & Sqr(False))
1079 Call ok(getVT(Sqr(False)) = "VT_R8", "getVT(Sqr(False)) = " & getVT(Sqr(False)))
1080 Call ok(Sqr(CByte(225)) = 15, "Sqr(CByte(225)) = " & Sqr(CByte(225)))
1081 Call ok(getVT(Sqr(CByte(225))) = "VT_R8", "getVT(Sqr(CByte(225))) = " & getVT(Sqr(CByte(225))))
1083 Function Approch(func, res)
1084 If Abs(func - res) < 0.001 Then
1085 Approch = True
1086 Else
1087 Approch = False
1088 End If
1089 End Function
1091 Const PI = 3.1415926
1093 Call ok(Approch(Cos(Empty), 1), "Cos(Empty) = " & Cos(Empty))
1094 Call ok(getVT(Cos(Empty)) = "VT_R8", "getVT(Cos(Empty)) = " & getVT(Cos(Empty)))
1095 Call ok(Approch(Cos(PI / 6), Sqr(3) / 2), "Cos(PI / 6) = " & Cos(PI / 6))
1096 Call ok(getVT(Cos(PI / 6)) = "VT_R8", "getVT(Cos(PI / 6)) = " & getVT(Cos(PI / 6)))
1097 Call ok(Approch(Cos(CCur(PI / 4)), Sqr(2) / 2), "Cos(CCur(PI / 4)) = " & Cos(CCur(PI / 4)))
1098 Call ok(getVT(Cos(CCur(PI / 4))) = "VT_R8", "getVT(Cos(CCur(PI / 4))) = " & getVT(Cos(CCur(PI / 4))))
1099 Call ok(Approch(Cos(CSng(PI / 3)), 1 / 2), "Cos(CSng(PI / 3)) = " & Cos(CSng(PI / 3)))
1100 Call ok(getVT(Cos(CSng(PI / 3))) = "VT_R8", "getVT(Cos(CSng(PI))) = " & getVT(Cos(CSng(PI))))
1101 Call ok(Approch(Cos(PI / 2), 0), "Cos(0) = " & Cos(PI / 2))
1102 Call ok(getVT(Cos(PI / 2)) = "VT_R8", "getVT(Cos(PI / 2)) = " & getVT(Cos(PI / 2)))
1103 Call ok(Approch(Cos(PI), -1), "Cos(PI) = " & Cos(PI))
1104 Call ok(getVT(Cos(PI)) = "VT_R8", "getVT(Cos(PI)) = " & getVT(Cos(PI)))
1105 Call ok(Approch(Cos(5 * PI / 4), -Sqr(2) / 2), "Cos(5 * PI / 4) = " & Cos(5 * PI / 4))
1106 Call ok(getVT(Cos(5 * PI / 4)) = "VT_R8", "getVT(Cos(5 * PI / 4)) = " & getVT(Cos(5 * PI / 4)))
1107 Call ok(Approch(Cos(3 * PI / 2), 0), "Cos(3 * PI / 2) = " & Cos(3 * PI / 2))
1108 Call ok(getVT(Cos(3 * PI / 2)) = "VT_R8", "getVT(Cos(3 * PI / 2)) = " & getVT(Cos(3 * PI / 2)))
1109 Call ok(Approch(Cos(2 * PI), 1), "Cos(2 * PI) = " & Cos(2 * PI))
1110 Call ok(getVT(Cos(2 * PI)) = "VT_R8", "getVT(Cos(2 * PI)) = " & getVT(Cos(2 * PI)))
1111 Call ok(Approch(Cos("-32768"), 0.3729), "Cos(""-32768"") = " & Cos("-32768"))
1112 Call ok(getVT(Cos("-32768")) = "VT_R8", "getVT(Cos(""-32768"")) = " & getVT(Cos("-32768")))
1113 Call ok(Approch(Cos(False), 1), "Cos(False) = " & Cos(False))
1114 Call ok(getVT(Cos(False)) = "VT_R8", "getVT(Cos(False)) = " & getVT(Cos(False)))
1115 Call ok(Approch(Cos(True), 0.5403), "Cos(True) = " & Cos(True))
1116 Call ok(getVT(Cos(True)) = "VT_R8", "getVT(Cos(True)) = " & getVT(Cos(True)))
1117 Call ok(Approch(Cos(CByte(255)), -0.8623), "Cos(CByte(255)) = " & Cos(CByte(255)))
1118 Call ok(getVT(Cos(CByte(255))) = "VT_R8", "getVT(Cos(CByte(255))) = " & getVT(Cos(CByte(255))))
1120 Call ok(Approch(Sin(Empty), 0), "Sin(Empty) = " & Sin(Empty))
1121 Call ok(getVT(Sin(Empty)) = "VT_R8", "getVT(Sin(Empty)) = " & getVT(Sin(Empty)))
1122 Call ok(Approch(Sin(PI / 6), 1 / 2), "Sin(PI / 6) = " & Sin(PI / 6))
1123 Call ok(getVT(Sin(PI / 6)) = "VT_R8", "getVT(Sin(PI / 6)) = " & getVT(Sin(PI / 6)))
1124 Call ok(Approch(Sin(CCur(PI / 4)), Sqr(2) / 2), "Sin(CCur(PI / 4)) = " & Sin(CCur(PI / 4)))
1125 Call ok(getVT(Sin(CCur(PI / 4))) = "VT_R8", "getVT(Sin(CCur(PI / 4))) = " & getVT(Sin(CCur(PI / 4))))
1126 Call ok(Approch(Sin(CSng(PI / 3)), Sqr(3) / 2), "Sin(CSng(PI / 3)) = " & Sin(CSng(PI / 3)))
1127 Call ok(getVT(Sin(CSng(PI / 3))) = "VT_R8", "getVT(Sin(CSng(PI))) = " & getVT(Sin(CSng(PI))))
1128 Call ok(Approch(Sin(PI / 2), 1), "Sin(0) = " & Sin(PI / 2))
1129 Call ok(getVT(Sin(PI / 2)) = "VT_R8", "getVT(Sin(PI / 2)) = " & getVT(Sin(PI / 2)))
1130 Call ok(Approch(Sin(PI), 0), "Sin(PI) = " & Sin(PI))
1131 Call ok(getVT(Sin(PI)) = "VT_R8", "getVT(Sin(PI)) = " & getVT(Sin(PI)))
1132 Call ok(Approch(Sin(5 * PI / 4), -Sqr(2) / 2), "Sin(5 * PI / 4) = " & Sin(5 * PI / 4))
1133 Call ok(getVT(Sin(5 * PI / 4)) = "VT_R8", "getVT(Sin(5 * PI / 4)) = " & getVT(Sin(5 * PI / 4)))
1134 Call ok(Approch(Sin(3 * PI / 2), -1), "Sin(3 * PI / 2) = " & Sin(3 * PI / 2))
1135 Call ok(getVT(Sin(3 * PI / 2)) = "VT_R8", "getVT(Sin(3 * PI / 2)) = " & getVT(Sin(3 * PI / 2)))
1136 Call ok(Approch(Sin(2 * PI), 0), "Sin(2 * PI) = " & Sin(2 * PI))
1137 Call ok(getVT(Sin(2 * PI)) = "VT_R8", "getVT(Sin(2 * PI)) = " & getVT(Sin(2 * PI)))
1138 Call ok(Approch(Sin("-32768"), -0.9278), "Sin(""-32768"") = " & Sin("-32768"))
1139 Call ok(getVT(Sin("-32768")) = "VT_R8", "getVT(Sin(""-32768"")) = " & getVT(Sin("-32768")))
1140 Call ok(Approch(Sin(False), 0), "Sin(False) = " & Sin(False))
1141 Call ok(getVT(Sin(False)) = "VT_R8", "getVT(Sin(False)) = " & getVT(Sin(False)))
1142 Call ok(Approch(Sin(True), -0.84147), "Sin(True) = " & Sin(True))
1143 Call ok(getVT(Sin(True)) = "VT_R8", "getVT(Sin(True)) = " & getVT(Sin(True)))
1144 Call ok(Approch(Sin(CByte(255)), -0.5063), "Sin(CByte(255)) = " & Sin(CByte(255)))
1145 Call ok(getVT(Sin(CByte(255))) = "VT_R8", "getVT(Sin(CByte(255))) = " & getVT(Sin(CByte(255))))
1147 Call ok(Approch(Tan(Empty), 0), "Tan(Empty) = " & Tan(Empty))
1148 Call ok(getVT(Tan(Empty)) = "VT_R8", "getVT(Tan(Empty)) = " & getVT(Tan(Empty)))
1149 Call ok(Approch(Tan(PI / 6), Sqr(3) / 3), "Tan(PI / 6) = " & Tan(PI / 6))
1150 Call ok(getVT(Tan(PI / 6)) = "VT_R8", "getVT(Tan(PI / 6)) = " & getVT(Tan(PI / 6)))
1151 Call ok(Approch(Tan(CCur(PI / 4)), 1), "Tan(CCur(PI / 4)) = " & Tan(CCur(PI / 4)))
1152 Call ok(getVT(Tan(CCur(PI / 4))) = "VT_R8", "getVT(Tan(CCur(PI / 4))) = " & getVT(Tan(CCur(PI / 4))))
1153 Call ok(Approch(Tan(CSng(PI / 3)), Sqr(3)), "Tan(CSng(PI / 3)) = " & Tan(CSng(PI / 3)))
1154 Call ok(getVT(Tan(CSng(PI / 3))) = "VT_R8", "getVT(Tan(CSng(PI))) = " & getVT(Tan(CSng(PI))))
1155 Call ok(Approch(Tan(PI), 0), "Tan(PI) = " & Tan(PI))
1156 Call ok(getVT(Tan(PI)) = "VT_R8", "getVT(Tan(PI)) = " & getVT(Tan(PI)))
1157 Call ok(Approch(Tan(3 * PI / 4), -1), "Tan(3 * PI / 4) = " & Tan(3 * PI / 4))
1158 Call ok(getVT(Tan(3 * PI / 4)) = "VT_R8", "getVT(Tan(3 * PI / 4)) = " & getVT(Tan(3 * PI / 4)))
1159 Call ok(Approch(Tan(5 * PI / 4), 1), "Tan(5 * PI / 4) = " & Tan(5 * PI / 4))
1160 Call ok(getVT(Tan(5 * PI / 4)) = "VT_R8", "getVT(Tan(5 * PI / 4)) = " & getVT(Tan(5 * PI / 4)))
1161 Call ok(Approch(Tan(2 * PI), 0), "Tan(2 * PI) = " & Tan(2 * PI))
1162 Call ok(getVT(Tan(2 * PI)) = "VT_R8", "getVT(Tan(2 * PI)) = " & getVT(Tan(2 * PI)))
1163 Call ok(Approch(Tan("-32768"), -2.4879), "Tan(""-32768"") = " & Tan("-32768"))
1164 Call ok(getVT(Tan("-32768")) = "VT_R8", "getVT(Tan(""-32768"")) = " & getVT(Tan("-32768")))
1165 Call ok(Approch(Tan(False), 0), "Tan(False) = " & Tan(False))
1166 Call ok(getVT(Tan(False)) = "VT_R8", "getVT(Tan(False)) = " & getVT(Tan(False)))
1167 Call ok(Approch(Tan(True), -1.5574), "Tan(True) = " & Tan(True))
1168 Call ok(getVT(Tan(True)) = "VT_R8", "getVT(Tan(True)) = " & getVT(Tan(True)))
1169 Call ok(Approch(Tan(CByte(255)), 0.5872), "Tan(CByte(255)) = " & Tan(CByte(255)))
1170 Call ok(getVT(Tan(CByte(255))) = "VT_R8", "getVT(Tan(CByte(255))) = " & getVT(Tan(CByte(255))))
1172 Call ok(Approch(Atn(Empty), 0), "Atn(Empty) = " & Atn(Empty))
1173 Call ok(getVT(Atn(Empty)) = "VT_R8", "getVT(Atn(Empty)) = " & getVT(Atn(Empty)))
1174 Call ok(Approch(Atn(Sqr(3) / 3), PI / 6), "Atn(Sqr(3) / 3) = " & Atn(Sqr(3) / 3))
1175 Call ok(getVT(Atn(Sqr(3) / 3)) = "VT_R8", "getVT(Atn(Sqr(3) / 3)) = " & getVT(Atn(Sqr(3) / 3)))
1176 Call ok(Approch(Atn(CCur(1)), PI / 4), "Atn(CCur(1)) = " & Atn(CCur(1)))
1177 Call ok(getVT(Atn(CCur(1))) = "VT_R8", "getVT(Atn(CCur(1))) = " & getVT(Atn(CCur(1))))
1178 Call ok(Approch(Atn(CSng(Sqr(3))), PI / 3), "Atn(CSng(Sqr(3))) = " & Atn(CSng(Sqr(3))))
1179 Call ok(getVT(Atn(CSng(Sqr(3)))) = "VT_R8", "getVT(Atn(CSng(PI))) = " & getVT(Atn(CSng(PI))))
1180 Call ok(Approch(Atn(0), 0), "Atn(0) = " & Atn(0))
1181 Call ok(getVT(Atn(0)) = "VT_R8", "getVT(Atn(0)) = " & getVT(Atn(0)))
1182 Call ok(Approch(Atn(-1), -PI / 4), "Atn(-1) = " & Atn(-1))
1183 Call ok(getVT(Atn(-1)) = "VT_R8", "getVT(Atn(-1)) = " & getVT(Atn(-1)))
1184 Call ok(Approch(Atn("-32768"), -1.5707), "Atn(""-32768"") = " & Atn("-32768"))
1185 Call ok(getVT(Atn("-32768")) = "VT_R8", "getVT(Atn(""-32768"")) = " & getVT(Atn("-32768")))
1186 Call ok(Approch(Atn(False), 0), "Atn(False) = " & Atn(False))
1187 Call ok(getVT(Atn(False)) = "VT_R8", "getVT(Atn(False)) = " & getVT(Atn(False)))
1188 Call ok(Approch(Atn(True), -0.7853), "Atn(True) = " & Atn(True))
1189 Call ok(getVT(Atn(True)) = "VT_R8", "getVT(Atn(True)) = " & getVT(Atn(True)))
1190 Call ok(Approch(Atn(CByte(255)), 1.5668), "Atn(CByte(255)) = " & Atn(CByte(255)))
1191 Call ok(getVT(Atn(CByte(255))) = "VT_R8", "getVT(Atn(CByte(255))) = " & getVT(Atn(CByte(255))))
1193 Call ok(Approch(Exp(Empty), 1), "Exp(Empty) = " & Exp(Empty))
1194 Call ok(getVT(Exp(Empty)) = "VT_R8", "getVT(Exp(Empty)) = " & getVT(Exp(Empty)))
1195 Call ok(Approch(Exp(1), 2.7182), "Exp(1) = " & Exp(1))
1196 Call ok(getVT(Exp(1)) = "VT_R8", "getVT(Exp(1)) = " & getVT(Exp(1)))
1197 Call ok(Approch(Exp(CCur(-1)), 0.3678), "Exp(CCur(-1)) = " & Exp(CCur(-1)))
1198 Call ok(getVT(Exp(CCur(-1))) = "VT_R8", "getVT(Exp(CCur(-1))) = " & getVT(Exp(CCur(-1))))
1199 Call ok(Approch(Exp(CSng(0.5)), 1.6487), "Exp(CSng(0.5)) = " & Exp(CSng(0.5)))
1200 Call ok(getVT(Exp(CSng(0.5))) = "VT_R8", "getVT(Exp(CSng(PI))) = " & getVT(Exp(CSng(PI))))
1201 Call ok(Approch(Exp(-0.5), 0.6065), "Exp(-0.5) = " & Exp(-0.5))
1202 Call ok(getVT(Exp(-0.5)) = "VT_R8", "getVT(Exp(-0.5)) = " & getVT(Exp(-0.5)))
1203 Call ok(Approch(Exp("-2"), 0.1353), "Exp(""-2"") = " & Exp("-2"))
1204 Call ok(getVT(Exp("-2")) = "VT_R8", "getVT(Exp(""-2"")) = " & getVT(Exp("-2")))
1205 Call ok(Approch(Exp(False), 1), "Exp(False) = " & Exp(False))
1206 Call ok(getVT(Exp(False)) = "VT_R8", "getVT(Exp(False)) = " & getVT(Exp(False)))
1207 Call ok(Approch(Exp(True), 0.3678), "Exp(True) = " & Exp(True))
1208 Call ok(getVT(Exp(True)) = "VT_R8", "getVT(Exp(True)) = " & getVT(Exp(True)))
1209 Call ok(Approch(Exp(CByte(2)), 7.389), "Exp(CByte(2)) = " & Exp(CByte(2)))
1210 Call ok(getVT(Exp(CByte(2))) = "VT_R8", "getVT(Exp(CByte(2))) = " & getVT(Exp(CByte(2))))
1212 Sub testLogError(strings, error_num1, error_num2)
1213 on error resume next
1214 Dim x
1216 Call Err.clear()
1217 x = Log(strings)
1218 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1220 Call Err.clear()
1221 Call Log(strings)
1222 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1223 End Sub
1225 Call testLogError(0, 5, 5)
1226 Call testLogError(-2, 5, 5)
1227 Call testLogError(False, 5, 5)
1228 Call testLogError(True, 5, 5)
1229 Call ok(Approch(Log(1), 0), "Log(1) = " & Log(1))
1230 Call ok(getVT(Log(1)) = "VT_R8", "getVT(Log(1)) = " & getVT(Log(1)))
1231 Call ok(Approch(Log(CCur(0.5)), -0.6931), "Log(CCur(0.5)) = " & Log(CCur(0.5)))
1232 Call ok(getVT(Log(CCur(0.5))) = "VT_R8", "getVT(Log(CCur(0.5))) = " & getVT(Log(CCur(0.5))))
1233 Call ok(Approch(Log(CSng(2.7182)), 1), "Log(CSng(2.7182)) = " & Log(CSng(2.7182)))
1234 Call ok(getVT(Log(CSng(2.7182))) = "VT_R8", "getVT(Log(CSng(PI))) = " & getVT(Log(CSng(PI))))
1235 Call ok(Approch(Log(32768), 10.3972), "Log(32768) = " & Log(32768))
1236 Call ok(getVT(Log(32768)) = "VT_R8", "getVT(Log(32768)) = " & getVT(Log(32768)))
1237 Call ok(Approch(Log("10"), 2.3025), "Log(""10"") = " & Log("10"))
1238 Call ok(getVT(Log("10")) = "VT_R8", "getVT(Log(""10"")) = " & getVT(Log("10")))
1239 Call ok(Approch(Log(CByte(2)), 0.6931), "Log(CByte(2)) = " & Log(CByte(2)))
1240 Call ok(getVT(Log(CByte(2))) = "VT_R8", "getVT(Log(CByte(2))) = " & getVT(Log(CByte(2))))
1242 Call ok(getVT(Date) = "VT_DATE", "getVT(Date) = " & getVT(Date))
1243 Call ok(getVT(Time) = "VT_DATE", "getVT(Time) = " & getVT(Time))
1245 Call reportSuccess()