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