tests/auto/qscriptvalue/tst_qscriptvalue_generated_cast.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::qscriptvalue_castQString_initData()
       
    51 {
       
    52     QTest::addColumn<QString>("expected");
       
    53     initScriptValues();
       
    54 }
       
    55 
       
    56 static QString qscriptvalue_castQString_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 static QString qscriptvalue_castQString_valueArray [] = {
       
   200     "", "", 
       
   201     "", "true", 
       
   202     "false", "122", 
       
   203     "124", "0", 
       
   204     "0", "123", 
       
   205     "6.37e-8", "-6.37e-8", 
       
   206     "1126240820", "65536", 
       
   207     "65537", "NaN", 
       
   208     "NaN", "Infinity", 
       
   209     "-Infinity", "NaN", 
       
   210     "Infinity", "-Infinity", 
       
   211     "ciao", "ciao", 
       
   212     "", "", 
       
   213     "0", "123", 
       
   214     "12.4", "", 
       
   215     "", "true", 
       
   216     "false", "122", 
       
   217     "124", "0", 
       
   218     "0", "123", 
       
   219     "6.37e-8", "-6.37e-8", 
       
   220     "1126240820", "65536", 
       
   221     "65537", "NaN", 
       
   222     "NaN", "Infinity", 
       
   223     "-Infinity", "NaN", 
       
   224     "Infinity", "-Infinity", 
       
   225     "ciao", "ciao", 
       
   226     "", "", 
       
   227     "0", "123", 
       
   228     "12.3", "", 
       
   229     "", "true", 
       
   230     "false", "122", 
       
   231     "124", "0", 
       
   232     "0", "123", 
       
   233     "6.37e-8", "-6.37e-8", 
       
   234     "1126240820", "65536", 
       
   235     "65537", "NaN", 
       
   236     "NaN", "Infinity", 
       
   237     "-Infinity", "NaN", 
       
   238     "Infinity", "-Infinity", 
       
   239     "ciao", "ciao", 
       
   240     "", "", 
       
   241     "0", "123", 
       
   242     "1.23", "", 
       
   243     "", "[object Object]", 
       
   244     "Invalid Date", "", 
       
   245     "function () {\n    [native code]\n}", "Error: Unknown error", 
       
   246     "function Object() {\n    [native code]\n}", "function Array() {\n    [native code]\n}", 
       
   247     "function Number() {\n    [native code]\n}", "function Function() {\n    [native code]\n}", 
       
   248     "function () { return 1; }", "function () { return 'ciao'; }", 
       
   249     "function () { throw new Error('foo'); }", "/foo/", 
       
   250     "[object Object]", "", 
       
   251     "Error: Unknown error", "22", 
       
   252     "ReferenceError: Can't find variable: Undefined", "ReferenceError: Can't find variable: Null", 
       
   253     "ReferenceError: Can't find variable: True", "ReferenceError: Can't find variable: False", 
       
   254     "", "", 
       
   255     "true", "false", 
       
   256     "122", "124", 
       
   257     "0", "0", 
       
   258     "123", "6.37e-8", 
       
   259     "-6.37e-8", "1126240820", 
       
   260     "65536", "65537", 
       
   261     "NaN", "Infinity", 
       
   262     "-Infinity", "ciao", 
       
   263     "", "0", 
       
   264     "123", "12.4", 
       
   265     "", "", 
       
   266     "[object Object]", "", 
       
   267     ",,,,,,,,,", "Invalid Date", 
       
   268     "[object QMetaObject]", "undefined", 
       
   269     "123", "false", 
       
   270     "", "QScriptEngine(name = \"\")", };
       
   271 void tst_QScriptValue::qscriptvalue_castQString_makeData(const char* expr)
       
   272 {
       
   273     static QHash<QString, QString> value;
       
   274     if (value.isEmpty()) {
       
   275         value.reserve(142);
       
   276         for (unsigned i = 0; i < 142; ++i)
       
   277             value.insert(qscriptvalue_castQString_tagArray[i], qscriptvalue_castQString_valueArray[i]);
       
   278     }
       
   279     newRow(expr) << value.value(expr);
       
   280 }
       
   281 
       
   282 void tst_QScriptValue::qscriptvalue_castQString_test(const char*, const QScriptValue& value)
       
   283 {
       
   284     QFETCH(QString, expected);
       
   285     QCOMPARE(qscriptvalue_cast<QString>(value), expected);
       
   286     QCOMPARE(qscriptvalue_cast<QString>(value), expected);
       
   287 }
       
   288 
       
   289 DEFINE_TEST_FUNCTION(qscriptvalue_castQString)
       
   290 
       
   291 
       
   292 void tst_QScriptValue::qscriptvalue_castqsreal_initData()
       
   293 {
       
   294     QTest::addColumn<qsreal>("expected");
       
   295     initScriptValues();
       
   296 }
       
   297 
       
   298 static QString qscriptvalue_castqsreal_tagArray [] = {
       
   299     "QScriptValue()",
       
   300     "QScriptValue(QScriptValue::UndefinedValue)",
       
   301     "QScriptValue(QScriptValue::NullValue)",
       
   302     "QScriptValue(true)",
       
   303     "QScriptValue(false)",
       
   304     "QScriptValue(int(122))",
       
   305     "QScriptValue(uint(124))",
       
   306     "QScriptValue(0)",
       
   307     "QScriptValue(0.0)",
       
   308     "QScriptValue(123.0)",
       
   309     "QScriptValue(6.37e-8)",
       
   310     "QScriptValue(-6.37e-8)",
       
   311     "QScriptValue(0x43211234)",
       
   312     "QScriptValue(0x10000)",
       
   313     "QScriptValue(0x10001)",
       
   314     "QScriptValue(qSNaN())",
       
   315     "QScriptValue(qQNaN())",
       
   316     "QScriptValue(qInf())",
       
   317     "QScriptValue(-qInf())",
       
   318     "QScriptValue(\"NaN\")",
       
   319     "QScriptValue(\"Infinity\")",
       
   320     "QScriptValue(\"-Infinity\")",
       
   321     "QScriptValue(\"ciao\")",
       
   322     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
   323     "QScriptValue(QString(\"\"))",
       
   324     "QScriptValue(QString())",
       
   325     "QScriptValue(QString(\"0\"))",
       
   326     "QScriptValue(QString(\"123\"))",
       
   327     "QScriptValue(QString(\"12.4\"))",
       
   328     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
   329     "QScriptValue(0, QScriptValue::NullValue)",
       
   330     "QScriptValue(0, true)",
       
   331     "QScriptValue(0, false)",
       
   332     "QScriptValue(0, int(122))",
       
   333     "QScriptValue(0, uint(124))",
       
   334     "QScriptValue(0, 0)",
       
   335     "QScriptValue(0, 0.0)",
       
   336     "QScriptValue(0, 123.0)",
       
   337     "QScriptValue(0, 6.37e-8)",
       
   338     "QScriptValue(0, -6.37e-8)",
       
   339     "QScriptValue(0, 0x43211234)",
       
   340     "QScriptValue(0, 0x10000)",
       
   341     "QScriptValue(0, 0x10001)",
       
   342     "QScriptValue(0, qSNaN())",
       
   343     "QScriptValue(0, qQNaN())",
       
   344     "QScriptValue(0, qInf())",
       
   345     "QScriptValue(0, -qInf())",
       
   346     "QScriptValue(0, \"NaN\")",
       
   347     "QScriptValue(0, \"Infinity\")",
       
   348     "QScriptValue(0, \"-Infinity\")",
       
   349     "QScriptValue(0, \"ciao\")",
       
   350     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   351     "QScriptValue(0, QString(\"\"))",
       
   352     "QScriptValue(0, QString())",
       
   353     "QScriptValue(0, QString(\"0\"))",
       
   354     "QScriptValue(0, QString(\"123\"))",
       
   355     "QScriptValue(0, QString(\"12.3\"))",
       
   356     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   357     "QScriptValue(engine, QScriptValue::NullValue)",
       
   358     "QScriptValue(engine, true)",
       
   359     "QScriptValue(engine, false)",
       
   360     "QScriptValue(engine, int(122))",
       
   361     "QScriptValue(engine, uint(124))",
       
   362     "QScriptValue(engine, 0)",
       
   363     "QScriptValue(engine, 0.0)",
       
   364     "QScriptValue(engine, 123.0)",
       
   365     "QScriptValue(engine, 6.37e-8)",
       
   366     "QScriptValue(engine, -6.37e-8)",
       
   367     "QScriptValue(engine, 0x43211234)",
       
   368     "QScriptValue(engine, 0x10000)",
       
   369     "QScriptValue(engine, 0x10001)",
       
   370     "QScriptValue(engine, qSNaN())",
       
   371     "QScriptValue(engine, qQNaN())",
       
   372     "QScriptValue(engine, qInf())",
       
   373     "QScriptValue(engine, -qInf())",
       
   374     "QScriptValue(engine, \"NaN\")",
       
   375     "QScriptValue(engine, \"Infinity\")",
       
   376     "QScriptValue(engine, \"-Infinity\")",
       
   377     "QScriptValue(engine, \"ciao\")",
       
   378     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   379     "QScriptValue(engine, QString(\"\"))",
       
   380     "QScriptValue(engine, QString())",
       
   381     "QScriptValue(engine, QString(\"0\"))",
       
   382     "QScriptValue(engine, QString(\"123\"))",
       
   383     "QScriptValue(engine, QString(\"1.23\"))",
       
   384     "engine->evaluate(\"[]\")",
       
   385     "engine->evaluate(\"{}\")",
       
   386     "engine->evaluate(\"Object.prototype\")",
       
   387     "engine->evaluate(\"Date.prototype\")",
       
   388     "engine->evaluate(\"Array.prototype\")",
       
   389     "engine->evaluate(\"Function.prototype\")",
       
   390     "engine->evaluate(\"Error.prototype\")",
       
   391     "engine->evaluate(\"Object\")",
       
   392     "engine->evaluate(\"Array\")",
       
   393     "engine->evaluate(\"Number\")",
       
   394     "engine->evaluate(\"Function\")",
       
   395     "engine->evaluate(\"(function() { return 1; })\")",
       
   396     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   397     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   398     "engine->evaluate(\"/foo/\")",
       
   399     "engine->evaluate(\"new Object()\")",
       
   400     "engine->evaluate(\"new Array()\")",
       
   401     "engine->evaluate(\"new Error()\")",
       
   402     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   403     "engine->evaluate(\"Undefined\")",
       
   404     "engine->evaluate(\"Null\")",
       
   405     "engine->evaluate(\"True\")",
       
   406     "engine->evaluate(\"False\")",
       
   407     "engine->evaluate(\"undefined\")",
       
   408     "engine->evaluate(\"null\")",
       
   409     "engine->evaluate(\"true\")",
       
   410     "engine->evaluate(\"false\")",
       
   411     "engine->evaluate(\"122\")",
       
   412     "engine->evaluate(\"124\")",
       
   413     "engine->evaluate(\"0\")",
       
   414     "engine->evaluate(\"0.0\")",
       
   415     "engine->evaluate(\"123.0\")",
       
   416     "engine->evaluate(\"6.37e-8\")",
       
   417     "engine->evaluate(\"-6.37e-8\")",
       
   418     "engine->evaluate(\"0x43211234\")",
       
   419     "engine->evaluate(\"0x10000\")",
       
   420     "engine->evaluate(\"0x10001\")",
       
   421     "engine->evaluate(\"NaN\")",
       
   422     "engine->evaluate(\"Infinity\")",
       
   423     "engine->evaluate(\"-Infinity\")",
       
   424     "engine->evaluate(\"'ciao'\")",
       
   425     "engine->evaluate(\"''\")",
       
   426     "engine->evaluate(\"'0'\")",
       
   427     "engine->evaluate(\"'123'\")",
       
   428     "engine->evaluate(\"'12.4'\")",
       
   429     "engine->nullValue()",
       
   430     "engine->undefinedValue()",
       
   431     "engine->newObject()",
       
   432     "engine->newArray()",
       
   433     "engine->newArray(10)",
       
   434     "engine->newDate(QDateTime())",
       
   435     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   436     "engine->newVariant(QVariant())",
       
   437     "engine->newVariant(QVariant(123))",
       
   438     "engine->newVariant(QVariant(false))",
       
   439     "engine->newQObject(0)",
       
   440     "engine->newQObject(engine)",};
       
   441 static qsreal qscriptvalue_castqsreal_valueArray [] = {
       
   442     0, qQNaN(), 0, 1, 0, 122, 124, 0, 0, 123, 
       
   443     6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), 
       
   444     qInf(), qInf(), qQNaN(), qQNaN(), 0, 0, 0, 123, 12.4, qQNaN(), 
       
   445     0, 1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 
       
   446     1126240820, 65536, 65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), qInf(), qInf(), 
       
   447     qQNaN(), qQNaN(), 0, 0, 0, 123, 12.3, qQNaN(), 0, 1, 
       
   448     0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 65536, 
       
   449     65537, qQNaN(), qQNaN(), qInf(), qInf(), qQNaN(), qInf(), qInf(), qQNaN(), qQNaN(), 
       
   450     0, 0, 0, 123, 1.23, 0, qQNaN(), qQNaN(), qQNaN(), 0, 
       
   451     qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 
       
   452     qQNaN(), 0, qQNaN(), 22, qQNaN(), qQNaN(), qQNaN(), qQNaN(), qQNaN(), 0, 
       
   453     1, 0, 122, 124, 0, 0, 123, 6.369999999999999e-08, -6.369999999999999e-08, 1126240820, 
       
   454     65536, 65537, qQNaN(), qInf(), qInf(), qQNaN(), 0, 0, 123, 12.4, 
       
   455     0, qQNaN(), qQNaN(), 0, qQNaN(), qQNaN(), qQNaN(), qQNaN(), 123, 0, 
       
   456     0, qQNaN(), };
       
   457 void tst_QScriptValue::qscriptvalue_castqsreal_makeData(const char* expr)
       
   458 {
       
   459     static QHash<QString, qsreal> value;
       
   460     if (value.isEmpty()) {
       
   461         value.reserve(142);
       
   462         for (unsigned i = 0; i < 142; ++i)
       
   463             value.insert(qscriptvalue_castqsreal_tagArray[i], qscriptvalue_castqsreal_valueArray[i]);
       
   464     }
       
   465     newRow(expr) << value.value(expr);
       
   466 }
       
   467 
       
   468 void tst_QScriptValue::qscriptvalue_castqsreal_test(const char*, const QScriptValue& value)
       
   469 {
       
   470     QFETCH(qsreal, expected);
       
   471     if (qIsNaN(expected)) {
       
   472         QVERIFY(qIsNaN(qscriptvalue_cast<qsreal>(value)));
       
   473         QVERIFY(qIsNaN(qscriptvalue_cast<qsreal>(value)));
       
   474         return;
       
   475     }
       
   476     if (qIsInf(expected)) {
       
   477         QVERIFY(qIsInf(qscriptvalue_cast<qsreal>(value)));
       
   478         QVERIFY(qIsInf(qscriptvalue_cast<qsreal>(value)));
       
   479         return;
       
   480     }
       
   481     QCOMPARE(qscriptvalue_cast<qsreal>(value), expected);
       
   482     QCOMPARE(qscriptvalue_cast<qsreal>(value), expected);
       
   483 }
       
   484 
       
   485 DEFINE_TEST_FUNCTION(qscriptvalue_castqsreal)
       
   486 
       
   487 
       
   488 void tst_QScriptValue::qscriptvalue_castbool_initData()
       
   489 {
       
   490     QTest::addColumn<bool>("expected");
       
   491     initScriptValues();
       
   492 }
       
   493 
       
   494 static QString qscriptvalue_castbool_tagArray [] = {
       
   495     "QScriptValue()",
       
   496     "QScriptValue(QScriptValue::UndefinedValue)",
       
   497     "QScriptValue(QScriptValue::NullValue)",
       
   498     "QScriptValue(true)",
       
   499     "QScriptValue(false)",
       
   500     "QScriptValue(int(122))",
       
   501     "QScriptValue(uint(124))",
       
   502     "QScriptValue(0)",
       
   503     "QScriptValue(0.0)",
       
   504     "QScriptValue(123.0)",
       
   505     "QScriptValue(6.37e-8)",
       
   506     "QScriptValue(-6.37e-8)",
       
   507     "QScriptValue(0x43211234)",
       
   508     "QScriptValue(0x10000)",
       
   509     "QScriptValue(0x10001)",
       
   510     "QScriptValue(qSNaN())",
       
   511     "QScriptValue(qQNaN())",
       
   512     "QScriptValue(qInf())",
       
   513     "QScriptValue(-qInf())",
       
   514     "QScriptValue(\"NaN\")",
       
   515     "QScriptValue(\"Infinity\")",
       
   516     "QScriptValue(\"-Infinity\")",
       
   517     "QScriptValue(\"ciao\")",
       
   518     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
   519     "QScriptValue(QString(\"\"))",
       
   520     "QScriptValue(QString())",
       
   521     "QScriptValue(QString(\"0\"))",
       
   522     "QScriptValue(QString(\"123\"))",
       
   523     "QScriptValue(QString(\"12.4\"))",
       
   524     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
   525     "QScriptValue(0, QScriptValue::NullValue)",
       
   526     "QScriptValue(0, true)",
       
   527     "QScriptValue(0, false)",
       
   528     "QScriptValue(0, int(122))",
       
   529     "QScriptValue(0, uint(124))",
       
   530     "QScriptValue(0, 0)",
       
   531     "QScriptValue(0, 0.0)",
       
   532     "QScriptValue(0, 123.0)",
       
   533     "QScriptValue(0, 6.37e-8)",
       
   534     "QScriptValue(0, -6.37e-8)",
       
   535     "QScriptValue(0, 0x43211234)",
       
   536     "QScriptValue(0, 0x10000)",
       
   537     "QScriptValue(0, 0x10001)",
       
   538     "QScriptValue(0, qSNaN())",
       
   539     "QScriptValue(0, qQNaN())",
       
   540     "QScriptValue(0, qInf())",
       
   541     "QScriptValue(0, -qInf())",
       
   542     "QScriptValue(0, \"NaN\")",
       
   543     "QScriptValue(0, \"Infinity\")",
       
   544     "QScriptValue(0, \"-Infinity\")",
       
   545     "QScriptValue(0, \"ciao\")",
       
   546     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   547     "QScriptValue(0, QString(\"\"))",
       
   548     "QScriptValue(0, QString())",
       
   549     "QScriptValue(0, QString(\"0\"))",
       
   550     "QScriptValue(0, QString(\"123\"))",
       
   551     "QScriptValue(0, QString(\"12.3\"))",
       
   552     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   553     "QScriptValue(engine, QScriptValue::NullValue)",
       
   554     "QScriptValue(engine, true)",
       
   555     "QScriptValue(engine, false)",
       
   556     "QScriptValue(engine, int(122))",
       
   557     "QScriptValue(engine, uint(124))",
       
   558     "QScriptValue(engine, 0)",
       
   559     "QScriptValue(engine, 0.0)",
       
   560     "QScriptValue(engine, 123.0)",
       
   561     "QScriptValue(engine, 6.37e-8)",
       
   562     "QScriptValue(engine, -6.37e-8)",
       
   563     "QScriptValue(engine, 0x43211234)",
       
   564     "QScriptValue(engine, 0x10000)",
       
   565     "QScriptValue(engine, 0x10001)",
       
   566     "QScriptValue(engine, qSNaN())",
       
   567     "QScriptValue(engine, qQNaN())",
       
   568     "QScriptValue(engine, qInf())",
       
   569     "QScriptValue(engine, -qInf())",
       
   570     "QScriptValue(engine, \"NaN\")",
       
   571     "QScriptValue(engine, \"Infinity\")",
       
   572     "QScriptValue(engine, \"-Infinity\")",
       
   573     "QScriptValue(engine, \"ciao\")",
       
   574     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   575     "QScriptValue(engine, QString(\"\"))",
       
   576     "QScriptValue(engine, QString())",
       
   577     "QScriptValue(engine, QString(\"0\"))",
       
   578     "QScriptValue(engine, QString(\"123\"))",
       
   579     "QScriptValue(engine, QString(\"1.23\"))",
       
   580     "engine->evaluate(\"[]\")",
       
   581     "engine->evaluate(\"{}\")",
       
   582     "engine->evaluate(\"Object.prototype\")",
       
   583     "engine->evaluate(\"Date.prototype\")",
       
   584     "engine->evaluate(\"Array.prototype\")",
       
   585     "engine->evaluate(\"Function.prototype\")",
       
   586     "engine->evaluate(\"Error.prototype\")",
       
   587     "engine->evaluate(\"Object\")",
       
   588     "engine->evaluate(\"Array\")",
       
   589     "engine->evaluate(\"Number\")",
       
   590     "engine->evaluate(\"Function\")",
       
   591     "engine->evaluate(\"(function() { return 1; })\")",
       
   592     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   593     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   594     "engine->evaluate(\"/foo/\")",
       
   595     "engine->evaluate(\"new Object()\")",
       
   596     "engine->evaluate(\"new Array()\")",
       
   597     "engine->evaluate(\"new Error()\")",
       
   598     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   599     "engine->evaluate(\"Undefined\")",
       
   600     "engine->evaluate(\"Null\")",
       
   601     "engine->evaluate(\"True\")",
       
   602     "engine->evaluate(\"False\")",
       
   603     "engine->evaluate(\"undefined\")",
       
   604     "engine->evaluate(\"null\")",
       
   605     "engine->evaluate(\"true\")",
       
   606     "engine->evaluate(\"false\")",
       
   607     "engine->evaluate(\"122\")",
       
   608     "engine->evaluate(\"124\")",
       
   609     "engine->evaluate(\"0\")",
       
   610     "engine->evaluate(\"0.0\")",
       
   611     "engine->evaluate(\"123.0\")",
       
   612     "engine->evaluate(\"6.37e-8\")",
       
   613     "engine->evaluate(\"-6.37e-8\")",
       
   614     "engine->evaluate(\"0x43211234\")",
       
   615     "engine->evaluate(\"0x10000\")",
       
   616     "engine->evaluate(\"0x10001\")",
       
   617     "engine->evaluate(\"NaN\")",
       
   618     "engine->evaluate(\"Infinity\")",
       
   619     "engine->evaluate(\"-Infinity\")",
       
   620     "engine->evaluate(\"'ciao'\")",
       
   621     "engine->evaluate(\"''\")",
       
   622     "engine->evaluate(\"'0'\")",
       
   623     "engine->evaluate(\"'123'\")",
       
   624     "engine->evaluate(\"'12.4'\")",
       
   625     "engine->nullValue()",
       
   626     "engine->undefinedValue()",
       
   627     "engine->newObject()",
       
   628     "engine->newArray()",
       
   629     "engine->newArray(10)",
       
   630     "engine->newDate(QDateTime())",
       
   631     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   632     "engine->newVariant(QVariant())",
       
   633     "engine->newVariant(QVariant(123))",
       
   634     "engine->newVariant(QVariant(false))",
       
   635     "engine->newQObject(0)",
       
   636     "engine->newQObject(engine)",};
       
   637 static bool qscriptvalue_castbool_valueArray [] = {
       
   638     false, false, 
       
   639     false, true, 
       
   640     false, true, 
       
   641     true, false, 
       
   642     false, true, 
       
   643     true, true, 
       
   644     true, true, 
       
   645     true, false, 
       
   646     false, true, 
       
   647     true, true, 
       
   648     true, true, 
       
   649     true, true, 
       
   650     false, false, 
       
   651     true, true, 
       
   652     true, false, 
       
   653     false, true, 
       
   654     false, true, 
       
   655     true, false, 
       
   656     false, true, 
       
   657     true, true, 
       
   658     true, true, 
       
   659     true, false, 
       
   660     false, true, 
       
   661     true, true, 
       
   662     true, true, 
       
   663     true, true, 
       
   664     false, false, 
       
   665     true, true, 
       
   666     true, false, 
       
   667     false, true, 
       
   668     false, true, 
       
   669     true, false, 
       
   670     false, true, 
       
   671     true, true, 
       
   672     true, true, 
       
   673     true, false, 
       
   674     false, true, 
       
   675     true, true, 
       
   676     true, true, 
       
   677     true, true, 
       
   678     false, false, 
       
   679     true, true, 
       
   680     true, true, 
       
   681     false, true, 
       
   682     true, true, 
       
   683     true, 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     false, false, 
       
   693     true, false, 
       
   694     true, true, 
       
   695     false, false, 
       
   696     true, true, 
       
   697     true, true, 
       
   698     true, true, 
       
   699     false, true, 
       
   700     true, true, 
       
   701     false, true, 
       
   702     true, true, 
       
   703     false, false, 
       
   704     true, true, 
       
   705     true, true, 
       
   706     true, true, 
       
   707     true, true, 
       
   708     false, true, };
       
   709 void tst_QScriptValue::qscriptvalue_castbool_makeData(const char* expr)
       
   710 {
       
   711     static QHash<QString, bool> value;
       
   712     if (value.isEmpty()) {
       
   713         value.reserve(142);
       
   714         for (unsigned i = 0; i < 142; ++i)
       
   715             value.insert(qscriptvalue_castbool_tagArray[i], qscriptvalue_castbool_valueArray[i]);
       
   716     }
       
   717     newRow(expr) << value.value(expr);
       
   718 }
       
   719 
       
   720 void tst_QScriptValue::qscriptvalue_castbool_test(const char*, const QScriptValue& value)
       
   721 {
       
   722     QFETCH(bool, expected);
       
   723     QCOMPARE(qscriptvalue_cast<bool>(value), expected);
       
   724     QCOMPARE(qscriptvalue_cast<bool>(value), expected);
       
   725 }
       
   726 
       
   727 DEFINE_TEST_FUNCTION(qscriptvalue_castbool)
       
   728 
       
   729 
       
   730 void tst_QScriptValue::qscriptvalue_castqint32_initData()
       
   731 {
       
   732     QTest::addColumn<qint32>("expected");
       
   733     initScriptValues();
       
   734 }
       
   735 
       
   736 static QString qscriptvalue_castqint32_tagArray [] = {
       
   737     "QScriptValue()",
       
   738     "QScriptValue(QScriptValue::UndefinedValue)",
       
   739     "QScriptValue(QScriptValue::NullValue)",
       
   740     "QScriptValue(true)",
       
   741     "QScriptValue(false)",
       
   742     "QScriptValue(int(122))",
       
   743     "QScriptValue(uint(124))",
       
   744     "QScriptValue(0)",
       
   745     "QScriptValue(0.0)",
       
   746     "QScriptValue(123.0)",
       
   747     "QScriptValue(6.37e-8)",
       
   748     "QScriptValue(-6.37e-8)",
       
   749     "QScriptValue(0x43211234)",
       
   750     "QScriptValue(0x10000)",
       
   751     "QScriptValue(0x10001)",
       
   752     "QScriptValue(qSNaN())",
       
   753     "QScriptValue(qQNaN())",
       
   754     "QScriptValue(qInf())",
       
   755     "QScriptValue(-qInf())",
       
   756     "QScriptValue(\"NaN\")",
       
   757     "QScriptValue(\"Infinity\")",
       
   758     "QScriptValue(\"-Infinity\")",
       
   759     "QScriptValue(\"ciao\")",
       
   760     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
   761     "QScriptValue(QString(\"\"))",
       
   762     "QScriptValue(QString())",
       
   763     "QScriptValue(QString(\"0\"))",
       
   764     "QScriptValue(QString(\"123\"))",
       
   765     "QScriptValue(QString(\"12.4\"))",
       
   766     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
   767     "QScriptValue(0, QScriptValue::NullValue)",
       
   768     "QScriptValue(0, true)",
       
   769     "QScriptValue(0, false)",
       
   770     "QScriptValue(0, int(122))",
       
   771     "QScriptValue(0, uint(124))",
       
   772     "QScriptValue(0, 0)",
       
   773     "QScriptValue(0, 0.0)",
       
   774     "QScriptValue(0, 123.0)",
       
   775     "QScriptValue(0, 6.37e-8)",
       
   776     "QScriptValue(0, -6.37e-8)",
       
   777     "QScriptValue(0, 0x43211234)",
       
   778     "QScriptValue(0, 0x10000)",
       
   779     "QScriptValue(0, 0x10001)",
       
   780     "QScriptValue(0, qSNaN())",
       
   781     "QScriptValue(0, qQNaN())",
       
   782     "QScriptValue(0, qInf())",
       
   783     "QScriptValue(0, -qInf())",
       
   784     "QScriptValue(0, \"NaN\")",
       
   785     "QScriptValue(0, \"Infinity\")",
       
   786     "QScriptValue(0, \"-Infinity\")",
       
   787     "QScriptValue(0, \"ciao\")",
       
   788     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
   789     "QScriptValue(0, QString(\"\"))",
       
   790     "QScriptValue(0, QString())",
       
   791     "QScriptValue(0, QString(\"0\"))",
       
   792     "QScriptValue(0, QString(\"123\"))",
       
   793     "QScriptValue(0, QString(\"12.3\"))",
       
   794     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
   795     "QScriptValue(engine, QScriptValue::NullValue)",
       
   796     "QScriptValue(engine, true)",
       
   797     "QScriptValue(engine, false)",
       
   798     "QScriptValue(engine, int(122))",
       
   799     "QScriptValue(engine, uint(124))",
       
   800     "QScriptValue(engine, 0)",
       
   801     "QScriptValue(engine, 0.0)",
       
   802     "QScriptValue(engine, 123.0)",
       
   803     "QScriptValue(engine, 6.37e-8)",
       
   804     "QScriptValue(engine, -6.37e-8)",
       
   805     "QScriptValue(engine, 0x43211234)",
       
   806     "QScriptValue(engine, 0x10000)",
       
   807     "QScriptValue(engine, 0x10001)",
       
   808     "QScriptValue(engine, qSNaN())",
       
   809     "QScriptValue(engine, qQNaN())",
       
   810     "QScriptValue(engine, qInf())",
       
   811     "QScriptValue(engine, -qInf())",
       
   812     "QScriptValue(engine, \"NaN\")",
       
   813     "QScriptValue(engine, \"Infinity\")",
       
   814     "QScriptValue(engine, \"-Infinity\")",
       
   815     "QScriptValue(engine, \"ciao\")",
       
   816     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
   817     "QScriptValue(engine, QString(\"\"))",
       
   818     "QScriptValue(engine, QString())",
       
   819     "QScriptValue(engine, QString(\"0\"))",
       
   820     "QScriptValue(engine, QString(\"123\"))",
       
   821     "QScriptValue(engine, QString(\"1.23\"))",
       
   822     "engine->evaluate(\"[]\")",
       
   823     "engine->evaluate(\"{}\")",
       
   824     "engine->evaluate(\"Object.prototype\")",
       
   825     "engine->evaluate(\"Date.prototype\")",
       
   826     "engine->evaluate(\"Array.prototype\")",
       
   827     "engine->evaluate(\"Function.prototype\")",
       
   828     "engine->evaluate(\"Error.prototype\")",
       
   829     "engine->evaluate(\"Object\")",
       
   830     "engine->evaluate(\"Array\")",
       
   831     "engine->evaluate(\"Number\")",
       
   832     "engine->evaluate(\"Function\")",
       
   833     "engine->evaluate(\"(function() { return 1; })\")",
       
   834     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
   835     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
   836     "engine->evaluate(\"/foo/\")",
       
   837     "engine->evaluate(\"new Object()\")",
       
   838     "engine->evaluate(\"new Array()\")",
       
   839     "engine->evaluate(\"new Error()\")",
       
   840     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
   841     "engine->evaluate(\"Undefined\")",
       
   842     "engine->evaluate(\"Null\")",
       
   843     "engine->evaluate(\"True\")",
       
   844     "engine->evaluate(\"False\")",
       
   845     "engine->evaluate(\"undefined\")",
       
   846     "engine->evaluate(\"null\")",
       
   847     "engine->evaluate(\"true\")",
       
   848     "engine->evaluate(\"false\")",
       
   849     "engine->evaluate(\"122\")",
       
   850     "engine->evaluate(\"124\")",
       
   851     "engine->evaluate(\"0\")",
       
   852     "engine->evaluate(\"0.0\")",
       
   853     "engine->evaluate(\"123.0\")",
       
   854     "engine->evaluate(\"6.37e-8\")",
       
   855     "engine->evaluate(\"-6.37e-8\")",
       
   856     "engine->evaluate(\"0x43211234\")",
       
   857     "engine->evaluate(\"0x10000\")",
       
   858     "engine->evaluate(\"0x10001\")",
       
   859     "engine->evaluate(\"NaN\")",
       
   860     "engine->evaluate(\"Infinity\")",
       
   861     "engine->evaluate(\"-Infinity\")",
       
   862     "engine->evaluate(\"'ciao'\")",
       
   863     "engine->evaluate(\"''\")",
       
   864     "engine->evaluate(\"'0'\")",
       
   865     "engine->evaluate(\"'123'\")",
       
   866     "engine->evaluate(\"'12.4'\")",
       
   867     "engine->nullValue()",
       
   868     "engine->undefinedValue()",
       
   869     "engine->newObject()",
       
   870     "engine->newArray()",
       
   871     "engine->newArray(10)",
       
   872     "engine->newDate(QDateTime())",
       
   873     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
   874     "engine->newVariant(QVariant())",
       
   875     "engine->newVariant(QVariant(123))",
       
   876     "engine->newVariant(QVariant(false))",
       
   877     "engine->newQObject(0)",
       
   878     "engine->newQObject(engine)",};
       
   879 static qint32 qscriptvalue_castqint32_valueArray [] = {
       
   880     0, 0, 
       
   881     0, 1, 
       
   882     0, 122, 
       
   883     124, 0, 
       
   884     0, 123, 
       
   885     0, 0, 
       
   886     1126240820, 65536, 
       
   887     65537, 0, 
       
   888     0, 0, 
       
   889     0, 0, 
       
   890     0, 0, 
       
   891     0, 0, 
       
   892     0, 0, 
       
   893     0, 123, 
       
   894     12, 0, 
       
   895     0, 1, 
       
   896     0, 122, 
       
   897     124, 0, 
       
   898     0, 123, 
       
   899     0, 0, 
       
   900     1126240820, 65536, 
       
   901     65537, 0, 
       
   902     0, 0, 
       
   903     0, 0, 
       
   904     0, 0, 
       
   905     0, 0, 
       
   906     0, 0, 
       
   907     0, 123, 
       
   908     12, 0, 
       
   909     0, 1, 
       
   910     0, 122, 
       
   911     124, 0, 
       
   912     0, 123, 
       
   913     0, 0, 
       
   914     1126240820, 65536, 
       
   915     65537, 0, 
       
   916     0, 0, 
       
   917     0, 0, 
       
   918     0, 0, 
       
   919     0, 0, 
       
   920     0, 0, 
       
   921     0, 123, 
       
   922     1, 0, 
       
   923     0, 0, 
       
   924     0, 0, 
       
   925     0, 0, 
       
   926     0, 0, 
       
   927     0, 0, 
       
   928     0, 0, 
       
   929     0, 0, 
       
   930     0, 0, 
       
   931     0, 22, 
       
   932     0, 0, 
       
   933     0, 0, 
       
   934     0, 0, 
       
   935     1, 0, 
       
   936     122, 124, 
       
   937     0, 0, 
       
   938     123, 0, 
       
   939     0, 1126240820, 
       
   940     65536, 65537, 
       
   941     0, 0, 
       
   942     0, 0, 
       
   943     0, 0, 
       
   944     123, 12, 
       
   945     0, 0, 
       
   946     0, 0, 
       
   947     0, 0, 
       
   948     0, 0, 
       
   949     123, 0, 
       
   950     0, 0, };
       
   951 void tst_QScriptValue::qscriptvalue_castqint32_makeData(const char* expr)
       
   952 {
       
   953     static QHash<QString, qint32> value;
       
   954     if (value.isEmpty()) {
       
   955         value.reserve(142);
       
   956         for (unsigned i = 0; i < 142; ++i)
       
   957             value.insert(qscriptvalue_castqint32_tagArray[i], qscriptvalue_castqint32_valueArray[i]);
       
   958     }
       
   959     newRow(expr) << value.value(expr);
       
   960 }
       
   961 
       
   962 void tst_QScriptValue::qscriptvalue_castqint32_test(const char*, const QScriptValue& value)
       
   963 {
       
   964     QFETCH(qint32, expected);
       
   965     QCOMPARE(qscriptvalue_cast<qint32>(value), expected);
       
   966     QCOMPARE(qscriptvalue_cast<qint32>(value), expected);
       
   967 }
       
   968 
       
   969 DEFINE_TEST_FUNCTION(qscriptvalue_castqint32)
       
   970 
       
   971 
       
   972 void tst_QScriptValue::qscriptvalue_castquint32_initData()
       
   973 {
       
   974     QTest::addColumn<quint32>("expected");
       
   975     initScriptValues();
       
   976 }
       
   977 
       
   978 static QString qscriptvalue_castquint32_tagArray [] = {
       
   979     "QScriptValue()",
       
   980     "QScriptValue(QScriptValue::UndefinedValue)",
       
   981     "QScriptValue(QScriptValue::NullValue)",
       
   982     "QScriptValue(true)",
       
   983     "QScriptValue(false)",
       
   984     "QScriptValue(int(122))",
       
   985     "QScriptValue(uint(124))",
       
   986     "QScriptValue(0)",
       
   987     "QScriptValue(0.0)",
       
   988     "QScriptValue(123.0)",
       
   989     "QScriptValue(6.37e-8)",
       
   990     "QScriptValue(-6.37e-8)",
       
   991     "QScriptValue(0x43211234)",
       
   992     "QScriptValue(0x10000)",
       
   993     "QScriptValue(0x10001)",
       
   994     "QScriptValue(qSNaN())",
       
   995     "QScriptValue(qQNaN())",
       
   996     "QScriptValue(qInf())",
       
   997     "QScriptValue(-qInf())",
       
   998     "QScriptValue(\"NaN\")",
       
   999     "QScriptValue(\"Infinity\")",
       
  1000     "QScriptValue(\"-Infinity\")",
       
  1001     "QScriptValue(\"ciao\")",
       
  1002     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
  1003     "QScriptValue(QString(\"\"))",
       
  1004     "QScriptValue(QString())",
       
  1005     "QScriptValue(QString(\"0\"))",
       
  1006     "QScriptValue(QString(\"123\"))",
       
  1007     "QScriptValue(QString(\"12.4\"))",
       
  1008     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
  1009     "QScriptValue(0, QScriptValue::NullValue)",
       
  1010     "QScriptValue(0, true)",
       
  1011     "QScriptValue(0, false)",
       
  1012     "QScriptValue(0, int(122))",
       
  1013     "QScriptValue(0, uint(124))",
       
  1014     "QScriptValue(0, 0)",
       
  1015     "QScriptValue(0, 0.0)",
       
  1016     "QScriptValue(0, 123.0)",
       
  1017     "QScriptValue(0, 6.37e-8)",
       
  1018     "QScriptValue(0, -6.37e-8)",
       
  1019     "QScriptValue(0, 0x43211234)",
       
  1020     "QScriptValue(0, 0x10000)",
       
  1021     "QScriptValue(0, 0x10001)",
       
  1022     "QScriptValue(0, qSNaN())",
       
  1023     "QScriptValue(0, qQNaN())",
       
  1024     "QScriptValue(0, qInf())",
       
  1025     "QScriptValue(0, -qInf())",
       
  1026     "QScriptValue(0, \"NaN\")",
       
  1027     "QScriptValue(0, \"Infinity\")",
       
  1028     "QScriptValue(0, \"-Infinity\")",
       
  1029     "QScriptValue(0, \"ciao\")",
       
  1030     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
  1031     "QScriptValue(0, QString(\"\"))",
       
  1032     "QScriptValue(0, QString())",
       
  1033     "QScriptValue(0, QString(\"0\"))",
       
  1034     "QScriptValue(0, QString(\"123\"))",
       
  1035     "QScriptValue(0, QString(\"12.3\"))",
       
  1036     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
  1037     "QScriptValue(engine, QScriptValue::NullValue)",
       
  1038     "QScriptValue(engine, true)",
       
  1039     "QScriptValue(engine, false)",
       
  1040     "QScriptValue(engine, int(122))",
       
  1041     "QScriptValue(engine, uint(124))",
       
  1042     "QScriptValue(engine, 0)",
       
  1043     "QScriptValue(engine, 0.0)",
       
  1044     "QScriptValue(engine, 123.0)",
       
  1045     "QScriptValue(engine, 6.37e-8)",
       
  1046     "QScriptValue(engine, -6.37e-8)",
       
  1047     "QScriptValue(engine, 0x43211234)",
       
  1048     "QScriptValue(engine, 0x10000)",
       
  1049     "QScriptValue(engine, 0x10001)",
       
  1050     "QScriptValue(engine, qSNaN())",
       
  1051     "QScriptValue(engine, qQNaN())",
       
  1052     "QScriptValue(engine, qInf())",
       
  1053     "QScriptValue(engine, -qInf())",
       
  1054     "QScriptValue(engine, \"NaN\")",
       
  1055     "QScriptValue(engine, \"Infinity\")",
       
  1056     "QScriptValue(engine, \"-Infinity\")",
       
  1057     "QScriptValue(engine, \"ciao\")",
       
  1058     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
  1059     "QScriptValue(engine, QString(\"\"))",
       
  1060     "QScriptValue(engine, QString())",
       
  1061     "QScriptValue(engine, QString(\"0\"))",
       
  1062     "QScriptValue(engine, QString(\"123\"))",
       
  1063     "QScriptValue(engine, QString(\"1.23\"))",
       
  1064     "engine->evaluate(\"[]\")",
       
  1065     "engine->evaluate(\"{}\")",
       
  1066     "engine->evaluate(\"Object.prototype\")",
       
  1067     "engine->evaluate(\"Date.prototype\")",
       
  1068     "engine->evaluate(\"Array.prototype\")",
       
  1069     "engine->evaluate(\"Function.prototype\")",
       
  1070     "engine->evaluate(\"Error.prototype\")",
       
  1071     "engine->evaluate(\"Object\")",
       
  1072     "engine->evaluate(\"Array\")",
       
  1073     "engine->evaluate(\"Number\")",
       
  1074     "engine->evaluate(\"Function\")",
       
  1075     "engine->evaluate(\"(function() { return 1; })\")",
       
  1076     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
  1077     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
  1078     "engine->evaluate(\"/foo/\")",
       
  1079     "engine->evaluate(\"new Object()\")",
       
  1080     "engine->evaluate(\"new Array()\")",
       
  1081     "engine->evaluate(\"new Error()\")",
       
  1082     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
  1083     "engine->evaluate(\"Undefined\")",
       
  1084     "engine->evaluate(\"Null\")",
       
  1085     "engine->evaluate(\"True\")",
       
  1086     "engine->evaluate(\"False\")",
       
  1087     "engine->evaluate(\"undefined\")",
       
  1088     "engine->evaluate(\"null\")",
       
  1089     "engine->evaluate(\"true\")",
       
  1090     "engine->evaluate(\"false\")",
       
  1091     "engine->evaluate(\"122\")",
       
  1092     "engine->evaluate(\"124\")",
       
  1093     "engine->evaluate(\"0\")",
       
  1094     "engine->evaluate(\"0.0\")",
       
  1095     "engine->evaluate(\"123.0\")",
       
  1096     "engine->evaluate(\"6.37e-8\")",
       
  1097     "engine->evaluate(\"-6.37e-8\")",
       
  1098     "engine->evaluate(\"0x43211234\")",
       
  1099     "engine->evaluate(\"0x10000\")",
       
  1100     "engine->evaluate(\"0x10001\")",
       
  1101     "engine->evaluate(\"NaN\")",
       
  1102     "engine->evaluate(\"Infinity\")",
       
  1103     "engine->evaluate(\"-Infinity\")",
       
  1104     "engine->evaluate(\"'ciao'\")",
       
  1105     "engine->evaluate(\"''\")",
       
  1106     "engine->evaluate(\"'0'\")",
       
  1107     "engine->evaluate(\"'123'\")",
       
  1108     "engine->evaluate(\"'12.4'\")",
       
  1109     "engine->nullValue()",
       
  1110     "engine->undefinedValue()",
       
  1111     "engine->newObject()",
       
  1112     "engine->newArray()",
       
  1113     "engine->newArray(10)",
       
  1114     "engine->newDate(QDateTime())",
       
  1115     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
  1116     "engine->newVariant(QVariant())",
       
  1117     "engine->newVariant(QVariant(123))",
       
  1118     "engine->newVariant(QVariant(false))",
       
  1119     "engine->newQObject(0)",
       
  1120     "engine->newQObject(engine)",};
       
  1121 static quint32 qscriptvalue_castquint32_valueArray [] = {
       
  1122     0, 0, 
       
  1123     0, 1, 
       
  1124     0, 122, 
       
  1125     124, 0, 
       
  1126     0, 123, 
       
  1127     0, 0, 
       
  1128     1126240820, 65536, 
       
  1129     65537, 0, 
       
  1130     0, 0, 
       
  1131     0, 0, 
       
  1132     0, 0, 
       
  1133     0, 0, 
       
  1134     0, 0, 
       
  1135     0, 123, 
       
  1136     12, 0, 
       
  1137     0, 1, 
       
  1138     0, 122, 
       
  1139     124, 0, 
       
  1140     0, 123, 
       
  1141     0, 0, 
       
  1142     1126240820, 65536, 
       
  1143     65537, 0, 
       
  1144     0, 0, 
       
  1145     0, 0, 
       
  1146     0, 0, 
       
  1147     0, 0, 
       
  1148     0, 0, 
       
  1149     0, 123, 
       
  1150     12, 0, 
       
  1151     0, 1, 
       
  1152     0, 122, 
       
  1153     124, 0, 
       
  1154     0, 123, 
       
  1155     0, 0, 
       
  1156     1126240820, 65536, 
       
  1157     65537, 0, 
       
  1158     0, 0, 
       
  1159     0, 0, 
       
  1160     0, 0, 
       
  1161     0, 0, 
       
  1162     0, 0, 
       
  1163     0, 123, 
       
  1164     1, 0, 
       
  1165     0, 0, 
       
  1166     0, 0, 
       
  1167     0, 0, 
       
  1168     0, 0, 
       
  1169     0, 0, 
       
  1170     0, 0, 
       
  1171     0, 0, 
       
  1172     0, 0, 
       
  1173     0, 22, 
       
  1174     0, 0, 
       
  1175     0, 0, 
       
  1176     0, 0, 
       
  1177     1, 0, 
       
  1178     122, 124, 
       
  1179     0, 0, 
       
  1180     123, 0, 
       
  1181     0, 1126240820, 
       
  1182     65536, 65537, 
       
  1183     0, 0, 
       
  1184     0, 0, 
       
  1185     0, 0, 
       
  1186     123, 12, 
       
  1187     0, 0, 
       
  1188     0, 0, 
       
  1189     0, 0, 
       
  1190     0, 0, 
       
  1191     123, 0, 
       
  1192     0, 0, };
       
  1193 void tst_QScriptValue::qscriptvalue_castquint32_makeData(const char* expr)
       
  1194 {
       
  1195     static QHash<QString, quint32> value;
       
  1196     if (value.isEmpty()) {
       
  1197         value.reserve(142);
       
  1198         for (unsigned i = 0; i < 142; ++i)
       
  1199             value.insert(qscriptvalue_castquint32_tagArray[i], qscriptvalue_castquint32_valueArray[i]);
       
  1200     }
       
  1201     newRow(expr) << value.value(expr);
       
  1202 }
       
  1203 
       
  1204 void tst_QScriptValue::qscriptvalue_castquint32_test(const char*, const QScriptValue& value)
       
  1205 {
       
  1206     QFETCH(quint32, expected);
       
  1207     QCOMPARE(qscriptvalue_cast<quint32>(value), expected);
       
  1208     QCOMPARE(qscriptvalue_cast<quint32>(value), expected);
       
  1209 }
       
  1210 
       
  1211 DEFINE_TEST_FUNCTION(qscriptvalue_castquint32)
       
  1212 
       
  1213 
       
  1214 void tst_QScriptValue::qscriptvalue_castquint16_initData()
       
  1215 {
       
  1216     QTest::addColumn<quint16>("expected");
       
  1217     initScriptValues();
       
  1218 }
       
  1219 
       
  1220 static QString qscriptvalue_castquint16_tagArray [] = {
       
  1221     "QScriptValue()",
       
  1222     "QScriptValue(QScriptValue::UndefinedValue)",
       
  1223     "QScriptValue(QScriptValue::NullValue)",
       
  1224     "QScriptValue(true)",
       
  1225     "QScriptValue(false)",
       
  1226     "QScriptValue(int(122))",
       
  1227     "QScriptValue(uint(124))",
       
  1228     "QScriptValue(0)",
       
  1229     "QScriptValue(0.0)",
       
  1230     "QScriptValue(123.0)",
       
  1231     "QScriptValue(6.37e-8)",
       
  1232     "QScriptValue(-6.37e-8)",
       
  1233     "QScriptValue(0x43211234)",
       
  1234     "QScriptValue(0x10000)",
       
  1235     "QScriptValue(0x10001)",
       
  1236     "QScriptValue(qSNaN())",
       
  1237     "QScriptValue(qQNaN())",
       
  1238     "QScriptValue(qInf())",
       
  1239     "QScriptValue(-qInf())",
       
  1240     "QScriptValue(\"NaN\")",
       
  1241     "QScriptValue(\"Infinity\")",
       
  1242     "QScriptValue(\"-Infinity\")",
       
  1243     "QScriptValue(\"ciao\")",
       
  1244     "QScriptValue(QString::fromLatin1(\"ciao\"))",
       
  1245     "QScriptValue(QString(\"\"))",
       
  1246     "QScriptValue(QString())",
       
  1247     "QScriptValue(QString(\"0\"))",
       
  1248     "QScriptValue(QString(\"123\"))",
       
  1249     "QScriptValue(QString(\"12.4\"))",
       
  1250     "QScriptValue(0, QScriptValue::UndefinedValue)",
       
  1251     "QScriptValue(0, QScriptValue::NullValue)",
       
  1252     "QScriptValue(0, true)",
       
  1253     "QScriptValue(0, false)",
       
  1254     "QScriptValue(0, int(122))",
       
  1255     "QScriptValue(0, uint(124))",
       
  1256     "QScriptValue(0, 0)",
       
  1257     "QScriptValue(0, 0.0)",
       
  1258     "QScriptValue(0, 123.0)",
       
  1259     "QScriptValue(0, 6.37e-8)",
       
  1260     "QScriptValue(0, -6.37e-8)",
       
  1261     "QScriptValue(0, 0x43211234)",
       
  1262     "QScriptValue(0, 0x10000)",
       
  1263     "QScriptValue(0, 0x10001)",
       
  1264     "QScriptValue(0, qSNaN())",
       
  1265     "QScriptValue(0, qQNaN())",
       
  1266     "QScriptValue(0, qInf())",
       
  1267     "QScriptValue(0, -qInf())",
       
  1268     "QScriptValue(0, \"NaN\")",
       
  1269     "QScriptValue(0, \"Infinity\")",
       
  1270     "QScriptValue(0, \"-Infinity\")",
       
  1271     "QScriptValue(0, \"ciao\")",
       
  1272     "QScriptValue(0, QString::fromLatin1(\"ciao\"))",
       
  1273     "QScriptValue(0, QString(\"\"))",
       
  1274     "QScriptValue(0, QString())",
       
  1275     "QScriptValue(0, QString(\"0\"))",
       
  1276     "QScriptValue(0, QString(\"123\"))",
       
  1277     "QScriptValue(0, QString(\"12.3\"))",
       
  1278     "QScriptValue(engine, QScriptValue::UndefinedValue)",
       
  1279     "QScriptValue(engine, QScriptValue::NullValue)",
       
  1280     "QScriptValue(engine, true)",
       
  1281     "QScriptValue(engine, false)",
       
  1282     "QScriptValue(engine, int(122))",
       
  1283     "QScriptValue(engine, uint(124))",
       
  1284     "QScriptValue(engine, 0)",
       
  1285     "QScriptValue(engine, 0.0)",
       
  1286     "QScriptValue(engine, 123.0)",
       
  1287     "QScriptValue(engine, 6.37e-8)",
       
  1288     "QScriptValue(engine, -6.37e-8)",
       
  1289     "QScriptValue(engine, 0x43211234)",
       
  1290     "QScriptValue(engine, 0x10000)",
       
  1291     "QScriptValue(engine, 0x10001)",
       
  1292     "QScriptValue(engine, qSNaN())",
       
  1293     "QScriptValue(engine, qQNaN())",
       
  1294     "QScriptValue(engine, qInf())",
       
  1295     "QScriptValue(engine, -qInf())",
       
  1296     "QScriptValue(engine, \"NaN\")",
       
  1297     "QScriptValue(engine, \"Infinity\")",
       
  1298     "QScriptValue(engine, \"-Infinity\")",
       
  1299     "QScriptValue(engine, \"ciao\")",
       
  1300     "QScriptValue(engine, QString::fromLatin1(\"ciao\"))",
       
  1301     "QScriptValue(engine, QString(\"\"))",
       
  1302     "QScriptValue(engine, QString())",
       
  1303     "QScriptValue(engine, QString(\"0\"))",
       
  1304     "QScriptValue(engine, QString(\"123\"))",
       
  1305     "QScriptValue(engine, QString(\"1.23\"))",
       
  1306     "engine->evaluate(\"[]\")",
       
  1307     "engine->evaluate(\"{}\")",
       
  1308     "engine->evaluate(\"Object.prototype\")",
       
  1309     "engine->evaluate(\"Date.prototype\")",
       
  1310     "engine->evaluate(\"Array.prototype\")",
       
  1311     "engine->evaluate(\"Function.prototype\")",
       
  1312     "engine->evaluate(\"Error.prototype\")",
       
  1313     "engine->evaluate(\"Object\")",
       
  1314     "engine->evaluate(\"Array\")",
       
  1315     "engine->evaluate(\"Number\")",
       
  1316     "engine->evaluate(\"Function\")",
       
  1317     "engine->evaluate(\"(function() { return 1; })\")",
       
  1318     "engine->evaluate(\"(function() { return 'ciao'; })\")",
       
  1319     "engine->evaluate(\"(function() { throw new Error('foo'); })\")",
       
  1320     "engine->evaluate(\"/foo/\")",
       
  1321     "engine->evaluate(\"new Object()\")",
       
  1322     "engine->evaluate(\"new Array()\")",
       
  1323     "engine->evaluate(\"new Error()\")",
       
  1324     "engine->evaluate(\"a = new Object(); a.foo = 22; a.foo\")",
       
  1325     "engine->evaluate(\"Undefined\")",
       
  1326     "engine->evaluate(\"Null\")",
       
  1327     "engine->evaluate(\"True\")",
       
  1328     "engine->evaluate(\"False\")",
       
  1329     "engine->evaluate(\"undefined\")",
       
  1330     "engine->evaluate(\"null\")",
       
  1331     "engine->evaluate(\"true\")",
       
  1332     "engine->evaluate(\"false\")",
       
  1333     "engine->evaluate(\"122\")",
       
  1334     "engine->evaluate(\"124\")",
       
  1335     "engine->evaluate(\"0\")",
       
  1336     "engine->evaluate(\"0.0\")",
       
  1337     "engine->evaluate(\"123.0\")",
       
  1338     "engine->evaluate(\"6.37e-8\")",
       
  1339     "engine->evaluate(\"-6.37e-8\")",
       
  1340     "engine->evaluate(\"0x43211234\")",
       
  1341     "engine->evaluate(\"0x10000\")",
       
  1342     "engine->evaluate(\"0x10001\")",
       
  1343     "engine->evaluate(\"NaN\")",
       
  1344     "engine->evaluate(\"Infinity\")",
       
  1345     "engine->evaluate(\"-Infinity\")",
       
  1346     "engine->evaluate(\"'ciao'\")",
       
  1347     "engine->evaluate(\"''\")",
       
  1348     "engine->evaluate(\"'0'\")",
       
  1349     "engine->evaluate(\"'123'\")",
       
  1350     "engine->evaluate(\"'12.4'\")",
       
  1351     "engine->nullValue()",
       
  1352     "engine->undefinedValue()",
       
  1353     "engine->newObject()",
       
  1354     "engine->newArray()",
       
  1355     "engine->newArray(10)",
       
  1356     "engine->newDate(QDateTime())",
       
  1357     "engine->newQMetaObject(&QObject::staticMetaObject)",
       
  1358     "engine->newVariant(QVariant())",
       
  1359     "engine->newVariant(QVariant(123))",
       
  1360     "engine->newVariant(QVariant(false))",
       
  1361     "engine->newQObject(0)",
       
  1362     "engine->newQObject(engine)",};
       
  1363 static quint16 qscriptvalue_castquint16_valueArray [] = {
       
  1364     0, 0, 
       
  1365     0, 1, 
       
  1366     0, 122, 
       
  1367     124, 0, 
       
  1368     0, 123, 
       
  1369     0, 0, 
       
  1370     4660, 0, 
       
  1371     1, 0, 
       
  1372     0, 0, 
       
  1373     0, 0, 
       
  1374     0, 0, 
       
  1375     0, 0, 
       
  1376     0, 0, 
       
  1377     0, 123, 
       
  1378     12, 0, 
       
  1379     0, 1, 
       
  1380     0, 122, 
       
  1381     124, 0, 
       
  1382     0, 123, 
       
  1383     0, 0, 
       
  1384     4660, 0, 
       
  1385     1, 0, 
       
  1386     0, 0, 
       
  1387     0, 0, 
       
  1388     0, 0, 
       
  1389     0, 0, 
       
  1390     0, 0, 
       
  1391     0, 123, 
       
  1392     12, 0, 
       
  1393     0, 1, 
       
  1394     0, 122, 
       
  1395     124, 0, 
       
  1396     0, 123, 
       
  1397     0, 0, 
       
  1398     4660, 0, 
       
  1399     1, 0, 
       
  1400     0, 0, 
       
  1401     0, 0, 
       
  1402     0, 0, 
       
  1403     0, 0, 
       
  1404     0, 0, 
       
  1405     0, 123, 
       
  1406     1, 0, 
       
  1407     0, 0, 
       
  1408     0, 0, 
       
  1409     0, 0, 
       
  1410     0, 0, 
       
  1411     0, 0, 
       
  1412     0, 0, 
       
  1413     0, 0, 
       
  1414     0, 0, 
       
  1415     0, 22, 
       
  1416     0, 0, 
       
  1417     0, 0, 
       
  1418     0, 0, 
       
  1419     1, 0, 
       
  1420     122, 124, 
       
  1421     0, 0, 
       
  1422     123, 0, 
       
  1423     0, 4660, 
       
  1424     0, 1, 
       
  1425     0, 0, 
       
  1426     0, 0, 
       
  1427     0, 0, 
       
  1428     123, 12, 
       
  1429     0, 0, 
       
  1430     0, 0, 
       
  1431     0, 0, 
       
  1432     0, 0, 
       
  1433     123, 0, 
       
  1434     0, 0, };
       
  1435 void tst_QScriptValue::qscriptvalue_castquint16_makeData(const char* expr)
       
  1436 {
       
  1437     static QHash<QString, quint16> value;
       
  1438     if (value.isEmpty()) {
       
  1439         value.reserve(142);
       
  1440         for (unsigned i = 0; i < 142; ++i)
       
  1441             value.insert(qscriptvalue_castquint16_tagArray[i], qscriptvalue_castquint16_valueArray[i]);
       
  1442     }
       
  1443     newRow(expr) << value.value(expr);
       
  1444 }
       
  1445 
       
  1446 void tst_QScriptValue::qscriptvalue_castquint16_test(const char*, const QScriptValue& value)
       
  1447 {
       
  1448     QFETCH(quint16, expected);
       
  1449     QCOMPARE(qscriptvalue_cast<quint16>(value), expected);
       
  1450     QCOMPARE(qscriptvalue_cast<quint16>(value), expected);
       
  1451 }
       
  1452 
       
  1453 DEFINE_TEST_FUNCTION(qscriptvalue_castquint16)