vbscript/tests: Fix test for WeekDayName(foo, bar, 0).
[wine.git] / dlls / vbscript / tests / api.vbs
blobbaa05532257633137e214eca37bb78125ff3d817
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 Call ok(getVT(Array()) = "VT_ARRAY|VT_VARIANT", "getVT(Array()) = " & getVT(Array()))
216 x = Array("a1", 2, "a3")
217 Call ok(getVT(x) = "VT_ARRAY|VT_VARIANT*", "getVT(array) = " & getVT(x))
218 Call ok(getVT(x(0)) = "VT_BSTR*", "getVT(array(0)) = " & getVT(x(0)))
219 Call ok(x(0) = "a1", "array(0) = " & x(0))
220 Call ok(getVT(x(1)) = "VT_I2*", "getVT(array(1)) = " & getVT(x(1)))
221 Call ok(x(1) = 2, "array(1) = " & x(1))
222 Call ok(getVT(x(2)) = "VT_BSTR*", "getVT(array(2)) = " & getVT(x(2)))
223 Call ok(x(2) = "a3", "array(2) = " & x(2))
225 Dim new_array
226 new_array = x
227 x(0) = "new value"
228 Call ok(new_array(0) = "a1", "new_array(0) = " & new_array(0))
230 Dim newObject
231 Set newObject = New ValClass
232 newObject.myval = 1
233 Call ok(isNumeric(newObject), "isNumeric(newObject) is true?")
234 newObject.myval = "test"
235 Call ok(not isNumeric(newObject), "isNumeric(newObject) is not true?")
237 Call ok(getVT(err) = "VT_DISPATCH", "getVT(err) = " & getVT(err))
239 Sub TestHex(x, ex)
240 Call ok(hex(x) = ex, "hex(" & x & ") = " & hex(x) & " expected " & ex)
241 End Sub
243 TestHex 0, "0"
244 TestHex 6, "6"
245 TestHex 16, "10"
246 TestHex &hdeadbeef&, "DEADBEEF"
247 TestHex -1, "FFFF"
248 TestHex -16, "FFF0"
249 TestHex -934859845, "C8472BBB"
250 TestHex empty, "0"
251 TestHex "17", "11"
252 TestHex 228.5, "E4"
253 TestHex -32767, "8001"
254 TestHex -32768, "FFFF8000"
255 TestHex 2147483647.49, "7FFFFFFF"
256 TestHex -2147483647.5, "80000000"
257 newObject.myval = 30.5
258 TestHex newObject, "1E"
259 newObject.myval = "27"
260 TestHex newObject, "1B"
263 Call ok(getVT(hex(null)) = "VT_NULL", "getVT(hex(null)) = " & getVT(hex(null)))
264 Call ok(getVT(hex(empty)) = "VT_BSTR", "getVT(hex(empty)) = " & getVT(hex(empty)))
266 Sub TestHexError(num, err_num)
267 On Error Resume Next
268 Call Hex(num)
269 Call ok(Err.number = err_num, "Hex(" & num & ") returns error number " & Err.number & " expected " & err_num)
270 End Sub
272 TestHexError 2147483647.5, 6
273 TestHexError 2147483648.51, 6
274 TestHexError "test", 13
276 Sub TestOct(x, ex, res_type)
277 Call ok(Oct(x) = ex, "Oct(" & x & ") = " & Oct(x) & " expected " & ex)
278 Call ok(getVT(Oct(x)) = res_type, "getVT(Oct(" &x & ")) = " & getVT(Oct(x)) & "expected " & res_type)
279 End Sub
281 Sub TestOctError(num, err_num)
282 On error resume next
283 Call Oct(num)
284 Call ok(Err.number = err_num, "Oct(" & num & ") error number is " & Err.number & " expected " & err_num)
285 End Sub
287 TestOct empty, "0", "VT_BSTR"
288 TestOct 0, "0", "VT_BSTR"
289 TestOct 9, "11", "VT_BSTR"
290 TestOct "9", "11", "VT_BSTR"
291 TestOct 8.5, "10", "VT_BSTR"
292 TestOct 9.5, "12", "VT_BSTR"
293 TestOct -1, "177777", "VT_BSTR"
294 TestOct -32767, "100001", "VT_BSTR"
295 TestOct -32768, "37777700000", "VT_BSTR"
296 TestOct 2147483647.49, "17777777777", "VT_BSTR"
297 TestOct -2147483648.5, "20000000000", "VT_BSTR"
298 Call ok(getVT(Oct(null)) = "VT_NULL", "getVT(Oct(null)) = " & getVT(Oct(null)))
299 newObject.myval = 5
300 TestOct newObject, "5", "VT_BSTR"
302 TestOctError 2147483647.5, 6
303 TestOctError -2147483648.51, 6
304 TestOctError "test", 13
306 x = InStr(1, "abcd", "bc")
307 Call ok(x = 2, "InStr returned " & x)
309 x = InStr("abcd", "bc")
310 Call ok(x = 2, "InStr returned " & x)
311 Call ok(getVT(x) = "VT_I4*", "getVT(InStr) returned " & getVT(x))
313 x = InStr("abc", "bc")
314 Call ok(x = 2, "InStr returned " & x)
316 x = InStr("abcbc", "bc")
317 Call ok(x = 2, "InStr returned " & x)
319 x = InStr("bcabc", "bc")
320 Call ok(x = 1, "InStr returned " & x)
322 x = InStr(3, "abcd", "bc")
323 Call ok(x = 0, "InStr returned " & x)
325 x = InStr("abcd", "bcx")
326 Call ok(x = 0, "InStr returned " & x)
328 x = InStr(5, "abcd", "bc")
329 Call ok(x = 0, "InStr returned " & x)
331 x = "abcd"
332 x = InStr(x, "bc")
333 Call ok(x = 2, "InStr returned " & x)
335 x = InStr("abcd", null)
336 Call ok(isNull(x), "InStr returned " & x)
337 x = InStr(null, "abcd")
338 Call ok(isNull(x), "InStr returned " & x)
339 x = InStr(2, null, "abcd")
340 Call ok(isNull(x), "InStr returned " & x)
342 x = InStr(1.3, "abcd", "bc")
343 Call ok(x = 2, "InStr returned " & x)
345 x = InStr(2.3, "abcd", "bc")
346 Call ok(x = 2, "InStr returned " & x)
348 x = InStr(2.6, "abcd", "bc")
349 Call ok(x = 0, "InStr returned " & x)
352 x = InStrRev("bcabcd", "bc")
353 Call ok(x = 4, "InStrRev returned " & x)
354 Call ok(getVT(x) = "VT_I4*", "getVT(InStrRev) returned " & getVT(x))
356 x = InStrRev("bcabcd", "bc", 6)
357 Call ok(x = 4, "InStrRev returned " & x)
359 x = InStrRev("abcd", "bcx")
360 Call ok(x = 0, "InStrRev returned " & x)
362 x = InStrRev("abcd", "bc", 3)
363 Call ok(x = 2, "InStrRev returned " & x)
365 x = InStrRev("abcd", "bc", 2)
366 Call ok(x = 0, "InStrRev returned " & x)
368 x = InStrRev("abcd", "b", 2)
369 Call ok(x = 2, "InStrRev returned " & x)
371 x = InStrRev("abcd", "bc", 5)
372 Call ok(x = 0, "InStrRev returned " & x)
374 x = InStrRev("abcd", "bc", 15)
375 Call ok(x = 0, "InStrRev returned " & x)
377 x = "abcd"
378 x = InStrRev(x, "bc")
379 Call ok(x = 2, "InStrRev returned " & x)
381 x = InStrRev("abcd", "bc", 1.3)
382 Call ok(x = 0, "InStrRev returned " & x)
384 x = InStrRev("abcd", "bc", 2.3)
385 Call ok(x = 0, "InStrRev returned " & x)
387 x = InStrRev("abcd", "bc", 2.6)
388 Call ok(x = 2, "InStrRev returned " & x)
390 x = InStrRev("1234", 34)
391 Call ok(x = 3, "InStrRev returned " & x)
393 x = InStrRev(1234, 34)
394 Call ok(x = 3, "InStrRev returned " & x)
396 Sub testInStrRevError(arg1, arg2, arg3, error_num)
397 on error resume next
398 Dim x
400 Call Err.clear()
401 x = InStrRev(arg1, arg2, arg3)
402 Call ok(Err.number = error_num, "Err.number = " & Err.number)
403 End Sub
405 call testInStrRevError("abcd", null, 2, 94)
406 call testInStrRevError(null, "abcd", 2, 94)
407 call testInStrRevError("abcd", "abcd", null, 94)
409 Sub TestMid(str, start, len, ex)
410 x = Mid(str, start, len)
411 Call ok(x = ex, "Mid(" & str & ", " & start & ", " & len & ") = " & x & " expected " & ex)
412 End Sub
414 Sub TestMid2(str, start, ex)
415 x = Mid(str, start)
416 Call ok(x = ex, "Mid(" & str & ", " & start & ") = " & x & " expected " & ex)
417 End Sub
419 TestMid "test", 2, 2, "es"
420 TestMid "test", 2, 4, "est"
421 TestMid "test", 1, 2, "te"
422 TestMid "test", 1, 0, ""
423 TestMid "test", 1, 0, ""
424 TestMid "test", 5, 2, ""
425 TestMid2 "test", 1, "test"
426 TestMid2 "test", 2, "est"
427 TestMid2 "test", 4, "t"
428 TestMid2 "test", 5, ""
430 Sub TestUCase(str, ex)
431 x = UCase(str)
432 Call ok(x = ex, "UCase(" & str & ") = " & x & " expected " & ex)
433 End Sub
435 TestUCase "test", "TEST"
436 TestUCase "123aBC?", "123ABC?"
437 TestUCase "", ""
438 TestUCase 1, "1"
439 if isEnglishLang then TestUCase true, "TRUE"
440 TestUCase 0.123, doubleAsString(0.123)
441 TestUCase Empty, ""
442 Call ok(getVT(UCase(Null)) = "VT_NULL", "getVT(UCase(Null)) = " & getVT(UCase(Null)))
444 Sub TestLCase(str, ex)
445 x = LCase(str)
446 Call ok(x = ex, "LCase(" & str & ") = " & x & " expected " & ex)
447 End Sub
449 TestLCase "test", "test"
450 TestLCase "123aBC?", "123abc?"
451 TestLCase "", ""
452 TestLCase 1, "1"
453 if isEnglishLang then TestLCase true, "true"
454 TestLCase 0.123, doubleAsString(0.123)
455 TestLCase Empty, ""
456 Call ok(getVT(LCase(Null)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null)))
458 Sub TestStrComp(str_left, str_right, mode, ex)
459 x = StrComp(str_left, str_right, mode)
460 Call ok(x = ex, "StrComp(" & str_left & ", " & str_right & ", " & mode & ") = " & x & " expected " & ex)
461 End Sub
463 TestStrComp "ABC", "abc", 0, -1
464 TestStrComp "abc", "ABC", 0, 1
465 TestStrComp "ABC", "ABC", 0, 0
466 TestStrComp "ABC", "abc", 0, -1
467 TestStrComp "abc", "ABC", 0, 1
468 TestStrComp "ABC", "ABC", 0, 0
469 TestStrComp "ABCD", "ABC", 0, 1
470 TestStrComp "ABC", "ABCD", 0, -1
471 TestStrComp "ABC", "abc", 1, 0
472 TestStrComp "ABC", "ABC", 1, 0
473 TestStrComp "ABCD", "ABC", 1, 1
474 TestStrComp "ABC", "ABCD", 1, -1
475 TestStrComp "ABC", "ABCD", "0", -1
476 TestStrComp "ABC", "ABCD", "1", -1
477 TestStrComp 1, 1, 1, 0
478 TestStrComp "1", 1, 1, 0
479 TestStrComp "1", 1.0, 1, 0
480 TestStrComp Empty, Empty, 1, 0
481 TestStrComp Empty, "", 1, 0
482 TestStrComp Empty, "ABC", 1, -1
483 TestStrComp "ABC", Empty, 1, 1
484 TestStrComp vbNull, vbNull, 1, 0
485 TestStrComp "", vbNull, 1, -1
487 Call ok(Len("abc") = 3, "Len(abc) = " & Len("abc"))
488 Call ok(Len("") = 0, "Len() = " & Len(""))
489 Call ok(Len(1) = 1, "Len(1) = " & Len(1))
490 Call ok(isNull(Len(null)), "Len(null) = " & Len(null))
491 Call ok(Len(empty) = 0, "Len(empty) = " & Len(empty))
492 Call ok(getVT(Len("abc")) = "VT_I4", "getVT(Len(abc)) = " & getVT(Len("abc")))
494 Call ok(Space(1) = " ", "Space(1) = " & Space(1) & """")
495 Call ok(Space(0) = "", "Space(0) = " & Space(0) & """")
496 Call ok(Space(false) = "", "Space(false) = " & Space(false) & """")
497 Call ok(Space(5) = " ", "Space(5) = " & Space(5) & """")
498 Call ok(Space(5.2) = " ", "Space(5.2) = " & Space(5.2) & """")
499 Call ok(Space(5.8) = " ", "Space(5.8) = " & Space(5.8) & """")
500 Call ok(Space(5.5) = " ", "Space(5.5) = " & Space(5.5) & """")
501 Call ok(Space(4.5) = " ", "Space(4.5) = " & Space(4.5) & """")
502 Call ok(Space(0.5) = "", "Space(0.5) = " & Space(0.5) & """")
503 Call ok(Space(1.5) = " ", "Space(1.5) = " & Space(1.5) & """")
504 Call ok(Space("1") = " ", "Space(""1"") = " & Space("1") & """")
506 Sub TestStrReverse(str, ex)
507 Call ok(StrReverse(str) = ex, "StrReverse(" & str & ") = " & StrReverse(str))
508 End Sub
510 TestStrReverse "test", "tset"
511 TestStrReverse "", ""
512 TestStrReverse 123, "321"
513 if isEnglishLang then TestStrReverse true, "eurT"
515 Sub TestLeft(str, len, ex)
516 Call ok(Left(str, len) = ex, "Left(" & str & ", " & len & ") = " & Left(str, len))
517 End Sub
519 TestLeft "test", 2, "te"
520 TestLeft "test", 5, "test"
521 TestLeft "test", 0, ""
522 TestLeft 123, 2, "12"
523 TestLeft "123456", 1.5, "12"
524 TestLeft "123456", 2.5, "12"
525 TestLeft "test", "2", "te"
526 if isEnglishLang then TestLeft true, 2, "Tr"
528 Sub TestRight(str, len, ex)
529 Call ok(Right(str, len) = ex, "Right(" & str & ", " & len & ") = " & Right(str, len))
530 End Sub
532 TestRight "test", 2, "st"
533 TestRight "test", 5, "test"
534 TestRight "test", 0, ""
535 TestRight 123, 2, "23"
536 if isEnglishLang then TestRight true, 2, "ue"
538 Sub TestTrim(str, exstr)
539 Call ok(Trim(str) = exstr, "Trim(" & str & ") = " & Trim(str))
540 End Sub
542 TestTrim " test ", "test"
543 TestTrim "test ", "test"
544 TestTrim " test", "test"
545 TestTrim "test", "test"
546 TestTrim "", ""
547 TestTrim 123, "123"
548 if isEnglishLang then TestTrim true, "True"
550 Sub TestLTrim(str, exstr)
551 Call ok(LTrim(str) = exstr, "LTrim(" & str & ") = " & LTrim(str))
552 End Sub
554 TestLTrim " test ", "test "
555 TestLTrim "test ", "test "
556 TestLTrim " test", "test"
557 TestLTrim "test", "test"
558 TestLTrim "", ""
559 TestLTrim 123, "123"
560 if isEnglishLang then TestLTrim true, "True"
562 Sub TestRound(val, exval, vt)
563 Call ok(Round(val) = exval, "Round(" & val & ") = " & Round(val))
564 Call ok(getVT(Round(val)) = vt, "getVT(Round(" & val & ")) = " & getVT(Round(val)))
565 End Sub
567 Sub TestRTrim(str, exstr)
568 Call ok(RTrim(str) = exstr, "RTrim(" & str & ") = " & RTrim(str))
569 End Sub
571 TestRTrim " test ", " test"
572 TestRTrim "test ", "test"
573 TestRTrim " test", " test"
574 TestRTrim "test", "test"
575 TestRTrim "", ""
576 TestRTrim 123, "123"
577 if isEnglishLang then TestRTrim true, "True"
579 TestRound 3, 3, "VT_I2"
580 TestRound 3.3, 3, "VT_R8"
581 TestRound 3.8, 4, "VT_R8"
582 TestRound 3.5, 4, "VT_R8"
583 TestRound -3.3, -3, "VT_R8"
584 TestRound -3.5, -4, "VT_R8"
585 TestRound "2", 2, "VT_R8"
586 TestRound true, true, "VT_BOOL"
587 TestRound false, false, "VT_BOOL"
589 if isEnglishLang then
590 Call ok(WeekDayName(1) = "Sunday", "WeekDayName(1) = " & WeekDayName(1))
591 Call ok(WeekDayName(3) = "Tuesday", "WeekDayName(3) = " & WeekDayName(3))
592 Call ok(WeekDayName(7) = "Saturday", "WeekDayName(7) = " & WeekDayName(7))
593 Call ok(WeekDayName(1.1) = "Sunday", "WeekDayName(1.1) = " & WeekDayName(1.1))
594 Call ok(WeekDayName(1, false) = "Sunday", "WeekDayName(1, false) = " & WeekDayName(1, false))
595 Call ok(WeekDayName(1, true) = "Sun", "WeekDayName(1, true) = " & WeekDayName(1, true))
596 Call ok(WeekDayName(1, 10) = "Sun", "WeekDayName(1, 10) = " & WeekDayName(1, 10))
597 Call ok(WeekDayName(1, true, 2) = "Mon", "WeekDayName(1, true, 2) = " & WeekDayName(1, true, 2))
598 Call ok(WeekDayName(1, true, 2.5) = "Mon", "WeekDayName(1, true, 2.5) = " & WeekDayName(1, true, 2.5))
599 Call ok(WeekDayName(1, true, 1.5) = "Mon", "WeekDayName(1, true, 1.5) = " & WeekDayName(1, true, 1.5))
600 Call ok(WeekDayName(1, true, 7) = "Sat", "WeekDayName(1, true, 7) = " & WeekDayName(1, true, 7))
601 Call ok(WeekDayName(1, true, 7.1) = "Sat", "WeekDayName(1, true, 7.1) = " & WeekDayName(1, true, 7.1))
603 Call ok(MonthName(1) = "January", "MonthName(1) = " & MonthName(1))
604 Call ok(MonthName(12) = "December", "MonthName(12) = " & MonthName(12))
605 Call ok(MonthName(1, 0) = "January", "MonthName(1, 0) = " & MonthName(1, 0))
606 Call ok(MonthName(12, false) = "December", "MonthName(12, false) = " & MonthName(12, false))
607 Call ok(MonthName(1, 10) = "Jan", "MonthName(1, 10) = " & MonthName(1, 10))
608 Call ok(MonthName(12, true) = "Dec", "MonthName(12, true) = " & MonthName(12, true))
609 end if
611 Call ok(WeekDayName(1, true, 0) = WeekDayName(1, true, firstDayOfWeek), _
612 "WeekDayName(1, true, 0) = " & WeekDayName(1, true, 0))
614 Call ok(getVT(Now()) = "VT_DATE", "getVT(Now()) = " & getVT(Now()))
616 Call ok(vbOKOnly = 0, "vbOKOnly = " & vbOKOnly)
617 Call ok(getVT(vbOKOnly) = "VT_I2", "getVT(vbOKOnly) = " & getVT(vbOKOnly))
618 Call ok(vbOKCancel = 1, "vbOKCancel = " & vbOKCancel)
619 Call ok(getVT(vbOKCancel) = "VT_I2", "getVT(vbOKCancel) = " & getVT(vbOKCancel))
620 Call ok(vbAbortRetryIgnore = 2, "vbAbortRetryIgnore = " & vbAbortRetryIgnore)
621 Call ok(getVT(vbAbortRetryIgnore) = "VT_I2", "getVT(vbAbortRetryIgnore) = " & getVT(vbAbortRetryIgnore))
622 Call ok(vbYesNoCancel = 3, "vbYesNoCancel = " & vbYesNoCancel)
623 Call ok(getVT(vbYesNoCancel) = "VT_I2", "getVT(vbYesNoCancel) = " & getVT(vbYesNoCancel))
624 Call ok(vbYesNo = 4, "vbYesNo = " & vbYesNo)
625 Call ok(getVT(vbYesNo) = "VT_I2", "getVT(vbYesNo) = " & getVT(vbYesNo))
626 Call ok(vbRetryCancel = 5, "vbRetryCancel = " & vbRetryCancel)
627 Call ok(getVT(vbRetryCancel) = "VT_I2", "getVT(vbRetryCancel) = " & getVT(vbRetryCancel))
629 Call ok(vbOK = 1, "vbOK = " & vbOK)
630 Call ok(getVT(vbOK) = "VT_I2", "getVT(vbOK) = " & getVT(vbOK))
631 Call ok(vbCancel = 2, "vbCancel = " & vbCancel)
632 Call ok(getVT(vbCancel) = "VT_I2", "getVT(vbCancel) = " & getVT(vbCancel))
633 Call ok(vbAbort = 3, "vbAbort = " & vbAbort)
634 Call ok(getVT(vbAbort) = "VT_I2", "getVT(vbAbort) = " & getVT(vbAbort))
635 Call ok(vbRetry = 4, "vbRetry = " & vbRetry)
636 Call ok(getVT(vbRetry) = "VT_I2", "getVT(vbRetry) = " & getVT(vbRetry))
637 Call ok(vbIgnore = 5, "vbIgnore = " & vbIgnore)
638 Call ok(getVT(vbIgnore) = "VT_I2", "getVT(vbIgnore) = " & getVT(vbIgnore))
639 Call ok(vbYes = 6, "vbYes = " & vbYes)
640 Call ok(getVT(vbYes) = "VT_I2", "getVT(vbYes) = " & getVT(vbYes))
641 Call ok(vbNo = 7, "vbNo = " & vbNo)
642 Call ok(getVT(vbNo) = "VT_I2", "getVT(vbNo) = " & getVT(vbNo))
644 Call ok(CInt(-36.75) = -37, "CInt(-36.75) = " & CInt(-36.75))
645 Call ok(getVT(CInt(-36.75)) = "VT_I2", "getVT(CInt(-36.75)) = " & getVT(CInt(-36.75)))
646 Call ok(CInt(-36.50) = -36, "CInt(-36.50) = " & CInt(-36.50))
647 Call ok(getVT(CInt(-36.50)) = "VT_I2", "getVT(CInt(-36.50)) = " & getVT(CInt(-36.50)))
648 Call ok(CInt(-36.25) = -36, "CInt(-36.25) = " & CInt(-36.25))
649 Call ok(getVT(CInt(-36.25)) = "VT_I2", "getVT(CInt(-36.25)) = " & getVT(CInt(-36.25)))
650 Call ok(CInt(-36) = -36, "CInt(-36) = " & CInt(-36))
651 Call ok(getVT(CInt(-36)) = "VT_I2", "getVT(CInt(-36)) = " & getVT(CInt(-36)))
652 Call ok(CInt(0) = 0, "CInt(0) = " & CInt(0))
653 Call ok(getVT(CInt(0)) = "VT_I2", "getVT(CInt(0)) = " & getVT(CInt(0)))
654 Call ok(CInt(0.0) = 0, "CInt(0.0) = " & CInt(0))
655 Call ok(getVT(CInt(0.0)) = "VT_I2", "getVT(CInt(0.0)) = " & getVT(CInt(0.0)))
656 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0))
657 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
658 Call ok(CInt(36) = 36, "CInt(36) = " & CInt(36))
659 Call ok(getVT(CInt(36)) = "VT_I2", "getVT(CInt(36)) = " & getVT(CInt(36)))
660 Call ok(CInt(36.25) = 36, "CInt(36.25) = " & CInt(36.25))
661 Call ok(getVT(CInt(36.25)) = "VT_I2", "getVT(CInt(36.25)) = " & getVT(CInt(36.25)))
662 Call ok(CInt(36.50) = 36, "CInt(36.50) = " & CInt(36.50))
663 Call ok(getVT(CInt(36.50)) = "VT_I2", "getVT(CInt(36.50)) = " & getVT(CInt(36.50)))
664 Call ok(CInt(36.75) = 37, "CInt(36.75) = " & CInt(36.75))
665 Call ok(getVT(CInt(36.75)) = "VT_I2", "getVT(CInt(36.75)) = " & getVT(CInt(36.75)))
668 Call ok(CBool(5) = true, "CBool(5) = " & CBool(5))
669 Call ok(getVT(CBool(5)) = "VT_BOOL", "getVT(CBool(5)) = " & getVT(CBool(5)))
670 Call ok(CBool(0) = false, "CBool(0) = " & CBool(0))
671 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
672 Call ok(CBool(-5) = true, "CBool(-5) = " & CBool(-5))
673 Call ok(getVT(CBool(-5)) = "VT_BOOL", "getVT(CBool(-5)) = " & getVT(CBool(-5)))
675 Sub testCBoolError(strings, error_num)
676 on error resume next
678 Call Err.clear()
679 Call CBool(strings)
680 Call ok(Err.number = error_num, "Err.number = " & Err.number)
681 End Sub
683 Class ValClass
684 Public myval
686 Public default Property Get defprop
687 defprop = myval
688 End Property
689 End Class
691 Dim MyObject
692 Set MyObject = New ValClass
694 Call ok(CBool(Empty) = False, "CBool(Empty) = " & CBool(Empty))
695 Call ok(getVT(CBool(Empty)) = "VT_BOOL", "getVT(CBool(Empty)) = " & getVT(CBool(Empty)))
696 Call ok(CBool(1) = True, "CBool(1) = " & CBool(1))
697 Call ok(getVT(CBool(1)) = "VT_BOOL", "getVT(CBool(1)) = " & getVT(CBool(1)))
698 Call ok(CBool(0) = False, "CBool(0) = " & CBool(0))
699 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
700 Call ok(CBool(-0.56) = True, "CBool(-0.56) = " & CBool(-0.56))
701 Call ok(getVT(CBool(-0.56)) = "VT_BOOL", "getVT(CBool(-0.56)) = " & getVT(CBool(-0.56)))
702 Call testCBoolError("", 13)
703 Call ok(CBool("0") = False, "CBool(""0"") = " & CBool("0"))
704 Call ok(getVT(CBool("0")) = "VT_BOOL", "getVT(CBool(""0"")) = " & getVT(CBool("0")))
705 If isEnglishLang Then
706 Call ok(CBool("0.1") = True, "CBool(""0.1"") = " & CBool("0.1"))
707 Call ok(getVT(CBool("0.1")) = "VT_BOOL", "getVT(CBool(""0.1"")) = " & getVT(CBool("0.1")))
708 End If
709 Call ok(CBool("true") = True, "CBool(""true"") = " & CBool("true"))
710 Call ok(getVT(CBool("true")) = "VT_BOOL", "getVT(CBool(""true"")) = " & getVT(CBool("true")))
711 Call ok(CBool("false") = False, "CBool(""false"") = " & CBool("false"))
712 Call ok(getVT(CBool("false")) = "VT_BOOL", "getVT(CBool(""false"")) = " & getVT(CBool("false")))
713 Call ok(CBool("TRUE") = True, "CBool(""TRUE"") = " & CBool("TRUE"))
714 Call ok(getVT(CBool("TRUE")) = "VT_BOOL", "getVT(CBool(""TRUE"")) = " & getVT(CBool("TRUE")))
715 Call ok(CBool("FALSE") = False, "CBool(""FALSE"") = " & CBool("FALSE"))
716 Call ok(getVT(CBool("FALSE")) = "VT_BOOL", "getVT(CBool(""FALSE"")) = " & getVT(CBool("FALSE")))
717 Call ok(CBool("#TRUE#") = True, "CBool(""#TRUE#"") = " & CBool("#TRUE#"))
718 Call ok(getVT(CBool("#TRUE#")) = "VT_BOOL", "getVT(CBool(""#TRUE#"")) = " & getVT(CBool("#TRUE#")))
719 Call ok(CBool("#FALSE#") = False, "CBool(""#FALSE#"") = " & CBool("#FALSE#"))
720 Call ok(getVT(CBool("#FALSE#")) = "VT_BOOL", "getVT(CBool(""#FALSE#"")) = " & getVT(CBool("#FALSE#")))
721 Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject))
722 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
723 MyObject.myval = 1
724 Call ok(CBool(MyObject) = True, "CBool(MyObject) = " & CBool(MyObject))
725 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
726 MyObject.myval = 0
727 Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject))
728 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
730 Sub testCByteError(strings, error_num1,error_num2)
731 on error resume next
732 Dim x
734 Call Err.clear()
735 x = CByte(strings)
736 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
738 Call Err.clear()
739 Call CByte(strings)
740 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
741 End Sub
743 Call ok(CByte(Empty) = 0, "CByte(Empty) = " & CByte(Empty))
744 Call ok(getVT(CByte(Empty)) = "VT_UI1", "getVT(CByte(Empty)) = " & getVT(CByte(Empty)))
745 Call ok(CByte(255) = 255, "CByte(255) = " & CByte(255))
746 Call ok(getVT(CByte(255)) = "VT_UI1", "getVT(CByte(255)) = " & getVT(CByte(255)))
747 Call ok(CByte(255.49) = 255, "CByte(255.49) = " & CByte(255.49))
748 Call ok(getVT(CByte(255.49)) = "VT_UI1", "getVT(CByte(255.49)) = " & getVT(CByte(255.49)))
749 Call testCByteError(1, 0, 458)
750 Call testCByteError("", 13, 13)
751 Call testCByteError("-1", 6, 6)
752 Call testCByteError("258", 6, 6)
753 Call testCByteError("TRUE", 13, 13)
754 Call testCByteError("FALSE", 13, 13)
755 Call testCByteError("#TRue#", 13, 13)
756 Call testCByteError("#fAlSE#", 13, 13)
757 If isEnglishLang Then
758 Call ok(CByte("-0.5") = 0, "CByte(""-0.5"") = " & CByte("-0.5"))
759 Call ok(getVT(CByte("-0.5")) = "VT_UI1", "getVT(CByte(""-0.5"")) = " & getVT(CByte("-0.5")))
760 End If
761 Call ok(CByte(True) = 255, "CByte(True) = " & CByte(True))
762 Call ok(getVT(CByte(True)) = "VT_UI1", "getVT(CByte(True)) = " & getVT(CByte(True)))
763 Call ok(CByte(False) = 0, "CByte(False) = " & CByte(False))
764 Call ok(getVT(CByte(False)) = "VT_UI1", "getVT(CByte(False)) = " & getVT(CByte(False)))
765 Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject))
766 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
767 MyObject.myval = 1
768 Call ok(CByte(MyObject) = 1, "CByte(MyObject) = " & CByte(MyObject))
769 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
770 MyObject.myval = 0
771 Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject))
772 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
774 Sub testCCurError(strings, error_num1, error_num2)
775 on error resume next
776 Dim x
778 Call Err.clear()
779 x = CCur(strings)
780 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
782 Call Err.clear()
783 Call CCur(strings)
784 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
785 End Sub
787 Call ok(CCur(Empty) = 0, "CCur(Empty) = " & CCur(Empty))
788 Call ok(getVT(CCur(Empty)) = "VT_CY", "getVT(CCur(Empty)) = " & getVT(CCur(Empty)))
789 Call ok(CCur(-32768) = -32768, "CCur(-32768) = " & CCur(-32768))
790 Call ok(getVT(CCur(-32768)) = "VT_CY", "getVT(CCur(-32768)) = " & getVT(CCur(-32768)))
791 Call ok(CCur(32768) = 32768, "CCur(32768) = " & CCur(32768))
792 Call ok(getVT(CCur(32768)) = "VT_CY", "getVT(CCur(32768)) = " & getVT(CCur(32768)))
793 Call ok(CCur(0.000149) = 0.0001, "CCur(0.000149) = " & CCur(0.000149))
794 Call ok(getVT(CCur(0.000149)) = "VT_CY", "getVT(CCur(0.000149)) = " & getVT(CCur(0.000149)))
795 Call ok(CCur(2147483647.99) = 2147483647.99, "CCur(2147483647.99) = " & CCur(2147483647.99))
796 Call ok(getVT(CCur(2147483647.99)) = "VT_CY", "getVT(CCur(2147483647.99)) = " & getVT(CCur(2147483647.99)))
797 Call ok(CCur("-1") = -1, "CCur(""-1"") = " & CCur("-1"))
798 Call ok(getVT(CCur("-1")) = "VT_CY", "getVT(CCur(""-1"")) = " & getVT(CCur("-1")))
799 If isEnglishLang Then
800 Call ok(CCur("-0.5") = -0.5, "CCur(""-0.5"") = " & CCur("-0.5"))
801 Call ok(getVT(CCur("-0.5")) = "VT_CY", "getVT(CCur(""-0.5"")) = " & getVT(CCur("-0.5")))
802 End If
803 Call testCCurError("", 13, 13)
804 Call testCCurError("-1", 0, 458)
805 Call testCCurError("TRUE", 13, 13)
806 Call testCCurError("FALSE", 13, 13)
807 Call testCCurError("#TRue#", 13, 13)
808 Call testCCurError("#fAlSE#", 13, 13)
809 Call testCCurError(1, 0, 458)
810 Call ok(CCur(True) = -1, "CCur(True) = " & CCur(True))
811 Call ok(getVT(CCur(True)) = "VT_CY", "getVT(CCur(True)) = " & getVT(CCur(True)))
812 Call ok(CCur(False) = 0, "CCur(False) = " & CCur(False))
813 Call ok(getVT(CCur(False)) = "VT_CY", "getVT(CCur(False)) = " & getVT(CCur(False)))
814 MyObject.myval = 0.1
815 Call ok(CCur(MyObject) = 0.1, "CCur(MyObject) = " & CCur(MyObject))
816 Call ok(getVT(CCur(MyObject)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject)))
817 MyObject.myval = 0
818 Call ok(CCur(MyObject) = 0, "CCur(MyObject) = " & CCur(MyObject))
819 Call ok(getVT(CCur(MyObject)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject)))
821 Sub testCDblError(strings, error_num1, error_num2)
822 on error resume next
823 Dim x
825 Call Err.clear()
826 x = CDbl(strings)
827 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
829 Call Err.clear()
830 Call CDbl(strings)
831 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
832 End Sub
834 Call ok(CDbl(Empty) = 0, "CDbl(Empty) = " & CDbl(Empty))
835 Call ok(getVT(CDbl(Empty)) = "VT_R8", "getVT(CDbl(Empty)) = " & getVT(CDbl(Empty)))
836 Call ok(CDbl(CByte(0)) = 0, "CDbl(CByte(0)) = " & CDbl(CByte(0)))
837 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
838 Call ok(CDbl(CCur(0)) = 0, "CDbl(CCur(0)) = " & CDbl(CCur(0)))
839 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
840 Call ok(CDbl(0) = 0, "CDbl(0) = " & CDbl(0))
841 Call ok(getVT(CDbl(0)) = "VT_R8", "getVT(CDbl(0)) = " & getVT(CDbl(0)))
842 Call ok(CDbl(32768) = 32768, "CDbl(32768) = " & CDbl(32768))
843 Call ok(getVT(CDbl(32768)) = "VT_R8", "getVT(CDbl(32768)) = " & getVT(CDbl(32768)))
844 Call ok(CDbl(0.001 * 0.001) = 0.000001, "CDbl(0.001 * 0.001) = " & CDbl(0.001 * 0.001))
845 Call ok(getVT(CDbl(0.001 * 0.001)) = "VT_R8", "getVT(CDbl(0.001 * 0.001)) = " & getVT(CDbl(0.001 * 0.001)))
846 Call ok(CDbl("-1") = -1, "CDbl(""-1"") = " & CDbl("-1"))
847 Call ok(getVT(CDbl("-1")) = "VT_R8", "getVT(CDbl(""-1"")) = " & getVT(CDbl("-1")))
848 If isEnglishLang Then
849 Call ok(CDbl("-0.5") = -0.5, "CDbl(""-0.5"") = " & CDbl("-0.5"))
850 Call ok(getVT(CDbl("-0.5")) = "VT_R8", "getVT(CDbl(""-0.5"")) = " & getVT(CDbl("-0.5")))
851 End If
852 Call testCDblError("", 13, 13)
853 Call testCDblError("TRUE", 13, 13)
854 Call testCDblError("FALSE", 13, 13)
855 Call testCDblError("#TRue#", 13, 13)
856 Call testCDblError("#fAlSE#", 13, 13)
857 Call testCDblError(1, 0, 458)
858 Call ok(CDbl(True) = -1, "CDbl(True) = " & CDbl(True))
859 Call ok(getVT(CDbl(True)) = "VT_R8", "getVT(CDbl(True)) = " & getVT(CDbl(True)))
860 Call ok(CDbl(False) = 0, "CDbl(False) = " & CDbl(False))
861 Call ok(getVT(CDbl(False)) = "VT_R8", "getVT(CDbl(False)) = " & getVT(CDbl(False)))
862 MyObject.myval = 0.1
863 Call ok(CDbl(MyObject) = 0.1, "CDbl(MyObject) = " & CDbl(MyObject))
864 Call ok(getVT(CDbl(MyObject)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject)))
865 MyObject.myval = 0
866 Call ok(CDbl(MyObject) = 0, "CDbl(MyObject) = " & CDbl(MyObject))
867 Call ok(getVT(CDbl(MyObject)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject)))
869 Sub testCLngError(strings, error_num1, error_num2)
870 on error resume next
871 Dim x
873 Call Err.clear()
874 x = CLng(strings)
875 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
877 Call Err.clear()
878 Call CLng(strings)
879 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
880 End Sub
882 Call ok(CLng(Empty) = 0, "CLng(Empty) = " & CLng(Empty))
883 Call ok(getVT(CLng(Empty)) = "VT_I4", "getVT(CLng(Empty)) = " & getVT(CLng(Empty)))
884 Call ok(CLng(CByte(0)) = 0, "CLng(CByte(0)) = " & CLng(CByte(0)))
885 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
886 Call ok(CLng(CCur(0)) = 0, "CLng(CCur(0)) = " & CLng(CCur(0)))
887 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
888 Call ok(CLng(0) = 0, "CLng(0) = " & CLng(0))
889 Call ok(getVT(CLng(0)) = "VT_I4", "getVT(CLng(0)) = " & getVT(CLng(0)))
890 Call ok(CLng(0.49) = 0, "CLng(0.49) = " & CLng(0.49))
891 Call ok(getVT(CLng(0.49)) = "VT_I4", "getVT(CLng(0.49)) = " & getVT(CLng(0.49)))
892 Call ok(CLng(0.5) = 0, "CLng(0.5) = " & CLng(0.5))
893 Call ok(getVT(CLng(0.5)) = "VT_I4", "getVT(CLng(0.5)) = " & getVT(CLng(0.5)))
894 Call ok(CLng(0.51) = 1, "CLng(0.51) = " & CLng(0.51))
895 Call ok(getVT(CLng(0.51)) = "VT_I4", "getVT(CLng(0.51)) = " & getVT(CLng(0.51)))
896 Call ok(CLng(1.49) = 1, "CLng(1.49) = " & CLng(1.49))
897 Call ok(getVT(CLng(1.49)) = "VT_I4", "getVT(CLng(1.49)) = " & getVT(CLng(1.49)))
898 Call ok(CLng(1.5) = 2, "CLng(1.5) = " & CLng(1.5))
899 Call ok(getVT(CLng(1.5)) = "VT_I4", "getVT(CLng(1.5)) = " & getVT(CLng(1.5)))
900 Call ok(CLng(1.51) = 2, "CLng(1.51) = " & CLng(1.51))
901 Call ok(getVT(CLng(1.51)) = "VT_I4", "getVT(CLng(1.51)) = " & getVT(CLng(1.51)))
902 Call ok(CLng("-1") = -1, "CLng(""-1"") = " & CLng("-1"))
903 Call ok(getVT(CLng("-1")) = "VT_I4", "getVT(CLng(""-1"")) = " & getVT(CLng("-1")))
904 If isEnglishLang Then
905 Call ok(CLng("-0.5") = 0, "CLng(""-0.5"") = " & CLng("-0.5"))
906 Call ok(getVT(CLng("-0.5")) = "VT_I4", "getVT(CLng(""-0.5"")) = " & getVT(CLng("-0.5")))
907 End If
908 Call testCLngError("", 13, 13)
909 Call testCLngError("TRUE", 13, 13)
910 Call testCLngError("FALSE", 13, 13)
911 Call testCLngError("#TRue#", 13, 13)
912 Call testCLngError("#fAlSE#", 13, 13)
913 Call testCLngError(1, 0, 458)
914 Call ok(CLng(True) = -1, "CLng(True) = " & CLng(True))
915 Call ok(getVT(CLng(True)) = "VT_I4", "getVT(CLng(True)) = " & getVT(CLng(True)))
916 Call ok(CLng(False) = 0, "CLng(False) = " & CLng(False))
917 Call ok(getVT(CLng(False)) = "VT_I4", "getVT(CLng(False)) = " & getVT(CLng(False)))
918 MyObject.myval = 1
919 Call ok(CLng(MyObject) = 1, "CLng(MyObject) = " & CLng(MyObject))
920 Call ok(getVT(CLng(MyObject)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject)))
921 MyObject.myval = 0
922 Call ok(CLng(MyObject) = 0, "CLng(MyObject) = " & CLng(MyObject))
923 Call ok(getVT(CLng(MyObject)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject)))
925 Sub testCIntError(strings, error_num1, error_num2)
926 on error resume next
927 Dim x
929 Call Err.clear()
930 x = CInt(strings)
931 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
933 Call Err.clear()
934 Call CInt(strings)
935 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
936 End Sub
938 Call ok(CInt(Empty) = 0, "CInt(Empty) = " & CInt(Empty))
939 Call ok(getVT(CInt(Empty)) = "VT_I2", "getVT(CInt(Empty)) = " & getVT(CInt(Empty)))
940 Call ok(CInt(CByte(0)) = 0, "CInt(CByte(0)) = " & CInt(CByte(0)))
941 Call ok(getVT(CInt(CByte(0))) = "VT_I2", "getVT(CInt(CByte(0))) = " & getVT(CInt(CByte(0))))
942 Call ok(CInt(CCur(0)) = 0, "CInt(CCur(0)) = " & CInt(CCur(0)))
943 Call ok(getVT(CInt(CCur(0))) = "VT_I2", "getVT(CInt(CCur(0))) = " & getVT(CInt(CCur(0))))
944 Call ok(CInt(0.49) = 0, "CInt(0.49) = " & CInt(0.49))
945 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
946 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0.5))
947 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
948 Call ok(CInt(0.51) = 1, "CInt(0.51) = " & CInt(0.51))
949 Call ok(getVT(CInt(0.51)) = "VT_I2", "getVT(CInt(0.51)) = " & getVT(CInt(0.51)))
950 Call ok(CInt(1.49) = 1, "CInt(0.49) = " & CInt(0.49))
951 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
952 Call ok(CInt(1.5) = 2, "CInt(1.5) = " & CInt(1.5))
953 Call ok(getVT(CInt(1.5)) = "VT_I2", "getVT(CInt(1.5)) = " & getVT(CInt(1.5)))
954 Call ok(CInt(1.51) = 2, "CInt(1.51) = " & CInt(1.51))
955 Call ok(getVT(CInt(1.51)) = "VT_I2", "getVT(CInt(1.51)) = " & getVT(CInt(1.51)))
956 Call ok(CInt("-1") = -1, "CInt(""-1"") = " & CInt("-1"))
957 Call ok(getVT(CInt("-1")) = "VT_I2", "getVT(CInt(""-1"")) = " & getVT(CInt("-1")))
958 If isEnglishLang Then
959 Call ok(CInt("-0.5") = 0, "CInt(""-0.5"") = " & CInt("-0.5"))
960 Call ok(getVT(CInt("-0.5")) = "VT_I2", "getVT(CInt(""-0.5"")) = " & getVT(CInt("-0.5")))
961 End If
962 Call testCIntError("", 13, 13)
963 Call testCIntError("-1", 0, 458)
964 Call testCIntError("TRUE", 13, 13)
965 Call testCIntError("FALSE", 13, 13)
966 Call testCIntError("#TRue#", 13, 13)
967 Call testCIntError("#fAlSE#", 13, 13)
968 Call testCIntError(1, 0, 458)
969 Call testCIntError(32767.49, 0, 458)
970 Call testCIntError(32767.5, 6, 6)
971 Call testCIntError(-32768.5, 0, 458)
972 Call testCIntError(-32768.51, 6, 6)
973 Call ok(CInt(True) = -1, "CInt(True) = " & CInt(True))
974 Call ok(getVT(CInt(True)) = "VT_I2", "getVT(CInt(True)) = " & getVT(CInt(True)))
975 Call ok(CInt(False) = 0, "CInt(False) = " & CInt(False))
976 Call ok(getVT(CInt(False)) = "VT_I2", "getVT(CInt(False)) = " & getVT(CInt(False)))
977 MyObject.myval = 2.5
978 Call ok(CInt(MyObject) = 2, "CInt(MyObject) = " & CInt(MyObject))
979 Call ok(getVT(CInt(MyObject)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject)))
980 MyObject.myval = 1.5
981 Call ok(CInt(MyObject) = 2, "CInt(MyObject) = " & CInt(MyObject))
982 Call ok(getVT(CInt(MyObject)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject)))
984 Sub testCSngError(strings, error_num1, error_num2)
985 on error resume next
986 Dim x
988 Call Err.clear()
989 x = CSng(strings)
990 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
992 Call Err.clear()
993 Call CSng(strings)
994 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
995 End Sub
997 Call ok(CSng(Empty) = 0, "CSng(Empty) = " & CSng(Empty))
998 Call ok(getVT(CSng(Empty)) = "VT_R4", "getVT(CSng(Empty)) = " & getVT(CSng(Empty)))
999 Call ok(CSng(CByte(0)) = 0, "CSng(CByte(0)) = " & CSng(CByte(0)))
1000 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
1001 Call ok(CSng(CCur(0)) = 0, "CSng(CCur(0)) = " & CSng(CCur(0)))
1002 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
1003 Call ok(CSng(0) = 0, "CSng(0) = " & CSng(0))
1004 Call ok(getVT(CSng(0)) = "VT_R4", "getVT(CSng(0)) = " & getVT(CSng(0)))
1005 Call ok(CSng(32768) = 32768, "CSng(32768) = " & CSng(32768))
1006 Call ok(getVT(CSng(32768)) = "VT_R4", "getVT(CSng(32768)) = " & getVT(CSng(32768)))
1007 Call ok(CSng(0.001 * 0.001) = 0.000001, "CSng(0.001 * 0.001) = " & CSng(0.001 * 0.001))
1008 Call ok(getVT(CSng(0.001 * 0.001)) = "VT_R4", "getVT(CSng(0.001 * 0.001)) = " & getVT(CSng(0.001 * 0.001)))
1009 Call ok(CSng("-1") = -1, "CSng(""-1"") = " & CSng("-1"))
1010 Call ok(getVT(CSng("-1")) = "VT_R4", "getVT(CSng(""-1"")) = " & getVT(CSng("-1")))
1011 If isEnglishLang Then
1012 Call ok(CSng("-0.5") = -0.5, "CSng(""-0.5"") = " & CSng("-0.5"))
1013 Call ok(getVT(CSng("-0.5")) = "VT_R4", "getVT(CSng(""-0.5"")) = " & getVT(CSng("-0.5")))
1014 End If
1015 Call testCSngError("", 13, 13)
1016 Call testCSngError("TRUE", 13, 13)
1017 Call testCSngError("FALSE", 13, 13)
1018 Call testCSngError("#TRue#", 13, 13)
1019 Call testCSngError("#fAlSE#", 13, 13)
1020 Call testCSngError(1, 0, 458)
1021 Call ok(CSng(True) = -1, "CSng(True) = " & CSng(True))
1022 Call ok(getVT(CSng(True)) = "VT_R4", "getVT(CSng(True)) = " & getVT(CSng(True)))
1023 Call ok(CSng(False) = 0, "CSng(False) = " & CSng(False))
1024 Call ok(getVT(CSng(False)) = "VT_R4", "getVT(CSng(False)) = " & getVT(CSng(False)))
1025 MyObject.myval = 0.1
1026 Call ok(CSng(MyObject) = 0.1, "CSng(MyObject) = " & CSng(MyObject))
1027 Call ok(getVT(CSng(MyObject)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject)))
1028 MyObject.myval = 0
1029 Call ok(CSng(MyObject) = 0, "CSng(MyObject) = " & CSng(MyObject))
1030 Call ok(getVT(CSng(MyObject)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject)))
1032 Call ok(TypeName(Empty) = "Empty", "TypeName(MyEmpty) = " & TypeName(Empty))
1033 Call ok(getVT(TypeName(Empty)) = "VT_BSTR", "getVT(TypeName(Empty)) = " & getVT(TypeName(Empty)))
1034 Call ok(TypeName(Null) = "Null", "TypeName(Null) = " & TypeName(Null))
1035 Call ok(getVT(TypeName(Null)) = "VT_BSTR", "getVT(TypeName(Null)) = " & getVT(TypeName(Null)))
1036 Call ok(TypeName(CByte(255)) = "Byte", "TypeName(CByte(255)) = " & TypeName(CByte(255)))
1037 Call ok(getVT(TypeName(CByte(255))) = "VT_BSTR", "getVT(TypeName(CByte(255))) = " & getVT(TypeName(CByte(255))))
1038 Call ok(TypeName(255) = "Integer", "TypeName(255) = " & TypeName(255))
1039 Call ok(getVT(TypeName(255)) = "VT_BSTR", "getVT(TypeName(255)) = " & getVT(TypeName(255)))
1040 Call ok(TypeName(32768) = "Long", "TypeName(32768) = " & TypeName(32768))
1041 Call ok(getVT(TypeName(32768)) = "VT_BSTR", "getVT(TypeName(32768)) = " & getVT(TypeName(32768)))
1042 Call ok(TypeName(CSng(0.5)) = "Single", "TypeName(CSng(0.5)) = " & TypeName(CSng(0.5)))
1043 Call ok(getVT(TypeName(CSng(0.5))) = "VT_BSTR", "getVT(TypeName(CSng(0.5))) = " & getVT(TypeName(CSng(0.5))))
1044 Call ok(TypeName(-0.5) = "Double", "TypeName(-0.5) = " & TypeName(-0.5))
1045 Call ok(getVT(TypeName(-0.5)) = "VT_BSTR", "getVT(TypeName(-0.5)) = " & getVT(TypeName(-0.5)))
1046 Call ok(TypeName(CCur(0.5)) = "Currency", "TypeName(CCur(0.5)) = " & TypeName(CCur(0.5)))
1047 Call ok(getVT(TypeName(CCur(0.5))) = "VT_BSTR", "getVT(TypeName(CCur(0.5))) = " & getVT(TypeName(CCur(0.5))))
1048 Call ok(TypeName(CStr(0.5)) = "String", "TypeName(CStr(0.5)) = " & TypeName(CStr(0.5)))
1049 Call ok(getVT(TypeName(CStr(0.5))) = "VT_BSTR", "getVT(TypeName(CStr(0.5))) = " & getVT(TypeName(CStr(0.5))))
1050 Call ok(TypeName(True) = "Boolean", "TypeName(True) = " & TypeName(True))
1051 Call ok(getVT(TypeName(True)) = "VT_BSTR", "getVT(TypeName(True)) = " & getVT(TypeName(True)))
1053 Call ok(VarType(Empty) = vbEmpty, "VarType(Empty) = " & VarType(Empty))
1054 Call ok(getVT(VarType(Empty)) = "VT_I2", "getVT(VarType(Empty)) = " & getVT(VarType(Empty)))
1055 Call ok(VarType(Null) = vbNull, "VarType(Null) = " & VarType(Null))
1056 Call ok(getVT(VarType(Null)) = "VT_I2", "getVT(VarType(Null)) = " & getVT(VarType(Null)))
1057 Call ok(VarType(255) = vbInteger, "VarType(255) = " & VarType(255))
1058 Call ok(getVT(VarType(255)) = "VT_I2", "getVT(VarType(255)) = " & getVT(VarType(255)))
1059 Call ok(VarType(32768) = vbLong, "VarType(32768) = " & VarType(32768))
1060 Call ok(getVT(VarType(32768)) = "VT_I2", "getVT(VarType(32768)) = " & getVT(VarType(32768)))
1061 Call ok(VarType(CSng(0.5)) = vbSingle, "VarType(CSng(0.5)) = " & VarType(CSng(0.5)))
1062 Call ok(getVT(VarType(CSng(0.5))) = "VT_I2", "getVT(VarType(CSng(0.5))) = " & getVT(VarType(CSng(0.5))))
1063 Call ok(VarType(-0.5) = vbDouble, "VarType(-0.5) = " & VarType(-0.5))
1064 Call ok(getVT(VarType(-0.5)) = "VT_I2", "getVT(VarType(-0.5)) = " & getVT(VarType(-0.5)))
1065 Call ok(VarType(CCur(0.5)) = vbCurrency, "VarType(CCur(0.5)) = " & VarType(CCur(0.5)))
1066 Call ok(getVT(VarType(CCur(0.5))) = "VT_I2", "getVT(VarType(CCur(0.5))) = " & getVT(VarType(CCur(0.5))))
1067 Call ok(VarType(CStr(0.5)) = vbString, "VarType(CStr(0.5)) = " & VarType(CStr(0.5)))
1068 Call ok(getVT(VarType(CStr(0.5))) = "VT_I2", "getVT(VarType(CStr(0.5))) = " & getVT(VarType(CStr(0.5))))
1069 Call ok(VarType(CBool(0.5)) = vbBoolean, "VarType(CBool(0.5)) = " & VarType(CBool(0.5)))
1070 Call ok(getVT(VarType(CBool(0.5))) = "VT_I2", "getVT(VarType(CBool(0.5))) = " & getVT(VarType(CBool(0.5))))
1071 Call ok(VarType(CByte(255)) = vbByte, "VarType(CByte(255)) = " & VarType(CByte(255)))
1072 Call ok(getVT(VarType(CByte(255))) = "VT_I2", "getVT(VarType(CByte(255))) = " & getVT(VarType(CByte(255))))
1074 Call ok(Sgn(Empty) = 0, "Sgn(MyEmpty) = " & Sgn(Empty))
1075 Call ok(getVT(Sgn(Empty)) = "VT_I2", "getVT(Sgn(MyEmpty)) = " & getVT(Sgn(Empty)))
1076 Call ok(Sgn(0) = 0, "Sgn(0) = " & Sgn(0))
1077 Call ok(getVT(Sgn(0)) = "VT_I2", "getVT(Sgn(0)) = " & getVT(Sgn(0)))
1078 Call ok(Sgn(-32769) = -1, "Sgn(-32769) = " & Sgn(-32769))
1079 Call ok(getVT(Sgn(-32769)) = "VT_I2", "getVT(Sgn(-32769)) = " & getVT(Sgn(-32769)))
1080 Call ok(Sgn(CSng(-0.5)) = -1, "Sgn(CSng(-0.5)) = " & Sgn(CSng(-0.5)))
1081 Call ok(getVT(Sgn(CSng(-0.5))) = "VT_I2", "getVT(Sgn(CSng(-0.5))) = " & getVT(Sgn(CSng(-0.5))))
1082 Call ok(Sgn(0.5) = 1, "Sgn(0.5) = " & Sgn(0.5))
1083 Call ok(getVT(Sgn(0.5)) = "VT_I2", "getVT(Sgn(0.5)) = " & getVT(Sgn(0.5)))
1084 Call ok(Sgn(CCur(-1)) = -1, "Sgn(CCur(-1)) = " & Sgn(CCur(-1)))
1085 Call ok(getVT(Sgn(CCur(-1))) = "VT_I2", "getVT(Sgn(CCur(-1))) = " & getVT(Sgn(CCur(-1))))
1086 Call ok(Sgn(CStr(-1)) = -1, "Sgn(CStr(-1)) = " & Sgn(CStr(-1)))
1087 Call ok(getVT(Sgn(CStr(-1))) = "VT_I2", "getVT(Sgn(CStr(-1))) = " & getVT(Sgn(CStr(-1))))
1088 Call ok(Sgn(False) = 0, "Sgn(False) = " & Sgn(False))
1089 Call ok(getVT(Sgn(False)) = "VT_I2", "getVT(Sgn(False)) = " & getVT(Sgn(False)))
1090 Call ok(Sgn(True) = -1, "Sgn(True) = " & Sgn(True))
1091 Call ok(getVT(Sgn(True)) = "VT_I2", "getVT(Sgn(True)) = " & getVT(Sgn(True)))
1092 Call ok(Sgn(CByte(1)) = 1, "Sgn(CByte(1)) = " & Sgn(CByte(1)))
1093 Call ok(getVT(Sgn(CByte(1))) ="VT_I2", "getVT(Sgn(CByte(1))) = " & getVT(Sgn(CByte(1))))
1095 Sub testSgnError(strings, error_num)
1096 on error resume next
1098 Call Err.clear()
1099 Call Sgn(strings)
1100 Call ok(Err.number = error_num, "Err.number = " & Err.number)
1101 End Sub
1103 Call testSgnError(Null, 94)
1105 Call ok(Abs(Empty) = 0, "Abs(Empty) = " & Abs(Empty))
1106 Call ok(getVT(Abs(Empty)) = "VT_I2", "getVT(Abs(Empty)) = " & getVT(Abs(Empty)))
1107 Call ok(IsNull(Abs(Null)), "Is Abs(Null) not Null?")
1108 Call ok(getVT(Abs(Null)) = "VT_NULL", "getVT(Abs(Null)) = " & getVT(Abs(Null)))
1109 Call ok(Abs(0) = 0, "Abs(0) = " & Abs(0))
1110 Call ok(getVT(Abs(0)) = "VT_I2", "getVT(Abs(0)) = " & getVT(Abs(0)))
1111 Call ok(Abs(-32769) = 32769, "Abs(-32769) = " & Abs(-32769))
1112 Call ok(getVT(Abs(-32769)) = "VT_I4", "getVT(Abs(-32769)) = " & getVT(Abs(-32769)))
1113 Call ok(Abs(CSng(-0.5)) = 0.5, "Abs(CSng(-0.5)) = " & Abs(CSng(-0.5)))
1114 Call ok(getVT(Abs(CSng(-0.5))) = "VT_R4", "getVT(Abs(CSng(-0.5))) = " & getVT(Abs(CSng(-0.5))))
1115 Call ok(Abs(0.5) = 0.5, "Abs(0.5) = " & Abs(0.5))
1116 Call ok(getVT(Abs(0.5)) = "VT_R8", "getVT(Abs(0.5)) = " & getVT(Abs(0.5)))
1117 Call ok(Abs(CCur(-1)) = 1, "Abs(CCur(-1)) = " & Abs(CCur(-1)))
1118 Call ok(getVT(Abs(CCur(-1))) = "VT_CY", "getVT(Abs(CCur(-1))) = " & getVT(Abs(CCur(-1))))
1119 Call ok(Abs("-1") = 1, "Abs(""-1"") = " & Abs("-1"))
1120 Call ok(getVT(Abs("-1")) = "VT_R8", "getVT(Abs(""-1"")) = " & getVT(Abs("-1")))
1121 Call ok(Abs(False) = 0, "Abs(False) = " & Abs(False))
1122 Call ok(getVT(Abs(False)) = "VT_I2", "getVT(Abs(False)) = " & getVT(Abs(False)))
1123 Call ok(Abs(True) = 1, "Abs(True) = " & Abs(True))
1124 Call ok(getVT(Abs(True)) = "VT_I2", "getVT(Abs(True)) = " & getVT(Abs(True)))
1125 Call ok(Abs(CByte(1)) = 1, "Abs(CByte(1)) = " & Abs(CByte(1)))
1126 Call ok(getVT(Abs(CByte(1))) = "VT_UI1", "getVT(Abs(CByte(1))) = " & getVT(Abs(CByte(1))))
1128 Sub testAbsError(strings, error_num1, error_num2)
1129 on error resume next
1130 Dim x
1132 Call Err.clear()
1133 x = Abs(strings)
1134 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1136 Call Err.clear()
1137 Call Abs(strings)
1138 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1139 End Sub
1141 Call testAbsError("strings", 13, 13)
1142 Call testAbsError(-4, 0, 0)
1144 Call ok(ScriptEngine = "VBScript", "Is scriptengine not VBScript?")
1145 Call ok(getVT(ScriptEngine) = "VT_BSTR", "getVT(ScriptEngine) = " & getVT(ScriptEngine))
1147 Call ok(getVT(ScriptEngineBuildVersion) = "VT_I4", "getVT(ScriptEngineBuildVersion) = " & getVT(ScriptEngineBuildVersion))
1149 Call ok(getVT(ScriptEngineMajorVersion) = "VT_I4", "getVT(ScriptEngineMajorVersion) = " & getVT(ScriptEngineMajorVersion))
1151 Call ok(getVT(ScriptEngineMinorVersion) = "VT_I4", "getVT(ScriptEngineMinorVersion) = " & getVT(ScriptEngineMinorVersion))
1153 Call ok(Fix(Empty) = 0, "Fix(Empty) = " & Fix(Empty))
1154 Call ok(getVT(Fix(Empty)) = "VT_I2", "getVT(Fix(Empty)) = " & getVT(Fix(Empty)))
1155 Call ok(Fix(CCur(-0.99)) = 0, "Fix(CCur(-0.99)) = " & Fix(CCur(-0.99)))
1156 Call ok(getVT(Fix(CCur(-0.99))) = "VT_CY", "getVT(Fix(CCur(-0.99))) = " & getVT(Fix(CCur(-0.99))))
1157 Call ok(Fix(1.99) = 1, "Fix(1.99) = " & Fix(1.99))
1158 Call ok(getVT(Fix(1.99)) = "VT_R8", "getVT(Fix(1.99)) = " & getVT(Fix(1.99)))
1159 Call ok(Fix(-1.99) = -1, "Fix(-1.99) = " & Fix(-1.99))
1160 Call ok(getVT(Fix(-1.99)) = "VT_R8", "getVT(Fix(-1.99)) = " & getVT(Fix(-1.99)))
1161 If isEnglishLang Then
1162 Call ok(Fix("1.99") = 1, "Fix(""1.99"") = " & Fix("1.99"))
1163 Call ok(getVT(Fix("1.99")) = "VT_R8", "getVT(Fix(""1.99"")) = " & getVT(Fix("1.99")))
1164 Call ok(Fix("-1.99") = -1, "Fix(""-1.99"") = " & Fix("-1.99"))
1165 Call ok(getVT(Fix("-1.99")) = "VT_R8", "getVT(Fix(""-1.99"")) = " & getVT(Fix("-1.99")))
1166 End If
1167 Call ok(Fix(True) = -1, "Fix(True) = " & Fix(True))
1168 Call ok(getVT(Fix(True)) = "VT_I2", "getVT(Fix(True)) = " & getVT(Fix(True)))
1169 Call ok(Fix(False) = 0, "Fix(False) = " & Fix(False))
1170 Call ok(getVT(Fix(False)) = "VT_I2", "getVT(Fix(False)) = " & getVT(Fix(False)))
1171 MyObject.myval = 2.5
1172 Call ok(Fix(MyObject) = 2, "Fix(MyObject) = " & Fix(MyObject))
1173 Call ok(getVT(Fix(MyObject)) = "VT_R8", "getVT(Fix(MyObject)) = " & getVT(Fix(MyObject)))
1174 MyObject.myval = -2.5
1175 Call ok(Fix(MyObject) = -2, "Fix(MyObject) = " & Fix(MyObject))
1176 Call ok(getVT(Fix(MyObject)) = "VT_R8", "getVT(Fix(MyObject)) = " & getVT(Fix(MyObject)))
1178 Call ok(Int(Empty) = 0, "Int(Empty) = " & Int(Empty))
1179 Call ok(getVT(Int(Empty)) = "VT_I2", "getVT(Int(Empty)) = " & getVT(Int(Empty)))
1180 Call ok(Int(CCur(-0.99)) = -1, "Int(CCur(-0.99)) = " & Int(CCur(-0.99)))
1181 Call ok(getVT(Int(CCur(-0.99))) = "VT_CY", "getVT(Int(CCur(-0.99))) = " & getVT(Int(CCur(-0.99))))
1182 Call ok(Int(1.99) = 1, "Int(1.99) = " & Int(1.99))
1183 Call ok(getVT(Int(1.99)) = "VT_R8", "getVT(Int(1.99)) = " & getVT(Int(1.99)))
1184 Call ok(Int(-1.99) = -2, "Int(-1.99) = " & Int(-1.99))
1185 Call ok(getVT(Int(-1.99)) = "VT_R8", "getVT(Int(-1.99)) = " & getVT(Int(-1.99)))
1186 If isEnglishLang Then
1187 Call ok(Int("1.99") = 1, "Int(""1.99"") = " & Int("1.99"))
1188 Call ok(getVT(Int("1.99")) = "VT_R8", "getVT(Int(""1.99"")) = " & getVT(Int("1.99")))
1189 Call ok(Int("-1.99") = -2, "Int(""-1.99"") = " & Int("-1.99"))
1190 Call ok(getVT(Int("-1.99")) = "VT_R8", "getVT(Int(""-1.99"")) = " & getVT(Int("-1.99")))
1191 End If
1192 Call ok(Int(True) = -1, "Int(True) = " & Int(True))
1193 Call ok(getVT(Int(True)) = "VT_I2", "getVT(Int(True)) = " & getVT(Int(True)))
1194 Call ok(Int(False) = 0, "Int(False) = " & Int(False))
1195 Call ok(getVT(Int(False)) = "VT_I2", "getVT(Int(False)) = " & getVT(Int(False)))
1196 MyObject.myval = 2.5
1197 Call ok(Int(MyObject) = 2, "Int(MyObject) = " & Int(MyObject))
1198 Call ok(getVT(Int(MyObject)) = "VT_R8", "getVT(Int(MyObject)) = " & getVT(Int(MyObject)))
1199 MyObject.myval = -2.5
1200 Call ok(Int(MyObject) = -3, "Int(MyObject) = " & Int(MyObject))
1201 Call ok(getVT(Int(MyObject)) = "VT_R8", "getVT(Int(MyObject)) = " & getVT(Int(MyObject)))
1203 Sub testSqrError(strings, error_num1, error_num2)
1204 on error resume next
1205 Dim x
1207 Call Err.clear()
1208 x = Sqr(strings)
1209 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1211 Call Err.clear()
1212 Call Sqr(strings)
1213 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1214 End Sub
1216 Call testSqrError(-2, 5, 5)
1217 Call testSqrError(True, 5, 5)
1219 Call ok(Sqr(Empty) = 0, "Sqr(Empty) = " & Sqr(Empty))
1220 Call ok(getVT(Sqr(Empty)) = "VT_R8", "getVT(Sqr(Empty)) = " & getVT(Sqr(Empty)))
1221 Call ok(Sqr(0) = 0, "Sqr(0) = " & Sqr(0))
1222 Call ok(getVT(Sqr(0)) = "VT_R8", "getVT(Sqr(0)) = " & getVT(Sqr(0)))
1223 Call ok(Sqr(1) = 1, "Sqr(1) = " & Sqr(1))
1224 Call ok(getVT(Sqr(1)) = "VT_R8", "getVT(Sqr(1)) = " & getVT(Sqr(1)))
1225 Call ok(Sqr(CSng(121)) = 11, "Sqr(CSng(121)) = " & Sqr(CSng(121)))
1226 Call ok(getVT(Sqr(CSng(121))) = "VT_R8", "getVT(Sqr(CSng(121))) = " & getVT(Sqr(CSng(121))))
1227 Call ok(Sqr(36100) = 190, "Sqr(36100) = " & Sqr(36100))
1228 Call ok(getVT(Sqr(36100)) = "VT_R8", "getVT(Sqr(36100)) = " & getVT(Sqr(36100)))
1229 Call ok(Sqr(CCur(0.0625)) = 0.25, "Sqr(CCur(0.0625)) = " & Sqr(CCur(0.0625)))
1230 Call ok(getVT(Sqr(CCur(0.0625))) = "VT_R8", "getVT(Sqr(CCur(0.0625))) = " & getVT(Sqr(CCur(0.0625))))
1231 Call ok(Sqr("100000000") = 10000, "Sqr(""100000000"") = " & Sqr("100000000"))
1232 Call ok(getVT(Sqr("100000000")) = "VT_R8", "getVT(Sqr(""100000000"")) = " & getVT(Sqr("100000000")))
1233 Call ok(Sqr(False) = 0, "Sqr(False) = " & Sqr(False))
1234 Call ok(getVT(Sqr(False)) = "VT_R8", "getVT(Sqr(False)) = " & getVT(Sqr(False)))
1235 Call ok(Sqr(CByte(225)) = 15, "Sqr(CByte(225)) = " & Sqr(CByte(225)))
1236 Call ok(getVT(Sqr(CByte(225))) = "VT_R8", "getVT(Sqr(CByte(225))) = " & getVT(Sqr(CByte(225))))
1238 Function Approch(func, res)
1239 If Abs(func - res) < 0.001 Then
1240 Approch = True
1241 Else
1242 Approch = False
1243 End If
1244 End Function
1246 Const PI = 3.1415926
1248 Call ok(Approch(Cos(Empty), 1), "Cos(Empty) = " & Cos(Empty))
1249 Call ok(getVT(Cos(Empty)) = "VT_R8", "getVT(Cos(Empty)) = " & getVT(Cos(Empty)))
1250 Call ok(Approch(Cos(PI / 6), Sqr(3) / 2), "Cos(PI / 6) = " & Cos(PI / 6))
1251 Call ok(getVT(Cos(PI / 6)) = "VT_R8", "getVT(Cos(PI / 6)) = " & getVT(Cos(PI / 6)))
1252 Call ok(Approch(Cos(CCur(PI / 4)), Sqr(2) / 2), "Cos(CCur(PI / 4)) = " & Cos(CCur(PI / 4)))
1253 Call ok(getVT(Cos(CCur(PI / 4))) = "VT_R8", "getVT(Cos(CCur(PI / 4))) = " & getVT(Cos(CCur(PI / 4))))
1254 Call ok(Approch(Cos(CSng(PI / 3)), 1 / 2), "Cos(CSng(PI / 3)) = " & Cos(CSng(PI / 3)))
1255 Call ok(getVT(Cos(CSng(PI / 3))) = "VT_R8", "getVT(Cos(CSng(PI))) = " & getVT(Cos(CSng(PI))))
1256 Call ok(Approch(Cos(PI / 2), 0), "Cos(0) = " & Cos(PI / 2))
1257 Call ok(getVT(Cos(PI / 2)) = "VT_R8", "getVT(Cos(PI / 2)) = " & getVT(Cos(PI / 2)))
1258 Call ok(Approch(Cos(PI), -1), "Cos(PI) = " & Cos(PI))
1259 Call ok(getVT(Cos(PI)) = "VT_R8", "getVT(Cos(PI)) = " & getVT(Cos(PI)))
1260 Call ok(Approch(Cos(5 * PI / 4), -Sqr(2) / 2), "Cos(5 * PI / 4) = " & Cos(5 * PI / 4))
1261 Call ok(getVT(Cos(5 * PI / 4)) = "VT_R8", "getVT(Cos(5 * PI / 4)) = " & getVT(Cos(5 * PI / 4)))
1262 Call ok(Approch(Cos(3 * PI / 2), 0), "Cos(3 * PI / 2) = " & Cos(3 * PI / 2))
1263 Call ok(getVT(Cos(3 * PI / 2)) = "VT_R8", "getVT(Cos(3 * PI / 2)) = " & getVT(Cos(3 * PI / 2)))
1264 Call ok(Approch(Cos(2 * PI), 1), "Cos(2 * PI) = " & Cos(2 * PI))
1265 Call ok(getVT(Cos(2 * PI)) = "VT_R8", "getVT(Cos(2 * PI)) = " & getVT(Cos(2 * PI)))
1266 Call ok(Approch(Cos("-32768"), 0.3729), "Cos(""-32768"") = " & Cos("-32768"))
1267 Call ok(getVT(Cos("-32768")) = "VT_R8", "getVT(Cos(""-32768"")) = " & getVT(Cos("-32768")))
1268 Call ok(Approch(Cos(False), 1), "Cos(False) = " & Cos(False))
1269 Call ok(getVT(Cos(False)) = "VT_R8", "getVT(Cos(False)) = " & getVT(Cos(False)))
1270 Call ok(Approch(Cos(True), 0.5403), "Cos(True) = " & Cos(True))
1271 Call ok(getVT(Cos(True)) = "VT_R8", "getVT(Cos(True)) = " & getVT(Cos(True)))
1272 Call ok(Approch(Cos(CByte(255)), -0.8623), "Cos(CByte(255)) = " & Cos(CByte(255)))
1273 Call ok(getVT(Cos(CByte(255))) = "VT_R8", "getVT(Cos(CByte(255))) = " & getVT(Cos(CByte(255))))
1275 Call ok(Approch(Sin(Empty), 0), "Sin(Empty) = " & Sin(Empty))
1276 Call ok(getVT(Sin(Empty)) = "VT_R8", "getVT(Sin(Empty)) = " & getVT(Sin(Empty)))
1277 Call ok(Approch(Sin(PI / 6), 1 / 2), "Sin(PI / 6) = " & Sin(PI / 6))
1278 Call ok(getVT(Sin(PI / 6)) = "VT_R8", "getVT(Sin(PI / 6)) = " & getVT(Sin(PI / 6)))
1279 Call ok(Approch(Sin(CCur(PI / 4)), Sqr(2) / 2), "Sin(CCur(PI / 4)) = " & Sin(CCur(PI / 4)))
1280 Call ok(getVT(Sin(CCur(PI / 4))) = "VT_R8", "getVT(Sin(CCur(PI / 4))) = " & getVT(Sin(CCur(PI / 4))))
1281 Call ok(Approch(Sin(CSng(PI / 3)), Sqr(3) / 2), "Sin(CSng(PI / 3)) = " & Sin(CSng(PI / 3)))
1282 Call ok(getVT(Sin(CSng(PI / 3))) = "VT_R8", "getVT(Sin(CSng(PI))) = " & getVT(Sin(CSng(PI))))
1283 Call ok(Approch(Sin(PI / 2), 1), "Sin(0) = " & Sin(PI / 2))
1284 Call ok(getVT(Sin(PI / 2)) = "VT_R8", "getVT(Sin(PI / 2)) = " & getVT(Sin(PI / 2)))
1285 Call ok(Approch(Sin(PI), 0), "Sin(PI) = " & Sin(PI))
1286 Call ok(getVT(Sin(PI)) = "VT_R8", "getVT(Sin(PI)) = " & getVT(Sin(PI)))
1287 Call ok(Approch(Sin(5 * PI / 4), -Sqr(2) / 2), "Sin(5 * PI / 4) = " & Sin(5 * PI / 4))
1288 Call ok(getVT(Sin(5 * PI / 4)) = "VT_R8", "getVT(Sin(5 * PI / 4)) = " & getVT(Sin(5 * PI / 4)))
1289 Call ok(Approch(Sin(3 * PI / 2), -1), "Sin(3 * PI / 2) = " & Sin(3 * PI / 2))
1290 Call ok(getVT(Sin(3 * PI / 2)) = "VT_R8", "getVT(Sin(3 * PI / 2)) = " & getVT(Sin(3 * PI / 2)))
1291 Call ok(Approch(Sin(2 * PI), 0), "Sin(2 * PI) = " & Sin(2 * PI))
1292 Call ok(getVT(Sin(2 * PI)) = "VT_R8", "getVT(Sin(2 * PI)) = " & getVT(Sin(2 * PI)))
1293 Call ok(Approch(Sin("-32768"), -0.9278), "Sin(""-32768"") = " & Sin("-32768"))
1294 Call ok(getVT(Sin("-32768")) = "VT_R8", "getVT(Sin(""-32768"")) = " & getVT(Sin("-32768")))
1295 Call ok(Approch(Sin(False), 0), "Sin(False) = " & Sin(False))
1296 Call ok(getVT(Sin(False)) = "VT_R8", "getVT(Sin(False)) = " & getVT(Sin(False)))
1297 Call ok(Approch(Sin(True), -0.84147), "Sin(True) = " & Sin(True))
1298 Call ok(getVT(Sin(True)) = "VT_R8", "getVT(Sin(True)) = " & getVT(Sin(True)))
1299 Call ok(Approch(Sin(CByte(255)), -0.5063), "Sin(CByte(255)) = " & Sin(CByte(255)))
1300 Call ok(getVT(Sin(CByte(255))) = "VT_R8", "getVT(Sin(CByte(255))) = " & getVT(Sin(CByte(255))))
1302 Call ok(Approch(Tan(Empty), 0), "Tan(Empty) = " & Tan(Empty))
1303 Call ok(getVT(Tan(Empty)) = "VT_R8", "getVT(Tan(Empty)) = " & getVT(Tan(Empty)))
1304 Call ok(Approch(Tan(PI / 6), Sqr(3) / 3), "Tan(PI / 6) = " & Tan(PI / 6))
1305 Call ok(getVT(Tan(PI / 6)) = "VT_R8", "getVT(Tan(PI / 6)) = " & getVT(Tan(PI / 6)))
1306 Call ok(Approch(Tan(CCur(PI / 4)), 1), "Tan(CCur(PI / 4)) = " & Tan(CCur(PI / 4)))
1307 Call ok(getVT(Tan(CCur(PI / 4))) = "VT_R8", "getVT(Tan(CCur(PI / 4))) = " & getVT(Tan(CCur(PI / 4))))
1308 Call ok(Approch(Tan(CSng(PI / 3)), Sqr(3)), "Tan(CSng(PI / 3)) = " & Tan(CSng(PI / 3)))
1309 Call ok(getVT(Tan(CSng(PI / 3))) = "VT_R8", "getVT(Tan(CSng(PI))) = " & getVT(Tan(CSng(PI))))
1310 Call ok(Approch(Tan(PI), 0), "Tan(PI) = " & Tan(PI))
1311 Call ok(getVT(Tan(PI)) = "VT_R8", "getVT(Tan(PI)) = " & getVT(Tan(PI)))
1312 Call ok(Approch(Tan(3 * PI / 4), -1), "Tan(3 * PI / 4) = " & Tan(3 * PI / 4))
1313 Call ok(getVT(Tan(3 * PI / 4)) = "VT_R8", "getVT(Tan(3 * PI / 4)) = " & getVT(Tan(3 * PI / 4)))
1314 Call ok(Approch(Tan(5 * PI / 4), 1), "Tan(5 * PI / 4) = " & Tan(5 * PI / 4))
1315 Call ok(getVT(Tan(5 * PI / 4)) = "VT_R8", "getVT(Tan(5 * PI / 4)) = " & getVT(Tan(5 * PI / 4)))
1316 Call ok(Approch(Tan(2 * PI), 0), "Tan(2 * PI) = " & Tan(2 * PI))
1317 Call ok(getVT(Tan(2 * PI)) = "VT_R8", "getVT(Tan(2 * PI)) = " & getVT(Tan(2 * PI)))
1318 Call ok(Approch(Tan("-32768"), -2.4879), "Tan(""-32768"") = " & Tan("-32768"))
1319 Call ok(getVT(Tan("-32768")) = "VT_R8", "getVT(Tan(""-32768"")) = " & getVT(Tan("-32768")))
1320 Call ok(Approch(Tan(False), 0), "Tan(False) = " & Tan(False))
1321 Call ok(getVT(Tan(False)) = "VT_R8", "getVT(Tan(False)) = " & getVT(Tan(False)))
1322 Call ok(Approch(Tan(True), -1.5574), "Tan(True) = " & Tan(True))
1323 Call ok(getVT(Tan(True)) = "VT_R8", "getVT(Tan(True)) = " & getVT(Tan(True)))
1324 Call ok(Approch(Tan(CByte(255)), 0.5872), "Tan(CByte(255)) = " & Tan(CByte(255)))
1325 Call ok(getVT(Tan(CByte(255))) = "VT_R8", "getVT(Tan(CByte(255))) = " & getVT(Tan(CByte(255))))
1327 Call ok(Approch(Atn(Empty), 0), "Atn(Empty) = " & Atn(Empty))
1328 Call ok(getVT(Atn(Empty)) = "VT_R8", "getVT(Atn(Empty)) = " & getVT(Atn(Empty)))
1329 Call ok(Approch(Atn(Sqr(3) / 3), PI / 6), "Atn(Sqr(3) / 3) = " & Atn(Sqr(3) / 3))
1330 Call ok(getVT(Atn(Sqr(3) / 3)) = "VT_R8", "getVT(Atn(Sqr(3) / 3)) = " & getVT(Atn(Sqr(3) / 3)))
1331 Call ok(Approch(Atn(CCur(1)), PI / 4), "Atn(CCur(1)) = " & Atn(CCur(1)))
1332 Call ok(getVT(Atn(CCur(1))) = "VT_R8", "getVT(Atn(CCur(1))) = " & getVT(Atn(CCur(1))))
1333 Call ok(Approch(Atn(CSng(Sqr(3))), PI / 3), "Atn(CSng(Sqr(3))) = " & Atn(CSng(Sqr(3))))
1334 Call ok(getVT(Atn(CSng(Sqr(3)))) = "VT_R8", "getVT(Atn(CSng(PI))) = " & getVT(Atn(CSng(PI))))
1335 Call ok(Approch(Atn(0), 0), "Atn(0) = " & Atn(0))
1336 Call ok(getVT(Atn(0)) = "VT_R8", "getVT(Atn(0)) = " & getVT(Atn(0)))
1337 Call ok(Approch(Atn(-1), -PI / 4), "Atn(-1) = " & Atn(-1))
1338 Call ok(getVT(Atn(-1)) = "VT_R8", "getVT(Atn(-1)) = " & getVT(Atn(-1)))
1339 Call ok(Approch(Atn("-32768"), -1.5707), "Atn(""-32768"") = " & Atn("-32768"))
1340 Call ok(getVT(Atn("-32768")) = "VT_R8", "getVT(Atn(""-32768"")) = " & getVT(Atn("-32768")))
1341 Call ok(Approch(Atn(False), 0), "Atn(False) = " & Atn(False))
1342 Call ok(getVT(Atn(False)) = "VT_R8", "getVT(Atn(False)) = " & getVT(Atn(False)))
1343 Call ok(Approch(Atn(True), -0.7853), "Atn(True) = " & Atn(True))
1344 Call ok(getVT(Atn(True)) = "VT_R8", "getVT(Atn(True)) = " & getVT(Atn(True)))
1345 Call ok(Approch(Atn(CByte(255)), 1.5668), "Atn(CByte(255)) = " & Atn(CByte(255)))
1346 Call ok(getVT(Atn(CByte(255))) = "VT_R8", "getVT(Atn(CByte(255))) = " & getVT(Atn(CByte(255))))
1348 Call ok(Approch(Exp(Empty), 1), "Exp(Empty) = " & Exp(Empty))
1349 Call ok(getVT(Exp(Empty)) = "VT_R8", "getVT(Exp(Empty)) = " & getVT(Exp(Empty)))
1350 Call ok(Approch(Exp(1), 2.7182), "Exp(1) = " & Exp(1))
1351 Call ok(getVT(Exp(1)) = "VT_R8", "getVT(Exp(1)) = " & getVT(Exp(1)))
1352 Call ok(Approch(Exp(CCur(-1)), 0.3678), "Exp(CCur(-1)) = " & Exp(CCur(-1)))
1353 Call ok(getVT(Exp(CCur(-1))) = "VT_R8", "getVT(Exp(CCur(-1))) = " & getVT(Exp(CCur(-1))))
1354 Call ok(Approch(Exp(CSng(0.5)), 1.6487), "Exp(CSng(0.5)) = " & Exp(CSng(0.5)))
1355 Call ok(getVT(Exp(CSng(0.5))) = "VT_R8", "getVT(Exp(CSng(PI))) = " & getVT(Exp(CSng(PI))))
1356 Call ok(Approch(Exp(-0.5), 0.6065), "Exp(-0.5) = " & Exp(-0.5))
1357 Call ok(getVT(Exp(-0.5)) = "VT_R8", "getVT(Exp(-0.5)) = " & getVT(Exp(-0.5)))
1358 Call ok(Approch(Exp("-2"), 0.1353), "Exp(""-2"") = " & Exp("-2"))
1359 Call ok(getVT(Exp("-2")) = "VT_R8", "getVT(Exp(""-2"")) = " & getVT(Exp("-2")))
1360 Call ok(Approch(Exp(False), 1), "Exp(False) = " & Exp(False))
1361 Call ok(getVT(Exp(False)) = "VT_R8", "getVT(Exp(False)) = " & getVT(Exp(False)))
1362 Call ok(Approch(Exp(True), 0.3678), "Exp(True) = " & Exp(True))
1363 Call ok(getVT(Exp(True)) = "VT_R8", "getVT(Exp(True)) = " & getVT(Exp(True)))
1364 Call ok(Approch(Exp(CByte(2)), 7.389), "Exp(CByte(2)) = " & Exp(CByte(2)))
1365 Call ok(getVT(Exp(CByte(2))) = "VT_R8", "getVT(Exp(CByte(2))) = " & getVT(Exp(CByte(2))))
1367 Sub testLogError(strings, error_num1, error_num2)
1368 on error resume next
1369 Dim x
1371 Call Err.clear()
1372 x = Log(strings)
1373 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1375 Call Err.clear()
1376 Call Log(strings)
1377 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1378 End Sub
1380 Call testLogError(0, 5, 5)
1381 Call testLogError(-2, 5, 5)
1382 Call testLogError(False, 5, 5)
1383 Call testLogError(True, 5, 5)
1384 Call ok(Approch(Log(1), 0), "Log(1) = " & Log(1))
1385 Call ok(getVT(Log(1)) = "VT_R8", "getVT(Log(1)) = " & getVT(Log(1)))
1386 Call ok(Approch(Log(CCur(0.5)), -0.6931), "Log(CCur(0.5)) = " & Log(CCur(0.5)))
1387 Call ok(getVT(Log(CCur(0.5))) = "VT_R8", "getVT(Log(CCur(0.5))) = " & getVT(Log(CCur(0.5))))
1388 Call ok(Approch(Log(CSng(2.7182)), 1), "Log(CSng(2.7182)) = " & Log(CSng(2.7182)))
1389 Call ok(getVT(Log(CSng(2.7182))) = "VT_R8", "getVT(Log(CSng(PI))) = " & getVT(Log(CSng(PI))))
1390 Call ok(Approch(Log(32768), 10.3972), "Log(32768) = " & Log(32768))
1391 Call ok(getVT(Log(32768)) = "VT_R8", "getVT(Log(32768)) = " & getVT(Log(32768)))
1392 Call ok(Approch(Log("10"), 2.3025), "Log(""10"") = " & Log("10"))
1393 Call ok(getVT(Log("10")) = "VT_R8", "getVT(Log(""10"")) = " & getVT(Log("10")))
1394 Call ok(Approch(Log(CByte(2)), 0.6931), "Log(CByte(2)) = " & Log(CByte(2)))
1395 Call ok(getVT(Log(CByte(2))) = "VT_R8", "getVT(Log(CByte(2))) = " & getVT(Log(CByte(2))))
1397 Call ok(getVT(Date) = "VT_DATE", "getVT(Date) = " & getVT(Date))
1398 Call ok(getVT(Time) = "VT_DATE", "getVT(Time) = " & getVT(Time))
1400 Sub testRGBError(arg1, arg2, arg3, error_num)
1401 on error resume next
1402 Dim x
1404 Call Err.clear()
1405 x = RGB(arg1, arg2, arg3)
1406 Call ok(Err.number = error_num, "Err.number1 = " & Err.number)
1408 Call Err.clear()
1409 Call RGB(arg1, arg2, arg3)
1410 Call ok(Err.number = error_num, "Err.number2 = " & Err.number)
1411 End Sub
1413 Call ok(RGB(0, &h1f&, &hf1&) = &hf11f00&, "RGB(0, &h1f&, &hf1&) = " & RGB(0, &h1f&, &hf1&))
1414 Call ok(getVT(RGB(0, &h1f&, &hf1&)) = "VT_I4", "getVT(RGB(&hf1&, &h1f&, &hf1&)) = " & getVT(RGB(&hf1&, &h1f&, &hf1&)))
1415 Call ok(RGB(&hef&, &hab&, &hcd&) = &hcdabef&, "RGB(&hef&, &hab&, &hcd&) = " & RGB(&hef&, &hab&, &hcd&))
1416 Call ok(getVT(RGB(&hef&, &hab&, &hcd&)) = "VT_I4", "getVT(RGB(&hef&, &hab&, &hcd&)) = " & getVT(RGB(&hef&, &hab&, &hcd&)))
1417 Call ok(RGB(&h1&, &h100&, &h111&) = &hffff01&, "RGB(&h1&, &h100&, &h111&) = " & RGB(&h1&, &h100&, &h111&))
1418 Call ok(getVT(RGB(&h1&, &h100&, &h111&)) = "VT_I4", "getVT(RGB(&h1&, &h100&, &h111&)) = " & getVT(RGB(&h1&, &h100&, &h111&)))
1419 Call testRGBError(-1, &h1e&, &h3b&, 5)
1420 Call testRGBError(&h4d&, -2, &h2f&, 5)
1422 Call ok(getVT(Timer) = "VT_R4", "getVT(Timer) = " & getVT(Timer))
1424 Call reportSuccess()