readme: Note that Wine may also use Mac APIs.
[wine.git] / dlls / vbscript / tests / api.vbs
blobf6b6f69420e3589f2c9069a1589385ef34054340
1 ' Copyright 2011 Jacek Caban for CodeWeavers
3 ' This library is free software; you can redistribute it and/or
4 ' modify it under the terms of the GNU Lesser General Public
5 ' License as published by the Free Software Foundation; either
6 ' version 2.1 of the License, or (at your option) any later version.
8 ' This library is distributed in the hope that it will be useful,
9 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ' Lesser General Public License for more details.
13 ' You should have received a copy of the GNU Lesser General Public
14 ' License along with this library; if not, write to the Free Software
15 ' Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 Option Explicit
20 Dim x
22 Class EmptyClass
23 End Class
25 Call ok(vbSunday = 1, "vbSunday = " & vbSunday)
26 Call ok(getVT(vbSunday) = "VT_I2", "getVT(vbSunday) = " & getVT(vbSunday))
27 Call ok(vbMonday = 2, "vbMonday = " & vbMonday)
28 Call ok(getVT(vbMonday) = "VT_I2", "getVT(vbMonday) = " & getVT(vbMonday))
29 Call ok(vbTuesday = 3, "vbTuesday = " & vbTuesday)
30 Call ok(getVT(vbTuesday) = "VT_I2", "getVT(vbTuesday) = " & getVT(vbTuesday))
31 Call ok(vbWednesday = 4, "vbWednesday = " & vbWednesday)
32 Call ok(getVT(vbWednesday) = "VT_I2", "getVT(vbWednesday) = " & getVT(vbWednesday))
33 Call ok(vbThursday = 5, "vbThursday = " & vbThursday)
34 Call ok(getVT(vbThursday) = "VT_I2", "getVT(vbThursday) = " & getVT(vbThursday))
35 Call ok(vbFriday = 6, "vbFriday = " & vbFriday)
36 Call ok(getVT(vbFriday) = "VT_I2", "getVT(vbFriday) = " & getVT(vbFriday))
37 Call ok(vbSaturday = 7, "vbSaturday = " & vbSaturday)
38 Call ok(getVT(vbSaturday) = "VT_I2", "getVT(vbSaturday) = " & getVT(vbSaturday))
40 Sub TestConstant(name, val, exval)
41 Call ok(val = exval, name & " = " & val & " expected " & exval)
42 Call ok(getVT(val) = "VT_I2*", "getVT(" & name & ") = " & getVT(val))
43 End Sub
45 Sub TestConstantI4(name, val, exval)
46 Call ok(val = exval, name & " = " & val & " expected " & exval)
47 Call ok(getVT(val) = "VT_I4*", "getVT(" & name & ") = " & getVT(val))
48 End Sub
50 Sub TestConstantBSTR(name, val, exval)
51 Call ok(val = exval, name & " = " & val & " expected " & exval)
52 Call ok(getVT(val) = "VT_BSTR*", "getVT(" & name & ") = " & getVT(val))
53 End Sub
55 TestConstant "vbEmpty", vbEmpty, 0
56 TestConstant "vbNull", vbNull, 1
57 TestConstant "vbLong", vbLong, 3
58 TestConstant "vbSingle", vbSingle, 4
59 TestConstant "vbDouble", vbDouble, 5
60 TestConstant "vbCurrency", vbCurrency, 6
61 TestConstant "vbDate", vbDate, 7
62 TestConstant "vbString", vbString, 8
63 TestConstant "vbObject", vbObject, 9
64 TestConstant "vbError", vbError, 10
65 TestConstant "vbBoolean", vbBoolean, 11
66 TestConstant "vbVariant", vbVariant, 12
67 TestConstant "vbDataObject", vbDataObject, 13
68 TestConstant "vbDecimal", vbDecimal, 14
69 TestConstant "vbByte", vbByte, 17
70 TestConstant "vbArray", vbArray, 8192
71 TestConstant "vbCritical", vbCritical, 16
72 TestConstant "vbQuestion", vbQuestion, 32
73 TestConstant "vbExclamation", vbExclamation, 48
74 TestConstant "vbInformation", vbInformation, 64
75 TestConstant "vbDefaultButton1", vbDefaultButton1, 0
76 TestConstant "vbDefaultButton2", vbDefaultButton2, 256
77 TestConstant "vbDefaultButton3", vbDefaultButton3, 512
78 TestConstant "vbDefaultButton4", vbDefaultButton4, 768
79 TestConstant "vbApplicationModal", vbApplicationModal, 0
80 TestConstant "vbSystemModal", vbSystemModal, 4096
81 TestConstant "vbUseSystem", vbUseSystem, 0
82 TestConstant "vbUseSystemDayOfWeek", vbUseSystemDayOfWeek, 0
83 TestConstant "vbFirstJan1", vbFirstJan1, 1
84 TestConstant "vbFirstFourDays", vbFirstFourDays, 2
85 TestConstant "vbFirstFullWeek", vbFirstFullWeek, 3
86 TestConstant "vbTrue", vbTrue, -1
87 TestConstant "vbFalse", vbFalse, 0
88 TestConstantI4 "vbMsgBoxHelpButton", vbMsgBoxHelpButton, 16384
89 TestConstantI4 "vbMsgBoxSetForeground", vbMsgBoxSetForeground, 65536
90 TestConstantI4 "vbMsgBoxRight", vbMsgBoxRight, 524288
91 TestConstantI4 "vbMsgBoxRtlReading", vbMsgBoxRtlReading, 1048576
92 TestConstant "vbUseDefault", vbUseDefault, -2
93 TestConstant "vbBinaryCompare", vbBinaryCompare, 0
94 TestConstant "vbTextCompare", vbTextCompare, 1
95 TestConstant "vbDatabaseCompare", vbDatabaseCompare, 2
96 TestConstant "vbGeneralDate", vbGeneralDate, 0
97 TestConstant "vbLongDate", vbLongDate, 1
98 TestConstant "vbShortDate", vbShortDate, 2
99 TestConstant "vbLongTime", vbLongTime, 3
100 TestConstant "vbShortTime", vbShortTime, 4
101 TestConstantI4 "vbObjectError", vbObjectError, &h80040000&
102 TestConstantI4 "vbBlack", vbBlack, 0
103 TestConstantI4 "vbBlue", vbBlue, &hff0000&
104 TestConstantI4 "vbCyan", vbCyan, &hffff00&
105 TestConstantI4 "vbGreen", vbGreen, &h00ff00&
106 TestConstantI4 "vbMagenta", vbMagenta, &hff00ff&
107 TestConstantI4 "vbRed", vbRed, &h0000ff&
108 TestConstantI4 "vbWhite", vbWhite, &hffffff&
109 TestConstantI4 "vbYellow", vbYellow, &h00ffff&
110 TestConstantBSTR "vbCr", vbCr, Chr(13)
111 TestConstantBSTR "vbCrLf", vbCrLf, Chr(13)&Chr(10)
112 TestConstantBSTR "vbNewLine", vbNewLine, Chr(13)&Chr(10)
113 TestConstantBSTR "vbFormFeed", vbFormFeed, Chr(12)
114 TestConstantBSTR "vbLf", vbLf, Chr(10)
115 TestConstantBSTR "vbNullChar", vbNullChar, Chr(0)
116 TestConstantBSTR "vbNullString", vbNullString, ""
117 TestConstantBSTR "vbTab", vbTab, chr(9)
118 TestConstantBSTR "vbVerticalTab", vbVerticalTab, chr(11)
120 Sub TestCStr(arg, exval)
121 dim x
122 x = CStr(arg)
123 Call ok(getVT(x) = "VT_BSTR*", "getVT(x) = " & getVT(x))
124 Call ok(x = exval, "CStr(" & arg & ") = " & x)
125 End Sub
127 TestCStr "test", "test"
128 TestCStr 3, "3"
129 if isEnglishLang then TestCStr 3.5, "3.5"
130 if isEnglishLang then TestCStr true, "True"
132 Call ok(getVT(Chr(120)) = "VT_BSTR", "getVT(Chr(120)) = " & getVT(Chr(120)))
133 Call ok(getVT(Chr(255)) = "VT_BSTR", "getVT(Chr(255)) = " & getVT(Chr(255)))
134 Call ok(Chr(120) = "x", "Chr(120) = " & Chr(120))
135 Call ok(Chr(0) <> "", "Chr(0) = """"")
136 Call ok(Chr(120.5) = "x", "Chr(120.5) = " & Chr(120.5))
137 Call ok(Chr(119.5) = "x", "Chr(119.5) = " & Chr(119.5))
138 Call ok(Chr("120") = "x", "Chr(""120"") = " & Chr("120"))
140 sub testChrError
141 on error resume next
143 if isEnglishLang then
144 call Err.clear()
145 call Chr(-1)
146 call ok(Err.number = 5, "Err.number = " & Err.number)
148 call Err.clear()
149 call Chr(256)
150 call ok(Err.number = 5, "Err.number = " & Err.number)
151 end if
153 call Err.clear()
154 call Chr(65536)
155 call ok(Err.number = 5, "Err.number = " & Err.number)
157 call Err.clear()
158 call Chr(-32769)
159 call ok(Err.number = 5, "Err.number = " & Err.number)
160 end sub
162 call testChrError
164 Call ok(isObject(new EmptyClass), "isObject(new EmptyClass) is not true?")
165 Set x = new EmptyClass
166 Call ok(isObject(x), "isObject(x) is not true?")
167 Call ok(isObject(Nothing), "isObject(Nothing) is not true?")
168 Call ok(not isObject(true), "isObject(true) is true?")
169 Call ok(not isObject(4), "isObject(4) is true?")
170 Call ok(not isObject("x"), "isObject(""x"") is true?")
171 Call ok(not isObject(Null), "isObject(Null) is true?")
173 Call ok(not isEmpty(new EmptyClass), "isEmpty(new EmptyClass) is true?")
174 Set x = new EmptyClass
175 Call ok(not isEmpty(x), "isEmpty(x) is true?")
176 x = empty
177 Call ok(isEmpty(x), "isEmpty(x) is not true?")
178 Call ok(isEmpty(empty), "isEmpty(empty) is not true?")
179 Call ok(not isEmpty(Nothing), "isEmpty(Nothing) is not true?")
180 Call ok(not isEmpty(true), "isEmpty(true) is true?")
181 Call ok(not isEmpty(4), "isEmpty(4) is true?")
182 Call ok(not isEmpty("x"), "isEmpty(""x"") is true?")
183 Call ok(not isEmpty(Null), "isEmpty(Null) is true?")
185 Call ok(not isNull(new EmptyClass), "isNull(new EmptyClass) is true?")
186 Set x = new EmptyClass
187 Call ok(not isNull(x), "isNull(x) is true?")
188 x = null
189 Call ok(isNull(x), "isNull(x) is not true?")
190 Call ok(not isNull(empty), "isNull(empty) is true?")
191 Call ok(not isNull(Nothing), "isNull(Nothing) is true?")
192 Call ok(not isNull(true), "isNull(true) is true?")
193 Call ok(not isNull(4), "isNull(4) is true?")
194 Call ok(not isNull("x"), "isNull(""x"") is true?")
195 Call ok(isNull(Null), "isNull(Null) is not true?")
197 Call ok(isNumeric(Empty), "isNumeric(empty) is not true?")
198 Call ok(not isNumeric(Null), "isNumeric(Null) is not true?")
199 Call ok(isNumeric(32767), "isNumeric(32767) is true?")
200 Call ok(isNumeric(32768), "isNumeric(32768) is true?")
201 Call ok(isNumeric(CSng(3242.4)), "isNumeric(CSng(3242.4)) is true?")
202 Call ok(isNumeric(32768.4), "isNumeric(32768.4) is true?")
203 Call ok(isNumeric(CCur(32768.4)), "isNumeric(CCur(32768.4)) is true?")
204 Call ok(isNumeric("44"), "isNumeric(""44"") is true?")
205 Call ok(not isNumeric("rwrf"), "isNumeric(""rwrf"") is not true?")
206 Call ok(not isNumeric(Nothing), "isNumeric(Nothing) is not true?")
207 Call ok(not isNumeric(New EmptyClass), "isNumeric(New EmptyClass) is not true?")
208 Call ok(isNumeric(true), "isNumeric(true) is true?")
209 Call ok(isNumeric(CByte(32)), "isNumeric(CByte(32)) is true?")
210 Dim arr(2)
211 arr(0) = 2
212 arr(1) = 3
213 Call ok(not isNumeric(arr), "isNumeric(arr) is not true?")
215 Dim newObject
216 Set newObject = New ValClass
217 newObject.myval = 1
218 Call ok(isNumeric(newObject), "isNumeric(newObject) is true?")
219 newObject.myval = "test"
220 Call ok(not isNumeric(newObject), "isNumeric(newObject) is not true?")
222 Call ok(getVT(err) = "VT_DISPATCH", "getVT(err) = " & getVT(err))
224 Sub TestHex(x, ex)
225 Call ok(hex(x) = ex, "hex(" & x & ") = " & hex(x) & " expected " & ex)
226 End Sub
228 TestHex 0, "0"
229 TestHex 6, "6"
230 TestHex 16, "10"
231 TestHex &hdeadbeef&, "DEADBEEF"
232 TestHex -1, "FFFF"
233 TestHex -16, "FFF0"
234 TestHex -934859845, "C8472BBB"
235 TestHex empty, "0"
236 TestHex "17", "11"
237 TestHex 228.5, "E4"
238 TestHex -32767, "8001"
239 TestHex -32768, "FFFF8000"
240 TestHex 2147483647.49, "7FFFFFFF"
241 TestHex -2147483647.5, "80000000"
242 newObject.myval = 30.5
243 TestHex newObject, "1E"
244 newObject.myval = "27"
245 TestHex newObject, "1B"
248 Call ok(getVT(hex(null)) = "VT_NULL", "getVT(hex(null)) = " & getVT(hex(null)))
249 Call ok(getVT(hex(empty)) = "VT_BSTR", "getVT(hex(empty)) = " & getVT(hex(empty)))
251 Sub TestHexError(num, err_num)
252 On Error Resume Next
253 Call Hex(num)
254 Call ok(Err.number = err_num, "Hex(" & num & ") returns error number " & Err.number & " expected " & err_num)
255 End Sub
257 TestHexError 2147483647.5, 6
258 TestHexError 2147483648.51, 6
259 TestHexError "test", 13
261 Sub TestOct(x, ex, res_type)
262 Call ok(Oct(x) = ex, "Oct(" & x & ") = " & Oct(x) & " expected " & ex)
263 Call ok(getVT(Oct(x)) = res_type, "getVT(Oct(" &x & ")) = " & getVT(Oct(x)) & "expected " & res_type)
264 End Sub
266 Sub TestOctError(num, err_num)
267 On error resume next
268 Call Oct(num)
269 Call ok(Err.number = err_num, "Oct(" & num & ") error number is " & Err.number & " expected " & err_num)
270 End Sub
272 TestOct empty, "0", "VT_BSTR"
273 TestOct 0, "0", "VT_BSTR"
274 TestOct 9, "11", "VT_BSTR"
275 TestOct "9", "11", "VT_BSTR"
276 TestOct 8.5, "10", "VT_BSTR"
277 TestOct 9.5, "12", "VT_BSTR"
278 TestOct -1, "177777", "VT_BSTR"
279 TestOct -32767, "100001", "VT_BSTR"
280 TestOct -32768, "37777700000", "VT_BSTR"
281 TestOct 2147483647.49, "17777777777", "VT_BSTR"
282 TestOct -2147483648.5, "20000000000", "VT_BSTR"
283 Call ok(getVT(Oct(null)) = "VT_NULL", "getVT(Oct(null)) = " & getVT(Oct(null)))
284 newObject.myval = 5
285 TestOct newObject, "5", "VT_BSTR"
287 TestOctError 2147483647.5, 6
288 TestOctError -2147483648.51, 6
289 TestOctError "test", 13
291 x = InStr(1, "abcd", "bc")
292 Call ok(x = 2, "InStr returned " & x)
294 x = InStr("abcd", "bc")
295 Call ok(x = 2, "InStr returned " & x)
296 Call ok(getVT(x) = "VT_I4*", "getVT(InStr) returned " & getVT(x))
298 x = InStr("abc", "bc")
299 Call ok(x = 2, "InStr returned " & x)
301 x = InStr("abcbc", "bc")
302 Call ok(x = 2, "InStr returned " & x)
304 x = InStr("bcabc", "bc")
305 Call ok(x = 1, "InStr returned " & x)
307 x = InStr(3, "abcd", "bc")
308 Call ok(x = 0, "InStr returned " & x)
310 x = InStr("abcd", "bcx")
311 Call ok(x = 0, "InStr returned " & x)
313 x = InStr(5, "abcd", "bc")
314 Call ok(x = 0, "InStr returned " & x)
316 x = "abcd"
317 x = InStr(x, "bc")
318 Call ok(x = 2, "InStr returned " & x)
320 x = InStr("abcd", null)
321 Call ok(isNull(x), "InStr returned " & x)
322 x = InStr(null, "abcd")
323 Call ok(isNull(x), "InStr returned " & x)
324 x = InStr(2, null, "abcd")
325 Call ok(isNull(x), "InStr returned " & x)
327 x = InStr(1.3, "abcd", "bc")
328 Call ok(x = 2, "InStr returned " & x)
330 x = InStr(2.3, "abcd", "bc")
331 Call ok(x = 2, "InStr returned " & x)
333 x = InStr(2.6, "abcd", "bc")
334 Call ok(x = 0, "InStr returned " & x)
337 x = InStrRev("bcabcd", "bc")
338 Call ok(x = 4, "InStrRev returned " & x)
339 Call ok(getVT(x) = "VT_I4*", "getVT(InStrRev) returned " & getVT(x))
341 x = InStrRev("bcabcd", "bc", 6)
342 Call ok(x = 4, "InStrRev returned " & x)
344 x = InStrRev("abcd", "bcx")
345 Call ok(x = 0, "InStrRev returned " & x)
347 x = InStrRev("abcd", "bc", 3)
348 Call ok(x = 2, "InStrRev returned " & x)
350 x = InStrRev("abcd", "bc", 2)
351 Call ok(x = 0, "InStrRev returned " & x)
353 x = InStrRev("abcd", "b", 2)
354 Call ok(x = 2, "InStrRev returned " & x)
356 x = InStrRev("abcd", "bc", 5)
357 Call ok(x = 0, "InStrRev returned " & x)
359 x = InStrRev("abcd", "bc", 15)
360 Call ok(x = 0, "InStrRev returned " & x)
362 x = "abcd"
363 x = InStrRev(x, "bc")
364 Call ok(x = 2, "InStrRev returned " & x)
366 x = InStrRev("abcd", "bc", 1.3)
367 Call ok(x = 0, "InStrRev returned " & x)
369 x = InStrRev("abcd", "bc", 2.3)
370 Call ok(x = 0, "InStrRev returned " & x)
372 x = InStrRev("abcd", "bc", 2.6)
373 Call ok(x = 2, "InStrRev returned " & x)
375 x = InStrRev("1234", 34)
376 Call ok(x = 3, "InStrRev returned " & x)
378 x = InStrRev(1234, 34)
379 Call ok(x = 3, "InStrRev returned " & x)
381 Sub testInStrRevError(arg1, arg2, arg3, error_num)
382 on error resume next
383 Dim x
385 Call Err.clear()
386 x = InStrRev(arg1, arg2, arg3)
387 Call ok(Err.number = error_num, "Err.number = " & Err.number)
388 End Sub
390 call testInStrRevError("abcd", null, 2, 94)
391 call testInStrRevError(null, "abcd", 2, 94)
392 call testInStrRevError("abcd", "abcd", null, 94)
394 Sub TestMid(str, start, len, ex)
395 x = Mid(str, start, len)
396 Call ok(x = ex, "Mid(" & str & ", " & start & ", " & len & ") = " & x & " expected " & ex)
397 End Sub
399 Sub TestMid2(str, start, ex)
400 x = Mid(str, start)
401 Call ok(x = ex, "Mid(" & str & ", " & start & ") = " & x & " expected " & ex)
402 End Sub
404 TestMid "test", 2, 2, "es"
405 TestMid "test", 2, 4, "est"
406 TestMid "test", 1, 2, "te"
407 TestMid "test", 1, 0, ""
408 TestMid "test", 1, 0, ""
409 TestMid "test", 5, 2, ""
410 TestMid2 "test", 1, "test"
411 TestMid2 "test", 2, "est"
412 TestMid2 "test", 4, "t"
413 TestMid2 "test", 5, ""
415 Sub TestUCase(str, ex)
416 x = UCase(str)
417 Call ok(x = ex, "UCase(" & str & ") = " & x & " expected " & ex)
418 End Sub
420 TestUCase "test", "TEST"
421 TestUCase "123aBC?", "123ABC?"
422 TestUCase "", ""
423 TestUCase 1, "1"
424 if isEnglishLang then TestUCase true, "TRUE"
425 TestUCase 0.123, doubleAsString(0.123)
426 TestUCase Empty, ""
427 Call ok(getVT(UCase(Null)) = "VT_NULL", "getVT(UCase(Null)) = " & getVT(UCase(Null)))
429 Sub TestLCase(str, ex)
430 x = LCase(str)
431 Call ok(x = ex, "LCase(" & str & ") = " & x & " expected " & ex)
432 End Sub
434 TestLCase "test", "test"
435 TestLCase "123aBC?", "123abc?"
436 TestLCase "", ""
437 TestLCase 1, "1"
438 if isEnglishLang then TestLCase true, "true"
439 TestLCase 0.123, doubleAsString(0.123)
440 TestLCase Empty, ""
441 Call ok(getVT(LCase(Null)) = "VT_NULL", "getVT(LCase(Null)) = " & getVT(LCase(Null)))
443 Sub TestStrComp(str_left, str_right, mode, ex)
444 x = StrComp(str_left, str_right, mode)
445 Call ok(x = ex, "StrComp(" & str_left & ", " & str_right & ", " & mode & ") = " & x & " expected " & ex)
446 End Sub
448 TestStrComp "ABC", "abc", 0, -1
449 TestStrComp "abc", "ABC", 0, 1
450 TestStrComp "ABC", "ABC", 0, 0
451 TestStrComp "ABC", "abc", 0, -1
452 TestStrComp "abc", "ABC", 0, 1
453 TestStrComp "ABC", "ABC", 0, 0
454 TestStrComp "ABCD", "ABC", 0, 1
455 TestStrComp "ABC", "ABCD", 0, -1
456 TestStrComp "ABC", "abc", 1, 0
457 TestStrComp "ABC", "ABC", 1, 0
458 TestStrComp "ABCD", "ABC", 1, 1
459 TestStrComp "ABC", "ABCD", 1, -1
460 TestStrComp "ABC", "ABCD", "0", -1
461 TestStrComp "ABC", "ABCD", "1", -1
462 TestStrComp 1, 1, 1, 0
463 TestStrComp "1", 1, 1, 0
464 TestStrComp "1", 1.0, 1, 0
465 TestStrComp Empty, Empty, 1, 0
466 TestStrComp Empty, "", 1, 0
467 TestStrComp Empty, "ABC", 1, -1
468 TestStrComp "ABC", Empty, 1, 1
469 TestStrComp vbNull, vbNull, 1, 0
470 TestStrComp "", vbNull, 1, -1
472 Call ok(Len("abc") = 3, "Len(abc) = " & Len("abc"))
473 Call ok(Len("") = 0, "Len() = " & Len(""))
474 Call ok(Len(1) = 1, "Len(1) = " & Len(1))
475 Call ok(isNull(Len(null)), "Len(null) = " & Len(null))
476 Call ok(Len(empty) = 0, "Len(empty) = " & Len(empty))
477 Call ok(getVT(Len("abc")) = "VT_I4", "getVT(Len(abc)) = " & getVT(Len("abc")))
479 Call ok(Space(1) = " ", "Space(1) = " & Space(1) & """")
480 Call ok(Space(0) = "", "Space(0) = " & Space(0) & """")
481 Call ok(Space(false) = "", "Space(false) = " & Space(false) & """")
482 Call ok(Space(5) = " ", "Space(5) = " & Space(5) & """")
483 Call ok(Space(5.2) = " ", "Space(5.2) = " & Space(5.2) & """")
484 Call ok(Space(5.8) = " ", "Space(5.8) = " & Space(5.8) & """")
485 Call ok(Space(5.5) = " ", "Space(5.5) = " & Space(5.5) & """")
486 Call ok(Space(4.5) = " ", "Space(4.5) = " & Space(4.5) & """")
487 Call ok(Space(0.5) = "", "Space(0.5) = " & Space(0.5) & """")
488 Call ok(Space(1.5) = " ", "Space(1.5) = " & Space(1.5) & """")
489 Call ok(Space("1") = " ", "Space(""1"") = " & Space("1") & """")
491 Sub TestStrReverse(str, ex)
492 Call ok(StrReverse(str) = ex, "StrReverse(" & str & ") = " & StrReverse(str))
493 End Sub
495 TestStrReverse "test", "tset"
496 TestStrReverse "", ""
497 TestStrReverse 123, "321"
498 if isEnglishLang then TestStrReverse true, "eurT"
500 Sub TestLeft(str, len, ex)
501 Call ok(Left(str, len) = ex, "Left(" & str & ", " & len & ") = " & Left(str, len))
502 End Sub
504 TestLeft "test", 2, "te"
505 TestLeft "test", 5, "test"
506 TestLeft "test", 0, ""
507 TestLeft 123, 2, "12"
508 TestLeft "123456", 1.5, "12"
509 TestLeft "123456", 2.5, "12"
510 TestLeft "test", "2", "te"
511 if isEnglishLang then TestLeft true, 2, "Tr"
513 Sub TestRight(str, len, ex)
514 Call ok(Right(str, len) = ex, "Right(" & str & ", " & len & ") = " & Right(str, len))
515 End Sub
517 TestRight "test", 2, "st"
518 TestRight "test", 5, "test"
519 TestRight "test", 0, ""
520 TestRight 123, 2, "23"
521 if isEnglishLang then TestRight true, 2, "ue"
523 Sub TestTrim(str, exstr)
524 Call ok(Trim(str) = exstr, "Trim(" & str & ") = " & Trim(str))
525 End Sub
527 TestTrim " test ", "test"
528 TestTrim "test ", "test"
529 TestTrim " test", "test"
530 TestTrim "test", "test"
531 TestTrim "", ""
532 TestTrim 123, "123"
533 if isEnglishLang then TestTrim true, "True"
535 Sub TestLTrim(str, exstr)
536 Call ok(LTrim(str) = exstr, "LTrim(" & str & ") = " & LTrim(str))
537 End Sub
539 TestLTrim " test ", "test "
540 TestLTrim "test ", "test "
541 TestLTrim " test", "test"
542 TestLTrim "test", "test"
543 TestLTrim "", ""
544 TestLTrim 123, "123"
545 if isEnglishLang then TestLTrim true, "True"
547 Sub TestRound(val, exval, vt)
548 Call ok(Round(val) = exval, "Round(" & val & ") = " & Round(val))
549 Call ok(getVT(Round(val)) = vt, "getVT(Round(" & val & ")) = " & getVT(Round(val)))
550 End Sub
552 Sub TestRTrim(str, exstr)
553 Call ok(RTrim(str) = exstr, "RTrim(" & str & ") = " & RTrim(str))
554 End Sub
556 TestRTrim " test ", " test"
557 TestRTrim "test ", "test"
558 TestRTrim " test", " test"
559 TestRTrim "test", "test"
560 TestRTrim "", ""
561 TestRTrim 123, "123"
562 if isEnglishLang then TestRTrim true, "True"
564 TestRound 3, 3, "VT_I2"
565 TestRound 3.3, 3, "VT_R8"
566 TestRound 3.8, 4, "VT_R8"
567 TestRound 3.5, 4, "VT_R8"
568 TestRound -3.3, -3, "VT_R8"
569 TestRound -3.5, -4, "VT_R8"
570 TestRound "2", 2, "VT_R8"
571 TestRound true, true, "VT_BOOL"
572 TestRound false, false, "VT_BOOL"
574 if isEnglishLang then
575 Call ok(WeekDayName(1) = "Sunday", "WeekDayName(1) = " & WeekDayName(1))
576 Call ok(WeekDayName(3) = "Tuesday", "WeekDayName(3) = " & WeekDayName(3))
577 Call ok(WeekDayName(7) = "Saturday", "WeekDayName(7) = " & WeekDayName(7))
578 Call ok(WeekDayName(1.1) = "Sunday", "WeekDayName(1.1) = " & WeekDayName(1.1))
579 Call ok(WeekDayName(1, false) = "Sunday", "WeekDayName(1, false) = " & WeekDayName(1, false))
580 Call ok(WeekDayName(1, true) = "Sun", "WeekDayName(1, true) = " & WeekDayName(1, true))
581 Call ok(WeekDayName(1, 10) = "Sun", "WeekDayName(1, 10) = " & WeekDayName(1, 10))
582 Call ok(WeekDayName(1, true, 0) = "Sun", "WeekDayName(1, true, 0) = " & WeekDayName(1, true, 0))
583 Call ok(WeekDayName(1, true, 2) = "Mon", "WeekDayName(1, true, 2) = " & WeekDayName(1, true, 2))
584 Call ok(WeekDayName(1, true, 2.5) = "Mon", "WeekDayName(1, true, 2.5) = " & WeekDayName(1, true, 2.5))
585 Call ok(WeekDayName(1, true, 1.5) = "Mon", "WeekDayName(1, true, 1.5) = " & WeekDayName(1, true, 1.5))
586 Call ok(WeekDayName(1, true, 7) = "Sat", "WeekDayName(1, true, 7) = " & WeekDayName(1, true, 7))
587 Call ok(WeekDayName(1, true, 7.1) = "Sat", "WeekDayName(1, true, 7.1) = " & WeekDayName(1, true, 7.1))
589 Call ok(MonthName(1) = "January", "MonthName(1) = " & MonthName(1))
590 Call ok(MonthName(12) = "December", "MonthName(12) = " & MonthName(12))
591 Call ok(MonthName(1, 0) = "January", "MonthName(1, 0) = " & MonthName(1, 0))
592 Call ok(MonthName(12, false) = "December", "MonthName(12, false) = " & MonthName(12, false))
593 Call ok(MonthName(1, 10) = "Jan", "MonthName(1, 10) = " & MonthName(1, 10))
594 Call ok(MonthName(12, true) = "Dec", "MonthName(12, true) = " & MonthName(12, true))
595 end if
597 Call ok(getVT(Now()) = "VT_DATE", "getVT(Now()) = " & getVT(Now()))
599 Call ok(vbOKOnly = 0, "vbOKOnly = " & vbOKOnly)
600 Call ok(getVT(vbOKOnly) = "VT_I2", "getVT(vbOKOnly) = " & getVT(vbOKOnly))
601 Call ok(vbOKCancel = 1, "vbOKCancel = " & vbOKCancel)
602 Call ok(getVT(vbOKCancel) = "VT_I2", "getVT(vbOKCancel) = " & getVT(vbOKCancel))
603 Call ok(vbAbortRetryIgnore = 2, "vbAbortRetryIgnore = " & vbAbortRetryIgnore)
604 Call ok(getVT(vbAbortRetryIgnore) = "VT_I2", "getVT(vbAbortRetryIgnore) = " & getVT(vbAbortRetryIgnore))
605 Call ok(vbYesNoCancel = 3, "vbYesNoCancel = " & vbYesNoCancel)
606 Call ok(getVT(vbYesNoCancel) = "VT_I2", "getVT(vbYesNoCancel) = " & getVT(vbYesNoCancel))
607 Call ok(vbYesNo = 4, "vbYesNo = " & vbYesNo)
608 Call ok(getVT(vbYesNo) = "VT_I2", "getVT(vbYesNo) = " & getVT(vbYesNo))
609 Call ok(vbRetryCancel = 5, "vbRetryCancel = " & vbRetryCancel)
610 Call ok(getVT(vbRetryCancel) = "VT_I2", "getVT(vbRetryCancel) = " & getVT(vbRetryCancel))
612 Call ok(vbOK = 1, "vbOK = " & vbOK)
613 Call ok(getVT(vbOK) = "VT_I2", "getVT(vbOK) = " & getVT(vbOK))
614 Call ok(vbCancel = 2, "vbCancel = " & vbCancel)
615 Call ok(getVT(vbCancel) = "VT_I2", "getVT(vbCancel) = " & getVT(vbCancel))
616 Call ok(vbAbort = 3, "vbAbort = " & vbAbort)
617 Call ok(getVT(vbAbort) = "VT_I2", "getVT(vbAbort) = " & getVT(vbAbort))
618 Call ok(vbRetry = 4, "vbRetry = " & vbRetry)
619 Call ok(getVT(vbRetry) = "VT_I2", "getVT(vbRetry) = " & getVT(vbRetry))
620 Call ok(vbIgnore = 5, "vbIgnore = " & vbIgnore)
621 Call ok(getVT(vbIgnore) = "VT_I2", "getVT(vbIgnore) = " & getVT(vbIgnore))
622 Call ok(vbYes = 6, "vbYes = " & vbYes)
623 Call ok(getVT(vbYes) = "VT_I2", "getVT(vbYes) = " & getVT(vbYes))
624 Call ok(vbNo = 7, "vbNo = " & vbNo)
625 Call ok(getVT(vbNo) = "VT_I2", "getVT(vbNo) = " & getVT(vbNo))
627 Call ok(CInt(-36.75) = -37, "CInt(-36.75) = " & CInt(-36.75))
628 Call ok(getVT(CInt(-36.75)) = "VT_I2", "getVT(CInt(-36.75)) = " & getVT(CInt(-36.75)))
629 Call ok(CInt(-36.50) = -36, "CInt(-36.50) = " & CInt(-36.50))
630 Call ok(getVT(CInt(-36.50)) = "VT_I2", "getVT(CInt(-36.50)) = " & getVT(CInt(-36.50)))
631 Call ok(CInt(-36.25) = -36, "CInt(-36.25) = " & CInt(-36.25))
632 Call ok(getVT(CInt(-36.25)) = "VT_I2", "getVT(CInt(-36.25)) = " & getVT(CInt(-36.25)))
633 Call ok(CInt(-36) = -36, "CInt(-36) = " & CInt(-36))
634 Call ok(getVT(CInt(-36)) = "VT_I2", "getVT(CInt(-36)) = " & getVT(CInt(-36)))
635 Call ok(CInt(0) = 0, "CInt(0) = " & CInt(0))
636 Call ok(getVT(CInt(0)) = "VT_I2", "getVT(CInt(0)) = " & getVT(CInt(0)))
637 Call ok(CInt(0.0) = 0, "CInt(0.0) = " & CInt(0))
638 Call ok(getVT(CInt(0.0)) = "VT_I2", "getVT(CInt(0.0)) = " & getVT(CInt(0.0)))
639 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0))
640 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
641 Call ok(CInt(36) = 36, "CInt(36) = " & CInt(36))
642 Call ok(getVT(CInt(36)) = "VT_I2", "getVT(CInt(36)) = " & getVT(CInt(36)))
643 Call ok(CInt(36.25) = 36, "CInt(36.25) = " & CInt(36.25))
644 Call ok(getVT(CInt(36.25)) = "VT_I2", "getVT(CInt(36.25)) = " & getVT(CInt(36.25)))
645 Call ok(CInt(36.50) = 36, "CInt(36.50) = " & CInt(36.50))
646 Call ok(getVT(CInt(36.50)) = "VT_I2", "getVT(CInt(36.50)) = " & getVT(CInt(36.50)))
647 Call ok(CInt(36.75) = 37, "CInt(36.75) = " & CInt(36.75))
648 Call ok(getVT(CInt(36.75)) = "VT_I2", "getVT(CInt(36.75)) = " & getVT(CInt(36.75)))
651 Call ok(CBool(5) = true, "CBool(5) = " & CBool(5))
652 Call ok(getVT(CBool(5)) = "VT_BOOL", "getVT(CBool(5)) = " & getVT(CBool(5)))
653 Call ok(CBool(0) = false, "CBool(0) = " & CBool(0))
654 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
655 Call ok(CBool(-5) = true, "CBool(-5) = " & CBool(-5))
656 Call ok(getVT(CBool(-5)) = "VT_BOOL", "getVT(CBool(-5)) = " & getVT(CBool(-5)))
658 Sub testCBoolError(strings, error_num)
659 on error resume next
661 Call Err.clear()
662 Call CBool(strings)
663 Call ok(Err.number = error_num, "Err.number = " & Err.number)
664 End Sub
666 Class ValClass
667 Public myval
669 Public default Property Get defprop
670 defprop = myval
671 End Property
672 End Class
674 Dim MyObject
675 Set MyObject = New ValClass
677 Call ok(CBool(Empty) = False, "CBool(Empty) = " & CBool(Empty))
678 Call ok(getVT(CBool(Empty)) = "VT_BOOL", "getVT(CBool(Empty)) = " & getVT(CBool(Empty)))
679 Call ok(CBool(1) = True, "CBool(1) = " & CBool(1))
680 Call ok(getVT(CBool(1)) = "VT_BOOL", "getVT(CBool(1)) = " & getVT(CBool(1)))
681 Call ok(CBool(0) = False, "CBool(0) = " & CBool(0))
682 Call ok(getVT(CBool(0)) = "VT_BOOL", "getVT(CBool(0)) = " & getVT(CBool(0)))
683 Call ok(CBool(-0.56) = True, "CBool(-0.56) = " & CBool(-0.56))
684 Call ok(getVT(CBool(-0.56)) = "VT_BOOL", "getVT(CBool(-0.56)) = " & getVT(CBool(-0.56)))
685 Call testCBoolError("", 13)
686 Call ok(CBool("0") = False, "CBool(""0"") = " & CBool("0"))
687 Call ok(getVT(CBool("0")) = "VT_BOOL", "getVT(CBool(""0"")) = " & getVT(CBool("0")))
688 If isEnglishLang Then
689 Call ok(CBool("0.1") = True, "CBool(""0.1"") = " & CBool("0.1"))
690 Call ok(getVT(CBool("0.1")) = "VT_BOOL", "getVT(CBool(""0.1"")) = " & getVT(CBool("0.1")))
691 End If
692 Call ok(CBool("true") = True, "CBool(""true"") = " & CBool("true"))
693 Call ok(getVT(CBool("true")) = "VT_BOOL", "getVT(CBool(""true"")) = " & getVT(CBool("true")))
694 Call ok(CBool("false") = False, "CBool(""false"") = " & CBool("false"))
695 Call ok(getVT(CBool("false")) = "VT_BOOL", "getVT(CBool(""false"")) = " & getVT(CBool("false")))
696 Call ok(CBool("TRUE") = True, "CBool(""TRUE"") = " & CBool("TRUE"))
697 Call ok(getVT(CBool("TRUE")) = "VT_BOOL", "getVT(CBool(""TRUE"")) = " & getVT(CBool("TRUE")))
698 Call ok(CBool("FALSE") = False, "CBool(""FALSE"") = " & CBool("FALSE"))
699 Call ok(getVT(CBool("FALSE")) = "VT_BOOL", "getVT(CBool(""FALSE"")) = " & getVT(CBool("FALSE")))
700 Call ok(CBool("#TRUE#") = True, "CBool(""#TRUE#"") = " & CBool("#TRUE#"))
701 Call ok(getVT(CBool("#TRUE#")) = "VT_BOOL", "getVT(CBool(""#TRUE#"")) = " & getVT(CBool("#TRUE#")))
702 Call ok(CBool("#FALSE#") = False, "CBool(""#FALSE#"") = " & CBool("#FALSE#"))
703 Call ok(getVT(CBool("#FALSE#")) = "VT_BOOL", "getVT(CBool(""#FALSE#"")) = " & getVT(CBool("#FALSE#")))
704 Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject))
705 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
706 MyObject.myval = 1
707 Call ok(CBool(MyObject) = True, "CBool(MyObject) = " & CBool(MyObject))
708 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
709 MyObject.myval = 0
710 Call ok(CBool(MyObject) = False, "CBool(MyObject) = " & CBool(MyObject))
711 Call ok(getVT(CBool(MyObject)) = "VT_BOOL", "getVT(CBool(MyObject)) = " & getVT(CBool(MyObject)))
713 Sub testCByteError(strings, error_num1,error_num2)
714 on error resume next
715 Dim x
717 Call Err.clear()
718 x = CByte(strings)
719 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
721 Call Err.clear()
722 Call CByte(strings)
723 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
724 End Sub
726 Call ok(CByte(Empty) = 0, "CByte(Empty) = " & CByte(Empty))
727 Call ok(getVT(CByte(Empty)) = "VT_UI1", "getVT(CByte(Empty)) = " & getVT(CByte(Empty)))
728 Call ok(CByte(255) = 255, "CByte(255) = " & CByte(255))
729 Call ok(getVT(CByte(255)) = "VT_UI1", "getVT(CByte(255)) = " & getVT(CByte(255)))
730 Call ok(CByte(255.49) = 255, "CByte(255.49) = " & CByte(255.49))
731 Call ok(getVT(CByte(255.49)) = "VT_UI1", "getVT(CByte(255.49)) = " & getVT(CByte(255.49)))
732 Call testCByteError(1, 0, 458)
733 Call testCByteError("", 13, 13)
734 Call testCByteError("-1", 6, 6)
735 Call testCByteError("258", 6, 6)
736 Call testCByteError("TRUE", 13, 13)
737 Call testCByteError("FALSE", 13, 13)
738 Call testCByteError("#TRue#", 13, 13)
739 Call testCByteError("#fAlSE#", 13, 13)
740 If isEnglishLang Then
741 Call ok(CByte("-0.5") = 0, "CByte(""-0.5"") = " & CByte("-0.5"))
742 Call ok(getVT(CByte("-0.5")) = "VT_UI1", "getVT(CByte(""-0.5"")) = " & getVT(CByte("-0.5")))
743 End If
744 Call ok(CByte(True) = 255, "CByte(True) = " & CByte(True))
745 Call ok(getVT(CByte(True)) = "VT_UI1", "getVT(CByte(True)) = " & getVT(CByte(True)))
746 Call ok(CByte(False) = 0, "CByte(False) = " & CByte(False))
747 Call ok(getVT(CByte(False)) = "VT_UI1", "getVT(CByte(False)) = " & getVT(CByte(False)))
748 Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject))
749 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
750 MyObject.myval = 1
751 Call ok(CByte(MyObject) = 1, "CByte(MyObject) = " & CByte(MyObject))
752 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
753 MyObject.myval = 0
754 Call ok(CByte(MyObject) = 0, "CByte(MyObject) = " & CByte(MyObject))
755 Call ok(getVT(CByte(MyObject)) = "VT_UI1", "getVT(CByte(MyObject)) = " & getVT(CByte(MyObject)))
757 Sub testCCurError(strings, error_num1, error_num2)
758 on error resume next
759 Dim x
761 Call Err.clear()
762 x = CCur(strings)
763 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
765 Call Err.clear()
766 Call CCur(strings)
767 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
768 End Sub
770 Call ok(CCur(Empty) = 0, "CCur(Empty) = " & CCur(Empty))
771 Call ok(getVT(CCur(Empty)) = "VT_CY", "getVT(CCur(Empty)) = " & getVT(CCur(Empty)))
772 Call ok(CCur(-32768) = -32768, "CCur(-32768) = " & CCur(-32768))
773 Call ok(getVT(CCur(-32768)) = "VT_CY", "getVT(CCur(-32768)) = " & getVT(CCur(-32768)))
774 Call ok(CCur(32768) = 32768, "CCur(32768) = " & CCur(32768))
775 Call ok(getVT(CCur(32768)) = "VT_CY", "getVT(CCur(32768)) = " & getVT(CCur(32768)))
776 Call ok(CCur(0.000149) = 0.0001, "CCur(0.000149) = " & CCur(0.000149))
777 Call ok(getVT(CCur(0.000149)) = "VT_CY", "getVT(CCur(0.000149)) = " & getVT(CCur(0.000149)))
778 Call ok(CCur(2147483647.99) = 2147483647.99, "CCur(2147483647.99) = " & CCur(2147483647.99))
779 Call ok(getVT(CCur(2147483647.99)) = "VT_CY", "getVT(CCur(2147483647.99)) = " & getVT(CCur(2147483647.99)))
780 Call ok(CCur("-1") = -1, "CCur(""-1"") = " & CCur("-1"))
781 Call ok(getVT(CCur("-1")) = "VT_CY", "getVT(CCur(""-1"")) = " & getVT(CCur("-1")))
782 If isEnglishLang Then
783 Call ok(CCur("-0.5") = -0.5, "CCur(""-0.5"") = " & CCur("-0.5"))
784 Call ok(getVT(CCur("-0.5")) = "VT_CY", "getVT(CCur(""-0.5"")) = " & getVT(CCur("-0.5")))
785 End If
786 Call testCCurError("", 13, 13)
787 Call testCCurError("-1", 0, 458)
788 Call testCCurError("TRUE", 13, 13)
789 Call testCCurError("FALSE", 13, 13)
790 Call testCCurError("#TRue#", 13, 13)
791 Call testCCurError("#fAlSE#", 13, 13)
792 Call testCCurError(1, 0, 458)
793 Call ok(CCur(True) = -1, "CCur(True) = " & CCur(True))
794 Call ok(getVT(CCur(True)) = "VT_CY", "getVT(CCur(True)) = " & getVT(CCur(True)))
795 Call ok(CCur(False) = 0, "CCur(False) = " & CCur(False))
796 Call ok(getVT(CCur(False)) = "VT_CY", "getVT(CCur(False)) = " & getVT(CCur(False)))
797 MyObject.myval = 0.1
798 Call ok(CCur(MyObject) = 0.1, "CCur(MyObject) = " & CCur(MyObject))
799 Call ok(getVT(CCur(MyObject)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject)))
800 MyObject.myval = 0
801 Call ok(CCur(MyObject) = 0, "CCur(MyObject) = " & CCur(MyObject))
802 Call ok(getVT(CCur(MyObject)) = "VT_CY", "getVT(CCur(MyObject)) = " & getVT(CCur(MyObject)))
804 Sub testCDblError(strings, error_num1, error_num2)
805 on error resume next
806 Dim x
808 Call Err.clear()
809 x = CDbl(strings)
810 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
812 Call Err.clear()
813 Call CDbl(strings)
814 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
815 End Sub
817 Call ok(CDbl(Empty) = 0, "CDbl(Empty) = " & CDbl(Empty))
818 Call ok(getVT(CDbl(Empty)) = "VT_R8", "getVT(CDbl(Empty)) = " & getVT(CDbl(Empty)))
819 Call ok(CDbl(CByte(0)) = 0, "CDbl(CByte(0)) = " & CDbl(CByte(0)))
820 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
821 Call ok(CDbl(CCur(0)) = 0, "CDbl(CCur(0)) = " & CDbl(CCur(0)))
822 Call ok(getVT(CDbl(CCur(0))) = "VT_R8", "getVT(CDbl(CCur(0))) = " & getVT(CDbl(CCur(0))))
823 Call ok(CDbl(0) = 0, "CDbl(0) = " & CDbl(0))
824 Call ok(getVT(CDbl(0)) = "VT_R8", "getVT(CDbl(0)) = " & getVT(CDbl(0)))
825 Call ok(CDbl(32768) = 32768, "CDbl(32768) = " & CDbl(32768))
826 Call ok(getVT(CDbl(32768)) = "VT_R8", "getVT(CDbl(32768)) = " & getVT(CDbl(32768)))
827 Call ok(CDbl(0.001 * 0.001) = 0.000001, "CDbl(0.001 * 0.001) = " & CDbl(0.001 * 0.001))
828 Call ok(getVT(CDbl(0.001 * 0.001)) = "VT_R8", "getVT(CDbl(0.001 * 0.001)) = " & getVT(CDbl(0.001 * 0.001)))
829 Call ok(CDbl("-1") = -1, "CDbl(""-1"") = " & CDbl("-1"))
830 Call ok(getVT(CDbl("-1")) = "VT_R8", "getVT(CDbl(""-1"")) = " & getVT(CDbl("-1")))
831 If isEnglishLang Then
832 Call ok(CDbl("-0.5") = -0.5, "CDbl(""-0.5"") = " & CDbl("-0.5"))
833 Call ok(getVT(CDbl("-0.5")) = "VT_R8", "getVT(CDbl(""-0.5"")) = " & getVT(CDbl("-0.5")))
834 End If
835 Call testCDblError("", 13, 13)
836 Call testCDblError("TRUE", 13, 13)
837 Call testCDblError("FALSE", 13, 13)
838 Call testCDblError("#TRue#", 13, 13)
839 Call testCDblError("#fAlSE#", 13, 13)
840 Call testCDblError(1, 0, 458)
841 Call ok(CDbl(True) = -1, "CDbl(True) = " & CDbl(True))
842 Call ok(getVT(CDbl(True)) = "VT_R8", "getVT(CDbl(True)) = " & getVT(CDbl(True)))
843 Call ok(CDbl(False) = 0, "CDbl(False) = " & CDbl(False))
844 Call ok(getVT(CDbl(False)) = "VT_R8", "getVT(CDbl(False)) = " & getVT(CDbl(False)))
845 MyObject.myval = 0.1
846 Call ok(CDbl(MyObject) = 0.1, "CDbl(MyObject) = " & CDbl(MyObject))
847 Call ok(getVT(CDbl(MyObject)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject)))
848 MyObject.myval = 0
849 Call ok(CDbl(MyObject) = 0, "CDbl(MyObject) = " & CDbl(MyObject))
850 Call ok(getVT(CDbl(MyObject)) = "VT_R8", "getVT(CDbl(MyObject)) = " & getVT(CDbl(MyObject)))
852 Sub testCLngError(strings, error_num1, error_num2)
853 on error resume next
854 Dim x
856 Call Err.clear()
857 x = CLng(strings)
858 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
860 Call Err.clear()
861 Call CLng(strings)
862 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
863 End Sub
865 Call ok(CLng(Empty) = 0, "CLng(Empty) = " & CLng(Empty))
866 Call ok(getVT(CLng(Empty)) = "VT_I4", "getVT(CLng(Empty)) = " & getVT(CLng(Empty)))
867 Call ok(CLng(CByte(0)) = 0, "CLng(CByte(0)) = " & CLng(CByte(0)))
868 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
869 Call ok(CLng(CCur(0)) = 0, "CLng(CCur(0)) = " & CLng(CCur(0)))
870 Call ok(getVT(CLng(CCur(0))) = "VT_I4", "getVT(CLng(CCur(0))) = " & getVT(CLng(CCur(0))))
871 Call ok(CLng(0) = 0, "CLng(0) = " & CLng(0))
872 Call ok(getVT(CLng(0)) = "VT_I4", "getVT(CLng(0)) = " & getVT(CLng(0)))
873 Call ok(CLng(0.49) = 0, "CLng(0.49) = " & CLng(0.49))
874 Call ok(getVT(CLng(0.49)) = "VT_I4", "getVT(CLng(0.49)) = " & getVT(CLng(0.49)))
875 Call ok(CLng(0.5) = 0, "CLng(0.5) = " & CLng(0.5))
876 Call ok(getVT(CLng(0.5)) = "VT_I4", "getVT(CLng(0.5)) = " & getVT(CLng(0.5)))
877 Call ok(CLng(0.51) = 1, "CLng(0.51) = " & CLng(0.51))
878 Call ok(getVT(CLng(0.51)) = "VT_I4", "getVT(CLng(0.51)) = " & getVT(CLng(0.51)))
879 Call ok(CLng(1.49) = 1, "CLng(1.49) = " & CLng(1.49))
880 Call ok(getVT(CLng(1.49)) = "VT_I4", "getVT(CLng(1.49)) = " & getVT(CLng(1.49)))
881 Call ok(CLng(1.5) = 2, "CLng(1.5) = " & CLng(1.5))
882 Call ok(getVT(CLng(1.5)) = "VT_I4", "getVT(CLng(1.5)) = " & getVT(CLng(1.5)))
883 Call ok(CLng(1.51) = 2, "CLng(1.51) = " & CLng(1.51))
884 Call ok(getVT(CLng(1.51)) = "VT_I4", "getVT(CLng(1.51)) = " & getVT(CLng(1.51)))
885 Call ok(CLng("-1") = -1, "CLng(""-1"") = " & CLng("-1"))
886 Call ok(getVT(CLng("-1")) = "VT_I4", "getVT(CLng(""-1"")) = " & getVT(CLng("-1")))
887 If isEnglishLang Then
888 Call ok(CLng("-0.5") = 0, "CLng(""-0.5"") = " & CLng("-0.5"))
889 Call ok(getVT(CLng("-0.5")) = "VT_I4", "getVT(CLng(""-0.5"")) = " & getVT(CLng("-0.5")))
890 End If
891 Call testCLngError("", 13, 13)
892 Call testCLngError("TRUE", 13, 13)
893 Call testCLngError("FALSE", 13, 13)
894 Call testCLngError("#TRue#", 13, 13)
895 Call testCLngError("#fAlSE#", 13, 13)
896 Call testCLngError(1, 0, 458)
897 Call ok(CLng(True) = -1, "CLng(True) = " & CLng(True))
898 Call ok(getVT(CLng(True)) = "VT_I4", "getVT(CLng(True)) = " & getVT(CLng(True)))
899 Call ok(CLng(False) = 0, "CLng(False) = " & CLng(False))
900 Call ok(getVT(CLng(False)) = "VT_I4", "getVT(CLng(False)) = " & getVT(CLng(False)))
901 MyObject.myval = 1
902 Call ok(CLng(MyObject) = 1, "CLng(MyObject) = " & CLng(MyObject))
903 Call ok(getVT(CLng(MyObject)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject)))
904 MyObject.myval = 0
905 Call ok(CLng(MyObject) = 0, "CLng(MyObject) = " & CLng(MyObject))
906 Call ok(getVT(CLng(MyObject)) = "VT_I4", "getVT(CLng(MyObject)) = " & getVT(CLng(MyObject)))
908 Sub testCIntError(strings, error_num1, error_num2)
909 on error resume next
910 Dim x
912 Call Err.clear()
913 x = CInt(strings)
914 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
916 Call Err.clear()
917 Call CInt(strings)
918 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
919 End Sub
921 Call ok(CInt(Empty) = 0, "CInt(Empty) = " & CInt(Empty))
922 Call ok(getVT(CInt(Empty)) = "VT_I2", "getVT(CInt(Empty)) = " & getVT(CInt(Empty)))
923 Call ok(CInt(CByte(0)) = 0, "CInt(CByte(0)) = " & CInt(CByte(0)))
924 Call ok(getVT(CInt(CByte(0))) = "VT_I2", "getVT(CInt(CByte(0))) = " & getVT(CInt(CByte(0))))
925 Call ok(CInt(CCur(0)) = 0, "CInt(CCur(0)) = " & CInt(CCur(0)))
926 Call ok(getVT(CInt(CCur(0))) = "VT_I2", "getVT(CInt(CCur(0))) = " & getVT(CInt(CCur(0))))
927 Call ok(CInt(0.49) = 0, "CInt(0.49) = " & CInt(0.49))
928 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
929 Call ok(CInt(0.5) = 0, "CInt(0.5) = " & CInt(0.5))
930 Call ok(getVT(CInt(0.5)) = "VT_I2", "getVT(CInt(0.5)) = " & getVT(CInt(0.5)))
931 Call ok(CInt(0.51) = 1, "CInt(0.51) = " & CInt(0.51))
932 Call ok(getVT(CInt(0.51)) = "VT_I2", "getVT(CInt(0.51)) = " & getVT(CInt(0.51)))
933 Call ok(CInt(1.49) = 1, "CInt(0.49) = " & CInt(0.49))
934 Call ok(getVT(CInt(0.49)) = "VT_I2", "getVT(CInt(0.49)) = " & getVT(CInt(0.49)))
935 Call ok(CInt(1.5) = 2, "CInt(1.5) = " & CInt(1.5))
936 Call ok(getVT(CInt(1.5)) = "VT_I2", "getVT(CInt(1.5)) = " & getVT(CInt(1.5)))
937 Call ok(CInt(1.51) = 2, "CInt(1.51) = " & CInt(1.51))
938 Call ok(getVT(CInt(1.51)) = "VT_I2", "getVT(CInt(1.51)) = " & getVT(CInt(1.51)))
939 Call ok(CInt("-1") = -1, "CInt(""-1"") = " & CInt("-1"))
940 Call ok(getVT(CInt("-1")) = "VT_I2", "getVT(CInt(""-1"")) = " & getVT(CInt("-1")))
941 If isEnglishLang Then
942 Call ok(CInt("-0.5") = 0, "CInt(""-0.5"") = " & CInt("-0.5"))
943 Call ok(getVT(CInt("-0.5")) = "VT_I2", "getVT(CInt(""-0.5"")) = " & getVT(CInt("-0.5")))
944 End If
945 Call testCIntError("", 13, 13)
946 Call testCIntError("-1", 0, 458)
947 Call testCIntError("TRUE", 13, 13)
948 Call testCIntError("FALSE", 13, 13)
949 Call testCIntError("#TRue#", 13, 13)
950 Call testCIntError("#fAlSE#", 13, 13)
951 Call testCIntError(1, 0, 458)
952 Call testCIntError(32767.49, 0, 458)
953 Call testCIntError(32767.5, 6, 6)
954 Call testCIntError(-32768.5, 0, 458)
955 Call testCIntError(-32768.51, 6, 6)
956 Call ok(CInt(True) = -1, "CInt(True) = " & CInt(True))
957 Call ok(getVT(CInt(True)) = "VT_I2", "getVT(CInt(True)) = " & getVT(CInt(True)))
958 Call ok(CInt(False) = 0, "CInt(False) = " & CInt(False))
959 Call ok(getVT(CInt(False)) = "VT_I2", "getVT(CInt(False)) = " & getVT(CInt(False)))
960 MyObject.myval = 2.5
961 Call ok(CInt(MyObject) = 2, "CInt(MyObject) = " & CInt(MyObject))
962 Call ok(getVT(CInt(MyObject)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject)))
963 MyObject.myval = 1.5
964 Call ok(CInt(MyObject) = 2, "CInt(MyObject) = " & CInt(MyObject))
965 Call ok(getVT(CInt(MyObject)) = "VT_I2", "getVT(CInt(MyObject)) = " & getVT(CInt(MyObject)))
967 Sub testCSngError(strings, error_num1, error_num2)
968 on error resume next
969 Dim x
971 Call Err.clear()
972 x = CSng(strings)
973 Call ok(Err.number = error_num1, "Err.number = " & Err.number)
975 Call Err.clear()
976 Call CSng(strings)
977 Call ok(Err.number = error_num2, "Err.number = " & Err.number)
978 End Sub
980 Call ok(CSng(Empty) = 0, "CSng(Empty) = " & CSng(Empty))
981 Call ok(getVT(CSng(Empty)) = "VT_R4", "getVT(CSng(Empty)) = " & getVT(CSng(Empty)))
982 Call ok(CSng(CByte(0)) = 0, "CSng(CByte(0)) = " & CSng(CByte(0)))
983 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
984 Call ok(CSng(CCur(0)) = 0, "CSng(CCur(0)) = " & CSng(CCur(0)))
985 Call ok(getVT(CSng(CCur(0))) = "VT_R4", "getVT(CSng(CCur(0))) = " & getVT(CSng(CCur(0))))
986 Call ok(CSng(0) = 0, "CSng(0) = " & CSng(0))
987 Call ok(getVT(CSng(0)) = "VT_R4", "getVT(CSng(0)) = " & getVT(CSng(0)))
988 Call ok(CSng(32768) = 32768, "CSng(32768) = " & CSng(32768))
989 Call ok(getVT(CSng(32768)) = "VT_R4", "getVT(CSng(32768)) = " & getVT(CSng(32768)))
990 Call ok(CSng(0.001 * 0.001) = 0.000001, "CSng(0.001 * 0.001) = " & CSng(0.001 * 0.001))
991 Call ok(getVT(CSng(0.001 * 0.001)) = "VT_R4", "getVT(CSng(0.001 * 0.001)) = " & getVT(CSng(0.001 * 0.001)))
992 Call ok(CSng("-1") = -1, "CSng(""-1"") = " & CSng("-1"))
993 Call ok(getVT(CSng("-1")) = "VT_R4", "getVT(CSng(""-1"")) = " & getVT(CSng("-1")))
994 If isEnglishLang Then
995 Call ok(CSng("-0.5") = -0.5, "CSng(""-0.5"") = " & CSng("-0.5"))
996 Call ok(getVT(CSng("-0.5")) = "VT_R4", "getVT(CSng(""-0.5"")) = " & getVT(CSng("-0.5")))
997 End If
998 Call testCSngError("", 13, 13)
999 Call testCSngError("TRUE", 13, 13)
1000 Call testCSngError("FALSE", 13, 13)
1001 Call testCSngError("#TRue#", 13, 13)
1002 Call testCSngError("#fAlSE#", 13, 13)
1003 Call testCSngError(1, 0, 458)
1004 Call ok(CSng(True) = -1, "CSng(True) = " & CSng(True))
1005 Call ok(getVT(CSng(True)) = "VT_R4", "getVT(CSng(True)) = " & getVT(CSng(True)))
1006 Call ok(CSng(False) = 0, "CSng(False) = " & CSng(False))
1007 Call ok(getVT(CSng(False)) = "VT_R4", "getVT(CSng(False)) = " & getVT(CSng(False)))
1008 MyObject.myval = 0.1
1009 Call ok(CSng(MyObject) = 0.1, "CSng(MyObject) = " & CSng(MyObject))
1010 Call ok(getVT(CSng(MyObject)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject)))
1011 MyObject.myval = 0
1012 Call ok(CSng(MyObject) = 0, "CSng(MyObject) = " & CSng(MyObject))
1013 Call ok(getVT(CSng(MyObject)) = "VT_R4", "getVT(CSng(MyObject)) = " & getVT(CSng(MyObject)))
1015 Call ok(TypeName(Empty) = "Empty", "TypeName(MyEmpty) = " & TypeName(Empty))
1016 Call ok(getVT(TypeName(Empty)) = "VT_BSTR", "getVT(TypeName(Empty)) = " & getVT(TypeName(Empty)))
1017 Call ok(TypeName(Null) = "Null", "TypeName(Null) = " & TypeName(Null))
1018 Call ok(getVT(TypeName(Null)) = "VT_BSTR", "getVT(TypeName(Null)) = " & getVT(TypeName(Null)))
1019 Call ok(TypeName(CByte(255)) = "Byte", "TypeName(CByte(255)) = " & TypeName(CByte(255)))
1020 Call ok(getVT(TypeName(CByte(255))) = "VT_BSTR", "getVT(TypeName(CByte(255))) = " & getVT(TypeName(CByte(255))))
1021 Call ok(TypeName(255) = "Integer", "TypeName(255) = " & TypeName(255))
1022 Call ok(getVT(TypeName(255)) = "VT_BSTR", "getVT(TypeName(255)) = " & getVT(TypeName(255)))
1023 Call ok(TypeName(32768) = "Long", "TypeName(32768) = " & TypeName(32768))
1024 Call ok(getVT(TypeName(32768)) = "VT_BSTR", "getVT(TypeName(32768)) = " & getVT(TypeName(32768)))
1025 Call ok(TypeName(CSng(0.5)) = "Single", "TypeName(CSng(0.5)) = " & TypeName(CSng(0.5)))
1026 Call ok(getVT(TypeName(CSng(0.5))) = "VT_BSTR", "getVT(TypeName(CSng(0.5))) = " & getVT(TypeName(CSng(0.5))))
1027 Call ok(TypeName(-0.5) = "Double", "TypeName(-0.5) = " & TypeName(-0.5))
1028 Call ok(getVT(TypeName(-0.5)) = "VT_BSTR", "getVT(TypeName(-0.5)) = " & getVT(TypeName(-0.5)))
1029 Call ok(TypeName(CCur(0.5)) = "Currency", "TypeName(CCur(0.5)) = " & TypeName(CCur(0.5)))
1030 Call ok(getVT(TypeName(CCur(0.5))) = "VT_BSTR", "getVT(TypeName(CCur(0.5))) = " & getVT(TypeName(CCur(0.5))))
1031 Call ok(TypeName(CStr(0.5)) = "String", "TypeName(CStr(0.5)) = " & TypeName(CStr(0.5)))
1032 Call ok(getVT(TypeName(CStr(0.5))) = "VT_BSTR", "getVT(TypeName(CStr(0.5))) = " & getVT(TypeName(CStr(0.5))))
1033 Call ok(TypeName(True) = "Boolean", "TypeName(True) = " & TypeName(True))
1034 Call ok(getVT(TypeName(True)) = "VT_BSTR", "getVT(TypeName(True)) = " & getVT(TypeName(True)))
1036 Call ok(VarType(Empty) = vbEmpty, "VarType(Empty) = " & VarType(Empty))
1037 Call ok(getVT(VarType(Empty)) = "VT_I2", "getVT(VarType(Empty)) = " & getVT(VarType(Empty)))
1038 Call ok(VarType(Null) = vbNull, "VarType(Null) = " & VarType(Null))
1039 Call ok(getVT(VarType(Null)) = "VT_I2", "getVT(VarType(Null)) = " & getVT(VarType(Null)))
1040 Call ok(VarType(255) = vbInteger, "VarType(255) = " & VarType(255))
1041 Call ok(getVT(VarType(255)) = "VT_I2", "getVT(VarType(255)) = " & getVT(VarType(255)))
1042 Call ok(VarType(32768) = vbLong, "VarType(32768) = " & VarType(32768))
1043 Call ok(getVT(VarType(32768)) = "VT_I2", "getVT(VarType(32768)) = " & getVT(VarType(32768)))
1044 Call ok(VarType(CSng(0.5)) = vbSingle, "VarType(CSng(0.5)) = " & VarType(CSng(0.5)))
1045 Call ok(getVT(VarType(CSng(0.5))) = "VT_I2", "getVT(VarType(CSng(0.5))) = " & getVT(VarType(CSng(0.5))))
1046 Call ok(VarType(-0.5) = vbDouble, "VarType(-0.5) = " & VarType(-0.5))
1047 Call ok(getVT(VarType(-0.5)) = "VT_I2", "getVT(VarType(-0.5)) = " & getVT(VarType(-0.5)))
1048 Call ok(VarType(CCur(0.5)) = vbCurrency, "VarType(CCur(0.5)) = " & VarType(CCur(0.5)))
1049 Call ok(getVT(VarType(CCur(0.5))) = "VT_I2", "getVT(VarType(CCur(0.5))) = " & getVT(VarType(CCur(0.5))))
1050 Call ok(VarType(CStr(0.5)) = vbString, "VarType(CStr(0.5)) = " & VarType(CStr(0.5)))
1051 Call ok(getVT(VarType(CStr(0.5))) = "VT_I2", "getVT(VarType(CStr(0.5))) = " & getVT(VarType(CStr(0.5))))
1052 Call ok(VarType(CBool(0.5)) = vbBoolean, "VarType(CBool(0.5)) = " & VarType(CBool(0.5)))
1053 Call ok(getVT(VarType(CBool(0.5))) = "VT_I2", "getVT(VarType(CBool(0.5))) = " & getVT(VarType(CBool(0.5))))
1054 Call ok(VarType(CByte(255)) = vbByte, "VarType(CByte(255)) = " & VarType(CByte(255)))
1055 Call ok(getVT(VarType(CByte(255))) = "VT_I2", "getVT(VarType(CByte(255))) = " & getVT(VarType(CByte(255))))
1057 Call ok(Sgn(Empty) = 0, "Sgn(MyEmpty) = " & Sgn(Empty))
1058 Call ok(getVT(Sgn(Empty)) = "VT_I2", "getVT(Sgn(MyEmpty)) = " & getVT(Sgn(Empty)))
1059 Call ok(Sgn(0) = 0, "Sgn(0) = " & Sgn(0))
1060 Call ok(getVT(Sgn(0)) = "VT_I2", "getVT(Sgn(0)) = " & getVT(Sgn(0)))
1061 Call ok(Sgn(-32769) = -1, "Sgn(-32769) = " & Sgn(-32769))
1062 Call ok(getVT(Sgn(-32769)) = "VT_I2", "getVT(Sgn(-32769)) = " & getVT(Sgn(-32769)))
1063 Call ok(Sgn(CSng(-0.5)) = -1, "Sgn(CSng(-0.5)) = " & Sgn(CSng(-0.5)))
1064 Call ok(getVT(Sgn(CSng(-0.5))) = "VT_I2", "getVT(Sgn(CSng(-0.5))) = " & getVT(Sgn(CSng(-0.5))))
1065 Call ok(Sgn(0.5) = 1, "Sgn(0.5) = " & Sgn(0.5))
1066 Call ok(getVT(Sgn(0.5)) = "VT_I2", "getVT(Sgn(0.5)) = " & getVT(Sgn(0.5)))
1067 Call ok(Sgn(CCur(-1)) = -1, "Sgn(CCur(-1)) = " & Sgn(CCur(-1)))
1068 Call ok(getVT(Sgn(CCur(-1))) = "VT_I2", "getVT(Sgn(CCur(-1))) = " & getVT(Sgn(CCur(-1))))
1069 Call ok(Sgn(CStr(-1)) = -1, "Sgn(CStr(-1)) = " & Sgn(CStr(-1)))
1070 Call ok(getVT(Sgn(CStr(-1))) = "VT_I2", "getVT(Sgn(CStr(-1))) = " & getVT(Sgn(CStr(-1))))
1071 Call ok(Sgn(False) = 0, "Sgn(False) = " & Sgn(False))
1072 Call ok(getVT(Sgn(False)) = "VT_I2", "getVT(Sgn(False)) = " & getVT(Sgn(False)))
1073 Call ok(Sgn(True) = -1, "Sgn(True) = " & Sgn(True))
1074 Call ok(getVT(Sgn(True)) = "VT_I2", "getVT(Sgn(True)) = " & getVT(Sgn(True)))
1075 Call ok(Sgn(CByte(1)) = 1, "Sgn(CByte(1)) = " & Sgn(CByte(1)))
1076 Call ok(getVT(Sgn(CByte(1))) ="VT_I2", "getVT(Sgn(CByte(1))) = " & getVT(Sgn(CByte(1))))
1078 Sub testSgnError(strings, error_num)
1079 on error resume next
1081 Call Err.clear()
1082 Call Sgn(strings)
1083 Call ok(Err.number = error_num, "Err.number = " & Err.number)
1084 End Sub
1086 Call testSgnError(Null, 94)
1088 Call ok(Abs(Empty) = 0, "Abs(Empty) = " & Abs(Empty))
1089 Call ok(getVT(Abs(Empty)) = "VT_I2", "getVT(Abs(Empty)) = " & getVT(Abs(Empty)))
1090 Call ok(IsNull(Abs(Null)), "Is Abs(Null) not Null?")
1091 Call ok(getVT(Abs(Null)) = "VT_NULL", "getVT(Abs(Null)) = " & getVT(Abs(Null)))
1092 Call ok(Abs(0) = 0, "Abs(0) = " & Abs(0))
1093 Call ok(getVT(Abs(0)) = "VT_I2", "getVT(Abs(0)) = " & getVT(Abs(0)))
1094 Call ok(Abs(-32769) = 32769, "Abs(-32769) = " & Abs(-32769))
1095 Call ok(getVT(Abs(-32769)) = "VT_I4", "getVT(Abs(-32769)) = " & getVT(Abs(-32769)))
1096 Call ok(Abs(CSng(-0.5)) = 0.5, "Abs(CSng(-0.5)) = " & Abs(CSng(-0.5)))
1097 Call ok(getVT(Abs(CSng(-0.5))) = "VT_R4", "getVT(Abs(CSng(-0.5))) = " & getVT(Abs(CSng(-0.5))))
1098 Call ok(Abs(0.5) = 0.5, "Abs(0.5) = " & Abs(0.5))
1099 Call ok(getVT(Abs(0.5)) = "VT_R8", "getVT(Abs(0.5)) = " & getVT(Abs(0.5)))
1100 Call ok(Abs(CCur(-1)) = 1, "Abs(CCur(-1)) = " & Abs(CCur(-1)))
1101 Call ok(getVT(Abs(CCur(-1))) = "VT_CY", "getVT(Abs(CCur(-1))) = " & getVT(Abs(CCur(-1))))
1102 Call ok(Abs("-1") = 1, "Abs(""-1"") = " & Abs("-1"))
1103 Call ok(getVT(Abs("-1")) = "VT_R8", "getVT(Abs(""-1"")) = " & getVT(Abs("-1")))
1104 Call ok(Abs(False) = 0, "Abs(False) = " & Abs(False))
1105 Call ok(getVT(Abs(False)) = "VT_I2", "getVT(Abs(False)) = " & getVT(Abs(False)))
1106 Call ok(Abs(True) = 1, "Abs(True) = " & Abs(True))
1107 Call ok(getVT(Abs(True)) = "VT_I2", "getVT(Abs(True)) = " & getVT(Abs(True)))
1108 Call ok(Abs(CByte(1)) = 1, "Abs(CByte(1)) = " & Abs(CByte(1)))
1109 Call ok(getVT(Abs(CByte(1))) = "VT_UI1", "getVT(Abs(CByte(1))) = " & getVT(Abs(CByte(1))))
1111 Sub testAbsError(strings, error_num1, error_num2)
1112 on error resume next
1113 Dim x
1115 Call Err.clear()
1116 x = Abs(strings)
1117 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1119 Call Err.clear()
1120 Call Abs(strings)
1121 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1122 End Sub
1124 Call testAbsError("strings", 13, 13)
1125 Call testAbsError(-4, 0, 0)
1127 Call ok(ScriptEngine = "VBScript", "Is scriptengine not VBScript?")
1128 Call ok(getVT(ScriptEngine) = "VT_BSTR", "getVT(ScriptEngine) = " & getVT(ScriptEngine))
1130 Call ok(getVT(ScriptEngineBuildVersion) = "VT_I4", "getVT(ScriptEngineBuildVersion) = " & getVT(ScriptEngineBuildVersion))
1132 Call ok(getVT(ScriptEngineMajorVersion) = "VT_I4", "getVT(ScriptEngineMajorVersion) = " & getVT(ScriptEngineMajorVersion))
1134 Call ok(getVT(ScriptEngineMinorVersion) = "VT_I4", "getVT(ScriptEngineMinorVersion) = " & getVT(ScriptEngineMinorVersion))
1136 Call ok(Fix(Empty) = 0, "Fix(Empty) = " & Fix(Empty))
1137 Call ok(getVT(Fix(Empty)) = "VT_I2", "getVT(Fix(Empty)) = " & getVT(Fix(Empty)))
1138 Call ok(Fix(CCur(-0.99)) = 0, "Fix(CCur(-0.99)) = " & Fix(CCur(-0.99)))
1139 Call ok(getVT(Fix(CCur(-0.99))) = "VT_CY", "getVT(Fix(CCur(-0.99))) = " & getVT(Fix(CCur(-0.99))))
1140 Call ok(Fix(1.99) = 1, "Fix(1.99) = " & Fix(1.99))
1141 Call ok(getVT(Fix(1.99)) = "VT_R8", "getVT(Fix(1.99)) = " & getVT(Fix(1.99)))
1142 Call ok(Fix(-1.99) = -1, "Fix(-1.99) = " & Fix(-1.99))
1143 Call ok(getVT(Fix(-1.99)) = "VT_R8", "getVT(Fix(-1.99)) = " & getVT(Fix(-1.99)))
1144 If isEnglishLang Then
1145 Call ok(Fix("1.99") = 1, "Fix(""1.99"") = " & Fix("1.99"))
1146 Call ok(getVT(Fix("1.99")) = "VT_R8", "getVT(Fix(""1.99"")) = " & getVT(Fix("1.99")))
1147 Call ok(Fix("-1.99") = -1, "Fix(""-1.99"") = " & Fix("-1.99"))
1148 Call ok(getVT(Fix("-1.99")) = "VT_R8", "getVT(Fix(""-1.99"")) = " & getVT(Fix("-1.99")))
1149 End If
1150 Call ok(Fix(True) = -1, "Fix(True) = " & Fix(True))
1151 Call ok(getVT(Fix(True)) = "VT_I2", "getVT(Fix(True)) = " & getVT(Fix(True)))
1152 Call ok(Fix(False) = 0, "Fix(False) = " & Fix(False))
1153 Call ok(getVT(Fix(False)) = "VT_I2", "getVT(Fix(False)) = " & getVT(Fix(False)))
1154 MyObject.myval = 2.5
1155 Call ok(Fix(MyObject) = 2, "Fix(MyObject) = " & Fix(MyObject))
1156 Call ok(getVT(Fix(MyObject)) = "VT_R8", "getVT(Fix(MyObject)) = " & getVT(Fix(MyObject)))
1157 MyObject.myval = -2.5
1158 Call ok(Fix(MyObject) = -2, "Fix(MyObject) = " & Fix(MyObject))
1159 Call ok(getVT(Fix(MyObject)) = "VT_R8", "getVT(Fix(MyObject)) = " & getVT(Fix(MyObject)))
1161 Call ok(Int(Empty) = 0, "Int(Empty) = " & Int(Empty))
1162 Call ok(getVT(Int(Empty)) = "VT_I2", "getVT(Int(Empty)) = " & getVT(Int(Empty)))
1163 Call ok(Int(CCur(-0.99)) = -1, "Int(CCur(-0.99)) = " & Int(CCur(-0.99)))
1164 Call ok(getVT(Int(CCur(-0.99))) = "VT_CY", "getVT(Int(CCur(-0.99))) = " & getVT(Int(CCur(-0.99))))
1165 Call ok(Int(1.99) = 1, "Int(1.99) = " & Int(1.99))
1166 Call ok(getVT(Int(1.99)) = "VT_R8", "getVT(Int(1.99)) = " & getVT(Int(1.99)))
1167 Call ok(Int(-1.99) = -2, "Int(-1.99) = " & Int(-1.99))
1168 Call ok(getVT(Int(-1.99)) = "VT_R8", "getVT(Int(-1.99)) = " & getVT(Int(-1.99)))
1169 If isEnglishLang Then
1170 Call ok(Int("1.99") = 1, "Int(""1.99"") = " & Int("1.99"))
1171 Call ok(getVT(Int("1.99")) = "VT_R8", "getVT(Int(""1.99"")) = " & getVT(Int("1.99")))
1172 Call ok(Int("-1.99") = -2, "Int(""-1.99"") = " & Int("-1.99"))
1173 Call ok(getVT(Int("-1.99")) = "VT_R8", "getVT(Int(""-1.99"")) = " & getVT(Int("-1.99")))
1174 End If
1175 Call ok(Int(True) = -1, "Int(True) = " & Int(True))
1176 Call ok(getVT(Int(True)) = "VT_I2", "getVT(Int(True)) = " & getVT(Int(True)))
1177 Call ok(Int(False) = 0, "Int(False) = " & Int(False))
1178 Call ok(getVT(Int(False)) = "VT_I2", "getVT(Int(False)) = " & getVT(Int(False)))
1179 MyObject.myval = 2.5
1180 Call ok(Int(MyObject) = 2, "Int(MyObject) = " & Int(MyObject))
1181 Call ok(getVT(Int(MyObject)) = "VT_R8", "getVT(Int(MyObject)) = " & getVT(Int(MyObject)))
1182 MyObject.myval = -2.5
1183 Call ok(Int(MyObject) = -3, "Int(MyObject) = " & Int(MyObject))
1184 Call ok(getVT(Int(MyObject)) = "VT_R8", "getVT(Int(MyObject)) = " & getVT(Int(MyObject)))
1186 Sub testSqrError(strings, error_num1, error_num2)
1187 on error resume next
1188 Dim x
1190 Call Err.clear()
1191 x = Sqr(strings)
1192 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1194 Call Err.clear()
1195 Call Sqr(strings)
1196 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1197 End Sub
1199 Call testSqrError(-2, 5, 5)
1200 Call testSqrError(True, 5, 5)
1202 Call ok(Sqr(Empty) = 0, "Sqr(Empty) = " & Sqr(Empty))
1203 Call ok(getVT(Sqr(Empty)) = "VT_R8", "getVT(Sqr(Empty)) = " & getVT(Sqr(Empty)))
1204 Call ok(Sqr(0) = 0, "Sqr(0) = " & Sqr(0))
1205 Call ok(getVT(Sqr(0)) = "VT_R8", "getVT(Sqr(0)) = " & getVT(Sqr(0)))
1206 Call ok(Sqr(1) = 1, "Sqr(1) = " & Sqr(1))
1207 Call ok(getVT(Sqr(1)) = "VT_R8", "getVT(Sqr(1)) = " & getVT(Sqr(1)))
1208 Call ok(Sqr(CSng(121)) = 11, "Sqr(CSng(121)) = " & Sqr(CSng(121)))
1209 Call ok(getVT(Sqr(CSng(121))) = "VT_R8", "getVT(Sqr(CSng(121))) = " & getVT(Sqr(CSng(121))))
1210 Call ok(Sqr(36100) = 190, "Sqr(36100) = " & Sqr(36100))
1211 Call ok(getVT(Sqr(36100)) = "VT_R8", "getVT(Sqr(36100)) = " & getVT(Sqr(36100)))
1212 Call ok(Sqr(CCur(0.0625)) = 0.25, "Sqr(CCur(0.0625)) = " & Sqr(CCur(0.0625)))
1213 Call ok(getVT(Sqr(CCur(0.0625))) = "VT_R8", "getVT(Sqr(CCur(0.0625))) = " & getVT(Sqr(CCur(0.0625))))
1214 Call ok(Sqr("100000000") = 10000, "Sqr(""100000000"") = " & Sqr("100000000"))
1215 Call ok(getVT(Sqr("100000000")) = "VT_R8", "getVT(Sqr(""100000000"")) = " & getVT(Sqr("100000000")))
1216 Call ok(Sqr(False) = 0, "Sqr(False) = " & Sqr(False))
1217 Call ok(getVT(Sqr(False)) = "VT_R8", "getVT(Sqr(False)) = " & getVT(Sqr(False)))
1218 Call ok(Sqr(CByte(225)) = 15, "Sqr(CByte(225)) = " & Sqr(CByte(225)))
1219 Call ok(getVT(Sqr(CByte(225))) = "VT_R8", "getVT(Sqr(CByte(225))) = " & getVT(Sqr(CByte(225))))
1221 Function Approch(func, res)
1222 If Abs(func - res) < 0.001 Then
1223 Approch = True
1224 Else
1225 Approch = False
1226 End If
1227 End Function
1229 Const PI = 3.1415926
1231 Call ok(Approch(Cos(Empty), 1), "Cos(Empty) = " & Cos(Empty))
1232 Call ok(getVT(Cos(Empty)) = "VT_R8", "getVT(Cos(Empty)) = " & getVT(Cos(Empty)))
1233 Call ok(Approch(Cos(PI / 6), Sqr(3) / 2), "Cos(PI / 6) = " & Cos(PI / 6))
1234 Call ok(getVT(Cos(PI / 6)) = "VT_R8", "getVT(Cos(PI / 6)) = " & getVT(Cos(PI / 6)))
1235 Call ok(Approch(Cos(CCur(PI / 4)), Sqr(2) / 2), "Cos(CCur(PI / 4)) = " & Cos(CCur(PI / 4)))
1236 Call ok(getVT(Cos(CCur(PI / 4))) = "VT_R8", "getVT(Cos(CCur(PI / 4))) = " & getVT(Cos(CCur(PI / 4))))
1237 Call ok(Approch(Cos(CSng(PI / 3)), 1 / 2), "Cos(CSng(PI / 3)) = " & Cos(CSng(PI / 3)))
1238 Call ok(getVT(Cos(CSng(PI / 3))) = "VT_R8", "getVT(Cos(CSng(PI))) = " & getVT(Cos(CSng(PI))))
1239 Call ok(Approch(Cos(PI / 2), 0), "Cos(0) = " & Cos(PI / 2))
1240 Call ok(getVT(Cos(PI / 2)) = "VT_R8", "getVT(Cos(PI / 2)) = " & getVT(Cos(PI / 2)))
1241 Call ok(Approch(Cos(PI), -1), "Cos(PI) = " & Cos(PI))
1242 Call ok(getVT(Cos(PI)) = "VT_R8", "getVT(Cos(PI)) = " & getVT(Cos(PI)))
1243 Call ok(Approch(Cos(5 * PI / 4), -Sqr(2) / 2), "Cos(5 * PI / 4) = " & Cos(5 * PI / 4))
1244 Call ok(getVT(Cos(5 * PI / 4)) = "VT_R8", "getVT(Cos(5 * PI / 4)) = " & getVT(Cos(5 * PI / 4)))
1245 Call ok(Approch(Cos(3 * PI / 2), 0), "Cos(3 * PI / 2) = " & Cos(3 * PI / 2))
1246 Call ok(getVT(Cos(3 * PI / 2)) = "VT_R8", "getVT(Cos(3 * PI / 2)) = " & getVT(Cos(3 * PI / 2)))
1247 Call ok(Approch(Cos(2 * PI), 1), "Cos(2 * PI) = " & Cos(2 * PI))
1248 Call ok(getVT(Cos(2 * PI)) = "VT_R8", "getVT(Cos(2 * PI)) = " & getVT(Cos(2 * PI)))
1249 Call ok(Approch(Cos("-32768"), 0.3729), "Cos(""-32768"") = " & Cos("-32768"))
1250 Call ok(getVT(Cos("-32768")) = "VT_R8", "getVT(Cos(""-32768"")) = " & getVT(Cos("-32768")))
1251 Call ok(Approch(Cos(False), 1), "Cos(False) = " & Cos(False))
1252 Call ok(getVT(Cos(False)) = "VT_R8", "getVT(Cos(False)) = " & getVT(Cos(False)))
1253 Call ok(Approch(Cos(True), 0.5403), "Cos(True) = " & Cos(True))
1254 Call ok(getVT(Cos(True)) = "VT_R8", "getVT(Cos(True)) = " & getVT(Cos(True)))
1255 Call ok(Approch(Cos(CByte(255)), -0.8623), "Cos(CByte(255)) = " & Cos(CByte(255)))
1256 Call ok(getVT(Cos(CByte(255))) = "VT_R8", "getVT(Cos(CByte(255))) = " & getVT(Cos(CByte(255))))
1258 Call ok(Approch(Sin(Empty), 0), "Sin(Empty) = " & Sin(Empty))
1259 Call ok(getVT(Sin(Empty)) = "VT_R8", "getVT(Sin(Empty)) = " & getVT(Sin(Empty)))
1260 Call ok(Approch(Sin(PI / 6), 1 / 2), "Sin(PI / 6) = " & Sin(PI / 6))
1261 Call ok(getVT(Sin(PI / 6)) = "VT_R8", "getVT(Sin(PI / 6)) = " & getVT(Sin(PI / 6)))
1262 Call ok(Approch(Sin(CCur(PI / 4)), Sqr(2) / 2), "Sin(CCur(PI / 4)) = " & Sin(CCur(PI / 4)))
1263 Call ok(getVT(Sin(CCur(PI / 4))) = "VT_R8", "getVT(Sin(CCur(PI / 4))) = " & getVT(Sin(CCur(PI / 4))))
1264 Call ok(Approch(Sin(CSng(PI / 3)), Sqr(3) / 2), "Sin(CSng(PI / 3)) = " & Sin(CSng(PI / 3)))
1265 Call ok(getVT(Sin(CSng(PI / 3))) = "VT_R8", "getVT(Sin(CSng(PI))) = " & getVT(Sin(CSng(PI))))
1266 Call ok(Approch(Sin(PI / 2), 1), "Sin(0) = " & Sin(PI / 2))
1267 Call ok(getVT(Sin(PI / 2)) = "VT_R8", "getVT(Sin(PI / 2)) = " & getVT(Sin(PI / 2)))
1268 Call ok(Approch(Sin(PI), 0), "Sin(PI) = " & Sin(PI))
1269 Call ok(getVT(Sin(PI)) = "VT_R8", "getVT(Sin(PI)) = " & getVT(Sin(PI)))
1270 Call ok(Approch(Sin(5 * PI / 4), -Sqr(2) / 2), "Sin(5 * PI / 4) = " & Sin(5 * PI / 4))
1271 Call ok(getVT(Sin(5 * PI / 4)) = "VT_R8", "getVT(Sin(5 * PI / 4)) = " & getVT(Sin(5 * PI / 4)))
1272 Call ok(Approch(Sin(3 * PI / 2), -1), "Sin(3 * PI / 2) = " & Sin(3 * PI / 2))
1273 Call ok(getVT(Sin(3 * PI / 2)) = "VT_R8", "getVT(Sin(3 * PI / 2)) = " & getVT(Sin(3 * PI / 2)))
1274 Call ok(Approch(Sin(2 * PI), 0), "Sin(2 * PI) = " & Sin(2 * PI))
1275 Call ok(getVT(Sin(2 * PI)) = "VT_R8", "getVT(Sin(2 * PI)) = " & getVT(Sin(2 * PI)))
1276 Call ok(Approch(Sin("-32768"), -0.9278), "Sin(""-32768"") = " & Sin("-32768"))
1277 Call ok(getVT(Sin("-32768")) = "VT_R8", "getVT(Sin(""-32768"")) = " & getVT(Sin("-32768")))
1278 Call ok(Approch(Sin(False), 0), "Sin(False) = " & Sin(False))
1279 Call ok(getVT(Sin(False)) = "VT_R8", "getVT(Sin(False)) = " & getVT(Sin(False)))
1280 Call ok(Approch(Sin(True), -0.84147), "Sin(True) = " & Sin(True))
1281 Call ok(getVT(Sin(True)) = "VT_R8", "getVT(Sin(True)) = " & getVT(Sin(True)))
1282 Call ok(Approch(Sin(CByte(255)), -0.5063), "Sin(CByte(255)) = " & Sin(CByte(255)))
1283 Call ok(getVT(Sin(CByte(255))) = "VT_R8", "getVT(Sin(CByte(255))) = " & getVT(Sin(CByte(255))))
1285 Call ok(Approch(Tan(Empty), 0), "Tan(Empty) = " & Tan(Empty))
1286 Call ok(getVT(Tan(Empty)) = "VT_R8", "getVT(Tan(Empty)) = " & getVT(Tan(Empty)))
1287 Call ok(Approch(Tan(PI / 6), Sqr(3) / 3), "Tan(PI / 6) = " & Tan(PI / 6))
1288 Call ok(getVT(Tan(PI / 6)) = "VT_R8", "getVT(Tan(PI / 6)) = " & getVT(Tan(PI / 6)))
1289 Call ok(Approch(Tan(CCur(PI / 4)), 1), "Tan(CCur(PI / 4)) = " & Tan(CCur(PI / 4)))
1290 Call ok(getVT(Tan(CCur(PI / 4))) = "VT_R8", "getVT(Tan(CCur(PI / 4))) = " & getVT(Tan(CCur(PI / 4))))
1291 Call ok(Approch(Tan(CSng(PI / 3)), Sqr(3)), "Tan(CSng(PI / 3)) = " & Tan(CSng(PI / 3)))
1292 Call ok(getVT(Tan(CSng(PI / 3))) = "VT_R8", "getVT(Tan(CSng(PI))) = " & getVT(Tan(CSng(PI))))
1293 Call ok(Approch(Tan(PI), 0), "Tan(PI) = " & Tan(PI))
1294 Call ok(getVT(Tan(PI)) = "VT_R8", "getVT(Tan(PI)) = " & getVT(Tan(PI)))
1295 Call ok(Approch(Tan(3 * PI / 4), -1), "Tan(3 * PI / 4) = " & Tan(3 * PI / 4))
1296 Call ok(getVT(Tan(3 * PI / 4)) = "VT_R8", "getVT(Tan(3 * PI / 4)) = " & getVT(Tan(3 * PI / 4)))
1297 Call ok(Approch(Tan(5 * PI / 4), 1), "Tan(5 * PI / 4) = " & Tan(5 * PI / 4))
1298 Call ok(getVT(Tan(5 * PI / 4)) = "VT_R8", "getVT(Tan(5 * PI / 4)) = " & getVT(Tan(5 * PI / 4)))
1299 Call ok(Approch(Tan(2 * PI), 0), "Tan(2 * PI) = " & Tan(2 * PI))
1300 Call ok(getVT(Tan(2 * PI)) = "VT_R8", "getVT(Tan(2 * PI)) = " & getVT(Tan(2 * PI)))
1301 Call ok(Approch(Tan("-32768"), -2.4879), "Tan(""-32768"") = " & Tan("-32768"))
1302 Call ok(getVT(Tan("-32768")) = "VT_R8", "getVT(Tan(""-32768"")) = " & getVT(Tan("-32768")))
1303 Call ok(Approch(Tan(False), 0), "Tan(False) = " & Tan(False))
1304 Call ok(getVT(Tan(False)) = "VT_R8", "getVT(Tan(False)) = " & getVT(Tan(False)))
1305 Call ok(Approch(Tan(True), -1.5574), "Tan(True) = " & Tan(True))
1306 Call ok(getVT(Tan(True)) = "VT_R8", "getVT(Tan(True)) = " & getVT(Tan(True)))
1307 Call ok(Approch(Tan(CByte(255)), 0.5872), "Tan(CByte(255)) = " & Tan(CByte(255)))
1308 Call ok(getVT(Tan(CByte(255))) = "VT_R8", "getVT(Tan(CByte(255))) = " & getVT(Tan(CByte(255))))
1310 Call ok(Approch(Atn(Empty), 0), "Atn(Empty) = " & Atn(Empty))
1311 Call ok(getVT(Atn(Empty)) = "VT_R8", "getVT(Atn(Empty)) = " & getVT(Atn(Empty)))
1312 Call ok(Approch(Atn(Sqr(3) / 3), PI / 6), "Atn(Sqr(3) / 3) = " & Atn(Sqr(3) / 3))
1313 Call ok(getVT(Atn(Sqr(3) / 3)) = "VT_R8", "getVT(Atn(Sqr(3) / 3)) = " & getVT(Atn(Sqr(3) / 3)))
1314 Call ok(Approch(Atn(CCur(1)), PI / 4), "Atn(CCur(1)) = " & Atn(CCur(1)))
1315 Call ok(getVT(Atn(CCur(1))) = "VT_R8", "getVT(Atn(CCur(1))) = " & getVT(Atn(CCur(1))))
1316 Call ok(Approch(Atn(CSng(Sqr(3))), PI / 3), "Atn(CSng(Sqr(3))) = " & Atn(CSng(Sqr(3))))
1317 Call ok(getVT(Atn(CSng(Sqr(3)))) = "VT_R8", "getVT(Atn(CSng(PI))) = " & getVT(Atn(CSng(PI))))
1318 Call ok(Approch(Atn(0), 0), "Atn(0) = " & Atn(0))
1319 Call ok(getVT(Atn(0)) = "VT_R8", "getVT(Atn(0)) = " & getVT(Atn(0)))
1320 Call ok(Approch(Atn(-1), -PI / 4), "Atn(-1) = " & Atn(-1))
1321 Call ok(getVT(Atn(-1)) = "VT_R8", "getVT(Atn(-1)) = " & getVT(Atn(-1)))
1322 Call ok(Approch(Atn("-32768"), -1.5707), "Atn(""-32768"") = " & Atn("-32768"))
1323 Call ok(getVT(Atn("-32768")) = "VT_R8", "getVT(Atn(""-32768"")) = " & getVT(Atn("-32768")))
1324 Call ok(Approch(Atn(False), 0), "Atn(False) = " & Atn(False))
1325 Call ok(getVT(Atn(False)) = "VT_R8", "getVT(Atn(False)) = " & getVT(Atn(False)))
1326 Call ok(Approch(Atn(True), -0.7853), "Atn(True) = " & Atn(True))
1327 Call ok(getVT(Atn(True)) = "VT_R8", "getVT(Atn(True)) = " & getVT(Atn(True)))
1328 Call ok(Approch(Atn(CByte(255)), 1.5668), "Atn(CByte(255)) = " & Atn(CByte(255)))
1329 Call ok(getVT(Atn(CByte(255))) = "VT_R8", "getVT(Atn(CByte(255))) = " & getVT(Atn(CByte(255))))
1331 Call ok(Approch(Exp(Empty), 1), "Exp(Empty) = " & Exp(Empty))
1332 Call ok(getVT(Exp(Empty)) = "VT_R8", "getVT(Exp(Empty)) = " & getVT(Exp(Empty)))
1333 Call ok(Approch(Exp(1), 2.7182), "Exp(1) = " & Exp(1))
1334 Call ok(getVT(Exp(1)) = "VT_R8", "getVT(Exp(1)) = " & getVT(Exp(1)))
1335 Call ok(Approch(Exp(CCur(-1)), 0.3678), "Exp(CCur(-1)) = " & Exp(CCur(-1)))
1336 Call ok(getVT(Exp(CCur(-1))) = "VT_R8", "getVT(Exp(CCur(-1))) = " & getVT(Exp(CCur(-1))))
1337 Call ok(Approch(Exp(CSng(0.5)), 1.6487), "Exp(CSng(0.5)) = " & Exp(CSng(0.5)))
1338 Call ok(getVT(Exp(CSng(0.5))) = "VT_R8", "getVT(Exp(CSng(PI))) = " & getVT(Exp(CSng(PI))))
1339 Call ok(Approch(Exp(-0.5), 0.6065), "Exp(-0.5) = " & Exp(-0.5))
1340 Call ok(getVT(Exp(-0.5)) = "VT_R8", "getVT(Exp(-0.5)) = " & getVT(Exp(-0.5)))
1341 Call ok(Approch(Exp("-2"), 0.1353), "Exp(""-2"") = " & Exp("-2"))
1342 Call ok(getVT(Exp("-2")) = "VT_R8", "getVT(Exp(""-2"")) = " & getVT(Exp("-2")))
1343 Call ok(Approch(Exp(False), 1), "Exp(False) = " & Exp(False))
1344 Call ok(getVT(Exp(False)) = "VT_R8", "getVT(Exp(False)) = " & getVT(Exp(False)))
1345 Call ok(Approch(Exp(True), 0.3678), "Exp(True) = " & Exp(True))
1346 Call ok(getVT(Exp(True)) = "VT_R8", "getVT(Exp(True)) = " & getVT(Exp(True)))
1347 Call ok(Approch(Exp(CByte(2)), 7.389), "Exp(CByte(2)) = " & Exp(CByte(2)))
1348 Call ok(getVT(Exp(CByte(2))) = "VT_R8", "getVT(Exp(CByte(2))) = " & getVT(Exp(CByte(2))))
1350 Sub testLogError(strings, error_num1, error_num2)
1351 on error resume next
1352 Dim x
1354 Call Err.clear()
1355 x = Log(strings)
1356 Call ok(Err.number = error_num1, "Err.number1 = " & Err.number)
1358 Call Err.clear()
1359 Call Log(strings)
1360 Call ok(Err.number = error_num2, "Err.number2 = " & Err.number)
1361 End Sub
1363 Call testLogError(0, 5, 5)
1364 Call testLogError(-2, 5, 5)
1365 Call testLogError(False, 5, 5)
1366 Call testLogError(True, 5, 5)
1367 Call ok(Approch(Log(1), 0), "Log(1) = " & Log(1))
1368 Call ok(getVT(Log(1)) = "VT_R8", "getVT(Log(1)) = " & getVT(Log(1)))
1369 Call ok(Approch(Log(CCur(0.5)), -0.6931), "Log(CCur(0.5)) = " & Log(CCur(0.5)))
1370 Call ok(getVT(Log(CCur(0.5))) = "VT_R8", "getVT(Log(CCur(0.5))) = " & getVT(Log(CCur(0.5))))
1371 Call ok(Approch(Log(CSng(2.7182)), 1), "Log(CSng(2.7182)) = " & Log(CSng(2.7182)))
1372 Call ok(getVT(Log(CSng(2.7182))) = "VT_R8", "getVT(Log(CSng(PI))) = " & getVT(Log(CSng(PI))))
1373 Call ok(Approch(Log(32768), 10.3972), "Log(32768) = " & Log(32768))
1374 Call ok(getVT(Log(32768)) = "VT_R8", "getVT(Log(32768)) = " & getVT(Log(32768)))
1375 Call ok(Approch(Log("10"), 2.3025), "Log(""10"") = " & Log("10"))
1376 Call ok(getVT(Log("10")) = "VT_R8", "getVT(Log(""10"")) = " & getVT(Log("10")))
1377 Call ok(Approch(Log(CByte(2)), 0.6931), "Log(CByte(2)) = " & Log(CByte(2)))
1378 Call ok(getVT(Log(CByte(2))) = "VT_R8", "getVT(Log(CByte(2))) = " & getVT(Log(CByte(2))))
1380 Call ok(getVT(Date) = "VT_DATE", "getVT(Date) = " & getVT(Date))
1381 Call ok(getVT(Time) = "VT_DATE", "getVT(Time) = " & getVT(Time))
1383 Sub testRGBError(arg1, arg2, arg3, error_num)
1384 on error resume next
1385 Dim x
1387 Call Err.clear()
1388 x = RGB(arg1, arg2, arg3)
1389 Call ok(Err.number = error_num, "Err.number1 = " & Err.number)
1391 Call Err.clear()
1392 Call RGB(arg1, arg2, arg3)
1393 Call ok(Err.number = error_num, "Err.number2 = " & Err.number)
1394 End Sub
1396 Call ok(RGB(0, &h1f&, &hf1&) = &hf11f00&, "RGB(0, &h1f&, &hf1&) = " & RGB(0, &h1f&, &hf1&))
1397 Call ok(getVT(RGB(0, &h1f&, &hf1&)) = "VT_I4", "getVT(RGB(&hf1&, &h1f&, &hf1&)) = " & getVT(RGB(&hf1&, &h1f&, &hf1&)))
1398 Call ok(RGB(&hef&, &hab&, &hcd&) = &hcdabef&, "RGB(&hef&, &hab&, &hcd&) = " & RGB(&hef&, &hab&, &hcd&))
1399 Call ok(getVT(RGB(&hef&, &hab&, &hcd&)) = "VT_I4", "getVT(RGB(&hef&, &hab&, &hcd&)) = " & getVT(RGB(&hef&, &hab&, &hcd&)))
1400 Call ok(RGB(&h1&, &h100&, &h111&) = &hffff01&, "RGB(&h1&, &h100&, &h111&) = " & RGB(&h1&, &h100&, &h111&))
1401 Call ok(getVT(RGB(&h1&, &h100&, &h111&)) = "VT_I4", "getVT(RGB(&h1&, &h100&, &h111&)) = " & getVT(RGB(&h1&, &h100&, &h111&)))
1402 Call testRGBError(-1, &h1e&, &h3b&, 5)
1403 Call testRGBError(&h4d&, -2, &h2f&, 5)
1405 Call ok(getVT(Timer) = "VT_R4", "getVT(Timer) = " & getVT(Timer))
1407 Call reportSuccess()