tests/auto/qscriptvalue/tst_qscriptvalue_generated_toXXX.cpp
changeset 30 5dc02b23752f
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the test suite of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 /****************************************************************************
       
    43 *************** This file has been generated. DO NOT MODIFY! ****************
       
    44 ****************************************************************************/
       
    45 
       
    46 #include "tst_qscriptvalue.h"
       
    47 
       
    48 
       
    49 
       
    50 void tst_QScriptValue::toString_initData()
       
    51 {
       
    52     QTest::addColumn<QString>("expected");
       
    53     initScriptValues();
       
    54 }
       
    55 
       
    56 static QString toString_tagArray [] = {
       
    57     "QScriptValue()",
       
    58     "QScriptValue(QScriptValue::UndefinedValue)",
       
    59     "QScriptValue(QScriptValue::NullValue)",
       
    60     "QScriptValue(true)",
       
    61     "QScriptValue(false)",
       
    62     "QScriptValue(int(122))",
       
    63     "QScriptValue(uint(124))",
       
    64     "QScriptValue(0)",
       
    65     "QScriptValue(0.0)",
       
    66     "QScriptValue(123.0)",
       
    67     "QScriptValue(6.37e-8)",
       
    68     "QScriptValue(-6.37e-8)",
       
    69     "QScriptValue(0x43211234)",
       
    70     "QScriptValue(0x10000)",
       
    71     "QScriptValue(0x10001)",
       
    72     "QScriptValue(qSNaN())",
       
    73     "QScriptValue(qQNaN())",
       
    74     "QScriptValue(qInf())",
       
    75     "QScriptValue(-qInf())",
       
    76     "QScriptValue(\"NaN\")",
       
    77     "QScriptValue(\"Infinity\")",
       
    78     "QScriptValue(\"-Infinity\")",
       
    79     "QScriptValue(\"ciao\")",
       
    80     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
    81     "QScriptValue(QString(\"\"))",
       
    82     "QScriptValue(QString())",
       
    83     "QScriptValue(QString(\"0\"))",
       
    84     "QScriptValue(QString(\"123\"))",
       
    85     "QScriptValue(QString(\"12.4\"))",
       
    86     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
    87     "QScriptValue(0, QScriptValue::NullValue)",
       
    88     "QScriptValue(0, true)",
       
    89     "QScriptValue(0, false)",
       
    90     "QScriptValue(0, int(122))",
       
    91     "QScriptValue(0, uint(124))",
       
    92     "QScriptValue(0, 0)",
       
    93     "QScriptValue(0, 0.0)",
       
    94     "QScriptValue(0, 123.0)",
       
    95     "QScriptValue(0, 6.37e-8)",
       
    96     "QScriptValue(0, -6.37e-8)",
       
    97     "QScriptValue(0, 0x43211234)",
       
    98     "QScriptValue(0, 0x10000)",
       
    99     "QScriptValue(0, 0x10001)",
       
   100     "QScriptValue(0, qSNaN())",
       
   101     "QScriptValue(0, qQNaN())",
       
   102     "QScriptValue(0, qInf())",
       
   103     "QScriptValue(0, -qInf())",
       
   104     "QScriptValue(0, \"NaN\")",
       
   105     "QScriptValue(0, \"Infinity\")",
       
   106     "QScriptValue(0, \"-Infinity\")",
       
   107     "QScriptValue(0, \"ciao\")",
       
   108     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   109     "QScriptValue(0, QString(\"\"))",
       
   110     "QScriptValue(0, QString())",
       
   111     "QScriptValue(0, QString(\"0\"))",
       
   112     "QScriptValue(0, QString(\"123\"))",
       
   113     "QScriptValue(0, QString(\"12.3\"))",
       
   114     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   115     "QScriptValue(engine, QScriptValue::NullValue)",
       
   116     "QScriptValue(engine, true)",
       
   117     "QScriptValue(engine, false)",
       
   118     "QScriptValue(engine, int(122))",
       
   119     "QScriptValue(engine, uint(124))",
       
   120     "QScriptValue(engine, 0)",
       
   121     "QScriptValue(engine, 0.0)",
       
   122     "QScriptValue(engine, 123.0)",
       
   123     "QScriptValue(engine, 6.37e-8)",
       
   124     "QScriptValue(engine, -6.37e-8)",
       
   125     "QScriptValue(engine, 0x43211234)",
       
   126     "QScriptValue(engine, 0x10000)",
       
   127     "QScriptValue(engine, 0x10001)",
       
   128     "QScriptValue(engine, qSNaN())",
       
   129     "QScriptValue(engine, qQNaN())",
       
   130     "QScriptValue(engine, qInf())",
       
   131     "QScriptValue(engine, -qInf())",
       
   132     "QScriptValue(engine, \"NaN\")",
       
   133     "QScriptValue(engine, \"Infinity\")",
       
   134     "QScriptValue(engine, \"-Infinity\")",
       
   135     "QScriptValue(engine, \"ciao\")",
       
   136     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   137     "QScriptValue(engine, QString(\"\"))",
       
   138     "QScriptValue(engine, QString())",
       
   139     "QScriptValue(engine, QString(\"0\"))",
       
   140     "QScriptValue(engine, QString(\"123\"))",
       
   141     "QScriptValue(engine, QString(\"1.23\"))",
       
   142     "engine->evaluate(\"[]\")",
       
   143     "engine->evaluate(\"{}\")",
       
   144     "engine->evaluate(\"Object.prototype\")",
       
   145     "engine->evaluate(\"Date.prototype\")",
       
   146     "engine->evaluate(\"Array.prototype\")",
       
   147     "engine->evaluate(\"Function.prototype\")",
       
   148     "engine->evaluate(\"Error.prototype\")",
       
   149     "engine->evaluate(\"Object\")",
       
   150     "engine->evaluate(\"Array\")",
       
   151     "engine->evaluate(\"Number\")",
       
   152     "engine->evaluate(\"Function\")",
       
   153     "engine->evaluate(\"(function() { return 1; })\")",
       
   154     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   155     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   156     "engine->evaluate(\"/foo/\")",
       
   157     "engine->evaluate(\"new Object()\")",
       
   158     "engine->evaluate(\"new Array()\")",
       
   159     "engine->evaluate(\"new Error()\")",
       
   160     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   161     "engine->evaluate(\"Undefined\")",
       
   162     "engine->evaluate(\"Null\")",
       
   163     "engine->evaluate(\"True\")",
       
   164     "engine->evaluate(\"False\")",
       
   165     "engine->evaluate(\"undefined\")",
       
   166     "engine->evaluate(\"null\")",
       
   167     "engine->evaluate(\"true\")",
       
   168     "engine->evaluate(\"false\")",
       
   169     "engine->evaluate(\"122\")",
       
   170     "engine->evaluate(\"124\")",
       
   171     "engine->evaluate(\"0\")",
       
   172     "engine->evaluate(\"0.0\")",
       
   173     "engine->evaluate(\"123.0\")",
       
   174     "engine->evaluate(\"6.37e-8\")",
       
   175     "engine->evaluate(\"-6.37e-8\")",
       
   176     "engine->evaluate(\"0x43211234\")",
       
   177     "engine->evaluate(\"0x10000\")",
       
   178     "engine->evaluate(\"0x10001\")",
       
   179     "engine->evaluate(\"NaN\")",
       
   180     "engine->evaluate(\"Infinity\")",
       
   181     "engine->evaluate(\"-Infinity\")",
       
   182     "engine->evaluate(\"'ciao'\")",
       
   183     "engine->evaluate(\"''\")",
       
   184     "engine->evaluate(\"'0'\")",
       
   185     "engine->evaluate(\"'123'\")",
       
   186     "engine->evaluate(\"'12.4'\")",
       
   187     "engine->nullValue()",
       
   188     "engine->undefinedValue()",
       
   189     "engine->newObject()",
       
   190     "engine->newArray()",
       
   191     "engine->newArray(10)",
       
   192     "engine->newDate(QDateTime())",
       
   193     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   194     "engine->newVariant(QVariant())",
       
   195     "engine->newVariant(QVariant(123))",
       
   196     "engine->newVariant(QVariant(false))",
       
   197     "engine->newQObject(0)",
       
   198     "engine->newQObject(engine)",};
       
   199 
       
   200 static QString toString_valueArray [] = {
       
   201     "", "undefined", 
       
   202     "null", "true", 
       
   203     "false", "122", 
       
   204     "124", "0", 
       
   205     "0", "123", 
       
   206     "6.37e-8", "-6.37e-8", 
       
   207     "1126240820", "65536", 
       
   208     "65537", "NaN", 
       
   209     "NaN", "Infinity", 
       
   210     "-Infinity", "NaN", 
       
   211     "Infinity", "-Infinity", 
       
   212     "ciao", "ciao", 
       
   213     "", "", 
       
   214     "0", "123", 
       
   215     "12.4", "undefined", 
       
   216     "null", "true", 
       
   217     "false", "122", 
       
   218     "124", "0", 
       
   219     "0", "123", 
       
   220     "6.37e-8", "-6.37e-8", 
       
   221     "1126240820", "65536", 
       
   222     "65537", "NaN", 
       
   223     "NaN", "Infinity", 
       
   224     "-Infinity", "NaN", 
       
   225     "Infinity", "-Infinity", 
       
   226     "ciao", "ciao", 
       
   227     "", "", 
       
   228     "0", "123", 
       
   229     "12.3", "undefined", 
       
   230     "null", "true", 
       
   231     "false", "122", 
       
   232     "124", "0", 
       
   233     "0", "123", 
       
   234     "6.37e-8", "-6.37e-8", 
       
   235     "1126240820", "65536", 
       
   236     "65537", "NaN", 
       
   237     "NaN", "Infinity", 
       
   238     "-Infinity", "NaN", 
       
   239     "Infinity", "-Infinity", 
       
   240     "ciao", "ciao", 
       
   241     "", "", 
       
   242     "0", "123", 
       
   243     "1.23", "", 
       
   244     "undefined", "[object Object]", 
       
   245     "Invalid Date", "", 
       
   246     "function () {\n    [native code]\n}", "Error: Unknown error", 
       
   247     "function Object() {\n    [native code]\n}", "function Array() {\n    [native code]\n}", 
       
   248     "function Number() {\n    [native code]\n}", "function Function() {\n    [native code]\n}", 
       
   249     "function () { return 1; }", "function () { return 'ciao'; }", 
       
   250     "function () { throw new Error('foo'); }", "/foo/", 
       
   251     "[object Object]", "", 
       
   252     "Error: Unknown error", "22", 
       
   253     "ReferenceError: Can't find variable: Undefined", "ReferenceError: Can't find variable: Null", 
       
   254     "ReferenceError: Can't find variable: True", "ReferenceError: Can't find variable: False", 
       
   255     "undefined", "null", 
       
   256     "true", "false", 
       
   257     "122", "124", 
       
   258     "0", "0", 
       
   259     "123", "6.37e-8", 
       
   260     "-6.37e-8", "1126240820", 
       
   261     "65536", "65537", 
       
   262     "NaN", "Infinity", 
       
   263     "-Infinity", "ciao", 
       
   264     "", "0", 
       
   265     "123", "12.4", 
       
   266     "null", "undefined", 
       
   267     "[object Object]", "", 
       
   268     ",,,,,,,,,", "Invalid Date", 
       
   269     "[object QMetaObject]", "undefined", 
       
   270     "123", "false", 
       
   271     "null", "QScriptEngine(name = \"\")", };
       
   272 
       
   273 void tst_QScriptValue::toString_makeData(const char* expr)
       
   274 {
       
   275     static QHash<QString, QString> toString;
       
   276     if (toString.isEmpty()) {
       
   277         toString.reserve(142);
       
   278         for (unsigned i = 0; i < 142; ++i)
       
   279             toString.insert(toString_tagArray[i], toString_valueArray[i]);
       
   280     }
       
   281     newRow(expr) << toString.value(expr);
       
   282 }
       
   283 
       
   284 void tst_QScriptValue::toString_test(const char*, const QScriptValue& value)
       
   285 {
       
   286     QFETCH(QString, expected);
       
   287     QCOMPARE(value.toString(), expected);
       
   288     QCOMPARE(value.toString(), expected);
       
   289 }
       
   290 
       
   291 DEFINE_TEST_FUNCTION(toString)
       
   292 
       
   293 
       
   294 void tst_QScriptValue::toNumber_initData()
       
   295 {
       
   296     QTest::addColumn<qsreal>("expected");
       
   297     initScriptValues();
       
   298 }
       
   299 
       
   300 static QString toNumber_tagArray [] = {
       
   301     "QScriptValue()",
       
   302     "QScriptValue(QScriptValue::UndefinedValue)",
       
   303     "QScriptValue(QScriptValue::NullValue)",
       
   304     "QScriptValue(true)",
       
   305     "QScriptValue(false)",
       
   306     "QScriptValue(int(122))",
       
   307     "QScriptValue(uint(124))",
       
   308     "QScriptValue(0)",
       
   309     "QScriptValue(0.0)",
       
   310     "QScriptValue(123.0)",
       
   311     "QScriptValue(6.37e-8)",
       
   312     "QScriptValue(-6.37e-8)",
       
   313     "QScriptValue(0x43211234)",
       
   314     "QScriptValue(0x10000)",
       
   315     "QScriptValue(0x10001)",
       
   316     "QScriptValue(qSNaN())",
       
   317     "QScriptValue(qQNaN())",
       
   318     "QScriptValue(qInf())",
       
   319     "QScriptValue(-qInf())",
       
   320     "QScriptValue(\"NaN\")",
       
   321     "QScriptValue(\"Infinity\")",
       
   322     "QScriptValue(\"-Infinity\")",
       
   323     "QScriptValue(\"ciao\")",
       
   324     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
   325     "QScriptValue(QString(\"\"))",
       
   326     "QScriptValue(QString())",
       
   327     "QScriptValue(QString(\"0\"))",
       
   328     "QScriptValue(QString(\"123\"))",
       
   329     "QScriptValue(QString(\"12.4\"))",
       
   330     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
   331     "QScriptValue(0, QScriptValue::NullValue)",
       
   332     "QScriptValue(0, true)",
       
   333     "QScriptValue(0, false)",
       
   334     "QScriptValue(0, int(122))",
       
   335     "QScriptValue(0, uint(124))",
       
   336     "QScriptValue(0, 0)",
       
   337     "QScriptValue(0, 0.0)",
       
   338     "QScriptValue(0, 123.0)",
       
   339     "QScriptValue(0, 6.37e-8)",
       
   340     "QScriptValue(0, -6.37e-8)",
       
   341     "QScriptValue(0, 0x43211234)",
       
   342     "QScriptValue(0, 0x10000)",
       
   343     "QScriptValue(0, 0x10001)",
       
   344     "QScriptValue(0, qSNaN())",
       
   345     "QScriptValue(0, qQNaN())",
       
   346     "QScriptValue(0, qInf())",
       
   347     "QScriptValue(0, -qInf())",
       
   348     "QScriptValue(0, \"NaN\")",
       
   349     "QScriptValue(0, \"Infinity\")",
       
   350     "QScriptValue(0, \"-Infinity\")",
       
   351     "QScriptValue(0, \"ciao\")",
       
   352     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   353     "QScriptValue(0, QString(\"\"))",
       
   354     "QScriptValue(0, QString())",
       
   355     "QScriptValue(0, QString(\"0\"))",
       
   356     "QScriptValue(0, QString(\"123\"))",
       
   357     "QScriptValue(0, QString(\"12.3\"))",
       
   358     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   359     "QScriptValue(engine, QScriptValue::NullValue)",
       
   360     "QScriptValue(engine, true)",
       
   361     "QScriptValue(engine, false)",
       
   362     "QScriptValue(engine, int(122))",
       
   363     "QScriptValue(engine, uint(124))",
       
   364     "QScriptValue(engine, 0)",
       
   365     "QScriptValue(engine, 0.0)",
       
   366     "QScriptValue(engine, 123.0)",
       
   367     "QScriptValue(engine, 6.37e-8)",
       
   368     "QScriptValue(engine, -6.37e-8)",
       
   369     "QScriptValue(engine, 0x43211234)",
       
   370     "QScriptValue(engine, 0x10000)",
       
   371     "QScriptValue(engine, 0x10001)",
       
   372     "QScriptValue(engine, qSNaN())",
       
   373     "QScriptValue(engine, qQNaN())",
       
   374     "QScriptValue(engine, qInf())",
       
   375     "QScriptValue(engine, -qInf())",
       
   376     "QScriptValue(engine, \"NaN\")",
       
   377     "QScriptValue(engine, \"Infinity\")",
       
   378     "QScriptValue(engine, \"-Infinity\")",
       
   379     "QScriptValue(engine, \"ciao\")",
       
   380     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   381     "QScriptValue(engine, QString(\"\"))",
       
   382     "QScriptValue(engine, QString())",
       
   383     "QScriptValue(engine, QString(\"0\"))",
       
   384     "QScriptValue(engine, QString(\"123\"))",
       
   385     "QScriptValue(engine, QString(\"1.23\"))",
       
   386     "engine->evaluate(\"[]\")",
       
   387     "engine->evaluate(\"{}\")",
       
   388     "engine->evaluate(\"Object.prototype\")",
       
   389     "engine->evaluate(\"Date.prototype\")",
       
   390     "engine->evaluate(\"Array.prototype\")",
       
   391     "engine->evaluate(\"Function.prototype\")",
       
   392     "engine->evaluate(\"Error.prototype\")",
       
   393     "engine->evaluate(\"Object\")",
       
   394     "engine->evaluate(\"Array\")",
       
   395     "engine->evaluate(\"Number\")",
       
   396     "engine->evaluate(\"Function\")",
       
   397     "engine->evaluate(\"(function() { return 1; })\")",
       
   398     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   399     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   400     "engine->evaluate(\"/foo/\")",
       
   401     "engine->evaluate(\"new Object()\")",
       
   402     "engine->evaluate(\"new Array()\")",
       
   403     "engine->evaluate(\"new Error()\")",
       
   404     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   405     "engine->evaluate(\"Undefined\")",
       
   406     "engine->evaluate(\"Null\")",
       
   407     "engine->evaluate(\"True\")",
       
   408     "engine->evaluate(\"False\")",
       
   409     "engine->evaluate(\"undefined\")",
       
   410     "engine->evaluate(\"null\")",
       
   411     "engine->evaluate(\"true\")",
       
   412     "engine->evaluate(\"false\")",
       
   413     "engine->evaluate(\"122\")",
       
   414     "engine->evaluate(\"124\")",
       
   415     "engine->evaluate(\"0\")",
       
   416     "engine->evaluate(\"0.0\")",
       
   417     "engine->evaluate(\"123.0\")",
       
   418     "engine->evaluate(\"6.37e-8\")",
       
   419     "engine->evaluate(\"-6.37e-8\")",
       
   420     "engine->evaluate(\"0x43211234\")",
       
   421     "engine->evaluate(\"0x10000\")",
       
   422     "engine->evaluate(\"0x10001\")",
       
   423     "engine->evaluate(\"NaN\")",
       
   424     "engine->evaluate(\"Infinity\")",
       
   425     "engine->evaluate(\"-Infinity\")",
       
   426     "engine->evaluate(\"'ciao'\")",
       
   427     "engine->evaluate(\"''\")",
       
   428     "engine->evaluate(\"'0'\")",
       
   429     "engine->evaluate(\"'123'\")",
       
   430     "engine->evaluate(\"'12.4'\")",
       
   431     "engine->nullValue()",
       
   432     "engine->undefinedValue()",
       
   433     "engine->newObject()",
       
   434     "engine->newArray()",
       
   435     "engine->newArray(10)",
       
   436     "engine->newDate(QDateTime())",
       
   437     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   438     "engine->newVariant(QVariant())",
       
   439     "engine->newVariant(QVariant(123))",
       
   440     "engine->newVariant(QVariant(false))",
       
   441     "engine->newQObject(0)",
       
   442     "engine->newQObject(engine)",};
       
   443 static qsreal toNumber_valueArray [] = {
       
   444     0, qQNaN(), 0, 1, 0, 122, 124, 0, 0, 123, 
       
   445     6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), 
       
   446     qInf(), qInf(), qQNaN(), qQNaN(), 0, 0, 0, 123, 12.4, qQNaN(), 
       
   447     0, 1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 
       
   448     1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), qInf(), qInf(), 
       
   449     qQNaN(), qQNaN(), 0, 0, 0, 123, 12.3, qQNaN(), 0, 1, 
       
   450     0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 
       
   451     65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), qInf(), qInf(), qQNaN(), qQNaN(), 
       
   452     0, 0, 0, 123, 1.23, 0, qQNaN(), qQNaN(), qQNaN(), 0, 
       
   453     qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 
       
   454     qQNaN(), 0, qQNaN(), 22, qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 0, 
       
   455     1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 
       
   456     65536, 65537, qQNaN(), qInf(), qInf(), qQNaN(), 0, 0, 123, 12.4, 
       
   457     0, qQNaN(), qQNaN(), 0, qQNaN(), qQNaN(), qQNaN(), qQNaN(), 123, 0, 
       
   458     0, qQNaN(), };
       
   459 void tst_QScriptValue::toNumber_makeData(const char* expr)
       
   460 {
       
   461     static QHash<QString, qsreal> toNumber;
       
   462     if (toNumber.isEmpty()) {
       
   463         toNumber.reserve(142);
       
   464         for (unsigned i = 0; i < 142; ++i)
       
   465             toNumber.insert(toNumber_tagArray[i], toNumber_valueArray[i]);
       
   466     }
       
   467     newRow(expr) << toNumber.value(expr);
       
   468 }
       
   469 
       
   470 void tst_QScriptValue::toNumber_test(const char*, const QScriptValue& value)
       
   471 {
       
   472     QFETCH(qsreal, expected);
       
   473     if (qIsNaN(expected)) {
       
   474         QVERIFY(qIsNaN(value.toNumber()));
       
   475         return;
       
   476     }
       
   477     if (qIsInf(expected)) {
       
   478         QVERIFY(qIsInf(value.toNumber()));
       
   479         QVERIFY(qIsInf(value.toNumber()));
       
   480         return;
       
   481     }
       
   482     QCOMPARE(value.toNumber(), expected);
       
   483     QCOMPARE(value.toNumber(), expected);
       
   484 }
       
   485 
       
   486 DEFINE_TEST_FUNCTION(toNumber)
       
   487 
       
   488 
       
   489 void tst_QScriptValue::toBool_initData()
       
   490 {
       
   491     QTest::addColumn<bool>("expected");
       
   492     initScriptValues();
       
   493 }
       
   494 
       
   495 static QString toBool_tagArray [] = {
       
   496     "QScriptValue()",
       
   497     "QScriptValue(QScriptValue::UndefinedValue)",
       
   498     "QScriptValue(QScriptValue::NullValue)",
       
   499     "QScriptValue(true)",
       
   500     "QScriptValue(false)",
       
   501     "QScriptValue(int(122))",
       
   502     "QScriptValue(uint(124))",
       
   503     "QScriptValue(0)",
       
   504     "QScriptValue(0.0)",
       
   505     "QScriptValue(123.0)",
       
   506     "QScriptValue(6.37e-8)",
       
   507     "QScriptValue(-6.37e-8)",
       
   508     "QScriptValue(0x43211234)",
       
   509     "QScriptValue(0x10000)",
       
   510     "QScriptValue(0x10001)",
       
   511     "QScriptValue(qSNaN())",
       
   512     "QScriptValue(qQNaN())",
       
   513     "QScriptValue(qInf())",
       
   514     "QScriptValue(-qInf())",
       
   515     "QScriptValue(\"NaN\")",
       
   516     "QScriptValue(\"Infinity\")",
       
   517     "QScriptValue(\"-Infinity\")",
       
   518     "QScriptValue(\"ciao\")",
       
   519     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
   520     "QScriptValue(QString(\"\"))",
       
   521     "QScriptValue(QString())",
       
   522     "QScriptValue(QString(\"0\"))",
       
   523     "QScriptValue(QString(\"123\"))",
       
   524     "QScriptValue(QString(\"12.4\"))",
       
   525     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
   526     "QScriptValue(0, QScriptValue::NullValue)",
       
   527     "QScriptValue(0, true)",
       
   528     "QScriptValue(0, false)",
       
   529     "QScriptValue(0, int(122))",
       
   530     "QScriptValue(0, uint(124))",
       
   531     "QScriptValue(0, 0)",
       
   532     "QScriptValue(0, 0.0)",
       
   533     "QScriptValue(0, 123.0)",
       
   534     "QScriptValue(0, 6.37e-8)",
       
   535     "QScriptValue(0, -6.37e-8)",
       
   536     "QScriptValue(0, 0x43211234)",
       
   537     "QScriptValue(0, 0x10000)",
       
   538     "QScriptValue(0, 0x10001)",
       
   539     "QScriptValue(0, qSNaN())",
       
   540     "QScriptValue(0, qQNaN())",
       
   541     "QScriptValue(0, qInf())",
       
   542     "QScriptValue(0, -qInf())",
       
   543     "QScriptValue(0, \"NaN\")",
       
   544     "QScriptValue(0, \"Infinity\")",
       
   545     "QScriptValue(0, \"-Infinity\")",
       
   546     "QScriptValue(0, \"ciao\")",
       
   547     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   548     "QScriptValue(0, QString(\"\"))",
       
   549     "QScriptValue(0, QString())",
       
   550     "QScriptValue(0, QString(\"0\"))",
       
   551     "QScriptValue(0, QString(\"123\"))",
       
   552     "QScriptValue(0, QString(\"12.3\"))",
       
   553     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   554     "QScriptValue(engine, QScriptValue::NullValue)",
       
   555     "QScriptValue(engine, true)",
       
   556     "QScriptValue(engine, false)",
       
   557     "QScriptValue(engine, int(122))",
       
   558     "QScriptValue(engine, uint(124))",
       
   559     "QScriptValue(engine, 0)",
       
   560     "QScriptValue(engine, 0.0)",
       
   561     "QScriptValue(engine, 123.0)",
       
   562     "QScriptValue(engine, 6.37e-8)",
       
   563     "QScriptValue(engine, -6.37e-8)",
       
   564     "QScriptValue(engine, 0x43211234)",
       
   565     "QScriptValue(engine, 0x10000)",
       
   566     "QScriptValue(engine, 0x10001)",
       
   567     "QScriptValue(engine, qSNaN())",
       
   568     "QScriptValue(engine, qQNaN())",
       
   569     "QScriptValue(engine, qInf())",
       
   570     "QScriptValue(engine, -qInf())",
       
   571     "QScriptValue(engine, \"NaN\")",
       
   572     "QScriptValue(engine, \"Infinity\")",
       
   573     "QScriptValue(engine, \"-Infinity\")",
       
   574     "QScriptValue(engine, \"ciao\")",
       
   575     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   576     "QScriptValue(engine, QString(\"\"))",
       
   577     "QScriptValue(engine, QString())",
       
   578     "QScriptValue(engine, QString(\"0\"))",
       
   579     "QScriptValue(engine, QString(\"123\"))",
       
   580     "QScriptValue(engine, QString(\"1.23\"))",
       
   581     "engine->evaluate(\"[]\")",
       
   582     "engine->evaluate(\"{}\")",
       
   583     "engine->evaluate(\"Object.prototype\")",
       
   584     "engine->evaluate(\"Date.prototype\")",
       
   585     "engine->evaluate(\"Array.prototype\")",
       
   586     "engine->evaluate(\"Function.prototype\")",
       
   587     "engine->evaluate(\"Error.prototype\")",
       
   588     "engine->evaluate(\"Object\")",
       
   589     "engine->evaluate(\"Array\")",
       
   590     "engine->evaluate(\"Number\")",
       
   591     "engine->evaluate(\"Function\")",
       
   592     "engine->evaluate(\"(function() { return 1; })\")",
       
   593     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   594     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   595     "engine->evaluate(\"/foo/\")",
       
   596     "engine->evaluate(\"new Object()\")",
       
   597     "engine->evaluate(\"new Array()\")",
       
   598     "engine->evaluate(\"new Error()\")",
       
   599     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   600     "engine->evaluate(\"Undefined\")",
       
   601     "engine->evaluate(\"Null\")",
       
   602     "engine->evaluate(\"True\")",
       
   603     "engine->evaluate(\"False\")",
       
   604     "engine->evaluate(\"undefined\")",
       
   605     "engine->evaluate(\"null\")",
       
   606     "engine->evaluate(\"true\")",
       
   607     "engine->evaluate(\"false\")",
       
   608     "engine->evaluate(\"122\")",
       
   609     "engine->evaluate(\"124\")",
       
   610     "engine->evaluate(\"0\")",
       
   611     "engine->evaluate(\"0.0\")",
       
   612     "engine->evaluate(\"123.0\")",
       
   613     "engine->evaluate(\"6.37e-8\")",
       
   614     "engine->evaluate(\"-6.37e-8\")",
       
   615     "engine->evaluate(\"0x43211234\")",
       
   616     "engine->evaluate(\"0x10000\")",
       
   617     "engine->evaluate(\"0x10001\")",
       
   618     "engine->evaluate(\"NaN\")",
       
   619     "engine->evaluate(\"Infinity\")",
       
   620     "engine->evaluate(\"-Infinity\")",
       
   621     "engine->evaluate(\"'ciao'\")",
       
   622     "engine->evaluate(\"''\")",
       
   623     "engine->evaluate(\"'0'\")",
       
   624     "engine->evaluate(\"'123'\")",
       
   625     "engine->evaluate(\"'12.4'\")",
       
   626     "engine->nullValue()",
       
   627     "engine->undefinedValue()",
       
   628     "engine->newObject()",
       
   629     "engine->newArray()",
       
   630     "engine->newArray(10)",
       
   631     "engine->newDate(QDateTime())",
       
   632     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   633     "engine->newVariant(QVariant())",
       
   634     "engine->newVariant(QVariant(123))",
       
   635     "engine->newVariant(QVariant(false))",
       
   636     "engine->newQObject(0)",
       
   637     "engine->newQObject(engine)",};
       
   638 
       
   639 static bool toBool_valueArray [] = {
       
   640     false, false, 
       
   641     false, true, 
       
   642     false, true, 
       
   643     true, false, 
       
   644     false, true, 
       
   645     true, true, 
       
   646     true, true, 
       
   647     true, false, 
       
   648     false, true, 
       
   649     true, true, 
       
   650     true, true, 
       
   651     true, true, 
       
   652     false, false, 
       
   653     true, true, 
       
   654     true, false, 
       
   655     false, true, 
       
   656     false, true, 
       
   657     true, false, 
       
   658     false, true, 
       
   659     true, true, 
       
   660     true, true, 
       
   661     true, false, 
       
   662     false, true, 
       
   663     true, true, 
       
   664     true, true, 
       
   665     true, true, 
       
   666     false, false, 
       
   667     true, true, 
       
   668     true, false, 
       
   669     false, true, 
       
   670     false, true, 
       
   671     true, false, 
       
   672     false, true, 
       
   673     true, true, 
       
   674     true, true, 
       
   675     true, false, 
       
   676     false, true, 
       
   677     true, true, 
       
   678     true, true, 
       
   679     true, true, 
       
   680     false, false, 
       
   681     true, true, 
       
   682     true, true, 
       
   683     false, true, 
       
   684     true, true, 
       
   685     true, true, 
       
   686     true, true, 
       
   687     true, true, 
       
   688     true, true, 
       
   689     true, true, 
       
   690     true, true, 
       
   691     true, true, 
       
   692     true, true, 
       
   693     true, true, 
       
   694     false, false, 
       
   695     true, false, 
       
   696     true, true, 
       
   697     false, false, 
       
   698     true, true, 
       
   699     true, true, 
       
   700     true, true, 
       
   701     false, true, 
       
   702     true, true, 
       
   703     false, true, 
       
   704     true, true, 
       
   705     false, false, 
       
   706     true, true, 
       
   707     true, true, 
       
   708     true, true, 
       
   709     true, true, 
       
   710     false, true, };
       
   711 
       
   712 void tst_QScriptValue::toBool_makeData(const char* expr)
       
   713 {
       
   714     static QHash<QString, bool> toBool;
       
   715     if (toBool.isEmpty()) {
       
   716         toBool.reserve(142);
       
   717         for (unsigned i = 0; i < 142; ++i)
       
   718             toBool.insert(toBool_tagArray[i], toBool_valueArray[i]);
       
   719     }
       
   720     newRow(expr) << toBool.value(expr);
       
   721 }
       
   722 
       
   723 void tst_QScriptValue::toBool_test(const char*, const QScriptValue& value)
       
   724 {
       
   725     QFETCH(bool, expected);
       
   726     QCOMPARE(value.toBool(), expected);
       
   727     QCOMPARE(value.toBool(), expected);
       
   728 }
       
   729 
       
   730 DEFINE_TEST_FUNCTION(toBool)
       
   731 
       
   732 
       
   733 void tst_QScriptValue::toBoolean_initData()
       
   734 {
       
   735     QTest::addColumn<bool>("expected");
       
   736     initScriptValues();
       
   737 }
       
   738 
       
   739 static QString toBoolean_tagArray [] = {
       
   740     "QScriptValue()",
       
   741     "QScriptValue(QScriptValue::UndefinedValue)",
       
   742     "QScriptValue(QScriptValue::NullValue)",
       
   743     "QScriptValue(true)",
       
   744     "QScriptValue(false)",
       
   745     "QScriptValue(int(122))",
       
   746     "QScriptValue(uint(124))",
       
   747     "QScriptValue(0)",
       
   748     "QScriptValue(0.0)",
       
   749     "QScriptValue(123.0)",
       
   750     "QScriptValue(6.37e-8)",
       
   751     "QScriptValue(-6.37e-8)",
       
   752     "QScriptValue(0x43211234)",
       
   753     "QScriptValue(0x10000)",
       
   754     "QScriptValue(0x10001)",
       
   755     "QScriptValue(qSNaN())",
       
   756     "QScriptValue(qQNaN())",
       
   757     "QScriptValue(qInf())",
       
   758     "QScriptValue(-qInf())",
       
   759     "QScriptValue(\"NaN\")",
       
   760     "QScriptValue(\"Infinity\")",
       
   761     "QScriptValue(\"-Infinity\")",
       
   762     "QScriptValue(\"ciao\")",
       
   763     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
   764     "QScriptValue(QString(\"\"))",
       
   765     "QScriptValue(QString())",
       
   766     "QScriptValue(QString(\"0\"))",
       
   767     "QScriptValue(QString(\"123\"))",
       
   768     "QScriptValue(QString(\"12.4\"))",
       
   769     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
   770     "QScriptValue(0, QScriptValue::NullValue)",
       
   771     "QScriptValue(0, true)",
       
   772     "QScriptValue(0, false)",
       
   773     "QScriptValue(0, int(122))",
       
   774     "QScriptValue(0, uint(124))",
       
   775     "QScriptValue(0, 0)",
       
   776     "QScriptValue(0, 0.0)",
       
   777     "QScriptValue(0, 123.0)",
       
   778     "QScriptValue(0, 6.37e-8)",
       
   779     "QScriptValue(0, -6.37e-8)",
       
   780     "QScriptValue(0, 0x43211234)",
       
   781     "QScriptValue(0, 0x10000)",
       
   782     "QScriptValue(0, 0x10001)",
       
   783     "QScriptValue(0, qSNaN())",
       
   784     "QScriptValue(0, qQNaN())",
       
   785     "QScriptValue(0, qInf())",
       
   786     "QScriptValue(0, -qInf())",
       
   787     "QScriptValue(0, \"NaN\")",
       
   788     "QScriptValue(0, \"Infinity\")",
       
   789     "QScriptValue(0, \"-Infinity\")",
       
   790     "QScriptValue(0, \"ciao\")",
       
   791     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   792     "QScriptValue(0, QString(\"\"))",
       
   793     "QScriptValue(0, QString())",
       
   794     "QScriptValue(0, QString(\"0\"))",
       
   795     "QScriptValue(0, QString(\"123\"))",
       
   796     "QScriptValue(0, QString(\"12.3\"))",
       
   797     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   798     "QScriptValue(engine, QScriptValue::NullValue)",
       
   799     "QScriptValue(engine, true)",
       
   800     "QScriptValue(engine, false)",
       
   801     "QScriptValue(engine, int(122))",
       
   802     "QScriptValue(engine, uint(124))",
       
   803     "QScriptValue(engine, 0)",
       
   804     "QScriptValue(engine, 0.0)",
       
   805     "QScriptValue(engine, 123.0)",
       
   806     "QScriptValue(engine, 6.37e-8)",
       
   807     "QScriptValue(engine, -6.37e-8)",
       
   808     "QScriptValue(engine, 0x43211234)",
       
   809     "QScriptValue(engine, 0x10000)",
       
   810     "QScriptValue(engine, 0x10001)",
       
   811     "QScriptValue(engine, qSNaN())",
       
   812     "QScriptValue(engine, qQNaN())",
       
   813     "QScriptValue(engine, qInf())",
       
   814     "QScriptValue(engine, -qInf())",
       
   815     "QScriptValue(engine, \"NaN\")",
       
   816     "QScriptValue(engine, \"Infinity\")",
       
   817     "QScriptValue(engine, \"-Infinity\")",
       
   818     "QScriptValue(engine, \"ciao\")",
       
   819     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   820     "QScriptValue(engine, QString(\"\"))",
       
   821     "QScriptValue(engine, QString())",
       
   822     "QScriptValue(engine, QString(\"0\"))",
       
   823     "QScriptValue(engine, QString(\"123\"))",
       
   824     "QScriptValue(engine, QString(\"1.23\"))",
       
   825     "engine->evaluate(\"[]\")",
       
   826     "engine->evaluate(\"{}\")",
       
   827     "engine->evaluate(\"Object.prototype\")",
       
   828     "engine->evaluate(\"Date.prototype\")",
       
   829     "engine->evaluate(\"Array.prototype\")",
       
   830     "engine->evaluate(\"Function.prototype\")",
       
   831     "engine->evaluate(\"Error.prototype\")",
       
   832     "engine->evaluate(\"Object\")",
       
   833     "engine->evaluate(\"Array\")",
       
   834     "engine->evaluate(\"Number\")",
       
   835     "engine->evaluate(\"Function\")",
       
   836     "engine->evaluate(\"(function() { return 1; })\")",
       
   837     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   838     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   839     "engine->evaluate(\"/foo/\")",
       
   840     "engine->evaluate(\"new Object()\")",
       
   841     "engine->evaluate(\"new Array()\")",
       
   842     "engine->evaluate(\"new Error()\")",
       
   843     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   844     "engine->evaluate(\"Undefined\")",
       
   845     "engine->evaluate(\"Null\")",
       
   846     "engine->evaluate(\"True\")",
       
   847     "engine->evaluate(\"False\")",
       
   848     "engine->evaluate(\"undefined\")",
       
   849     "engine->evaluate(\"null\")",
       
   850     "engine->evaluate(\"true\")",
       
   851     "engine->evaluate(\"false\")",
       
   852     "engine->evaluate(\"122\")",
       
   853     "engine->evaluate(\"124\")",
       
   854     "engine->evaluate(\"0\")",
       
   855     "engine->evaluate(\"0.0\")",
       
   856     "engine->evaluate(\"123.0\")",
       
   857     "engine->evaluate(\"6.37e-8\")",
       
   858     "engine->evaluate(\"-6.37e-8\")",
       
   859     "engine->evaluate(\"0x43211234\")",
       
   860     "engine->evaluate(\"0x10000\")",
       
   861     "engine->evaluate(\"0x10001\")",
       
   862     "engine->evaluate(\"NaN\")",
       
   863     "engine->evaluate(\"Infinity\")",
       
   864     "engine->evaluate(\"-Infinity\")",
       
   865     "engine->evaluate(\"'ciao'\")",
       
   866     "engine->evaluate(\"''\")",
       
   867     "engine->evaluate(\"'0'\")",
       
   868     "engine->evaluate(\"'123'\")",
       
   869     "engine->evaluate(\"'12.4'\")",
       
   870     "engine->nullValue()",
       
   871     "engine->undefinedValue()",
       
   872     "engine->newObject()",
       
   873     "engine->newArray()",
       
   874     "engine->newArray(10)",
       
   875     "engine->newDate(QDateTime())",
       
   876     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   877     "engine->newVariant(QVariant())",
       
   878     "engine->newVariant(QVariant(123))",
       
   879     "engine->newVariant(QVariant(false))",
       
   880     "engine->newQObject(0)",
       
   881     "engine->newQObject(engine)",};
       
   882 
       
   883 static bool toBoolean_valueArray [] = {
       
   884     false, false, 
       
   885     false, true, 
       
   886     false, true, 
       
   887     true, false, 
       
   888     false, true, 
       
   889     true, true, 
       
   890     true, true, 
       
   891     true, false, 
       
   892     false, true, 
       
   893     true, true, 
       
   894     true, true, 
       
   895     true, true, 
       
   896     false, false, 
       
   897     true, true, 
       
   898     true, false, 
       
   899     false, true, 
       
   900     false, true, 
       
   901     true, false, 
       
   902     false, true, 
       
   903     true, true, 
       
   904     true, true, 
       
   905     true, false, 
       
   906     false, true, 
       
   907     true, true, 
       
   908     true, true, 
       
   909     true, true, 
       
   910     false, false, 
       
   911     true, true, 
       
   912     true, false, 
       
   913     false, true, 
       
   914     false, true, 
       
   915     true, false, 
       
   916     false, true, 
       
   917     true, true, 
       
   918     true, true, 
       
   919     true, false, 
       
   920     false, true, 
       
   921     true, true, 
       
   922     true, true, 
       
   923     true, true, 
       
   924     false, false, 
       
   925     true, true, 
       
   926     true, true, 
       
   927     false, true, 
       
   928     true, true, 
       
   929     true, true, 
       
   930     true, true, 
       
   931     true, true, 
       
   932     true, true, 
       
   933     true, true, 
       
   934     true, true, 
       
   935     true, true, 
       
   936     true, true, 
       
   937     true, true, 
       
   938     false, false, 
       
   939     true, false, 
       
   940     true, true, 
       
   941     false, false, 
       
   942     true, true, 
       
   943     true, true, 
       
   944     true, true, 
       
   945     false, true, 
       
   946     true, true, 
       
   947     false, true, 
       
   948     true, true, 
       
   949     false, false, 
       
   950     true, true, 
       
   951     true, true, 
       
   952     true, true, 
       
   953     true, true, 
       
   954     false, true, };
       
   955 
       
   956 void tst_QScriptValue::toBoolean_makeData(const char* expr)
       
   957 {
       
   958     static QHash<QString, bool> toBoolean;
       
   959     if (toBoolean.isEmpty()) {
       
   960         toBoolean.reserve(142);
       
   961         for (unsigned i = 0; i < 142; ++i)
       
   962             toBoolean.insert(toBoolean_tagArray[i], toBoolean_valueArray[i]);
       
   963     }
       
   964     newRow(expr) << toBoolean.value(expr);
       
   965 }
       
   966 
       
   967 void tst_QScriptValue::toBoolean_test(const char*, const QScriptValue& value)
       
   968 {
       
   969     QFETCH(bool, expected);
       
   970     QCOMPARE(value.toBoolean(), expected);
       
   971     QCOMPARE(value.toBoolean(), expected);
       
   972 }
       
   973 
       
   974 DEFINE_TEST_FUNCTION(toBoolean)
       
   975 
       
   976 
       
   977 void tst_QScriptValue::toInteger_initData()
       
   978 {
       
   979     QTest::addColumn<qsreal>("expected");
       
   980     initScriptValues();
       
   981 }
       
   982 
       
   983 static QString toInteger_tagArray [] = {
       
   984     "QScriptValue()",
       
   985     "QScriptValue(QScriptValue::UndefinedValue)",
       
   986     "QScriptValue(QScriptValue::NullValue)",
       
   987     "QScriptValue(true)",
       
   988     "QScriptValue(false)",
       
   989     "QScriptValue(int(122))",
       
   990     "QScriptValue(uint(124))",
       
   991     "QScriptValue(0)",
       
   992     "QScriptValue(0.0)",
       
   993     "QScriptValue(123.0)",
       
   994     "QScriptValue(6.37e-8)",
       
   995     "QScriptValue(-6.37e-8)",
       
   996     "QScriptValue(0x43211234)",
       
   997     "QScriptValue(0x10000)",
       
   998     "QScriptValue(0x10001)",
       
   999     "QScriptValue(qSNaN())",
       
  1000     "QScriptValue(qQNaN())",
       
  1001     "QScriptValue(qInf())",
       
  1002     "QScriptValue(-qInf())",
       
  1003     "QScriptValue(\"NaN\")",
       
  1004     "QScriptValue(\"Infinity\")",
       
  1005     "QScriptValue(\"-Infinity\")",
       
  1006     "QScriptValue(\"ciao\")",
       
  1007     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
  1008     "QScriptValue(QString(\"\"))",
       
  1009     "QScriptValue(QString())",
       
  1010     "QScriptValue(QString(\"0\"))",
       
  1011     "QScriptValue(QString(\"123\"))",
       
  1012     "QScriptValue(QString(\"12.4\"))",
       
  1013     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
  1014     "QScriptValue(0, QScriptValue::NullValue)",
       
  1015     "QScriptValue(0, true)",
       
  1016     "QScriptValue(0, false)",
       
  1017     "QScriptValue(0, int(122))",
       
  1018     "QScriptValue(0, uint(124))",
       
  1019     "QScriptValue(0, 0)",
       
  1020     "QScriptValue(0, 0.0)",
       
  1021     "QScriptValue(0, 123.0)",
       
  1022     "QScriptValue(0, 6.37e-8)",
       
  1023     "QScriptValue(0, -6.37e-8)",
       
  1024     "QScriptValue(0, 0x43211234)",
       
  1025     "QScriptValue(0, 0x10000)",
       
  1026     "QScriptValue(0, 0x10001)",
       
  1027     "QScriptValue(0, qSNaN())",
       
  1028     "QScriptValue(0, qQNaN())",
       
  1029     "QScriptValue(0, qInf())",
       
  1030     "QScriptValue(0, -qInf())",
       
  1031     "QScriptValue(0, \"NaN\")",
       
  1032     "QScriptValue(0, \"Infinity\")",
       
  1033     "QScriptValue(0, \"-Infinity\")",
       
  1034     "QScriptValue(0, \"ciao\")",
       
  1035     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
  1036     "QScriptValue(0, QString(\"\"))",
       
  1037     "QScriptValue(0, QString())",
       
  1038     "QScriptValue(0, QString(\"0\"))",
       
  1039     "QScriptValue(0, QString(\"123\"))",
       
  1040     "QScriptValue(0, QString(\"12.3\"))",
       
  1041     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
  1042     "QScriptValue(engine, QScriptValue::NullValue)",
       
  1043     "QScriptValue(engine, true)",
       
  1044     "QScriptValue(engine, false)",
       
  1045     "QScriptValue(engine, int(122))",
       
  1046     "QScriptValue(engine, uint(124))",
       
  1047     "QScriptValue(engine, 0)",
       
  1048     "QScriptValue(engine, 0.0)",
       
  1049     "QScriptValue(engine, 123.0)",
       
  1050     "QScriptValue(engine, 6.37e-8)",
       
  1051     "QScriptValue(engine, -6.37e-8)",
       
  1052     "QScriptValue(engine, 0x43211234)",
       
  1053     "QScriptValue(engine, 0x10000)",
       
  1054     "QScriptValue(engine, 0x10001)",
       
  1055     "QScriptValue(engine, qSNaN())",
       
  1056     "QScriptValue(engine, qQNaN())",
       
  1057     "QScriptValue(engine, qInf())",
       
  1058     "QScriptValue(engine, -qInf())",
       
  1059     "QScriptValue(engine, \"NaN\")",
       
  1060     "QScriptValue(engine, \"Infinity\")",
       
  1061     "QScriptValue(engine, \"-Infinity\")",
       
  1062     "QScriptValue(engine, \"ciao\")",
       
  1063     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
  1064     "QScriptValue(engine, QString(\"\"))",
       
  1065     "QScriptValue(engine, QString())",
       
  1066     "QScriptValue(engine, QString(\"0\"))",
       
  1067     "QScriptValue(engine, QString(\"123\"))",
       
  1068     "QScriptValue(engine, QString(\"1.23\"))",
       
  1069     "engine->evaluate(\"[]\")",
       
  1070     "engine->evaluate(\"{}\")",
       
  1071     "engine->evaluate(\"Object.prototype\")",
       
  1072     "engine->evaluate(\"Date.prototype\")",
       
  1073     "engine->evaluate(\"Array.prototype\")",
       
  1074     "engine->evaluate(\"Function.prototype\")",
       
  1075     "engine->evaluate(\"Error.prototype\")",
       
  1076     "engine->evaluate(\"Object\")",
       
  1077     "engine->evaluate(\"Array\")",
       
  1078     "engine->evaluate(\"Number\")",
       
  1079     "engine->evaluate(\"Function\")",
       
  1080     "engine->evaluate(\"(function() { return 1; })\")",
       
  1081     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
  1082     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
  1083     "engine->evaluate(\"/foo/\")",
       
  1084     "engine->evaluate(\"new Object()\")",
       
  1085     "engine->evaluate(\"new Array()\")",
       
  1086     "engine->evaluate(\"new Error()\")",
       
  1087     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
  1088     "engine->evaluate(\"Undefined\")",
       
  1089     "engine->evaluate(\"Null\")",
       
  1090     "engine->evaluate(\"True\")",
       
  1091     "engine->evaluate(\"False\")",
       
  1092     "engine->evaluate(\"undefined\")",
       
  1093     "engine->evaluate(\"null\")",
       
  1094     "engine->evaluate(\"true\")",
       
  1095     "engine->evaluate(\"false\")",
       
  1096     "engine->evaluate(\"122\")",
       
  1097     "engine->evaluate(\"124\")",
       
  1098     "engine->evaluate(\"0\")",
       
  1099     "engine->evaluate(\"0.0\")",
       
  1100     "engine->evaluate(\"123.0\")",
       
  1101     "engine->evaluate(\"6.37e-8\")",
       
  1102     "engine->evaluate(\"-6.37e-8\")",
       
  1103     "engine->evaluate(\"0x43211234\")",
       
  1104     "engine->evaluate(\"0x10000\")",
       
  1105     "engine->evaluate(\"0x10001\")",
       
  1106     "engine->evaluate(\"NaN\")",
       
  1107     "engine->evaluate(\"Infinity\")",
       
  1108     "engine->evaluate(\"-Infinity\")",
       
  1109     "engine->evaluate(\"'ciao'\")",
       
  1110     "engine->evaluate(\"''\")",
       
  1111     "engine->evaluate(\"'0'\")",
       
  1112     "engine->evaluate(\"'123'\")",
       
  1113     "engine->evaluate(\"'12.4'\")",
       
  1114     "engine->nullValue()",
       
  1115     "engine->undefinedValue()",
       
  1116     "engine->newObject()",
       
  1117     "engine->newArray()",
       
  1118     "engine->newArray(10)",
       
  1119     "engine->newDate(QDateTime())",
       
  1120     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
  1121     "engine->newVariant(QVariant())",
       
  1122     "engine->newVariant(QVariant(123))",
       
  1123     "engine->newVariant(QVariant(false))",
       
  1124     "engine->newQObject(0)",
       
  1125     "engine->newQObject(engine)",};
       
  1126 static qsreal toInteger_valueArray [] = {
       
  1127     0, 0, 0, 1, 0, 122, 124, 0, 0, 123, 
       
  1128     0, 0, 1126240820, 65536, 65537, 0, 0, qInf(), qInf(), 0, 
       
  1129     qInf(), qInf(), 0, 0, 0, 0, 0, 123, 12, 0, 
       
  1130     0, 1, 0, 122, 124, 0, 0, 123, 0, 0, 
       
  1131     1126240820, 65536, 65537, 0, 0, qInf(), qInf(), 0, qInf(), qInf(), 
       
  1132     0, 0, 0, 0, 0, 123, 12, 0, 0, 1, 
       
  1133     0, 122, 124, 0, 0, 123, 0, 0, 1126240820, 65536, 
       
  1134     65537, 0, 0, qInf(), qInf(), 0, qInf(), qInf(), 0, 0, 
       
  1135     0, 0, 0, 123, 1, 0, 0, 0, 0, 0, 
       
  1136     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
       
  1137     0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 
       
  1138     1, 0, 122, 124, 0, 0, 123, 0, 0, 1126240820, 
       
  1139     65536, 65537, 0, qInf(), qInf(), 0, 0, 0, 123, 12, 
       
  1140     0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 
       
  1141     0, 0, };
       
  1142 void tst_QScriptValue::toInteger_makeData(const char* expr)
       
  1143 {
       
  1144     static QHash<QString, qsreal> toInteger;
       
  1145     if (toInteger.isEmpty()) {
       
  1146         toInteger.reserve(142);
       
  1147         for (unsigned i = 0; i < 142; ++i)
       
  1148             toInteger.insert(toInteger_tagArray[i], toInteger_valueArray[i]);
       
  1149     }
       
  1150     newRow(expr) << toInteger.value(expr);
       
  1151 }
       
  1152 
       
  1153 void tst_QScriptValue::toInteger_test(const char*, const QScriptValue& value)
       
  1154 {
       
  1155     QFETCH(qsreal, expected);
       
  1156     if (qIsInf(expected)) {
       
  1157         QVERIFY(qIsInf(value.toInteger()));
       
  1158         QVERIFY(qIsInf(value.toInteger()));
       
  1159         return;
       
  1160     }
       
  1161     QCOMPARE(value.toInteger(), expected);
       
  1162     QCOMPARE(value.toInteger(), expected);
       
  1163 }
       
  1164 
       
  1165 DEFINE_TEST_FUNCTION(toInteger)
       
  1166 
       
  1167 
       
  1168 void tst_QScriptValue::toInt32_initData()
       
  1169 {
       
  1170     QTest::addColumn<qint32>("expected");
       
  1171     initScriptValues();
       
  1172 }
       
  1173 
       
  1174 static QString toInt32_tagArray [] = {
       
  1175     "QScriptValue()",
       
  1176     "QScriptValue(QScriptValue::UndefinedValue)",
       
  1177     "QScriptValue(QScriptValue::NullValue)",
       
  1178     "QScriptValue(true)",
       
  1179     "QScriptValue(false)",
       
  1180     "QScriptValue(int(122))",
       
  1181     "QScriptValue(uint(124))",
       
  1182     "QScriptValue(0)",
       
  1183     "QScriptValue(0.0)",
       
  1184     "QScriptValue(123.0)",
       
  1185     "QScriptValue(6.37e-8)",
       
  1186     "QScriptValue(-6.37e-8)",
       
  1187     "QScriptValue(0x43211234)",
       
  1188     "QScriptValue(0x10000)",
       
  1189     "QScriptValue(0x10001)",
       
  1190     "QScriptValue(qSNaN())",
       
  1191     "QScriptValue(qQNaN())",
       
  1192     "QScriptValue(qInf())",
       
  1193     "QScriptValue(-qInf())",
       
  1194     "QScriptValue(\"NaN\")",
       
  1195     "QScriptValue(\"Infinity\")",
       
  1196     "QScriptValue(\"-Infinity\")",
       
  1197     "QScriptValue(\"ciao\")",
       
  1198     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
  1199     "QScriptValue(QString(\"\"))",
       
  1200     "QScriptValue(QString())",
       
  1201     "QScriptValue(QString(\"0\"))",
       
  1202     "QScriptValue(QString(\"123\"))",
       
  1203     "QScriptValue(QString(\"12.4\"))",
       
  1204     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
  1205     "QScriptValue(0, QScriptValue::NullValue)",
       
  1206     "QScriptValue(0, true)",
       
  1207     "QScriptValue(0, false)",
       
  1208     "QScriptValue(0, int(122))",
       
  1209     "QScriptValue(0, uint(124))",
       
  1210     "QScriptValue(0, 0)",
       
  1211     "QScriptValue(0, 0.0)",
       
  1212     "QScriptValue(0, 123.0)",
       
  1213     "QScriptValue(0, 6.37e-8)",
       
  1214     "QScriptValue(0, -6.37e-8)",
       
  1215     "QScriptValue(0, 0x43211234)",
       
  1216     "QScriptValue(0, 0x10000)",
       
  1217     "QScriptValue(0, 0x10001)",
       
  1218     "QScriptValue(0, qSNaN())",
       
  1219     "QScriptValue(0, qQNaN())",
       
  1220     "QScriptValue(0, qInf())",
       
  1221     "QScriptValue(0, -qInf())",
       
  1222     "QScriptValue(0, \"NaN\")",
       
  1223     "QScriptValue(0, \"Infinity\")",
       
  1224     "QScriptValue(0, \"-Infinity\")",
       
  1225     "QScriptValue(0, \"ciao\")",
       
  1226     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
  1227     "QScriptValue(0, QString(\"\"))",
       
  1228     "QScriptValue(0, QString())",
       
  1229     "QScriptValue(0, QString(\"0\"))",
       
  1230     "QScriptValue(0, QString(\"123\"))",
       
  1231     "QScriptValue(0, QString(\"12.3\"))",
       
  1232     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
  1233     "QScriptValue(engine, QScriptValue::NullValue)",
       
  1234     "QScriptValue(engine, true)",
       
  1235     "QScriptValue(engine, false)",
       
  1236     "QScriptValue(engine, int(122))",
       
  1237     "QScriptValue(engine, uint(124))",
       
  1238     "QScriptValue(engine, 0)",
       
  1239     "QScriptValue(engine, 0.0)",
       
  1240     "QScriptValue(engine, 123.0)",
       
  1241     "QScriptValue(engine, 6.37e-8)",
       
  1242     "QScriptValue(engine, -6.37e-8)",
       
  1243     "QScriptValue(engine, 0x43211234)",
       
  1244     "QScriptValue(engine, 0x10000)",
       
  1245     "QScriptValue(engine, 0x10001)",
       
  1246     "QScriptValue(engine, qSNaN())",
       
  1247     "QScriptValue(engine, qQNaN())",
       
  1248     "QScriptValue(engine, qInf())",
       
  1249     "QScriptValue(engine, -qInf())",
       
  1250     "QScriptValue(engine, \"NaN\")",
       
  1251     "QScriptValue(engine, \"Infinity\")",
       
  1252     "QScriptValue(engine, \"-Infinity\")",
       
  1253     "QScriptValue(engine, \"ciao\")",
       
  1254     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
  1255     "QScriptValue(engine, QString(\"\"))",
       
  1256     "QScriptValue(engine, QString())",
       
  1257     "QScriptValue(engine, QString(\"0\"))",
       
  1258     "QScriptValue(engine, QString(\"123\"))",
       
  1259     "QScriptValue(engine, QString(\"1.23\"))",
       
  1260     "engine->evaluate(\"[]\")",
       
  1261     "engine->evaluate(\"{}\")",
       
  1262     "engine->evaluate(\"Object.prototype\")",
       
  1263     "engine->evaluate(\"Date.prototype\")",
       
  1264     "engine->evaluate(\"Array.prototype\")",
       
  1265     "engine->evaluate(\"Function.prototype\")",
       
  1266     "engine->evaluate(\"Error.prototype\")",
       
  1267     "engine->evaluate(\"Object\")",
       
  1268     "engine->evaluate(\"Array\")",
       
  1269     "engine->evaluate(\"Number\")",
       
  1270     "engine->evaluate(\"Function\")",
       
  1271     "engine->evaluate(\"(function() { return 1; })\")",
       
  1272     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
  1273     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
  1274     "engine->evaluate(\"/foo/\")",
       
  1275     "engine->evaluate(\"new Object()\")",
       
  1276     "engine->evaluate(\"new Array()\")",
       
  1277     "engine->evaluate(\"new Error()\")",
       
  1278     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
  1279     "engine->evaluate(\"Undefined\")",
       
  1280     "engine->evaluate(\"Null\")",
       
  1281     "engine->evaluate(\"True\")",
       
  1282     "engine->evaluate(\"False\")",
       
  1283     "engine->evaluate(\"undefined\")",
       
  1284     "engine->evaluate(\"null\")",
       
  1285     "engine->evaluate(\"true\")",
       
  1286     "engine->evaluate(\"false\")",
       
  1287     "engine->evaluate(\"122\")",
       
  1288     "engine->evaluate(\"124\")",
       
  1289     "engine->evaluate(\"0\")",
       
  1290     "engine->evaluate(\"0.0\")",
       
  1291     "engine->evaluate(\"123.0\")",
       
  1292     "engine->evaluate(\"6.37e-8\")",
       
  1293     "engine->evaluate(\"-6.37e-8\")",
       
  1294     "engine->evaluate(\"0x43211234\")",
       
  1295     "engine->evaluate(\"0x10000\")",
       
  1296     "engine->evaluate(\"0x10001\")",
       
  1297     "engine->evaluate(\"NaN\")",
       
  1298     "engine->evaluate(\"Infinity\")",
       
  1299     "engine->evaluate(\"-Infinity\")",
       
  1300     "engine->evaluate(\"'ciao'\")",
       
  1301     "engine->evaluate(\"''\")",
       
  1302     "engine->evaluate(\"'0'\")",
       
  1303     "engine->evaluate(\"'123'\")",
       
  1304     "engine->evaluate(\"'12.4'\")",
       
  1305     "engine->nullValue()",
       
  1306     "engine->undefinedValue()",
       
  1307     "engine->newObject()",
       
  1308     "engine->newArray()",
       
  1309     "engine->newArray(10)",
       
  1310     "engine->newDate(QDateTime())",
       
  1311     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
  1312     "engine->newVariant(QVariant())",
       
  1313     "engine->newVariant(QVariant(123))",
       
  1314     "engine->newVariant(QVariant(false))",
       
  1315     "engine->newQObject(0)",
       
  1316     "engine->newQObject(engine)",};
       
  1317 
       
  1318 static qint32 toInt32_valueArray [] = {
       
  1319     0, 0, 
       
  1320     0, 1, 
       
  1321     0, 122, 
       
  1322     124, 0, 
       
  1323     0, 123, 
       
  1324     0, 0, 
       
  1325     1126240820, 65536, 
       
  1326     65537, 0, 
       
  1327     0, 0, 
       
  1328     0, 0, 
       
  1329     0, 0, 
       
  1330     0, 0, 
       
  1331     0, 0, 
       
  1332     0, 123, 
       
  1333     12, 0, 
       
  1334     0, 1, 
       
  1335     0, 122, 
       
  1336     124, 0, 
       
  1337     0, 123, 
       
  1338     0, 0, 
       
  1339     1126240820, 65536, 
       
  1340     65537, 0, 
       
  1341     0, 0, 
       
  1342     0, 0, 
       
  1343     0, 0, 
       
  1344     0, 0, 
       
  1345     0, 0, 
       
  1346     0, 123, 
       
  1347     12, 0, 
       
  1348     0, 1, 
       
  1349     0, 122, 
       
  1350     124, 0, 
       
  1351     0, 123, 
       
  1352     0, 0, 
       
  1353     1126240820, 65536, 
       
  1354     65537, 0, 
       
  1355     0, 0, 
       
  1356     0, 0, 
       
  1357     0, 0, 
       
  1358     0, 0, 
       
  1359     0, 0, 
       
  1360     0, 123, 
       
  1361     1, 0, 
       
  1362     0, 0, 
       
  1363     0, 0, 
       
  1364     0, 0, 
       
  1365     0, 0, 
       
  1366     0, 0, 
       
  1367     0, 0, 
       
  1368     0, 0, 
       
  1369     0, 0, 
       
  1370     0, 22, 
       
  1371     0, 0, 
       
  1372     0, 0, 
       
  1373     0, 0, 
       
  1374     1, 0, 
       
  1375     122, 124, 
       
  1376     0, 0, 
       
  1377     123, 0, 
       
  1378     0, 1126240820, 
       
  1379     65536, 65537, 
       
  1380     0, 0, 
       
  1381     0, 0, 
       
  1382     0, 0, 
       
  1383     123, 12, 
       
  1384     0, 0, 
       
  1385     0, 0, 
       
  1386     0, 0, 
       
  1387     0, 0, 
       
  1388     123, 0, 
       
  1389     0, 0, };
       
  1390 
       
  1391 void tst_QScriptValue::toInt32_makeData(const char* expr)
       
  1392 {
       
  1393     static QHash<QString, qint32> toInt32;
       
  1394     if (toInt32.isEmpty()) {
       
  1395         toInt32.reserve(142);
       
  1396         for (unsigned i = 0; i < 142; ++i)
       
  1397             toInt32.insert(toInt32_tagArray[i], toInt32_valueArray[i]);
       
  1398     }
       
  1399     newRow(expr) << toInt32.value(expr);
       
  1400 }
       
  1401 
       
  1402 void tst_QScriptValue::toInt32_test(const char*, const QScriptValue& value)
       
  1403 {
       
  1404     QFETCH(qint32, expected);
       
  1405     QCOMPARE(value.toInt32(), expected);
       
  1406     QCOMPARE(value.toInt32(), expected);
       
  1407 }
       
  1408 
       
  1409 DEFINE_TEST_FUNCTION(toInt32)
       
  1410 
       
  1411 
       
  1412 void tst_QScriptValue::toUInt32_initData()
       
  1413 {
       
  1414     QTest::addColumn<quint32>("expected");
       
  1415     initScriptValues();
       
  1416 }
       
  1417 
       
  1418 static QString toUInt32_tagArray [] = {
       
  1419     "QScriptValue()",
       
  1420     "QScriptValue(QScriptValue::UndefinedValue)",
       
  1421     "QScriptValue(QScriptValue::NullValue)",
       
  1422     "QScriptValue(true)",
       
  1423     "QScriptValue(false)",
       
  1424     "QScriptValue(int(122))",
       
  1425     "QScriptValue(uint(124))",
       
  1426     "QScriptValue(0)",
       
  1427     "QScriptValue(0.0)",
       
  1428     "QScriptValue(123.0)",
       
  1429     "QScriptValue(6.37e-8)",
       
  1430     "QScriptValue(-6.37e-8)",
       
  1431     "QScriptValue(0x43211234)",
       
  1432     "QScriptValue(0x10000)",
       
  1433     "QScriptValue(0x10001)",
       
  1434     "QScriptValue(qSNaN())",
       
  1435     "QScriptValue(qQNaN())",
       
  1436     "QScriptValue(qInf())",
       
  1437     "QScriptValue(-qInf())",
       
  1438     "QScriptValue(\"NaN\")",
       
  1439     "QScriptValue(\"Infinity\")",
       
  1440     "QScriptValue(\"-Infinity\")",
       
  1441     "QScriptValue(\"ciao\")",
       
  1442     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
  1443     "QScriptValue(QString(\"\"))",
       
  1444     "QScriptValue(QString())",
       
  1445     "QScriptValue(QString(\"0\"))",
       
  1446     "QScriptValue(QString(\"123\"))",
       
  1447     "QScriptValue(QString(\"12.4\"))",
       
  1448     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
  1449     "QScriptValue(0, QScriptValue::NullValue)",
       
  1450     "QScriptValue(0, true)",
       
  1451     "QScriptValue(0, false)",
       
  1452     "QScriptValue(0, int(122))",
       
  1453     "QScriptValue(0, uint(124))",
       
  1454     "QScriptValue(0, 0)",
       
  1455     "QScriptValue(0, 0.0)",
       
  1456     "QScriptValue(0, 123.0)",
       
  1457     "QScriptValue(0, 6.37e-8)",
       
  1458     "QScriptValue(0, -6.37e-8)",
       
  1459     "QScriptValue(0, 0x43211234)",
       
  1460     "QScriptValue(0, 0x10000)",
       
  1461     "QScriptValue(0, 0x10001)",
       
  1462     "QScriptValue(0, qSNaN())",
       
  1463     "QScriptValue(0, qQNaN())",
       
  1464     "QScriptValue(0, qInf())",
       
  1465     "QScriptValue(0, -qInf())",
       
  1466     "QScriptValue(0, \"NaN\")",
       
  1467     "QScriptValue(0, \"Infinity\")",
       
  1468     "QScriptValue(0, \"-Infinity\")",
       
  1469     "QScriptValue(0, \"ciao\")",
       
  1470     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
  1471     "QScriptValue(0, QString(\"\"))",
       
  1472     "QScriptValue(0, QString())",
       
  1473     "QScriptValue(0, QString(\"0\"))",
       
  1474     "QScriptValue(0, QString(\"123\"))",
       
  1475     "QScriptValue(0, QString(\"12.3\"))",
       
  1476     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
  1477     "QScriptValue(engine, QScriptValue::NullValue)",
       
  1478     "QScriptValue(engine, true)",
       
  1479     "QScriptValue(engine, false)",
       
  1480     "QScriptValue(engine, int(122))",
       
  1481     "QScriptValue(engine, uint(124))",
       
  1482     "QScriptValue(engine, 0)",
       
  1483     "QScriptValue(engine, 0.0)",
       
  1484     "QScriptValue(engine, 123.0)",
       
  1485     "QScriptValue(engine, 6.37e-8)",
       
  1486     "QScriptValue(engine, -6.37e-8)",
       
  1487     "QScriptValue(engine, 0x43211234)",
       
  1488     "QScriptValue(engine, 0x10000)",
       
  1489     "QScriptValue(engine, 0x10001)",
       
  1490     "QScriptValue(engine, qSNaN())",
       
  1491     "QScriptValue(engine, qQNaN())",
       
  1492     "QScriptValue(engine, qInf())",
       
  1493     "QScriptValue(engine, -qInf())",
       
  1494     "QScriptValue(engine, \"NaN\")",
       
  1495     "QScriptValue(engine, \"Infinity\")",
       
  1496     "QScriptValue(engine, \"-Infinity\")",
       
  1497     "QScriptValue(engine, \"ciao\")",
       
  1498     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
  1499     "QScriptValue(engine, QString(\"\"))",
       
  1500     "QScriptValue(engine, QString())",
       
  1501     "QScriptValue(engine, QString(\"0\"))",
       
  1502     "QScriptValue(engine, QString(\"123\"))",
       
  1503     "QScriptValue(engine, QString(\"1.23\"))",
       
  1504     "engine->evaluate(\"[]\")",
       
  1505     "engine->evaluate(\"{}\")",
       
  1506     "engine->evaluate(\"Object.prototype\")",
       
  1507     "engine->evaluate(\"Date.prototype\")",
       
  1508     "engine->evaluate(\"Array.prototype\")",
       
  1509     "engine->evaluate(\"Function.prototype\")",
       
  1510     "engine->evaluate(\"Error.prototype\")",
       
  1511     "engine->evaluate(\"Object\")",
       
  1512     "engine->evaluate(\"Array\")",
       
  1513     "engine->evaluate(\"Number\")",
       
  1514     "engine->evaluate(\"Function\")",
       
  1515     "engine->evaluate(\"(function() { return 1; })\")",
       
  1516     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
  1517     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
  1518     "engine->evaluate(\"/foo/\")",
       
  1519     "engine->evaluate(\"new Object()\")",
       
  1520     "engine->evaluate(\"new Array()\")",
       
  1521     "engine->evaluate(\"new Error()\")",
       
  1522     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
  1523     "engine->evaluate(\"Undefined\")",
       
  1524     "engine->evaluate(\"Null\")",
       
  1525     "engine->evaluate(\"True\")",
       
  1526     "engine->evaluate(\"False\")",
       
  1527     "engine->evaluate(\"undefined\")",
       
  1528     "engine->evaluate(\"null\")",
       
  1529     "engine->evaluate(\"true\")",
       
  1530     "engine->evaluate(\"false\")",
       
  1531     "engine->evaluate(\"122\")",
       
  1532     "engine->evaluate(\"124\")",
       
  1533     "engine->evaluate(\"0\")",
       
  1534     "engine->evaluate(\"0.0\")",
       
  1535     "engine->evaluate(\"123.0\")",
       
  1536     "engine->evaluate(\"6.37e-8\")",
       
  1537     "engine->evaluate(\"-6.37e-8\")",
       
  1538     "engine->evaluate(\"0x43211234\")",
       
  1539     "engine->evaluate(\"0x10000\")",
       
  1540     "engine->evaluate(\"0x10001\")",
       
  1541     "engine->evaluate(\"NaN\")",
       
  1542     "engine->evaluate(\"Infinity\")",
       
  1543     "engine->evaluate(\"-Infinity\")",
       
  1544     "engine->evaluate(\"'ciao'\")",
       
  1545     "engine->evaluate(\"''\")",
       
  1546     "engine->evaluate(\"'0'\")",
       
  1547     "engine->evaluate(\"'123'\")",
       
  1548     "engine->evaluate(\"'12.4'\")",
       
  1549     "engine->nullValue()",
       
  1550     "engine->undefinedValue()",
       
  1551     "engine->newObject()",
       
  1552     "engine->newArray()",
       
  1553     "engine->newArray(10)",
       
  1554     "engine->newDate(QDateTime())",
       
  1555     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
  1556     "engine->newVariant(QVariant())",
       
  1557     "engine->newVariant(QVariant(123))",
       
  1558     "engine->newVariant(QVariant(false))",
       
  1559     "engine->newQObject(0)",
       
  1560     "engine->newQObject(engine)",};
       
  1561 
       
  1562 static quint32 toUInt32_valueArray [] = {
       
  1563     0, 0, 
       
  1564     0, 1, 
       
  1565     0, 122, 
       
  1566     124, 0, 
       
  1567     0, 123, 
       
  1568     0, 0, 
       
  1569     1126240820, 65536, 
       
  1570     65537, 0, 
       
  1571     0, 0, 
       
  1572     0, 0, 
       
  1573     0, 0, 
       
  1574     0, 0, 
       
  1575     0, 0, 
       
  1576     0, 123, 
       
  1577     12, 0, 
       
  1578     0, 1, 
       
  1579     0, 122, 
       
  1580     124, 0, 
       
  1581     0, 123, 
       
  1582     0, 0, 
       
  1583     1126240820, 65536, 
       
  1584     65537, 0, 
       
  1585     0, 0, 
       
  1586     0, 0, 
       
  1587     0, 0, 
       
  1588     0, 0, 
       
  1589     0, 0, 
       
  1590     0, 123, 
       
  1591     12, 0, 
       
  1592     0, 1, 
       
  1593     0, 122, 
       
  1594     124, 0, 
       
  1595     0, 123, 
       
  1596     0, 0, 
       
  1597     1126240820, 65536, 
       
  1598     65537, 0, 
       
  1599     0, 0, 
       
  1600     0, 0, 
       
  1601     0, 0, 
       
  1602     0, 0, 
       
  1603     0, 0, 
       
  1604     0, 123, 
       
  1605     1, 0, 
       
  1606     0, 0, 
       
  1607     0, 0, 
       
  1608     0, 0, 
       
  1609     0, 0, 
       
  1610     0, 0, 
       
  1611     0, 0, 
       
  1612     0, 0, 
       
  1613     0, 0, 
       
  1614     0, 22, 
       
  1615     0, 0, 
       
  1616     0, 0, 
       
  1617     0, 0, 
       
  1618     1, 0, 
       
  1619     122, 124, 
       
  1620     0, 0, 
       
  1621     123, 0, 
       
  1622     0, 1126240820, 
       
  1623     65536, 65537, 
       
  1624     0, 0, 
       
  1625     0, 0, 
       
  1626     0, 0, 
       
  1627     123, 12, 
       
  1628     0, 0, 
       
  1629     0, 0, 
       
  1630     0, 0, 
       
  1631     0, 0, 
       
  1632     123, 0, 
       
  1633     0, 0, };
       
  1634 
       
  1635 void tst_QScriptValue::toUInt32_makeData(const char* expr)
       
  1636 {
       
  1637     static QHash<QString, quint32> toUInt32;
       
  1638     if (toUInt32.isEmpty()) {
       
  1639         toUInt32.reserve(142);
       
  1640         for (unsigned i = 0; i < 142; ++i)
       
  1641             toUInt32.insert(toUInt32_tagArray[i], toUInt32_valueArray[i]);
       
  1642     }
       
  1643     newRow(expr) << toUInt32.value(expr);
       
  1644 }
       
  1645 
       
  1646 void tst_QScriptValue::toUInt32_test(const char*, const QScriptValue& value)
       
  1647 {
       
  1648     QFETCH(quint32, expected);
       
  1649     QCOMPARE(value.toUInt32(), expected);
       
  1650     QCOMPARE(value.toUInt32(), expected);
       
  1651 }
       
  1652 
       
  1653 DEFINE_TEST_FUNCTION(toUInt32)
       
  1654 
       
  1655 
       
  1656 void tst_QScriptValue::toUInt16_initData()
       
  1657 {
       
  1658     QTest::addColumn<quint16>("expected");
       
  1659     initScriptValues();
       
  1660 }
       
  1661 
       
  1662 static QString toUInt16_tagArray [] = {
       
  1663     "QScriptValue()",
       
  1664     "QScriptValue(QScriptValue::UndefinedValue)",
       
  1665     "QScriptValue(QScriptValue::NullValue)",
       
  1666     "QScriptValue(true)",
       
  1667     "QScriptValue(false)",
       
  1668     "QScriptValue(int(122))",
       
  1669     "QScriptValue(uint(124))",
       
  1670     "QScriptValue(0)",
       
  1671     "QScriptValue(0.0)",
       
  1672     "QScriptValue(123.0)",
       
  1673     "QScriptValue(6.37e-8)",
       
  1674     "QScriptValue(-6.37e-8)",
       
  1675     "QScriptValue(0x43211234)",
       
  1676     "QScriptValue(0x10000)",
       
  1677     "QScriptValue(0x10001)",
       
  1678     "QScriptValue(qSNaN())",
       
  1679     "QScriptValue(qQNaN())",
       
  1680     "QScriptValue(qInf())",
       
  1681     "QScriptValue(-qInf())",
       
  1682     "QScriptValue(\"NaN\")",
       
  1683     "QScriptValue(\"Infinity\")",
       
  1684     "QScriptValue(\"-Infinity\")",
       
  1685     "QScriptValue(\"ciao\")",
       
  1686     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
  1687     "QScriptValue(QString(\"\"))",
       
  1688     "QScriptValue(QString())",
       
  1689     "QScriptValue(QString(\"0\"))",
       
  1690     "QScriptValue(QString(\"123\"))",
       
  1691     "QScriptValue(QString(\"12.4\"))",
       
  1692     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
  1693     "QScriptValue(0, QScriptValue::NullValue)",
       
  1694     "QScriptValue(0, true)",
       
  1695     "QScriptValue(0, false)",
       
  1696     "QScriptValue(0, int(122))",
       
  1697     "QScriptValue(0, uint(124))",
       
  1698     "QScriptValue(0, 0)",
       
  1699     "QScriptValue(0, 0.0)",
       
  1700     "QScriptValue(0, 123.0)",
       
  1701     "QScriptValue(0, 6.37e-8)",
       
  1702     "QScriptValue(0, -6.37e-8)",
       
  1703     "QScriptValue(0, 0x43211234)",
       
  1704     "QScriptValue(0, 0x10000)",
       
  1705     "QScriptValue(0, 0x10001)",
       
  1706     "QScriptValue(0, qSNaN())",
       
  1707     "QScriptValue(0, qQNaN())",
       
  1708     "QScriptValue(0, qInf())",
       
  1709     "QScriptValue(0, -qInf())",
       
  1710     "QScriptValue(0, \"NaN\")",
       
  1711     "QScriptValue(0, \"Infinity\")",
       
  1712     "QScriptValue(0, \"-Infinity\")",
       
  1713     "QScriptValue(0, \"ciao\")",
       
  1714     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
  1715     "QScriptValue(0, QString(\"\"))",
       
  1716     "QScriptValue(0, QString())",
       
  1717     "QScriptValue(0, QString(\"0\"))",
       
  1718     "QScriptValue(0, QString(\"123\"))",
       
  1719     "QScriptValue(0, QString(\"12.3\"))",
       
  1720     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
  1721     "QScriptValue(engine, QScriptValue::NullValue)",
       
  1722     "QScriptValue(engine, true)",
       
  1723     "QScriptValue(engine, false)",
       
  1724     "QScriptValue(engine, int(122))",
       
  1725     "QScriptValue(engine, uint(124))",
       
  1726     "QScriptValue(engine, 0)",
       
  1727     "QScriptValue(engine, 0.0)",
       
  1728     "QScriptValue(engine, 123.0)",
       
  1729     "QScriptValue(engine, 6.37e-8)",
       
  1730     "QScriptValue(engine, -6.37e-8)",
       
  1731     "QScriptValue(engine, 0x43211234)",
       
  1732     "QScriptValue(engine, 0x10000)",
       
  1733     "QScriptValue(engine, 0x10001)",
       
  1734     "QScriptValue(engine, qSNaN())",
       
  1735     "QScriptValue(engine, qQNaN())",
       
  1736     "QScriptValue(engine, qInf())",
       
  1737     "QScriptValue(engine, -qInf())",
       
  1738     "QScriptValue(engine, \"NaN\")",
       
  1739     "QScriptValue(engine, \"Infinity\")",
       
  1740     "QScriptValue(engine, \"-Infinity\")",
       
  1741     "QScriptValue(engine, \"ciao\")",
       
  1742     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
  1743     "QScriptValue(engine, QString(\"\"))",
       
  1744     "QScriptValue(engine, QString())",
       
  1745     "QScriptValue(engine, QString(\"0\"))",
       
  1746     "QScriptValue(engine, QString(\"123\"))",
       
  1747     "QScriptValue(engine, QString(\"1.23\"))",
       
  1748     "engine->evaluate(\"[]\")",
       
  1749     "engine->evaluate(\"{}\")",
       
  1750     "engine->evaluate(\"Object.prototype\")",
       
  1751     "engine->evaluate(\"Date.prototype\")",
       
  1752     "engine->evaluate(\"Array.prototype\")",
       
  1753     "engine->evaluate(\"Function.prototype\")",
       
  1754     "engine->evaluate(\"Error.prototype\")",
       
  1755     "engine->evaluate(\"Object\")",
       
  1756     "engine->evaluate(\"Array\")",
       
  1757     "engine->evaluate(\"Number\")",
       
  1758     "engine->evaluate(\"Function\")",
       
  1759     "engine->evaluate(\"(function() { return 1; })\")",
       
  1760     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
  1761     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
  1762     "engine->evaluate(\"/foo/\")",
       
  1763     "engine->evaluate(\"new Object()\")",
       
  1764     "engine->evaluate(\"new Array()\")",
       
  1765     "engine->evaluate(\"new Error()\")",
       
  1766     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
  1767     "engine->evaluate(\"Undefined\")",
       
  1768     "engine->evaluate(\"Null\")",
       
  1769     "engine->evaluate(\"True\")",
       
  1770     "engine->evaluate(\"False\")",
       
  1771     "engine->evaluate(\"undefined\")",
       
  1772     "engine->evaluate(\"null\")",
       
  1773     "engine->evaluate(\"true\")",
       
  1774     "engine->evaluate(\"false\")",
       
  1775     "engine->evaluate(\"122\")",
       
  1776     "engine->evaluate(\"124\")",
       
  1777     "engine->evaluate(\"0\")",
       
  1778     "engine->evaluate(\"0.0\")",
       
  1779     "engine->evaluate(\"123.0\")",
       
  1780     "engine->evaluate(\"6.37e-8\")",
       
  1781     "engine->evaluate(\"-6.37e-8\")",
       
  1782     "engine->evaluate(\"0x43211234\")",
       
  1783     "engine->evaluate(\"0x10000\")",
       
  1784     "engine->evaluate(\"0x10001\")",
       
  1785     "engine->evaluate(\"NaN\")",
       
  1786     "engine->evaluate(\"Infinity\")",
       
  1787     "engine->evaluate(\"-Infinity\")",
       
  1788     "engine->evaluate(\"'ciao'\")",
       
  1789     "engine->evaluate(\"''\")",
       
  1790     "engine->evaluate(\"'0'\")",
       
  1791     "engine->evaluate(\"'123'\")",
       
  1792     "engine->evaluate(\"'12.4'\")",
       
  1793     "engine->nullValue()",
       
  1794     "engine->undefinedValue()",
       
  1795     "engine->newObject()",
       
  1796     "engine->newArray()",
       
  1797     "engine->newArray(10)",
       
  1798     "engine->newDate(QDateTime())",
       
  1799     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
  1800     "engine->newVariant(QVariant())",
       
  1801     "engine->newVariant(QVariant(123))",
       
  1802     "engine->newVariant(QVariant(false))",
       
  1803     "engine->newQObject(0)",
       
  1804     "engine->newQObject(engine)",};
       
  1805 
       
  1806 static quint16 toUInt16_valueArray [] = {
       
  1807     0, 0, 
       
  1808     0, 1, 
       
  1809     0, 122, 
       
  1810     124, 0, 
       
  1811     0, 123, 
       
  1812     0, 0, 
       
  1813     4660, 0, 
       
  1814     1, 0, 
       
  1815     0, 0, 
       
  1816     0, 0, 
       
  1817     0, 0, 
       
  1818     0, 0, 
       
  1819     0, 0, 
       
  1820     0, 123, 
       
  1821     12, 0, 
       
  1822     0, 1, 
       
  1823     0, 122, 
       
  1824     124, 0, 
       
  1825     0, 123, 
       
  1826     0, 0, 
       
  1827     4660, 0, 
       
  1828     1, 0, 
       
  1829     0, 0, 
       
  1830     0, 0, 
       
  1831     0, 0, 
       
  1832     0, 0, 
       
  1833     0, 0, 
       
  1834     0, 123, 
       
  1835     12, 0, 
       
  1836     0, 1, 
       
  1837     0, 122, 
       
  1838     124, 0, 
       
  1839     0, 123, 
       
  1840     0, 0, 
       
  1841     4660, 0, 
       
  1842     1, 0, 
       
  1843     0, 0, 
       
  1844     0, 0, 
       
  1845     0, 0, 
       
  1846     0, 0, 
       
  1847     0, 0, 
       
  1848     0, 123, 
       
  1849     1, 0, 
       
  1850     0, 0, 
       
  1851     0, 0, 
       
  1852     0, 0, 
       
  1853     0, 0, 
       
  1854     0, 0, 
       
  1855     0, 0, 
       
  1856     0, 0, 
       
  1857     0, 0, 
       
  1858     0, 22, 
       
  1859     0, 0, 
       
  1860     0, 0, 
       
  1861     0, 0, 
       
  1862     1, 0, 
       
  1863     122, 124, 
       
  1864     0, 0, 
       
  1865     123, 0, 
       
  1866     0, 4660, 
       
  1867     0, 1, 
       
  1868     0, 0, 
       
  1869     0, 0, 
       
  1870     0, 0, 
       
  1871     123, 12, 
       
  1872     0, 0, 
       
  1873     0, 0, 
       
  1874     0, 0, 
       
  1875     0, 0, 
       
  1876     123, 0, 
       
  1877     0, 0, };
       
  1878 
       
  1879 void tst_QScriptValue::toUInt16_makeData(const char* expr)
       
  1880 {
       
  1881     static QHash<QString, quint16> toUInt16;
       
  1882     if (toUInt16.isEmpty()) {
       
  1883         toUInt16.reserve(142);
       
  1884         for (unsigned i = 0; i < 142; ++i)
       
  1885             toUInt16.insert(toUInt16_tagArray[i], toUInt16_valueArray[i]);
       
  1886     }
       
  1887     newRow(expr) << toUInt16.value(expr);
       
  1888 }
       
  1889 
       
  1890 void tst_QScriptValue::toUInt16_test(const char*, const QScriptValue& value)
       
  1891 {
       
  1892     QFETCH(quint16, expected);
       
  1893     QCOMPARE(value.toUInt16(), expected);
       
  1894     QCOMPARE(value.toUInt16(), expected);
       
  1895 }
       
  1896 
       
  1897 DEFINE_TEST_FUNCTION(toUInt16)