2
const TestVariant = Components.Constructor("@mozilla.org/js/xpc/test/TestVariant;1",
5
var tv = new TestVariant;
7
const DataTypeArray = [
8
Components.interfaces.nsIDataType.VTYPE_INT8 ,
9
Components.interfaces.nsIDataType.VTYPE_INT16 ,
10
Components.interfaces.nsIDataType.VTYPE_INT32 ,
11
Components.interfaces.nsIDataType.VTYPE_INT64 ,
12
Components.interfaces.nsIDataType.VTYPE_UINT8 ,
13
Components.interfaces.nsIDataType.VTYPE_UINT16 ,
14
Components.interfaces.nsIDataType.VTYPE_UINT32 ,
15
Components.interfaces.nsIDataType.VTYPE_UINT64 ,
16
Components.interfaces.nsIDataType.VTYPE_FLOAT ,
17
Components.interfaces.nsIDataType.VTYPE_DOUBLE ,
18
Components.interfaces.nsIDataType.VTYPE_BOOL ,
19
Components.interfaces.nsIDataType.VTYPE_CHAR ,
20
Components.interfaces.nsIDataType.VTYPE_WCHAR ,
21
Components.interfaces.nsIDataType.VTYPE_VOID ,
22
Components.interfaces.nsIDataType.VTYPE_ID ,
23
Components.interfaces.nsIDataType.VTYPE_DOMSTRING ,
24
Components.interfaces.nsIDataType.VTYPE_CHAR_STR ,
25
Components.interfaces.nsIDataType.VTYPE_WCHAR_STR ,
26
Components.interfaces.nsIDataType.VTYPE_INTERFACE ,
27
Components.interfaces.nsIDataType.VTYPE_INTERFACE_IS ,
28
Components.interfaces.nsIDataType.VTYPE_ARRAY ,
29
Components.interfaces.nsIDataType.VTYPE_STRING_SIZE_IS ,
30
Components.interfaces.nsIDataType.VTYPE_WSTRING_SIZE_IS ,
31
Components.interfaces.nsIDataType.VTYPE_UTF8STRING ,
32
Components.interfaces.nsIDataType.VTYPE_CSTRING ,
33
Components.interfaces.nsIDataType.VTYPE_ASTRING ,
34
Components.interfaces.nsIDataType.VTYPE_EMPTY_ARRAY ,
35
Components.interfaces.nsIDataType.VTYPE_EMPTY
39
{name: "I1", number: Components.interfaces.nsIDataType.VTYPE_INT8 },
40
{name: "I2", number: Components.interfaces.nsIDataType.VTYPE_INT16 },
41
{name: "I4", number: Components.interfaces.nsIDataType.VTYPE_INT32 },
42
{name: "I8", number: Components.interfaces.nsIDataType.VTYPE_INT64 },
43
{name: "U1", number: Components.interfaces.nsIDataType.VTYPE_UINT8 },
44
{name: "U2", number: Components.interfaces.nsIDataType.VTYPE_UINT16 },
45
{name: "U4", number: Components.interfaces.nsIDataType.VTYPE_UINT32 },
46
{name: "U8", number: Components.interfaces.nsIDataType.VTYPE_UINT64 },
47
{name: "FL", number: Components.interfaces.nsIDataType.VTYPE_FLOAT },
48
{name: "DB", number: Components.interfaces.nsIDataType.VTYPE_DOUBLE },
49
{name: "BO", number: Components.interfaces.nsIDataType.VTYPE_BOOL },
50
{name: "CH", number: Components.interfaces.nsIDataType.VTYPE_CHAR },
51
{name: "WC", number: Components.interfaces.nsIDataType.VTYPE_WCHAR },
52
{name: "VD", number: Components.interfaces.nsIDataType.VTYPE_VOID },
53
{name: "ID", number: Components.interfaces.nsIDataType.VTYPE_ID },
54
{name: "DS", number: Components.interfaces.nsIDataType.VTYPE_DOMSTRING },
55
{name: "ST", number: Components.interfaces.nsIDataType.VTYPE_CHAR_STR },
56
{name: "WS", number: Components.interfaces.nsIDataType.VTYPE_WCHAR_STR },
57
{name: "NS", number: Components.interfaces.nsIDataType.VTYPE_INTERFACE },
58
{name: "IF", number: Components.interfaces.nsIDataType.VTYPE_INTERFACE_IS },
59
{name: "AR", number: Components.interfaces.nsIDataType.VTYPE_ARRAY },
60
{name: "Ss", number: Components.interfaces.nsIDataType.VTYPE_STRING_SIZE_IS },
61
{name: "Ws", number: Components.interfaces.nsIDataType.VTYPE_WSTRING_SIZE_IS},
62
{name: "US", number: Components.interfaces.nsIDataType.VTYPE_UTF8STRING },
63
{name: "CS", number: Components.interfaces.nsIDataType.VTYPE_CSTRING },
64
{name: "AS", number: Components.interfaces.nsIDataType.VTYPE_ASTRING },
65
{name: "EA", number: Components.interfaces.nsIDataType.VTYPE_EMPTY_ARRAY },
66
{name: "EM", number: Components.interfaces.nsIDataType.VTYPE_EMPTY }
70
function getDataTypeName(number) {
71
var iface = Components.interfaces.nsIDataType
73
if(iface[n] == number)
75
return "unknown type!";
78
function getDataTypeShortName(number) {
79
for(var i = 0; i < ShortNames.length; i++)
80
if(ShortNames[i].number == number)
81
return ShortNames[i].name;
85
function eqOp(o1, o2) {return o1 == o2;}
86
function eqObj(o1, o2) {return o1.equals(o2);}
87
function eqNumber(o1, o2) {return parseFloat(o1) == parseFloat(o2);}
89
const eq = {string: "equal result"};
90
const _e = {string: "exception"};
91
const NE = {string: "un-equal result"};
92
const _0 = {string: "zero result"};
93
const _1 = {string: "one result"};
94
const _T = {string: "true result"};
95
const _F = {string: "false result"};
97
function TestSingleConvert(value, comment, eq_fun, table) {
98
print("<h3>convert test for: "+value+" "+comment+"</h3>");
100
print('<TABLE BORDER="1" COLS='+table.length+'>');
102
for(var i = 0; i < table.length; i++) {
103
print('<TH>'+getDataTypeShortName(DataTypeArray[i])+'</TH>');
108
for(var i = 0; i < table.length; i++) {
109
var exception = undefined;
110
var value2 = undefined;
112
value2 = tv.copyVariantAsType(value, DataTypeArray[i]);
113
var same = eq_fun(value, value2);
114
success = (same && table[i] == eq) ||
115
(!same && table[i] == NE) ||
116
(table[i] == _0 && 0 == value2) ||
117
(table[i] == _T && true == value2) ||
118
(table[i] == _F && false == value2);
121
success = table[i] == _e;
124
print('<TD><font color="green">OK</font></TD>');
126
var alertText = "Exception thrown. Expected: "+table[i].string;
127
print('<TD><font color="red"><A HREF="" '+
128
'onclick="alert(\''+alertText+'\'); return false;"'+
129
'>X</A></font></TD>');
132
var alertText = "Result = "+value2+". Expected: "+table[i].string;
133
print('<TD><font color="red"><A HREF="" '+
134
'onclick="alert(\''+alertText+'\'); return false;"'+
135
'>X</A></font></TD>');
143
function TestDoubleConvert(value, comment, eq_fun, table) {
144
print("<h3>convert test for: "+value+" "+comment+"</h3>");
146
print('<TABLE BORDER="1" COLS='+table.length+2+'>');
149
for(var i = 0; i < table.length; i++) {
150
print('<TH>'+getDataTypeShortName(DataTypeArray[i])+'</TH>');
155
for(var i = 0; i < table.length; i++) {
157
print('<TD>'+getDataTypeShortName(DataTypeArray[i])+'</TD>');
158
for(var k = 0; k < table.length; k++) {
159
var exception = undefined;
160
var value2 = undefined;
161
var expected = table[i][k];
163
value2 = tv.copyVariantAsTypeTwice(value,
166
var same = eq_fun(value, value2);
167
success = (same && expected == eq) ||
168
(!same && expected == NE) ||
169
(expected == _0 && 0 == value2) ||
170
(expected == _T && true == value2) ||
171
(expected == _F && false == value2);
174
success = expected == _e;
177
print('<TD><font color="green">OK</font></TD>');
179
var alertText = "Exception thrown. Expected: "+expected.string;
180
print('<TD><font color="red"><A HREF="" '+
181
'onclick="alert(\''+alertText+'\'); return false;"'+
182
'>X</A></font></TD>');
185
var alertText = "Result = was wrong. Expected: "+expected.string;
186
print('<TD><font color="red"><A HREF="" '+
187
'onclick="alert(\''+alertText+'\'); return false;"'+
188
'>X</A></font></TD>');
191
print('<TD>'+getDataTypeShortName(DataTypeArray[i])+'</TD>');
201
const SingleConvertResultsTableFor_String_Foo = [
202
/*I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM */
203
_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e
206
const SingleConvertResultsTableFor_String_5 = [
207
/*I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM */
208
eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e
211
const SingleConvertResultsTableFor_Number_20 = [
212
/*I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM */
213
eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e
216
const DoubleConvertResultsTableFor_String_Foo = [
217
/* I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM */
218
/*I1*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I1*/
219
/*I2*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I2*/
220
/*I4*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I4*/
221
/*I8*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I8*/
222
/*U1*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U1*/
223
/*U2*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U2*/
224
/*U4*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U4*/
225
/*U8*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U8*/
226
/*FL*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*FL*/
227
/*DB*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*DB*/
228
/*BO*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*BO*/
229
/*CH*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*CH*/
230
/*WC*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*WC*/
231
/*VD*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*VD*/
232
/*ID*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*ID*/
233
/*DS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*DS*/
234
/*ST*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*ST*/
235
/*WS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*WS*/
236
/*NS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*NS*/
237
/*IF*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*IF*/
238
/*AR*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*AR*/
239
/*Ss*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ss*/
240
/*Ws*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ws*/
241
/*US*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*US*/
242
/*CS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*CS*/
243
/*AS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*AS*/
244
/*EA*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*EA*/
245
/*EM*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e] /*EM*/
248
const DoubleConvertResultsTableFor_String_Five = [
249
/* I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM */
250
/*I1*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I1*/
251
/*I2*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I2*/
252
/*I4*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I4*/
253
/*I8*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I8*/
254
/*U1*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U1*/
255
/*U2*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U2*/
256
/*U4*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U4*/
257
/*U8*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U8*/
258
/*FL*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*FL*/
259
/*DB*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*DB*/
260
/*BO*/[_T,_T,_T,_T,_T,_T,_T,_T,_T,_T,_T,NE,NE,_e,_e,_T,_T,_T,_e,_e,_e,_T,_T,_T,_T,_T,_e,_e],/*BO*/
261
/*CH*/[NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,_e,_e,NE,NE,NE,_e,_e,_e,NE,NE,NE,NE,NE,_e,_e],/*CH*/
262
/*WC*/[NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,_e,_e,NE,NE,NE,_e,_e,_e,NE,NE,NE,NE,NE,_e,_e],/*WC*/
263
/*VD*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*VD*/
264
/*ID*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*ID*/
265
/*DS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*DS*/
266
/*ST*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*ST*/
267
/*WS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*WS*/
268
/*NS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*NS*/
269
/*IF*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*IF*/
270
/*AR*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*AR*/
271
/*Ss*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ss*/
272
/*Ws*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ws*/
273
/*US*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*US*/
274
/*CS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*CS*/
275
/*AS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*AS*/
276
/*EA*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*EA*/
277
/*EM*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e] /*EM*/
287
Components.interfaces.nsISupports,
295
/***************************************************************************/
301
for(i = 0; i < values.length; i++)
302
print(getDataTypeName(tv.returnVariantType(values[i])));
307
for(i = 0; i < values.length; i++)
308
print(tv.passThruVariant(values[i]));
313
for(i = 0; i < values.length; i++)
314
print(tv.copyVariant(values[i]));
318
function RunSingleConvertTests() {
319
TestSingleConvert("foo", "a string", eqOp, SingleConvertResultsTableFor_String_Foo);
320
TestSingleConvert("5", "a string", eqNumber, SingleConvertResultsTableFor_String_5);
321
TestSingleConvert(20, "a number", eqNumber, SingleConvertResultsTableFor_Number_20);
325
function RunDoubleConvertTests() {
326
TestDoubleConvert("foo", "a string", eqOp, DoubleConvertResultsTableFor_String_Foo);
327
TestDoubleConvert("5", "a string", eqNumber, DoubleConvertResultsTableFor_String_Five);
333
print("<html><body>")
335
RunSingleConvertTests();
336
RunDoubleConvertTests();
338
print("</body></html>")