Hello community, here is the log from the commit of package kcalc for openSUSE:Factory checked in at 2018-08-22 14:16:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kcalc (Old) and /work/SRC/openSUSE:Factory/.kcalc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcalc" Wed Aug 22 14:16:18 2018 rev:87 rq:630207 version:18.08.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kcalc/kcalc.changes 2018-07-18 22:42:02.449327743 +0200 +++ /work/SRC/openSUSE:Factory/.kcalc.new/kcalc.changes 2018-08-22 14:16:23.737789177 +0200 @@ -1,0 +2,21 @@ +Thu Aug 16 22:02:44 UTC 2018 - christo...@krop.fr + +- Update to 18.08.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/announce-applications-18.08.0.php +- Changes since 18.07.80: + * None + +------------------------------------------------------------------- +Thu Jul 26 13:00:35 UTC 2018 - lbeltr...@kde.org + +- Update to 18.07.80 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/announce-applications-18.07.80.php +- Changes since 18.04.3: + * Remove unneeded QT definitions + * Build with strict compile flags + +------------------------------------------------------------------- Old: ---- kcalc-18.04.3.tar.xz New: ---- kcalc-18.08.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kcalc.spec ++++++ --- /var/tmp/diff_new_pack.Tnkhf7/_old 2018-08-22 14:16:24.161790182 +0200 +++ /var/tmp/diff_new_pack.Tnkhf7/_new 2018-08-22 14:16:24.165790191 +0200 @@ -19,11 +19,11 @@ %bcond_without lang Name: kcalc -Version: 18.04.3 +Version: 18.08.0 Release: 0 %define kf5_version 5.26.0 # Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA) -%{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')} +%{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')} Summary: Scientific Calculator License: GPL-2.0+ Group: Productivity/Scientific/Math ++++++ kcalc-18.04.3.tar.xz -> kcalc-18.08.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/CMakeLists.txt new/kcalc-18.08.0/CMakeLists.txt --- old/kcalc-18.04.3/CMakeLists.txt 2018-07-10 02:07:56.000000000 +0200 +++ new/kcalc-18.08.0/CMakeLists.txt 2018-08-10 02:07:20.000000000 +0200 @@ -2,8 +2,8 @@ # KDE Application Version, managed by release script set (KDE_APPLICATIONS_VERSION_MAJOR "18") -set (KDE_APPLICATIONS_VERSION_MINOR "04") -set (KDE_APPLICATIONS_VERSION_MICRO "3") +set (KDE_APPLICATIONS_VERSION_MINOR "08") +set (KDE_APPLICATIONS_VERSION_MICRO "0") set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}") cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) @@ -41,7 +41,12 @@ XmlGui ) -add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) +add_definitions(-DQT_NO_CAST_FROM_ASCII) +add_definitions(-DQT_NO_CAST_TO_ASCII) +add_definitions(-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT) +add_definitions(-DQT_NO_URL_CAST_FROM_STRING) +add_definitions(-DQT_USE_QSTRINGBUILDER) +#add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000) set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" ${CMAKE_SOURCE_DIR}/cmake/modules) kde_enable_exceptions() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/kcalc.cpp new/kcalc-18.08.0/kcalc.cpp --- old/kcalc-18.04.3/kcalc.cpp 2018-07-07 11:24:31.000000000 +0200 +++ new/kcalc-18.08.0/kcalc.cpp 2018-08-06 22:43:37.000000000 +0200 @@ -795,7 +795,7 @@ // Basically, on some keyboards such as French, even though the decimal separator // is "," the numeric keypad has a "." key. So we fake it so people can more seemlessly // enter numbers using the keypad - if(KNumber::decimalSeparator() != ".") { + if(KNumber::decimalSeparator() != QLatin1String(".")) { if(e->key() == Qt::Key_Period && e->modifiers() & Qt::KeypadModifier) { pbPeriod->animateClick(); } @@ -2290,17 +2290,17 @@ QStringLiteral("http://utils.kde.org/projects/kcalc")); // Klaus Niederkrueger - aboutData.addAuthor(i18n("Klaus Niederkr" "\xc3\xbc" "ger"), QString(), "knied...@math.uni-koeln.de"); - aboutData.addAuthor(i18n("Bernd Johannes Wuebben"), QString(), "wueb...@kde.org"); - aboutData.addAuthor(i18n("Evan Teran"), i18n("Maintainer"), "ete...@alum.rit.edu"); - aboutData.addAuthor(i18n("Espen Sand"), QString(), "es...@kde.org"); - aboutData.addAuthor(i18n("Chris Howells"), QString(), "howe...@kde.org"); - aboutData.addAuthor(i18n("Aaron J. Seigo"), QString(), "ase...@olympusproject.org"); - aboutData.addAuthor(i18n("Charles Samuels"), QString(), "char...@altair.dhs.org"); + aboutData.addAuthor(i18n("Klaus Niederkr" "\xc3\xbc" "ger"), QString(), QStringLiteral("knied...@math.uni-koeln.de")); + aboutData.addAuthor(i18n("Bernd Johannes Wuebben"), QString(), QStringLiteral("wueb...@kde.org")); + aboutData.addAuthor(i18n("Evan Teran"), i18n("Maintainer"), QStringLiteral("ete...@alum.rit.edu")); + aboutData.addAuthor(i18n("Espen Sand"), QString(), QStringLiteral("es...@kde.org")); + aboutData.addAuthor(i18n("Chris Howells"), QString(), QStringLiteral("howe...@kde.org")); + aboutData.addAuthor(i18n("Aaron J. Seigo"), QString(), QStringLiteral("ase...@olympusproject.org")); + aboutData.addAuthor(i18n("Charles Samuels"), QString(), QStringLiteral("char...@altair.dhs.org")); // Rene Merou - aboutData.addAuthor(i18n("Ren" "\xc3\xa9" " M" "\xc3\xa9" "rou"), QString(), "ochominutosdea...@yahoo.es"); - aboutData.addAuthor(i18n("Michel Marti"), QString(), "m...@objectxp.com"); - aboutData.addAuthor(i18n("David Johnson"), QString(), "da...@usermode.org"); + aboutData.addAuthor(i18n("Ren" "\xc3\xa9" " M" "\xc3\xa9" "rou"), QString(), QStringLiteral("ochominutosdea...@yahoo.es")); + aboutData.addAuthor(i18n("Michel Marti"), QString(), QStringLiteral("m...@objectxp.com")); + aboutData.addAuthor(i18n("David Johnson"), QString(), QStringLiteral("da...@usermode.org")); KAboutData::setApplicationData(aboutData); app.setWindowIcon(QIcon::fromTheme(QLatin1String("accessories-calculator"), app.windowIcon())); @@ -2319,7 +2319,7 @@ KNumber::setGroupSeparator(QLocale().groupSeparator()); KNumber::setDecimalSeparator(QString(QLocale().decimalPoint())); - KCalculator *calc = new KCalculator(0); + KCalculator *calc = new KCalculator(nullptr); calc->show(); return app.exec(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/kcalc_statusbar.cpp new/kcalc-18.08.0/kcalc_statusbar.cpp --- old/kcalc-18.04.3/kcalc_statusbar.cpp 2018-07-07 11:24:31.000000000 +0200 +++ new/kcalc-18.08.0/kcalc_statusbar.cpp 2018-08-06 22:43:37.000000000 +0200 @@ -30,8 +30,8 @@ setSizeGripEnabled(false); shift_indicator_ = addIndicator(QList<QString>() << i18nc("Normal button functions are active", "NORM") << i18nc("Second button functions are active", "SHIFT")); - base_indicator_ = addIndicator(QList<QString>() << "DEC" << "BIN" << "OCT" << "HEX"); - angle_mode_indicator_ = addIndicator(QList<QString>() << "DEG" << "RAD" << "GRA"); + base_indicator_ = addIndicator(QList<QString>() << QStringLiteral("DEC") << QStringLiteral("BIN") << QStringLiteral("OCT") << QStringLiteral("HEX")); + angle_mode_indicator_ = addIndicator(QList<QString>() << QStringLiteral("DEG") << QStringLiteral("RAD") << QStringLiteral("GRA")); memory_indicator_ = addIndicator(QList<QString>() << QString() << i18nc("Memory indicator in status bar", "M")); } @@ -80,17 +80,17 @@ switch (base) { case 2: - text = "BIN"; + text = QStringLiteral("BIN"); break; case 8: - text = "OCT"; + text = QStringLiteral("OCT"); break; case 10: default: - text = "DEC"; + text = QStringLiteral("DEC"); break; case 16: - text = "HEX"; + text = QStringLiteral("HEX"); break; } base_indicator_->setText(text); @@ -102,13 +102,13 @@ switch (mode) { case DegMode: - text = "DEG"; + text = QStringLiteral("DEG"); break; case RadMode: - text = "RAD"; + text = QStringLiteral("RAD"); break; case GradMode: - text = "GRA"; + text = QStringLiteral("GRA"); break; } angle_mode_indicator_->setText(text); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/kcalcdisplay.cpp new/kcalc-18.08.0/kcalcdisplay.cpp --- old/kcalc-18.04.3/kcalcdisplay.cpp 2018-07-07 11:24:31.000000000 +0200 +++ new/kcalc-18.08.0/kcalcdisplay.cpp 2018-08-06 22:43:37.000000000 +0200 @@ -624,7 +624,7 @@ for (int i = stringLength; i > 0 ; i--){ if(i % numDigits == 0 && i != stringLength) { - tmpDisplayString = tmpDisplayString + ' '; + tmpDisplayString = tmpDisplayString + QLatin1Char(' '); } tmpDisplayString = tmpDisplayString + displayString[stringLength - i]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/knumber/knumber.cpp new/kcalc-18.08.0/knumber/knumber.cpp --- old/kcalc-18.04.3/knumber/knumber.cpp 2018-07-07 11:24:31.000000000 +0200 +++ new/kcalc-18.08.0/knumber/knumber.cpp 2018-08-06 22:43:37.000000000 +0200 @@ -245,7 +245,7 @@ // characters, this will allow things to be done slightly more // efficiently QString s(QLatin1String("3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068")); - s.replace('.', DecimalSeparator); + s.replace(QLatin1Char('.'), DecimalSeparator); return KNumber(s); } @@ -260,7 +260,7 @@ // characters, this will allow things to be done slightly more // efficiently QString s(QLatin1String("2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274")); - s.replace('.', DecimalSeparator); + s.replace(QLatin1Char('.'), DecimalSeparator); return KNumber(s); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/knumber/tests/knumbertest.cpp new/kcalc-18.08.0/knumber/tests/knumbertest.cpp --- old/kcalc-18.04.3/knumber/tests/knumbertest.cpp 2018-07-07 11:24:31.000000000 +0200 +++ new/kcalc-18.08.0/knumber/tests/knumbertest.cpp 2018-08-06 22:43:37.000000000 +0200 @@ -116,48 +116,48 @@ std::cout << "Testing Compare:\n"; std::cout << "----------------\n"; - checkTruth("KNumber(5) == KNumber(2)", KNumber(5) == KNumber(2), false); - checkTruth("KNumber(5) > KNumber(2)", KNumber(5) > KNumber(2), true); - checkTruth("KNumber(5) < KNumber(2)", KNumber(5) < KNumber(2), false); - checkTruth("KNumber(5) < KNumber(0)", KNumber(5) < KNumber(0), false); - checkTruth("KNumber(-5) < KNumber(0)", KNumber(-5) < KNumber(0), true); - checkTruth("KNumber(5) >= KNumber(2)", KNumber(5) >= KNumber(2), true); - checkTruth("KNumber(5) <= KNumber(2)", KNumber(5) <= KNumber(2), false); - checkTruth("KNumber(5) != KNumber(2)", KNumber(5) != KNumber(2), true); - - checkTruth("KNumber(2) == KNumber(2)", KNumber(2) == KNumber(2), true); - checkTruth("KNumber(2) > KNumber(2)", KNumber(2) > KNumber(2), false); - checkTruth("KNumber(2) < KNumber(2)", KNumber(2) < KNumber(2), false); - checkTruth("KNumber(2) >= KNumber(2)", KNumber(2) >= KNumber(2), true); - checkTruth("KNumber(2) <= KNumber(2)", KNumber(2) <= KNumber(2), true); - checkTruth("KNumber(2) != KNumber(2)", KNumber(2) != KNumber(2), false); - - checkTruth("KNumber(5) == KNumber(\"1/2\")", KNumber(5) == KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(5) > KNumber(\"1/2\")", KNumber(5) > KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(5) < KNumber(\"1/2\")", KNumber(5) < KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(5) >= KNumber(\"1/2\")", KNumber(5) >= KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(5) <= KNumber(\"1/2\")", KNumber(5) <= KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(5) != KNumber(\"1/2\")", KNumber(5) != KNumber(QLatin1String("1/2")), true); - - checkTruth("KNumber(\"1/2\") == KNumber(\"1/2\")", KNumber(QLatin1String("1/2")) == KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(\"1/2\") > KNumber(\"1/2\")", KNumber(QLatin1String("1/2")) > KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(\"1/2\") < KNumber(\"1/2\")", KNumber(QLatin1String("1/2")) < KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(\"1/2\") >= KNumber(\"1/2\")", KNumber(QLatin1String("1/2")) >= KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(\"1/2\") <= KNumber(\"1/2\")", KNumber(QLatin1String("1/2")) <= KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(\"1/2\") != KNumber(\"1/2\")", KNumber(QLatin1String("1/2")) != KNumber(QLatin1String("1/2")), false); - - checkTruth("KNumber(\"3/2\") == KNumber(\"1/2\")", KNumber(QLatin1String("3/2")) == KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(\"3/2\") > KNumber(\"1/2\")", KNumber(QLatin1String("3/2")) > KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(\"3/2\") < KNumber(\"1/2\")", KNumber(QLatin1String("3/2")) < KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(\"3/2\") >= KNumber(\"1/2\")", KNumber(QLatin1String("3/2")) >= KNumber(QLatin1String("1/2")), true); - checkTruth("KNumber(\"3/2\") <= KNumber(\"1/2\")", KNumber(QLatin1String("3/2")) <= KNumber(QLatin1String("1/2")), false); - checkTruth("KNumber(\"3/2\") != KNumber(\"1/2\")", KNumber(QLatin1String("3/2")) != KNumber(QLatin1String("1/2")), true); - - checkTruth("KNumber(3.2) != KNumber(3)", KNumber(3.2) != KNumber(3), true); - checkTruth("KNumber(3.2) > KNumber(3)", KNumber(3.2) > KNumber(3), true); - checkTruth("KNumber(3.2) < KNumber(3)", KNumber(3.2) < KNumber(3), false); + checkTruth(QStringLiteral("KNumber(5) == KNumber(2)"), KNumber(5) == KNumber(2), false); + checkTruth(QStringLiteral("KNumber(5) > KNumber(2)"), KNumber(5) > KNumber(2), true); + checkTruth(QStringLiteral("KNumber(5) < KNumber(2)"), KNumber(5) < KNumber(2), false); + checkTruth(QStringLiteral("KNumber(5) < KNumber(0)"), KNumber(5) < KNumber(0), false); + checkTruth(QStringLiteral("KNumber(-5) < KNumber(0)"), KNumber(-5) < KNumber(0), true); + checkTruth(QStringLiteral("KNumber(5) >= KNumber(2)"), KNumber(5) >= KNumber(2), true); + checkTruth(QStringLiteral("KNumber(5) <= KNumber(2)"), KNumber(5) <= KNumber(2), false); + checkTruth(QStringLiteral("KNumber(5) != KNumber(2)"), KNumber(5) != KNumber(2), true); + + checkTruth(QStringLiteral("KNumber(2) == KNumber(2)"), KNumber(2) == KNumber(2), true); + checkTruth(QStringLiteral("KNumber(2) > KNumber(2)"), KNumber(2) > KNumber(2), false); + checkTruth(QStringLiteral("KNumber(2) < KNumber(2)"), KNumber(2) < KNumber(2), false); + checkTruth(QStringLiteral("KNumber(2) >= KNumber(2)"), KNumber(2) >= KNumber(2), true); + checkTruth(QStringLiteral("KNumber(2) <= KNumber(2)"), KNumber(2) <= KNumber(2), true); + checkTruth(QStringLiteral("KNumber(2) != KNumber(2)"), KNumber(2) != KNumber(2), false); + + checkTruth(QStringLiteral("KNumber(5) == KNumber(\"1/2\")"), KNumber(5) == KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(5) > KNumber(\"1/2\")"), KNumber(5) > KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(5) < KNumber(\"1/2\")"), KNumber(5) < KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(5) >= KNumber(\"1/2\")"), KNumber(5) >= KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(5) <= KNumber(\"1/2\")"), KNumber(5) <= KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(5) != KNumber(\"1/2\")"), KNumber(5) != KNumber(QLatin1String("1/2")), true); + + checkTruth(QStringLiteral("KNumber(\"1/2\") == KNumber(\"1/2\")"), KNumber(QLatin1String("1/2")) == KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(\"1/2\") > KNumber(\"1/2\")"), KNumber(QLatin1String("1/2")) > KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(\"1/2\") < KNumber(\"1/2\")"), KNumber(QLatin1String("1/2")) < KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(\"1/2\") >= KNumber(\"1/2\")"), KNumber(QLatin1String("1/2")) >= KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(\"1/2\") <= KNumber(\"1/2\")"), KNumber(QLatin1String("1/2")) <= KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(\"1/2\") != KNumber(\"1/2\")"), KNumber(QLatin1String("1/2")) != KNumber(QLatin1String("1/2")), false); + + checkTruth(QStringLiteral("KNumber(\"3/2\") == KNumber(\"1/2\")"), KNumber(QLatin1String("3/2")) == KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(\"3/2\") > KNumber(\"1/2\")"), KNumber(QLatin1String("3/2")) > KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(\"3/2\") < KNumber(\"1/2\")"), KNumber(QLatin1String("3/2")) < KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(\"3/2\") >= KNumber(\"1/2\")"), KNumber(QLatin1String("3/2")) >= KNumber(QLatin1String("1/2")), true); + checkTruth(QStringLiteral("KNumber(\"3/2\") <= KNumber(\"1/2\")"), KNumber(QLatin1String("3/2")) <= KNumber(QLatin1String("1/2")), false); + checkTruth(QStringLiteral("KNumber(\"3/2\") != KNumber(\"1/2\")"), KNumber(QLatin1String("3/2")) != KNumber(QLatin1String("1/2")), true); + + checkTruth(QStringLiteral("KNumber(3.2) != KNumber(3)"), KNumber(3.2) != KNumber(3), true); + checkTruth(QStringLiteral("KNumber(3.2) > KNumber(3)"), KNumber(3.2) > KNumber(3), true); + checkTruth(QStringLiteral("KNumber(3.2) < KNumber(3)"), KNumber(3.2) < KNumber(3), false); - checkTruth("KNumber(3.2) < KNumber(\"3/5\")", KNumber(3.2) < KNumber(QLatin1String("3/5")), false); + checkTruth(QStringLiteral("KNumber(3.2) < KNumber(\"3/5\")"), KNumber(3.2) < KNumber(QLatin1String("3/5")), false); } @@ -167,19 +167,19 @@ std::cout << "Testing additions:\n"; std::cout << "------------------\n"; - checkResult("KNumber(5) + KNumber(2)", KNumber(5) + KNumber(2), QLatin1String("7"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) + KNumber(\"2/3\")", KNumber(5) + KNumber(QLatin1String("2/3")), QLatin1String("17/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(5) + KNumber(\"2.3\")", KNumber(5) + KNumber(QLatin1String("2.3")), QLatin1String("7.3"), KNumber::TYPE_FLOAT); - - checkResult("KNumber(\"5/3\") + KNumber(2)", KNumber(QLatin1String("5/3")) + KNumber(2), QLatin1String("11/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") + KNumber(\"2/3\")", KNumber(QLatin1String("5/3")) + KNumber(QLatin1String("2/3")), QLatin1String("7/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") + KNumber(\"1/3\")", KNumber(QLatin1String("5/3")) + KNumber(QLatin1String("1/3")), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/3\") + KNumber(\"-26/3\")", KNumber(QLatin1String("5/3")) + KNumber(QLatin1String("-26/3")), QLatin1String("-7"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/2\") + KNumber(2.3)", KNumber(QLatin1String("5/2")) + KNumber(2.3), QLatin1String("4.8"), KNumber::TYPE_FLOAT); - - checkResult("KNumber(5.3) + KNumber(2)", KNumber(5.3) + KNumber(2), QLatin1String("7.3"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) + KNumber(\"2/4\")", KNumber(5.3) + KNumber(QLatin1String("2/4")), QLatin1String("5.8"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) + KNumber(2.3)", KNumber(5.3) + KNumber(2.3), QLatin1String("7.6"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5) + KNumber(2)"), KNumber(5) + KNumber(2), QLatin1String("7"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) + KNumber(\"2/3\")"), KNumber(5) + KNumber(QLatin1String("2/3")), QLatin1String("17/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(5) + KNumber(\"2.3\")"), KNumber(5) + KNumber(QLatin1String("2.3")), QLatin1String("7.3"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("KNumber(\"5/3\") + KNumber(2)"), KNumber(QLatin1String("5/3")) + KNumber(2), QLatin1String("11/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") + KNumber(\"2/3\")"), KNumber(QLatin1String("5/3")) + KNumber(QLatin1String("2/3")), QLatin1String("7/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") + KNumber(\"1/3\")"), KNumber(QLatin1String("5/3")) + KNumber(QLatin1String("1/3")), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/3\") + KNumber(\"-26/3\")"), KNumber(QLatin1String("5/3")) + KNumber(QLatin1String("-26/3")), QLatin1String("-7"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/2\") + KNumber(2.3)"), KNumber(QLatin1String("5/2")) + KNumber(2.3), QLatin1String("4.8"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("KNumber(5.3) + KNumber(2)"), KNumber(5.3) + KNumber(2), QLatin1String("7.3"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) + KNumber(\"2/4\")"), KNumber(5.3) + KNumber(QLatin1String("2/4")), QLatin1String("5.8"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) + KNumber(2.3)"), KNumber(5.3) + KNumber(2.3), QLatin1String("7.6"), KNumber::TYPE_FLOAT); } void testingSubtractions() { @@ -188,19 +188,19 @@ std::cout << "Testing subtractions:\n"; std::cout << "---------------------\n"; - checkResult("KNumber(5) - KNumber(2)", KNumber(5) - KNumber(2), QLatin1String("3"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) - KNumber(\"2/3\")", KNumber(5) - KNumber(QLatin1String("2/3")), QLatin1String("13/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(5) - KNumber(2.3)", KNumber(5) - KNumber(2.3), QLatin1String("2.7"), KNumber::TYPE_FLOAT); - - checkResult("KNumber(\"5/3\") - KNumber(2)", KNumber(QLatin1String("5/3")) - KNumber(2), QLatin1String("-1/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") - KNumber(\"1/3\")", KNumber(QLatin1String("5/3")) - KNumber(QLatin1String("1/3")), QLatin1String("4/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") - KNumber(\"2/3\")", KNumber(QLatin1String("5/3")) - KNumber(QLatin1String("2/3")), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-5/3\") - KNumber(\"4/3\")", KNumber(QLatin1String("-5/3")) - KNumber(QLatin1String("4/3")), QLatin1String("-3"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/4\") - KNumber(2.2)", KNumber(QLatin1String("5/4")) - KNumber(2.2), QLatin1String("-0.95"), KNumber::TYPE_FLOAT); - - checkResult("KNumber(5.3) - KNumber(2)", KNumber(5.3) - KNumber(2), QLatin1String("3.3"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) - KNumber(\"3/4\")", KNumber(5.3) - KNumber(QLatin1String("3/4")), QLatin1String("4.55"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) - KNumber(2.3)", KNumber(5.3) - KNumber(2.3), QLatin1String("3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) - KNumber(2)"), KNumber(5) - KNumber(2), QLatin1String("3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) - KNumber(\"2/3\")"), KNumber(5) - KNumber(QLatin1String("2/3")), QLatin1String("13/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(5) - KNumber(2.3)"), KNumber(5) - KNumber(2.3), QLatin1String("2.7"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("KNumber(\"5/3\") - KNumber(2)"), KNumber(QLatin1String("5/3")) - KNumber(2), QLatin1String("-1/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") - KNumber(\"1/3\")"), KNumber(QLatin1String("5/3")) - KNumber(QLatin1String("1/3")), QLatin1String("4/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") - KNumber(\"2/3\")"), KNumber(QLatin1String("5/3")) - KNumber(QLatin1String("2/3")), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-5/3\") - KNumber(\"4/3\")"), KNumber(QLatin1String("-5/3")) - KNumber(QLatin1String("4/3")), QLatin1String("-3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/4\") - KNumber(2.2)"), KNumber(QLatin1String("5/4")) - KNumber(2.2), QLatin1String("-0.95"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("KNumber(5.3) - KNumber(2)"), KNumber(5.3) - KNumber(2), QLatin1String("3.3"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) - KNumber(\"3/4\")"), KNumber(5.3) - KNumber(QLatin1String("3/4")), QLatin1String("4.55"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) - KNumber(2.3)"), KNumber(5.3) - KNumber(2.3), QLatin1String("3"), KNumber::TYPE_INTEGER); } void testingSpecial() { @@ -209,13 +209,13 @@ std::cout << "Testing special functions:\n"; std::cout << "--------------------------\n"; - checkResult("log10(KNumber(5))", log10(KNumber(5)), QLatin1String("0.698970004336"), KNumber::TYPE_FLOAT); - checkResult("log10(pow(KNumber(10), KNumber(308)))", log10(pow(KNumber(10), KNumber(308))), QLatin1String("308"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("log10(KNumber(5))"), log10(KNumber(5)), QLatin1String("0.698970004336"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("log10(pow(KNumber(10), KNumber(308)))"), log10(pow(KNumber(10), KNumber(308))), QLatin1String("308"), KNumber::TYPE_INTEGER); // TODO: enable this check once MPFR is commonly enabled - // checkResult("log10(pow(KNumber(10), KNumber(309)))", log10(pow(KNumber(10), KNumber(309))), QLatin1String("309"), KNumber::TYPE_INTEGER); + // checkResult(QStringLiteral("log10(pow(KNumber(10), KNumber(309)))"), log10(pow(KNumber(10), KNumber(309))), QLatin1String("309"), KNumber::TYPE_INTEGER); - checkResult("exp(KNumber(4.34))", exp(KNumber(4.34)), QLatin1String("76.7075393383"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("exp(KNumber(4.34))"), exp(KNumber(4.34)), QLatin1String("76.7075393383"), KNumber::TYPE_FLOAT); } void testingTrig() { @@ -224,62 +224,62 @@ std::cout << "Testing trig functions:\n"; std::cout << "-----------------------\n"; - checkResult("sin(KNumber(5))", sin(KNumber(5)), QLatin1String("-0.958924274663"), KNumber::TYPE_FLOAT); - checkResult("cos(KNumber(5))", cos(KNumber(5)), QLatin1String("0.283662185463"), KNumber::TYPE_FLOAT); - checkResult("tan(KNumber(5))", tan(KNumber(5)), QLatin1String("-3.38051500625"), KNumber::TYPE_FLOAT); - checkResult("sin(KNumber(-5))", sin(KNumber(-5)), QLatin1String("0.958924274663"), KNumber::TYPE_FLOAT); - checkResult("cos(KNumber(-5))", cos(KNumber(-5)), QLatin1String("0.283662185463"), KNumber::TYPE_FLOAT); - checkResult("tan(KNumber(-5))", tan(KNumber(-5)), QLatin1String("3.38051500625"), KNumber::TYPE_FLOAT); - - checkResult("sin(KNumber(\"5/2\"))", sin(KNumber(QLatin1String("5/2"))), QLatin1String("0.598472144104"), KNumber::TYPE_FLOAT); - checkResult("cos(KNumber(\"5/2\"))", cos(KNumber(QLatin1String("5/2"))), QLatin1String("-0.801143615547"), KNumber::TYPE_FLOAT); - checkResult("tan(KNumber(\"5/2\"))", tan(KNumber(QLatin1String("5/2"))), QLatin1String("-0.747022297239"), KNumber::TYPE_FLOAT); - checkResult("sin(KNumber(\"-5/2\"))", sin(KNumber(QLatin1String("-5/2"))), QLatin1String("-0.598472144104"), KNumber::TYPE_FLOAT); - checkResult("cos(KNumber(\"-5/2\"))", cos(KNumber(QLatin1String("-5/2"))), QLatin1String("-0.801143615547"), KNumber::TYPE_FLOAT); - checkResult("tan(KNumber(\"-5/2\"))", tan(KNumber(QLatin1String("-5/2"))), QLatin1String("0.747022297239"), KNumber::TYPE_FLOAT); - - checkResult("sin(KNumber(5.3))", sin(KNumber(5.3)), QLatin1String("-0.832267442224"), KNumber::TYPE_FLOAT); - checkResult("cos(KNumber(5.3))", cos(KNumber(5.3)), QLatin1String("0.554374336179"), KNumber::TYPE_FLOAT); - checkResult("tan(KNumber(5.3))", tan(KNumber(5.3)), QLatin1String("-1.50127339581"), KNumber::TYPE_FLOAT); - checkResult("sin(KNumber(-5.3))", sin(KNumber(-5.3)), QLatin1String("0.832267442224"), KNumber::TYPE_FLOAT); - checkResult("cos(KNumber(-5.3))", cos(KNumber(-5.3)), QLatin1String("0.554374336179"), KNumber::TYPE_FLOAT); - checkResult("tan(KNumber(-5.3))", tan(KNumber(-5.3)), QLatin1String("1.50127339581"), KNumber::TYPE_FLOAT); - - checkResult("asin(KNumber(5))", asin(KNumber(5)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("acos(KNumber(5))", acos(KNumber(5)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("atan(KNumber(5))", atan(KNumber(5)), QLatin1String("1.37340076695"), KNumber::TYPE_FLOAT); - checkResult("asin(KNumber(-5))", asin(KNumber(-5)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("acos(KNumber(-5))", acos(KNumber(-5)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("atan(KNumber(-5))", atan(KNumber(-5)), QLatin1String("-1.37340076695"), KNumber::TYPE_FLOAT); - - checkResult("asin(KNumber(\"5/2\"))", asin(KNumber(QLatin1String("5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("acos(KNumber(\"5/2\"))", acos(KNumber(QLatin1String("5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("atan(KNumber(\"5/2\"))", atan(KNumber(QLatin1String("5/2"))), QLatin1String("1.19028994968"), KNumber::TYPE_FLOAT); - checkResult("asin(KNumber(\"-5/2\"))", asin(KNumber(QLatin1String("-5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("acos(KNumber(\"-5/2\"))", acos(KNumber(QLatin1String("-5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("atan(KNumber(\"-5/2\"))", atan(KNumber(QLatin1String("-5/2"))), QLatin1String("-1.19028994968"), KNumber::TYPE_FLOAT); - - checkResult("asin(KNumber(5.3))", asin(KNumber(5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("acos(KNumber(5.3))", acos(KNumber(5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("atan(KNumber(5.3))", atan(KNumber(5.3)), QLatin1String("1.38430942513"), KNumber::TYPE_FLOAT); - checkResult("asin(KNumber(-5.3))", asin(KNumber(-5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("acos(KNumber(-5.3))", acos(KNumber(-5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("atan(KNumber(-5.3))", atan(KNumber(-5.3)), QLatin1String("-1.38430942513"), KNumber::TYPE_FLOAT); - - - checkResult("asin(KNumber(\"2/5\"))", asin(KNumber(QLatin1String("2/5"))), QLatin1String("0.411516846067"), KNumber::TYPE_FLOAT); - checkResult("acos(KNumber(\"2/5\"))", acos(KNumber(QLatin1String("2/5"))), QLatin1String("1.15927948073"), KNumber::TYPE_FLOAT); - checkResult("atan(KNumber(\"2/5\"))", atan(KNumber(QLatin1String("2/5"))), QLatin1String("0.380506377112"), KNumber::TYPE_FLOAT); - checkResult("asin(KNumber(\"-2/5\"))", asin(KNumber(QLatin1String("-2/5"))), QLatin1String("-0.411516846067"), KNumber::TYPE_FLOAT); - checkResult("acos(KNumber(\"-2/5\"))", acos(KNumber(QLatin1String("-2/5"))), QLatin1String("1.98231317286"), KNumber::TYPE_FLOAT); - checkResult("atan(KNumber(\"-2/5\"))", atan(KNumber(QLatin1String("-2/5"))), QLatin1String("-0.380506377112"), KNumber::TYPE_FLOAT); - - checkResult("asin(KNumber(0.3))", asin(KNumber(0.3)), QLatin1String("0.304692654015"), KNumber::TYPE_FLOAT); - checkResult("acos(KNumber(0.3))", acos(KNumber(0.3)), QLatin1String("1.26610367278"), KNumber::TYPE_FLOAT); - checkResult("atan(KNumber(0.3))", atan(KNumber(0.3)), QLatin1String("0.291456794478"), KNumber::TYPE_FLOAT); - checkResult("asin(KNumber(-0.3))", asin(KNumber(-0.3)), QLatin1String("-0.304692654015"), KNumber::TYPE_FLOAT); - checkResult("acos(KNumber(-0.3))", acos(KNumber(-0.3)), QLatin1String("1.87548898081"), KNumber::TYPE_FLOAT); - checkResult("atan(KNumber(-0.3))", atan(KNumber(-0.3)), QLatin1String("-0.291456794478"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("sin(KNumber(5))"), sin(KNumber(5)), QLatin1String("-0.958924274663"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("cos(KNumber(5))"), cos(KNumber(5)), QLatin1String("0.283662185463"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("tan(KNumber(5))"), tan(KNumber(5)), QLatin1String("-3.38051500625"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("sin(KNumber(-5))"), sin(KNumber(-5)), QLatin1String("0.958924274663"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("cos(KNumber(-5))"), cos(KNumber(-5)), QLatin1String("0.283662185463"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("tan(KNumber(-5))"), tan(KNumber(-5)), QLatin1String("3.38051500625"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("sin(KNumber(\"5/2\"))"), sin(KNumber(QLatin1String("5/2"))), QLatin1String("0.598472144104"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("cos(KNumber(\"5/2\"))"), cos(KNumber(QLatin1String("5/2"))), QLatin1String("-0.801143615547"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("tan(KNumber(\"5/2\"))"), tan(KNumber(QLatin1String("5/2"))), QLatin1String("-0.747022297239"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("sin(KNumber(\"-5/2\"))"), sin(KNumber(QLatin1String("-5/2"))), QLatin1String("-0.598472144104"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("cos(KNumber(\"-5/2\"))"), cos(KNumber(QLatin1String("-5/2"))), QLatin1String("-0.801143615547"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("tan(KNumber(\"-5/2\"))"), tan(KNumber(QLatin1String("-5/2"))), QLatin1String("0.747022297239"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("sin(KNumber(5.3))"), sin(KNumber(5.3)), QLatin1String("-0.832267442224"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("cos(KNumber(5.3))"), cos(KNumber(5.3)), QLatin1String("0.554374336179"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("tan(KNumber(5.3))"), tan(KNumber(5.3)), QLatin1String("-1.50127339581"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("sin(KNumber(-5.3))"), sin(KNumber(-5.3)), QLatin1String("0.832267442224"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("cos(KNumber(-5.3))"), cos(KNumber(-5.3)), QLatin1String("0.554374336179"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("tan(KNumber(-5.3))"), tan(KNumber(-5.3)), QLatin1String("1.50127339581"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("asin(KNumber(5))"), asin(KNumber(5)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("acos(KNumber(5))"), acos(KNumber(5)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("atan(KNumber(5))"), atan(KNumber(5)), QLatin1String("1.37340076695"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("asin(KNumber(-5))"), asin(KNumber(-5)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("acos(KNumber(-5))"), acos(KNumber(-5)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("atan(KNumber(-5))"), atan(KNumber(-5)), QLatin1String("-1.37340076695"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("asin(KNumber(\"5/2\"))"), asin(KNumber(QLatin1String("5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("acos(KNumber(\"5/2\"))"), acos(KNumber(QLatin1String("5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("atan(KNumber(\"5/2\"))"), atan(KNumber(QLatin1String("5/2"))), QLatin1String("1.19028994968"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("asin(KNumber(\"-5/2\"))"), asin(KNumber(QLatin1String("-5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("acos(KNumber(\"-5/2\"))"), acos(KNumber(QLatin1String("-5/2"))), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("atan(KNumber(\"-5/2\"))"), atan(KNumber(QLatin1String("-5/2"))), QLatin1String("-1.19028994968"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("asin(KNumber(5.3))"), asin(KNumber(5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("acos(KNumber(5.3))"), acos(KNumber(5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("atan(KNumber(5.3))"), atan(KNumber(5.3)), QLatin1String("1.38430942513"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("asin(KNumber(-5.3))"), asin(KNumber(-5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("acos(KNumber(-5.3))"), acos(KNumber(-5.3)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("atan(KNumber(-5.3))"), atan(KNumber(-5.3)), QLatin1String("-1.38430942513"), KNumber::TYPE_FLOAT); + + + checkResult(QStringLiteral("asin(KNumber(\"2/5\"))"), asin(KNumber(QLatin1String("2/5"))), QLatin1String("0.411516846067"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("acos(KNumber(\"2/5\"))"), acos(KNumber(QLatin1String("2/5"))), QLatin1String("1.15927948073"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("atan(KNumber(\"2/5\"))"), atan(KNumber(QLatin1String("2/5"))), QLatin1String("0.380506377112"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("asin(KNumber(\"-2/5\"))"), asin(KNumber(QLatin1String("-2/5"))), QLatin1String("-0.411516846067"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("acos(KNumber(\"-2/5\"))"), acos(KNumber(QLatin1String("-2/5"))), QLatin1String("1.98231317286"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("atan(KNumber(\"-2/5\"))"), atan(KNumber(QLatin1String("-2/5"))), QLatin1String("-0.380506377112"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("asin(KNumber(0.3))"), asin(KNumber(0.3)), QLatin1String("0.304692654015"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("acos(KNumber(0.3))"), acos(KNumber(0.3)), QLatin1String("1.26610367278"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("atan(KNumber(0.3))"), atan(KNumber(0.3)), QLatin1String("0.291456794478"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("asin(KNumber(-0.3))"), asin(KNumber(-0.3)), QLatin1String("-0.304692654015"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("acos(KNumber(-0.3))"), acos(KNumber(-0.3)), QLatin1String("1.87548898081"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("atan(KNumber(-0.3))"), atan(KNumber(-0.3)), QLatin1String("-0.291456794478"), KNumber::TYPE_FLOAT); } @@ -289,23 +289,23 @@ std::cout << "Testing multiplications:\n"; std::cout << "------------------------\n"; - checkResult("KNumber(5) * KNumber(2)", KNumber(5) * KNumber(2), QLatin1String("10"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) * KNumber(\"2/3\")", KNumber(5) * KNumber(QLatin1String("2/3")), QLatin1String("10/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(5) * KNumber(\"2/5\")", KNumber(5) * KNumber(QLatin1String("2/5")), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) * KNumber(2.3)", KNumber(5) * KNumber(2.3), QLatin1String("11.5"), KNumber::TYPE_FLOAT); - checkResult("KNumber(0) * KNumber(\"2/5\")", KNumber(0) * KNumber(QLatin1String("2/5")), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(0) * KNumber(2.3)", KNumber(0) * KNumber(2.3), QLatin1String("0"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(\"5/3\") * KNumber(2)", KNumber(QLatin1String("5/3")) * KNumber(2), QLatin1String("10/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") * KNumber(0)", KNumber(QLatin1String("5/3")) * KNumber(0), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/3\") * KNumber(\"2/3\")", KNumber(QLatin1String("5/3")) * KNumber(QLatin1String("2/3")), QLatin1String("10/9"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"25/6\") * KNumber(\"12/5\")", KNumber(QLatin1String("25/6")) * KNumber(QLatin1String("12/5")), QLatin1String("10"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/2\") * KNumber(2.3)", KNumber(QLatin1String("5/2")) * KNumber(2.3), QLatin1String("5.75"), KNumber::TYPE_FLOAT); - - checkResult("KNumber(5.3) * KNumber(2)", KNumber(5.3) * KNumber(2), QLatin1String("10.6"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) * KNumber(0)", KNumber(5.3) * KNumber(0), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5.3) * KNumber(\"1/2\")", KNumber(5.3) * KNumber(QLatin1String("1/2")), QLatin1String("2.65"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) * KNumber(2.3)", KNumber(5.3) * KNumber(2.3), QLatin1String("12.19"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5) * KNumber(2)"), KNumber(5) * KNumber(2), QLatin1String("10"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) * KNumber(\"2/3\")"), KNumber(5) * KNumber(QLatin1String("2/3")), QLatin1String("10/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(5) * KNumber(\"2/5\")"), KNumber(5) * KNumber(QLatin1String("2/5")), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) * KNumber(2.3)"), KNumber(5) * KNumber(2.3), QLatin1String("11.5"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(0) * KNumber(\"2/5\")"), KNumber(0) * KNumber(QLatin1String("2/5")), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(0) * KNumber(2.3)"), KNumber(0) * KNumber(2.3), QLatin1String("0"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(\"5/3\") * KNumber(2)"), KNumber(QLatin1String("5/3")) * KNumber(2), QLatin1String("10/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") * KNumber(0)"), KNumber(QLatin1String("5/3")) * KNumber(0), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/3\") * KNumber(\"2/3\")"), KNumber(QLatin1String("5/3")) * KNumber(QLatin1String("2/3")), QLatin1String("10/9"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"25/6\") * KNumber(\"12/5\")"), KNumber(QLatin1String("25/6")) * KNumber(QLatin1String("12/5")), QLatin1String("10"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/2\") * KNumber(2.3)"), KNumber(QLatin1String("5/2")) * KNumber(2.3), QLatin1String("5.75"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("KNumber(5.3) * KNumber(2)"), KNumber(5.3) * KNumber(2), QLatin1String("10.6"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) * KNumber(0)"), KNumber(5.3) * KNumber(0), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5.3) * KNumber(\"1/2\")"), KNumber(5.3) * KNumber(QLatin1String("1/2")), QLatin1String("2.65"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) * KNumber(2.3)"), KNumber(5.3) * KNumber(2.3), QLatin1String("12.19"), KNumber::TYPE_FLOAT); } void testingDivisions() { @@ -314,32 +314,32 @@ std::cout << "Testing divisions:\n"; std::cout << "------------------\n"; - checkResult("KNumber(5) / KNumber(2)", KNumber(5) / KNumber(2), QLatin1String("5/2"), KNumber::TYPE_FRACTION); - checkResult("KNumber(122) / KNumber(2)", KNumber(122) / KNumber(2), QLatin1String("61"), KNumber::TYPE_INTEGER); - checkResult("KNumber(12) / KNumber(0)", KNumber(12) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-12) / KNumber(0)", KNumber(-12) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(5) / KNumber(\"2/3\")", KNumber(5) / KNumber(QLatin1String("2/3")), QLatin1String("15/2"), KNumber::TYPE_FRACTION); - checkResult("KNumber(6) / KNumber(\"2/3\")", KNumber(6) / KNumber(QLatin1String("2/3")), QLatin1String("9"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) / KNumber(2.5)", KNumber(5) / KNumber(2.5), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) / KNumber(0.0)", KNumber(5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) / KNumber(0.0)", KNumber(-5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("KNumber(\"5/3\") / KNumber(2)", KNumber(QLatin1String("5/3")) / KNumber(2), QLatin1String("5/6"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") / KNumber(0)", KNumber(QLatin1String("5/3")) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") / KNumber(0)", KNumber(QLatin1String("-5/3")) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"5/3\") / KNumber(\"2/3\")", KNumber(QLatin1String("5/3")) / KNumber(QLatin1String("2/3")), QLatin1String("5/2"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"49/3\") / KNumber(\"7/9\")", KNumber(QLatin1String("49/3")) / KNumber(QLatin1String("7/9")), QLatin1String("21"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/2\") / KNumber(2.5)", KNumber(QLatin1String("5/2")) / KNumber(2.5), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/2\") / KNumber(0.0)", KNumber(QLatin1String("5/2")) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/2\") / KNumber(0.0)", KNumber(QLatin1String("-5/2")) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("KNumber(5.3) / KNumber(2)", KNumber(5.3) / KNumber(2), QLatin1String("2.65"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) / KNumber(0)", KNumber(5.3) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.3) / KNumber(0)", KNumber(-5.3) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(5.3) / KNumber(\"2/3\")", KNumber(5.3) / KNumber(QLatin1String("2/3")), QLatin1String("7.95"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.5) / KNumber(2.5)", KNumber(5.5) / KNumber(2.5), QLatin1String("2.2"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.5) / KNumber(0.0)", KNumber(5.5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.5) / KNumber(0.0)", KNumber(-5.5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(5) / KNumber(2)"), KNumber(5) / KNumber(2), QLatin1String("5/2"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(122) / KNumber(2)"), KNumber(122) / KNumber(2), QLatin1String("61"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(12) / KNumber(0)"), KNumber(12) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-12) / KNumber(0)"), KNumber(-12) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(5) / KNumber(\"2/3\")"), KNumber(5) / KNumber(QLatin1String("2/3")), QLatin1String("15/2"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(6) / KNumber(\"2/3\")"), KNumber(6) / KNumber(QLatin1String("2/3")), QLatin1String("9"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) / KNumber(2.5)"), KNumber(5) / KNumber(2.5), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) / KNumber(0.0)"), KNumber(5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) / KNumber(0.0)"), KNumber(-5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("KNumber(\"5/3\") / KNumber(2)"), KNumber(QLatin1String("5/3")) / KNumber(2), QLatin1String("5/6"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") / KNumber(0)"), KNumber(QLatin1String("5/3")) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") / KNumber(0)"), KNumber(QLatin1String("-5/3")) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"5/3\") / KNumber(\"2/3\")"), KNumber(QLatin1String("5/3")) / KNumber(QLatin1String("2/3")), QLatin1String("5/2"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"49/3\") / KNumber(\"7/9\")"), KNumber(QLatin1String("49/3")) / KNumber(QLatin1String("7/9")), QLatin1String("21"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/2\") / KNumber(2.5)"), KNumber(QLatin1String("5/2")) / KNumber(2.5), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/2\") / KNumber(0.0)"), KNumber(QLatin1String("5/2")) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/2\") / KNumber(0.0)"), KNumber(QLatin1String("-5/2")) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("KNumber(5.3) / KNumber(2)"), KNumber(5.3) / KNumber(2), QLatin1String("2.65"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) / KNumber(0)"), KNumber(5.3) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.3) / KNumber(0)"), KNumber(-5.3) / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(5.3) / KNumber(\"2/3\")"), KNumber(5.3) / KNumber(QLatin1String("2/3")), QLatin1String("7.95"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.5) / KNumber(2.5)"), KNumber(5.5) / KNumber(2.5), QLatin1String("2.2"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.5) / KNumber(0.0)"), KNumber(5.5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.5) / KNumber(0.0)"), KNumber(-5.5) / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); } void testingModulus() { @@ -348,11 +348,11 @@ std::cout << "Testing modulus:\n"; std::cout << "----------------\n"; - checkResult("KNumber(23) % KNumber(4)", KNumber(23) % KNumber(4), QLatin1String("3"), KNumber::TYPE_INTEGER); - checkResult("KNumber(12) % KNumber(-5)", KNumber(12) % KNumber(-5), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-12) % KNumber(5)", KNumber(-12) % KNumber(5), QLatin1String("3"), KNumber::TYPE_INTEGER); - checkResult("KNumber(12) % KNumber(0)", KNumber(-12) % KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-12) % KNumber(0)", KNumber(-12) % KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(23) % KNumber(4)"), KNumber(23) % KNumber(4), QLatin1String("3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(12) % KNumber(-5)"), KNumber(12) % KNumber(-5), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-12) % KNumber(5)"), KNumber(-12) % KNumber(5), QLatin1String("3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(12) % KNumber(0)"), KNumber(-12) % KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-12) % KNumber(0)"), KNumber(-12) % KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); #ifdef __GNUC__ #warning test for other types @@ -365,10 +365,10 @@ std::cout << "Testing And/Or:\n"; std::cout << "---------------\n"; - checkResult("KNumber(17) & KNumber(9)", KNumber(17) & KNumber(9), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(17) | KNumber(9)", KNumber(17) | KNumber(9), QLatin1String("25"), KNumber::TYPE_INTEGER); - checkResult("KNumber(1023) & KNumber(255)", KNumber(1023) & KNumber(255), QLatin1String("255"), KNumber::TYPE_INTEGER); - checkResult("KNumber(1023) | KNumber(255)", KNumber(1023) | KNumber(255), QLatin1String("1023"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(17) & KNumber(9)"), KNumber(17) & KNumber(9), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(17) | KNumber(9)"), KNumber(17) | KNumber(9), QLatin1String("25"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(1023) & KNumber(255)"), KNumber(1023) & KNumber(255), QLatin1String("255"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(1023) | KNumber(255)"), KNumber(1023) | KNumber(255), QLatin1String("1023"), KNumber::TYPE_INTEGER); #ifdef __GNUC__ #warning test for other types @@ -382,13 +382,13 @@ std::cout << "Testing absolute value:\n"; std::cout << "-----------------------\n"; - checkResult("KNumber(5).abs()", KNumber(5).abs(), QLatin1String("5"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"2/3\").abs()", KNumber(QLatin1String("2/3")).abs(), QLatin1String("2/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"2.3\").abs()", KNumber(QLatin1String("2.3")).abs(), QLatin1String("2.3"), KNumber::TYPE_FLOAT); - - checkResult("KNumber(-5).abs()", KNumber(-5).abs(), QLatin1String("5"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-2/3\").abs()", KNumber(QLatin1String("-2/3")).abs(), QLatin1String("2/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"-2.3\").abs()", KNumber(QLatin1String("-2.3")).abs(), QLatin1String("2.3"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5).abs()"), KNumber(5).abs(), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"2/3\").abs()"), KNumber(QLatin1String("2/3")).abs(), QLatin1String("2/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"2.3\").abs()"), KNumber(QLatin1String("2.3")).abs(), QLatin1String("2.3"), KNumber::TYPE_FLOAT); + + checkResult(QStringLiteral("KNumber(-5).abs()"), KNumber(-5).abs(), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-2/3\").abs()"), KNumber(QLatin1String("-2/3")).abs(), QLatin1String("2/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"-2.3\").abs()"), KNumber(QLatin1String("-2.3")).abs(), QLatin1String("2.3"), KNumber::TYPE_FLOAT); } void testingTruncateToInteger() { @@ -397,11 +397,11 @@ std::cout << "Testing truncate to an integer:\n"; std::cout << "-------------------------------\n"; - checkResult("KNumber(16).integerPart()", KNumber(16).integerPart(), QLatin1String("16"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"43/9\").integerPart()", KNumber(QLatin1String("43/9")).integerPart(), QLatin1String("4"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-43/9\").integerPart()", KNumber(QLatin1String("-43/9")).integerPart(), QLatin1String("-4"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5.25\").integerPart()", KNumber(QLatin1String("5.25")).integerPart(), QLatin1String("5"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-5.25\").integerPart()", KNumber(QLatin1String("-5.25")).integerPart(), QLatin1String("-5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(16).integerPart()"), KNumber(16).integerPart(), QLatin1String("16"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"43/9\").integerPart()"), KNumber(QLatin1String("43/9")).integerPart(), QLatin1String("4"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-43/9\").integerPart()"), KNumber(QLatin1String("-43/9")).integerPart(), QLatin1String("-4"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5.25\").integerPart()"), KNumber(QLatin1String("5.25")).integerPart(), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-5.25\").integerPart()"), KNumber(QLatin1String("-5.25")).integerPart(), QLatin1String("-5"), KNumber::TYPE_INTEGER); } @@ -411,27 +411,27 @@ std::cout << "Testing square root, cubic root:\n"; std::cout << "--------------------------------\n"; - checkResult("KNumber(16).sqrt()", KNumber(16).sqrt(), QLatin1String("4"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-16).sqrt()", KNumber(-16).sqrt(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"16/9\").sqrt()", KNumber(QLatin1String("16/9")).sqrt(), QLatin1String("4/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"-16/9\").sqrt()", KNumber(QLatin1String("-16/9")).sqrt(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(2).sqrt()", KNumber(2).sqrt(), QLatin1String("1.41421356237"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"2/3\").sqrt()", KNumber(QLatin1String("2/3")).sqrt(), QLatin1String("0.816496580928"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"0.25\").sqrt()", KNumber(QLatin1String("0.25")).sqrt(), QLatin1String("0.5"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"-0.25\").sqrt()", KNumber(QLatin1String("-0.25")).sqrt(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(16).sqrt()"), KNumber(16).sqrt(), QLatin1String("4"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-16).sqrt()"), KNumber(-16).sqrt(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"16/9\").sqrt()"), KNumber(QLatin1String("16/9")).sqrt(), QLatin1String("4/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"-16/9\").sqrt()"), KNumber(QLatin1String("-16/9")).sqrt(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(2).sqrt()"), KNumber(2).sqrt(), QLatin1String("1.41421356237"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"2/3\").sqrt()"), KNumber(QLatin1String("2/3")).sqrt(), QLatin1String("0.816496580928"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"0.25\").sqrt()"), KNumber(QLatin1String("0.25")).sqrt(), QLatin1String("0.5"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"-0.25\").sqrt()"), KNumber(QLatin1String("-0.25")).sqrt(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(27).cbrt()", KNumber(27).cbrt(), QLatin1String("3"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-27).cbrt()", KNumber(-27).cbrt(), QLatin1String("-3"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"27/8\").cbrt()", KNumber(QLatin1String("27/8")).cbrt(), QLatin1String("3/2"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"-8/27\").cbrt()", KNumber(QLatin1String("-8/27")).cbrt(), QLatin1String("-2/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(27).cbrt()"), KNumber(27).cbrt(), QLatin1String("3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-27).cbrt()"), KNumber(-27).cbrt(), QLatin1String("-3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"27/8\").cbrt()"), KNumber(QLatin1String("27/8")).cbrt(), QLatin1String("3/2"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"-8/27\").cbrt()"), KNumber(QLatin1String("-8/27")).cbrt(), QLatin1String("-2/3"), KNumber::TYPE_FRACTION); #ifdef __GNUC__ #warning need to check non-perfect cube roots #endif - checkResult("KNumber(2).cbrt()", KNumber(2).cbrt(), QLatin1String("1.25992104989"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"2/3\").cbrt()", KNumber(QLatin1String("2/3")).cbrt(), QLatin1String("0.873580464736"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"0.25\").cbrt()", KNumber(QLatin1String("0.25")).cbrt(), QLatin1String("0.629960524947"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"-0.25\").cbrt()", KNumber(QLatin1String("-0.25")).cbrt(), QLatin1String("-0.629960524947"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(2).cbrt()"), KNumber(2).cbrt(), QLatin1String("1.25992104989"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"2/3\").cbrt()"), KNumber(QLatin1String("2/3")).cbrt(), QLatin1String("0.873580464736"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"0.25\").cbrt()"), KNumber(QLatin1String("0.25")).cbrt(), QLatin1String("0.629960524947"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"-0.25\").cbrt()"), KNumber(QLatin1String("-0.25")).cbrt(), QLatin1String("-0.629960524947"), KNumber::TYPE_FLOAT); } @@ -441,32 +441,32 @@ std::cout << "Testing factorial:\n"; std::cout << "------------------\n"; - checkResult("KNumber(-1).factorial()", KNumber(-1).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-2).factorial()", KNumber(-2).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-20).factorial()", KNumber(-20).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-1/2).factorial()", KNumber(QLatin1String("-1/2")).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-0.5).factorial()", KNumber(QLatin1String("-0.5")).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("KNumber(0).factorial()", KNumber(0).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(1).factorial()", KNumber(1).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(2).factorial()", KNumber(2).factorial(), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(3).factorial()", KNumber(3).factorial(), QLatin1String("6"), KNumber::TYPE_INTEGER); - checkResult("KNumber(4).factorial()", KNumber(4).factorial(), QLatin1String("24"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5).factorial()", KNumber(5).factorial(), QLatin1String("120"), KNumber::TYPE_INTEGER); - checkResult("KNumber(6).factorial()", KNumber(6).factorial(), QLatin1String("720"), KNumber::TYPE_INTEGER); - checkResult("KNumber(9).factorial()", KNumber(9).factorial(), QLatin1String("362880"), KNumber::TYPE_INTEGER); - checkResult("KNumber(12).factorial()", KNumber(12).factorial(), QLatin1String("479001600"), KNumber::TYPE_INTEGER); - checkResult("KNumber(13).factorial()", KNumber(13).factorial(), QLatin1String("6227020800"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(1/2).factorial()", KNumber(QLatin1String("1/2")).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(2/1).factorial()", KNumber(QLatin1String("2/1")).factorial(), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(3/2).factorial()", KNumber(QLatin1String("3/2")).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(0.1).factorial()", KNumber(0.1).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(0.5).factorial()", KNumber(0.5).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(1.5).factorial()", KNumber(1.5).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(2.5).factorial()", KNumber(2.5).factorial(), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(3.5).factorial()", KNumber(3.5).factorial(), QLatin1String("6"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-1).factorial()"), KNumber(-1).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-2).factorial()"), KNumber(-2).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-20).factorial()"), KNumber(-20).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-1/2).factorial()"), KNumber(QLatin1String("-1/2")).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-0.5).factorial()"), KNumber(QLatin1String("-0.5")).factorial(), QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("KNumber(0).factorial()"), KNumber(0).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(1).factorial()"), KNumber(1).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(2).factorial()"), KNumber(2).factorial(), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(3).factorial()"), KNumber(3).factorial(), QLatin1String("6"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(4).factorial()"), KNumber(4).factorial(), QLatin1String("24"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5).factorial()"), KNumber(5).factorial(), QLatin1String("120"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(6).factorial()"), KNumber(6).factorial(), QLatin1String("720"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(9).factorial()"), KNumber(9).factorial(), QLatin1String("362880"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(12).factorial()"), KNumber(12).factorial(), QLatin1String("479001600"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(13).factorial()"), KNumber(13).factorial(), QLatin1String("6227020800"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(1/2).factorial()"), KNumber(QLatin1String("1/2")).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(2/1).factorial()"), KNumber(QLatin1String("2/1")).factorial(), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(3/2).factorial()"), KNumber(QLatin1String("3/2")).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(0.1).factorial()"), KNumber(0.1).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(0.5).factorial()"), KNumber(0.5).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(1.5).factorial()"), KNumber(1.5).factorial(), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(2.5).factorial()"), KNumber(2.5).factorial(), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(3.5).factorial()"), KNumber(3.5).factorial(), QLatin1String("6"), KNumber::TYPE_INTEGER); } void testingComplement() { @@ -479,22 +479,22 @@ // ~-2 == 1, but the HEX/OCT/BIN views are broken :-( // specifically, if the value is negative, it goes badly pretty quick.. #if 0 - checkResult("~KNumber(0)", ~KNumber(0), QLatin1String("-1"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(1)", ~KNumber(1), QLatin1String("-2"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(2)", ~KNumber(2), QLatin1String("-3"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(8)", ~KNumber(8), QLatin1String("-9"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(15)", ~KNumber(15), QLatin1String("-16"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(-1)", ~KNumber(-1), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(-2)", ~KNumber(-2), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(-3)", ~KNumber(-3), QLatin1String("2"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(-9)", ~KNumber(-9), QLatin1String("8"), KNumber::TYPE_INTEGER); - checkResult("~KNumber(-16)", ~KNumber(-16), QLatin1String("15"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(0)"), ~KNumber(0), QLatin1String("-1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(1)"), ~KNumber(1), QLatin1String("-2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(2)"), ~KNumber(2), QLatin1String("-3"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(8)"), ~KNumber(8), QLatin1String("-9"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(15)"), ~KNumber(15), QLatin1String("-16"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(-1)"), ~KNumber(-1), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(-2)"), ~KNumber(-2), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(-3)"), ~KNumber(-3), QLatin1String("2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(-9)"), ~KNumber(-9), QLatin1String("8"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("~KNumber(-16)"), ~KNumber(-16), QLatin1String("15"), KNumber::TYPE_INTEGER); #endif - checkResult("~KNumber(0.12345)", ~KNumber(0.12345), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("~KNumber(-0.12345)", ~KNumber(-0.12345), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("~KNumber(\"1/2\")", ~KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("~KNumber(\"-1/2\")", ~KNumber(QLatin1String("-1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("~KNumber(0.12345)"), ~KNumber(0.12345), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("~KNumber(-0.12345)"), ~KNumber(-0.12345), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("~KNumber(\"1/2\")"), ~KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("~KNumber(\"-1/2\")"), ~KNumber(QLatin1String("-1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); } void testingShifts() { @@ -503,8 +503,8 @@ std::cout << "Testing left/right shift:\n"; std::cout << "-------------------------\n"; - checkResult("KNumber(16) << KNumber(2)", KNumber(16) << KNumber(2), QLatin1String("64"), KNumber::TYPE_INTEGER); - checkResult("KNumber(16) >> KNumber(2)", KNumber(16) >> KNumber(2), QLatin1String("4"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(16) << KNumber(2)"), KNumber(16) << KNumber(2), QLatin1String("64"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(16) >> KNumber(2)"), KNumber(16) >> KNumber(2), QLatin1String("4"), KNumber::TYPE_INTEGER); } void testingPower() { @@ -513,68 +513,68 @@ std::cout << "Testing Power:\n"; std::cout << "--------------\n"; - checkResult("KNumber(0) ^ KNumber(0)", KNumber(0).pow(KNumber(0)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0) ^ KNumber(-4)", KNumber(0).pow(KNumber(-4)), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(5) ^ KNumber(4)", KNumber(5).pow(KNumber(4)), QLatin1String("625"), KNumber::TYPE_INTEGER); - checkResult("KNumber(122) ^ KNumber(0)", KNumber(122).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-5) ^ KNumber(0)", KNumber(-5).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-2) ^ KNumber(3)", KNumber(-2).pow(KNumber(3)), QLatin1String("-8"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-2) ^ KNumber(4)", KNumber(-2).pow(KNumber(4)), QLatin1String("16"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) ^ KNumber(-2)", KNumber(5).pow(KNumber(-2)), QLatin1String("1/25"), KNumber::TYPE_FRACTION); - checkResult("KNumber(8) ^ KNumber(\"2/3\")", KNumber(8).pow(KNumber(QLatin1String("2/3"))), QLatin1String("4"), KNumber::TYPE_INTEGER); - checkResult("KNumber(8) ^ KNumber(\"-2/3\")", KNumber(8).pow(KNumber(QLatin1String("-2/3"))), QLatin1String("1/4"), KNumber::TYPE_FRACTION); - - checkResult("KNumber(-16) ^ KNumber(\"1/4\")", KNumber(-16).pow(KNumber(QLatin1String("1/4"))), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-8) ^ KNumber(\"1/3\")", KNumber(-8).pow(KNumber(QLatin1String("1/3"))), QLatin1String("-2"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5) ^ KNumber(0.0)", KNumber(5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-5) ^ KNumber(0.0)", KNumber(-5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(\"5/3\") ^ KNumber(2)", KNumber(QLatin1String("5/3")).pow(KNumber(2)), QLatin1String("25/9"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/3\") ^ KNumber(0)", KNumber(QLatin1String("5/3")).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-5/3\") ^ KNumber(0)", KNumber(QLatin1String("-5/3")).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"8/27\") ^ KNumber(\"2/3\")", KNumber(QLatin1String("8/27")).pow(KNumber(QLatin1String("2/3"))), QLatin1String("4/9"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"49/3\") ^ KNumber(\"7/9\")", KNumber(QLatin1String("49/3")).pow(KNumber(QLatin1String("7/9"))), QLatin1String("8.78016428243"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"5/2\") ^ KNumber(2.5)", KNumber(QLatin1String("5/2")).pow(KNumber(2.5)), QLatin1String("9.88211768803"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"5/2\") ^ KNumber(0.0)", KNumber(QLatin1String("5/2")).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-5/2\") ^ KNumber(0.0)", KNumber(QLatin1String("-5/2")).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(5.3) ^ KNumber(2)", KNumber(5.3).pow(KNumber(2)), QLatin1String("28.09"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.3) ^ KNumber(0)", KNumber(5.3).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-5.3) ^ KNumber(0)", KNumber(-5.3).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(5.3) ^ KNumber(\"2/3\")", KNumber(5.3).pow(KNumber(QLatin1String("2/3"))), QLatin1String("3.03983898039"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.5) ^ KNumber(2.5)", KNumber(5.5).pow(KNumber(2.5)), QLatin1String("70.9425383673"), KNumber::TYPE_FLOAT); - checkResult("KNumber(5.5) ^ KNumber(0.0)", KNumber(5.5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-5.5) ^ KNumber(0.0)", KNumber(-5.5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); - - checkResult("KNumber::Pi() ^ KNumber::Pi()", KNumber::Pi().pow(KNumber::Pi()), QLatin1String("36.4621596072"), KNumber::TYPE_FLOAT); - checkResult("KNumber::Euler() ^ KNumber::Pi()", KNumber::Euler().pow(KNumber::Pi()), QLatin1String("23.1406926328"), KNumber::TYPE_FLOAT); - - - checkResult("KNumber(2.0) ^ KNumber(0.5)", KNumber(2.0).pow(KNumber(0.5)), QLatin1String("1.41421356237"), KNumber::TYPE_FLOAT); - checkResult("KNumber(2.0) ^ KNumber(-0.5)", KNumber(2.0).pow(KNumber(-0.5)), QLatin1String("0.707106781187"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(0) ^ KNumber(0)"), KNumber(0).pow(KNumber(0)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0) ^ KNumber(-4)"), KNumber(0).pow(KNumber(-4)), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(5) ^ KNumber(4)"), KNumber(5).pow(KNumber(4)), QLatin1String("625"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(122) ^ KNumber(0)"), KNumber(122).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-5) ^ KNumber(0)"), KNumber(-5).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-2) ^ KNumber(3)"), KNumber(-2).pow(KNumber(3)), QLatin1String("-8"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-2) ^ KNumber(4)"), KNumber(-2).pow(KNumber(4)), QLatin1String("16"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) ^ KNumber(-2)"), KNumber(5).pow(KNumber(-2)), QLatin1String("1/25"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(8) ^ KNumber(\"2/3\")"), KNumber(8).pow(KNumber(QLatin1String("2/3"))), QLatin1String("4"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(8) ^ KNumber(\"-2/3\")"), KNumber(8).pow(KNumber(QLatin1String("-2/3"))), QLatin1String("1/4"), KNumber::TYPE_FRACTION); + + checkResult(QStringLiteral("KNumber(-16) ^ KNumber(\"1/4\")"), KNumber(-16).pow(KNumber(QLatin1String("1/4"))), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-8) ^ KNumber(\"1/3\")"), KNumber(-8).pow(KNumber(QLatin1String("1/3"))), QLatin1String("-2"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5) ^ KNumber(0.0)"), KNumber(5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-5) ^ KNumber(0.0)"), KNumber(-5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(\"5/3\") ^ KNumber(2)"), KNumber(QLatin1String("5/3")).pow(KNumber(2)), QLatin1String("25/9"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/3\") ^ KNumber(0)"), KNumber(QLatin1String("5/3")).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-5/3\") ^ KNumber(0)"), KNumber(QLatin1String("-5/3")).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"8/27\") ^ KNumber(\"2/3\")"), KNumber(QLatin1String("8/27")).pow(KNumber(QLatin1String("2/3"))), QLatin1String("4/9"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"49/3\") ^ KNumber(\"7/9\")"), KNumber(QLatin1String("49/3")).pow(KNumber(QLatin1String("7/9"))), QLatin1String("8.78016428243"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"5/2\") ^ KNumber(2.5)"), KNumber(QLatin1String("5/2")).pow(KNumber(2.5)), QLatin1String("9.88211768803"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"5/2\") ^ KNumber(0.0)"), KNumber(QLatin1String("5/2")).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-5/2\") ^ KNumber(0.0)"), KNumber(QLatin1String("-5/2")).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(5.3) ^ KNumber(2)"), KNumber(5.3).pow(KNumber(2)), QLatin1String("28.09"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.3) ^ KNumber(0)"), KNumber(5.3).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-5.3) ^ KNumber(0)"), KNumber(-5.3).pow(KNumber(0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5.3) ^ KNumber(\"2/3\")"), KNumber(5.3).pow(KNumber(QLatin1String("2/3"))), QLatin1String("3.03983898039"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.5) ^ KNumber(2.5)"), KNumber(5.5).pow(KNumber(2.5)), QLatin1String("70.9425383673"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(5.5) ^ KNumber(0.0)"), KNumber(5.5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-5.5) ^ KNumber(0.0)"), KNumber(-5.5).pow(KNumber(0.0)), QLatin1String("1"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber::Pi() ^ KNumber::Pi()"), KNumber::Pi().pow(KNumber::Pi()), QLatin1String("36.4621596072"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber::Euler() ^ KNumber::Pi()"), KNumber::Euler().pow(KNumber::Pi()), QLatin1String("23.1406926328"), KNumber::TYPE_FLOAT); + + + checkResult(QStringLiteral("KNumber(2.0) ^ KNumber(0.5)"), KNumber(2.0).pow(KNumber(0.5)), QLatin1String("1.41421356237"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(2.0) ^ KNumber(-0.5)"), KNumber(2.0).pow(KNumber(-0.5)), QLatin1String("0.707106781187"), KNumber::TYPE_FLOAT); - checkResult("KNumber(-2.0).exp()", KNumber(-2.0).exp(), QLatin1String("0.135335283237"), KNumber::TYPE_FLOAT); - checkResult("KNumber::Euler() ^ KNumber(-2.0)", KNumber::Euler().pow(KNumber(-2.0)), QLatin1String("0.135335283237"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(-2.0).exp()"), KNumber(-2.0).exp(), QLatin1String("0.135335283237"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber::Euler() ^ KNumber(-2.0)"), KNumber::Euler().pow(KNumber(-2.0)), QLatin1String("0.135335283237"), KNumber::TYPE_FLOAT); - checkResult("KNumber(2.0).exp()", KNumber(2.0).exp(), QLatin1String("7.38905609893"), KNumber::TYPE_FLOAT); - checkResult("KNumber::Euler() ^ KNumber(2.0)", KNumber::Euler().pow(KNumber(2.0)), QLatin1String("7.38905609893"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(2.0).exp()"), KNumber(2.0).exp(), QLatin1String("7.38905609893"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber::Euler() ^ KNumber(2.0)"), KNumber::Euler().pow(KNumber(2.0)), QLatin1String("7.38905609893"), KNumber::TYPE_FLOAT); // TODO: kinda odd that this ends up being an integer // i guess since my euler constant is only 100 digits, we've exceeded the fractional part - checkResult("KNumber::Euler() ^ 1000", KNumber::Euler().pow(KNumber(1000)), QLatin1String("1.97007111402e+434"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber::Euler() ^ 1000"), KNumber::Euler().pow(KNumber(1000)), QLatin1String("1.97007111402e+434"), KNumber::TYPE_INTEGER); // TODO: make this test pass // the problem is that it is using the libc exp function which has limits that GMP does not // we should basically make this equivalent to KNumber::Euler().pow(KNumber(1000)) // which does work #if 0 - checkResult("KNumber(1000).exp()", KNumber(1000).exp(), QLatin1String("23.1406926328"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(1000).exp()"), KNumber(1000).exp(), QLatin1String("23.1406926328"), KNumber::TYPE_FLOAT); #endif KNumber::setDefaultFractionalInput(true); - checkResult("KNumber(\"3.1415926\") ^ KNumber(\"3.1415926\")", KNumber(QLatin1String("3.1415926")).pow(KNumber(QLatin1String("3.1415926"))), QLatin1String("36.4621554164"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"3.1415926\") ^ KNumber(\"3.1415926\")"), KNumber(QLatin1String("3.1415926")).pow(KNumber(QLatin1String("3.1415926"))), QLatin1String("36.4621554164"), KNumber::TYPE_FLOAT); KNumber::setDefaultFractionalInput(false); } @@ -584,234 +584,234 @@ std::cout << "Testing inf/nan-arithmetics:\n"; std::cout << "----------------------------\n"; - checkResult("inf + KNumber(2)", KNumber::PosInfinity + KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) + inf", KNumber(-5) + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("inf + KNumber(\"1/2\")", KNumber::PosInfinity + KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") + inf", KNumber(QLatin1String("-5/3")) + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("inf + KNumber(2.01)", KNumber::PosInfinity + KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) + inf", KNumber(-5.4) + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("-inf + KNumber(2)", KNumber::NegInfinity + KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) + -inf", KNumber(-5) + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf + KNumber(\"1/2\")", KNumber::NegInfinity + KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") + -inf", KNumber(QLatin1String("-5/3")) + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf + KNumber(2.01)", KNumber::NegInfinity + KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) + -inf", KNumber(-5.4) + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("nan + KNumber(2)", KNumber::NaN + KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) + nan", KNumber(-5) + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan + KNumber(\"1/2\")", KNumber::NaN + KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") + nan", KNumber(QLatin1String("-5/3")) + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan + KNumber(2.01)", KNumber::NaN + KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) + nan", KNumber(-5.4) + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf + inf", KNumber::PosInfinity + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("inf + -inf", KNumber::PosInfinity + KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf + inf", KNumber::NegInfinity + KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf + -inf", KNumber::NegInfinity + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("inf + nan", KNumber::PosInfinity + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf + nan", KNumber::NegInfinity + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan + inf", KNumber::NaN + KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf + nan", KNumber::NegInfinity + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("inf - KNumber(2)", KNumber::PosInfinity - KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) - inf", KNumber(-5) - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("inf - KNumber(\"1/2\")", KNumber::PosInfinity - KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") - inf", KNumber(QLatin1String("-5/3")) - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("inf - KNumber(2.01)", KNumber::PosInfinity - KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) - inf", KNumber(-5.4) - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf - KNumber(2)", KNumber::NegInfinity - KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) - -inf", KNumber(-5) - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("-inf - KNumber(\"1/2\")", KNumber::NegInfinity - KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") - -inf", KNumber(QLatin1String("-5/3")) - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("-inf - KNumber(2.01)", KNumber::NegInfinity - KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) - -inf", KNumber(-5.4) - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("nan - KNumber(2)", KNumber::NaN - KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) - nan", KNumber(-5) - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan - KNumber(\"1/2\")", KNumber::NaN - KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") - nan", KNumber(QLatin1String("-5/3")) - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan - KNumber(2.01)", KNumber::NaN - KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) - nan", KNumber(-5.4) - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf - inf", KNumber::PosInfinity - KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf - -inf", KNumber::PosInfinity - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("-inf - inf", KNumber::NegInfinity - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf - -inf", KNumber::NegInfinity - KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf - nan", KNumber::PosInfinity - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf - nan", KNumber::NegInfinity - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan - inf", KNumber::NaN - KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf - nan", KNumber::NegInfinity - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("inf * KNumber(2)", KNumber::PosInfinity * KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) * inf", KNumber(-5) * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("inf * KNumber(\"1/2\")", KNumber::PosInfinity * KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") * inf", KNumber(QLatin1String("-5/3")) * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("inf * KNumber(2.01)", KNumber::PosInfinity * KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) * inf", KNumber(-5.4) * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf * KNumber(2)", KNumber::NegInfinity * KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) * -inf", KNumber(-5) * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("-inf * KNumber(\"1/2\")", KNumber::NegInfinity * KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") * -inf", KNumber(QLatin1String("-5/3")) * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("-inf * KNumber(2.01)", KNumber::NegInfinity * KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) * -inf", KNumber(-5.4) * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("nan * KNumber(2)", KNumber::NaN * KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) * nan", KNumber(-5) * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan * KNumber(\"1/2\")", KNumber::NaN * KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") * nan", KNumber(QLatin1String("-5/3")) * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan * KNumber(2.01)", KNumber::NaN * KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) * nan", KNumber(-5.4) * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf * inf", KNumber::PosInfinity * KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("inf * -inf", KNumber::PosInfinity * KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf * inf", KNumber::NegInfinity * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("-inf * -inf", KNumber::NegInfinity * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("inf * nan", KNumber::PosInfinity * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf * nan", KNumber::NegInfinity * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan * inf", KNumber::NaN * KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf * nan", KNumber::NegInfinity * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0) * inf", KNumber(0) * KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0) * -inf", KNumber(0) * KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf * KNumber(0)", KNumber::PosInfinity * KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf * KNumber(0)", KNumber::NegInfinity * KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0.0) * inf", KNumber(0.0) * KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0.0) * -inf", KNumber(0.0) * KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf * KNumber(0.0)", KNumber::PosInfinity * KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf * KNumber(0.0)", KNumber::NegInfinity * KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("inf / KNumber(2)", KNumber::PosInfinity / KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) / inf", KNumber(-5) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("inf / KNumber(\"1/2\")", KNumber::PosInfinity / KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") / inf", KNumber(QLatin1String("-5/3")) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("inf / KNumber(2.01)", KNumber::PosInfinity / KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) / inf", KNumber(-5.4) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("-inf / KNumber(2)", KNumber::NegInfinity / KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) / -inf", KNumber(-5) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("-inf / KNumber(\"1/2\")", KNumber::NegInfinity / KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") / -inf", KNumber(QLatin1String("-5/3")) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("-inf / KNumber(2.01)", KNumber::NegInfinity / KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) / -inf", KNumber(-5.4) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("nan / KNumber(2)", KNumber::NaN / KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) / nan", KNumber(-5) / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan / KNumber(\"1/2\")", KNumber::NaN / KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/3\") / nan", KNumber(QLatin1String("-5/3")) / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan / KNumber(2.01)", KNumber::NaN / KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5.4) / nan", KNumber(-5.4) / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf / inf", KNumber::PosInfinity / KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf / -inf", KNumber::PosInfinity / KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf / inf", KNumber::NegInfinity / KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf / -inf", KNumber::NegInfinity / KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("inf / nan", KNumber::PosInfinity / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf / nan", KNumber::NegInfinity / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("nan / inf", KNumber::NaN / KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf / nan", KNumber::NegInfinity / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0) / inf", KNumber(0) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(0) / -inf", KNumber(0) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("inf / KNumber(0)", KNumber::PosInfinity / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf / KNumber(0)", KNumber::NegInfinity / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(0.0) / inf", KNumber(0.0) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(0.0) / -inf", KNumber(0.0) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("inf / KNumber(0.0)", KNumber::PosInfinity / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("-inf / KNumber(0.0)", KNumber::NegInfinity / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("KNumber(5) ^ KNumber(\"inf\")", KNumber(5).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) ^ KNumber(\"inf\")", KNumber(-5).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"5/2\") ^ KNumber(\"inf\")", KNumber(QLatin1String("5/2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/2\") ^ KNumber(\"inf\")", KNumber(QLatin1String("-5/2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"5.2\") ^ KNumber(\"inf\")", KNumber(QLatin1String("5.2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5.2\") ^ KNumber(\"inf\")", KNumber(QLatin1String("-5.2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - - checkResult("KNumber(5) ^ KNumber(\"-inf\")", KNumber(5).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(-5) ^ KNumber(\"-inf\")", KNumber(-5).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/2\") ^ KNumber(\"-inf\")", KNumber(QLatin1String("5/2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-5/2\") ^ KNumber(\"-inf\")", KNumber(QLatin1String("-5/2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5.2\") ^ KNumber(\"-inf\")", KNumber(QLatin1String("5.2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"-5.2\") ^ KNumber(\"-inf\")", KNumber(QLatin1String("-5.2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(5) ^ KNumber(\"nan\")", KNumber(5).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(-5) ^ KNumber(\"nan\")", KNumber(-5).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"5/2\") ^ KNumber(\"nan\")", KNumber(QLatin1String("5/2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5/2\") ^ KNumber(\"nan\")", KNumber(QLatin1String("-5/2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"5.2\") ^ KNumber(\"nan\")", KNumber(QLatin1String("5.2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-5.2\") ^ KNumber(\"nan\")", KNumber(QLatin1String("-5.2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - - - checkResult("KNumber(\"nan\") ^ KNumber(\"nan\")", KNumber::NaN.pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"nan\") ^ KNumber(\"inf\")", KNumber::NaN.pow(KNumber::PosInfinity), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"nan\") ^ KNumber(\"-inf\")", KNumber::NaN.pow(KNumber::NegInfinity), QLatin1String("nan"), KNumber::TYPE_ERROR); - - checkResult("KNumber(\"inf\") ^ KNumber(\"nan\")", KNumber::PosInfinity.pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"inf\") ^ KNumber(\"inf\")", KNumber::PosInfinity.pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"inf\") ^ KNumber(\"-inf\")", KNumber::PosInfinity.pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); - - checkResult("KNumber(\"-inf\") ^ KNumber(\"nan\")", KNumber::NegInfinity.pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-inf\") ^ KNumber(\"inf\")", KNumber::NegInfinity.pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-inf\") ^ KNumber(\"-inf\")", KNumber::NegInfinity.pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("inf + KNumber(2)"), KNumber::PosInfinity + KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) + inf"), KNumber(-5) + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf + KNumber(\"1/2\")"), KNumber::PosInfinity + KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") + inf"), KNumber(QLatin1String("-5/3")) + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf + KNumber(2.01)"), KNumber::PosInfinity + KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) + inf"), KNumber(-5.4) + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + KNumber(2)"), KNumber::NegInfinity + KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) + -inf"), KNumber(-5) + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + KNumber(\"1/2\")"), KNumber::NegInfinity + KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") + -inf"), KNumber(QLatin1String("-5/3")) + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + KNumber(2.01)"), KNumber::NegInfinity + KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) + -inf"), KNumber(-5.4) + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan + KNumber(2)"), KNumber::NaN + KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) + nan"), KNumber(-5) + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan + KNumber(\"1/2\")"), KNumber::NaN + KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") + nan"), KNumber(QLatin1String("-5/3")) + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan + KNumber(2.01)"), KNumber::NaN + KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) + nan"), KNumber(-5.4) + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf + inf"), KNumber::PosInfinity + KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf + -inf"), KNumber::PosInfinity + KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + inf"), KNumber::NegInfinity + KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + -inf"), KNumber::NegInfinity + KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf + nan"), KNumber::PosInfinity + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + nan"), KNumber::NegInfinity + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan + inf"), KNumber::NaN + KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf + nan"), KNumber::NegInfinity + KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("inf - KNumber(2)"), KNumber::PosInfinity - KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) - inf"), KNumber(-5) - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf - KNumber(\"1/2\")"), KNumber::PosInfinity - KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") - inf"), KNumber(QLatin1String("-5/3")) - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf - KNumber(2.01)"), KNumber::PosInfinity - KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) - inf"), KNumber(-5.4) - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - KNumber(2)"), KNumber::NegInfinity - KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) - -inf"), KNumber(-5) - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - KNumber(\"1/2\")"), KNumber::NegInfinity - KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") - -inf"), KNumber(QLatin1String("-5/3")) - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - KNumber(2.01)"), KNumber::NegInfinity - KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) - -inf"), KNumber(-5.4) - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan - KNumber(2)"), KNumber::NaN - KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) - nan"), KNumber(-5) - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan - KNumber(\"1/2\")"), KNumber::NaN - KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") - nan"), KNumber(QLatin1String("-5/3")) - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan - KNumber(2.01)"), KNumber::NaN - KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) - nan"), KNumber(-5.4) - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf - inf"), KNumber::PosInfinity - KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf - -inf"), KNumber::PosInfinity - KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - inf"), KNumber::NegInfinity - KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - -inf"), KNumber::NegInfinity - KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf - nan"), KNumber::PosInfinity - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - nan"), KNumber::NegInfinity - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan - inf"), KNumber::NaN - KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf - nan"), KNumber::NegInfinity - KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("inf * KNumber(2)"), KNumber::PosInfinity * KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) * inf"), KNumber(-5) * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * KNumber(\"1/2\")"), KNumber::PosInfinity * KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") * inf"), KNumber(QLatin1String("-5/3")) * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * KNumber(2.01)"), KNumber::PosInfinity * KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) * inf"), KNumber(-5.4) * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * KNumber(2)"), KNumber::NegInfinity * KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) * -inf"), KNumber(-5) * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * KNumber(\"1/2\")"), KNumber::NegInfinity * KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") * -inf"), KNumber(QLatin1String("-5/3")) * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * KNumber(2.01)"), KNumber::NegInfinity * KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) * -inf"), KNumber(-5.4) * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan * KNumber(2)"), KNumber::NaN * KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) * nan"), KNumber(-5) * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan * KNumber(\"1/2\")"), KNumber::NaN * KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") * nan"), KNumber(QLatin1String("-5/3")) * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan * KNumber(2.01)"), KNumber::NaN * KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) * nan"), KNumber(-5.4) * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * inf"), KNumber::PosInfinity * KNumber::PosInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * -inf"), KNumber::PosInfinity * KNumber::NegInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * inf"), KNumber::NegInfinity * KNumber::PosInfinity, QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * -inf"), KNumber::NegInfinity * KNumber::NegInfinity, QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * nan"), KNumber::PosInfinity * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * nan"), KNumber::NegInfinity * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan * inf"), KNumber::NaN * KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * nan"), KNumber::NegInfinity * KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0) * inf"), KNumber(0) * KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0) * -inf"), KNumber(0) * KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * KNumber(0)"), KNumber::PosInfinity * KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * KNumber(0)"), KNumber::NegInfinity * KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0.0) * inf"), KNumber(0.0) * KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0.0) * -inf"), KNumber(0.0) * KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf * KNumber(0.0)"), KNumber::PosInfinity * KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf * KNumber(0.0)"), KNumber::NegInfinity * KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("inf / KNumber(2)"), KNumber::PosInfinity / KNumber(2), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) / inf"), KNumber(-5) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("inf / KNumber(\"1/2\")"), KNumber::PosInfinity / KNumber(QLatin1String("1/2")), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") / inf"), KNumber(QLatin1String("-5/3")) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("inf / KNumber(2.01)"), KNumber::PosInfinity / KNumber(2.01), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) / inf"), KNumber(-5.4) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("-inf / KNumber(2)"), KNumber::NegInfinity / KNumber(2), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) / -inf"), KNumber(-5) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("-inf / KNumber(\"1/2\")"), KNumber::NegInfinity / KNumber(QLatin1String("1/2")), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") / -inf"), KNumber(QLatin1String("-5/3")) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("-inf / KNumber(2.01)"), KNumber::NegInfinity / KNumber(2.01), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) / -inf"), KNumber(-5.4) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("nan / KNumber(2)"), KNumber::NaN / KNumber(2), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) / nan"), KNumber(-5) / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan / KNumber(\"1/2\")"), KNumber::NaN / KNumber(QLatin1String("1/2")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/3\") / nan"), KNumber(QLatin1String("-5/3")) / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan / KNumber(2.01)"), KNumber::NaN / KNumber(2.01), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5.4) / nan"), KNumber(-5.4) / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf / inf"), KNumber::PosInfinity / KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf / -inf"), KNumber::PosInfinity / KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf / inf"), KNumber::NegInfinity / KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf / -inf"), KNumber::NegInfinity / KNumber::NegInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("inf / nan"), KNumber::PosInfinity / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf / nan"), KNumber::NegInfinity / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("nan / inf"), KNumber::NaN / KNumber::PosInfinity, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf / nan"), KNumber::NegInfinity / KNumber::NaN, QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0) / inf"), KNumber(0) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(0) / -inf"), KNumber(0) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("inf / KNumber(0)"), KNumber::PosInfinity / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf / KNumber(0)"), KNumber::NegInfinity / KNumber(0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(0.0) / inf"), KNumber(0.0) / KNumber::PosInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(0.0) / -inf"), KNumber(0.0) / KNumber::NegInfinity, QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("inf / KNumber(0.0)"), KNumber::PosInfinity / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("-inf / KNumber(0.0)"), KNumber::NegInfinity / KNumber(0.0), QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("KNumber(5) ^ KNumber(\"inf\")"), KNumber(5).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) ^ KNumber(\"inf\")"), KNumber(-5).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"5/2\") ^ KNumber(\"inf\")"), KNumber(QLatin1String("5/2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/2\") ^ KNumber(\"inf\")"), KNumber(QLatin1String("-5/2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"5.2\") ^ KNumber(\"inf\")"), KNumber(QLatin1String("5.2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5.2\") ^ KNumber(\"inf\")"), KNumber(QLatin1String("-5.2")).pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("KNumber(5) ^ KNumber(\"-inf\")"), KNumber(5).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(-5) ^ KNumber(\"-inf\")"), KNumber(-5).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/2\") ^ KNumber(\"-inf\")"), KNumber(QLatin1String("5/2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-5/2\") ^ KNumber(\"-inf\")"), KNumber(QLatin1String("-5/2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5.2\") ^ KNumber(\"-inf\")"), KNumber(QLatin1String("5.2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"-5.2\") ^ KNumber(\"-inf\")"), KNumber(QLatin1String("-5.2")).pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(5) ^ KNumber(\"nan\")"), KNumber(5).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(-5) ^ KNumber(\"nan\")"), KNumber(-5).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"5/2\") ^ KNumber(\"nan\")"), KNumber(QLatin1String("5/2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5/2\") ^ KNumber(\"nan\")"), KNumber(QLatin1String("-5/2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"5.2\") ^ KNumber(\"nan\")"), KNumber(QLatin1String("5.2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-5.2\") ^ KNumber(\"nan\")"), KNumber(QLatin1String("-5.2")).pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + + + checkResult(QStringLiteral("KNumber(\"nan\") ^ KNumber(\"nan\")"), KNumber::NaN.pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"nan\") ^ KNumber(\"inf\")"), KNumber::NaN.pow(KNumber::PosInfinity), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"nan\") ^ KNumber(\"-inf\")"), KNumber::NaN.pow(KNumber::NegInfinity), QLatin1String("nan"), KNumber::TYPE_ERROR); + + checkResult(QStringLiteral("KNumber(\"inf\") ^ KNumber(\"nan\")"), KNumber::PosInfinity.pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"inf\") ^ KNumber(\"inf\")"), KNumber::PosInfinity.pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"inf\") ^ KNumber(\"-inf\")"), KNumber::PosInfinity.pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); + + checkResult(QStringLiteral("KNumber(\"-inf\") ^ KNumber(\"nan\")"), KNumber::NegInfinity.pow(KNumber::NaN), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-inf\") ^ KNumber(\"inf\")"), KNumber::NegInfinity.pow(KNumber::PosInfinity), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-inf\") ^ KNumber(\"-inf\")"), KNumber::NegInfinity.pow(KNumber::NegInfinity), QLatin1String("0"), KNumber::TYPE_INTEGER); } void testingFloatPrecision() { KNumber::setDefaultFloatPrecision(100); - checkResult("Precision >= 100: (KNumber(1) + KNumber(\"1e-80\")) - KNumber(1)", (KNumber(1) + KNumber(QLatin1String("1e-80"))) - KNumber(1), QLatin1String("1e-80"), KNumber::TYPE_FLOAT); - checkResult("Precision >= 100: (KNumber(1) + KNumber(\"1e-980\")) - KNumber(1)", (KNumber(1) + KNumber(QLatin1String("1e-980"))) - KNumber(1), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("Precision >= 100: (KNumber(1) + KNumber(\"1e-80\")) - KNumber(1)"), (KNumber(1) + KNumber(QLatin1String("1e-80"))) - KNumber(1), QLatin1String("1e-80"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("Precision >= 100: (KNumber(1) + KNumber(\"1e-980\")) - KNumber(1)"), (KNumber(1) + KNumber(QLatin1String("1e-980"))) - KNumber(1), QLatin1String("0"), KNumber::TYPE_INTEGER); KNumber::setDefaultFloatPrecision(1000); - checkResult("Precision >= 1000: (KNumber(1) + KNumber(\"1e-980\")) - KNumber(1)", (KNumber(1) + KNumber(QLatin1String("1e-980"))) - KNumber(1), QLatin1String("1e-980"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("Precision >= 1000: (KNumber(1) + KNumber(\"1e-980\")) - KNumber(1)"), (KNumber(1) + KNumber(QLatin1String("1e-980"))) - KNumber(1), QLatin1String("1e-980"), KNumber::TYPE_FLOAT); KNumber::setDefaultFloatPrecision(20); - checkResult("Precision >= 20: sin(KNumber(30))", sin(KNumber(30) * (KNumber::Pi() / KNumber(180))), QLatin1String("0.5"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("Precision >= 20: sin(KNumber(30))"), sin(KNumber(30) * (KNumber::Pi() / KNumber(180))), QLatin1String("0.5"), KNumber::TYPE_FLOAT); } void testingOutput() { KNumber::setDefaultFloatOutput(false); - checkResult("Fractional output: KNumber(\"1/4\")", KNumber(QLatin1String("1/4")), QLatin1String("1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"1/4\")"), KNumber(QLatin1String("1/4")), QLatin1String("1/4"), KNumber::TYPE_FRACTION); KNumber::setDefaultFloatOutput(true); - checkResult("Float: KNumber(\"1/4\")", KNumber(QLatin1String("1/4")), QLatin1String("0.25"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Float: KNumber(\"1/4\")"), KNumber(QLatin1String("1/4")), QLatin1String("0.25"), KNumber::TYPE_FRACTION); KNumber::setDefaultFloatOutput(false); KNumber::setSplitoffIntegerForFractionOutput(true); - checkResult("Fractional output: KNumber(\"1/4\")", KNumber(QLatin1String("1/4")), QLatin1String("1/4"), KNumber::TYPE_FRACTION); - checkResult("Fractional output: KNumber(\"-1/4\")", KNumber(QLatin1String("-1/4")), QLatin1String("-1/4"), KNumber::TYPE_FRACTION); - checkResult("Fractional output: KNumber(\"21/4\")", KNumber(QLatin1String("21/4")), QLatin1String("5 1/4"), KNumber::TYPE_FRACTION); - checkResult("Fractional output: KNumber(\"-21/4\")", KNumber(QLatin1String("-21/4")), QLatin1String("-5 1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"1/4\")"), KNumber(QLatin1String("1/4")), QLatin1String("1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"-1/4\")"), KNumber(QLatin1String("-1/4")), QLatin1String("-1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"21/4\")"), KNumber(QLatin1String("21/4")), QLatin1String("5 1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"-21/4\")"), KNumber(QLatin1String("-21/4")), QLatin1String("-5 1/4"), KNumber::TYPE_FRACTION); KNumber::setSplitoffIntegerForFractionOutput(false); - checkResult("Fractional output: KNumber(\"1/4\")", KNumber(QLatin1String("1/4")), QLatin1String("1/4"), KNumber::TYPE_FRACTION); - checkResult("Fractional output: KNumber(\"-1/4\")", KNumber(QLatin1String("-1/4")), QLatin1String("-1/4"), KNumber::TYPE_FRACTION); - checkResult("Fractional output: KNumber(\"21/4\")", KNumber(QLatin1String("21/4")), QLatin1String("21/4"), KNumber::TYPE_FRACTION); - checkResult("Fractional output: KNumber(\"-21/4\")", KNumber(QLatin1String("-21/4")), QLatin1String("-21/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"1/4\")"), KNumber(QLatin1String("1/4")), QLatin1String("1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"-1/4\")"), KNumber(QLatin1String("-1/4")), QLatin1String("-1/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"21/4\")"), KNumber(QLatin1String("21/4")), QLatin1String("21/4"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("Fractional output: KNumber(\"-21/4\")"), KNumber(QLatin1String("-21/4")), QLatin1String("-21/4"), KNumber::TYPE_FRACTION); } void testingConstructors() { std::cout << "Testing Constructors:\n"; std::cout << "---------------------\n"; - checkResult("KNumber(5)", KNumber(5), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(5)"), KNumber(5), QLatin1String("5"), KNumber::TYPE_INTEGER); checkType(QLatin1String("KNumber(5.3)"), KNumber(5.3).type(), KNumber::TYPE_FLOAT); checkType(QLatin1String("KNumber(0.0)"), KNumber(0.0).type(), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5\")", KNumber(QLatin1String("5")), QLatin1String("5"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"5/3\")", KNumber(QLatin1String("5/3")), QLatin1String("5/3"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5/1\")", KNumber(QLatin1String("5/1")), QLatin1String("5"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"0/12\")", KNumber(QLatin1String("0/12")), QLatin1String("0"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5\")"), KNumber(QLatin1String("5")), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"5/3\")"), KNumber(QLatin1String("5/3")), QLatin1String("5/3"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5/1\")"), KNumber(QLatin1String("5/1")), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"0/12\")"), KNumber(QLatin1String("0/12")), QLatin1String("0"), KNumber::TYPE_INTEGER); KNumber::setDefaultFractionalInput(true); std::cout << "Read decimals as fractions:\n"; - checkResult("KNumber(\"5\")", KNumber(QLatin1String("5")), QLatin1String("5"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"1.2\")", KNumber(QLatin1String("1.2")), QLatin1String("6/5"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"-0.02\")", KNumber(QLatin1String("-0.02")), QLatin1String("-1/50"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"5e-2\")", KNumber(QLatin1String("5e-2")), QLatin1String("1/20"), KNumber::TYPE_FRACTION); - checkResult("KNumber(\"1.2e3\")", KNumber(QLatin1String("1.2e3")), QLatin1String("1200"), KNumber::TYPE_INTEGER); - checkResult("KNumber(\"0.02e+1\")", KNumber(QLatin1String("0.02e+1")), QLatin1String("1/5"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5\")"), KNumber(QLatin1String("5")), QLatin1String("5"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"1.2\")"), KNumber(QLatin1String("1.2")), QLatin1String("6/5"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"-0.02\")"), KNumber(QLatin1String("-0.02")), QLatin1String("-1/50"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"5e-2\")"), KNumber(QLatin1String("5e-2")), QLatin1String("1/20"), KNumber::TYPE_FRACTION); + checkResult(QStringLiteral("KNumber(\"1.2e3\")"), KNumber(QLatin1String("1.2e3")), QLatin1String("1200"), KNumber::TYPE_INTEGER); + checkResult(QStringLiteral("KNumber(\"0.02e+1\")"), KNumber(QLatin1String("0.02e+1")), QLatin1String("1/5"), KNumber::TYPE_FRACTION); KNumber::setDefaultFractionalInput(false); std::cout << "Read decimals as floats:\n"; - checkResult("KNumber(\"5.3\")", KNumber(QLatin1String("5.3")), QLatin1String("5.3"), KNumber::TYPE_FLOAT); + checkResult(QStringLiteral("KNumber(\"5.3\")"), KNumber(QLatin1String("5.3")), QLatin1String("5.3"), KNumber::TYPE_FLOAT); - checkResult("KNumber(\"nan\")", KNumber(QLatin1String("nan")), QLatin1String("nan"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"inf\")", KNumber(QLatin1String("inf")), QLatin1String("inf"), KNumber::TYPE_ERROR); - checkResult("KNumber(\"-inf\")", KNumber(QLatin1String("-inf")), QLatin1String("-inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"nan\")"), KNumber(QLatin1String("nan")), QLatin1String("nan"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"inf\")"), KNumber(QLatin1String("inf")), QLatin1String("inf"), KNumber::TYPE_ERROR); + checkResult(QStringLiteral("KNumber(\"-inf\")"), KNumber(QLatin1String("-inf")), QLatin1String("-inf"), KNumber::TYPE_ERROR); // test accepting of non-US number formatted strings - KNumber::setDecimalSeparator(","); - checkResult("KNumber(\"5,2\")", KNumber(QLatin1String("5,2")), QLatin1String("5.2"), KNumber::TYPE_FLOAT); - KNumber::setDecimalSeparator("."); + KNumber::setDecimalSeparator(QStringLiteral(",")); + checkResult(QStringLiteral("KNumber(\"5,2\")"), KNumber(QLatin1String("5,2")), QLatin1String("5.2"), KNumber::TYPE_FLOAT); + KNumber::setDecimalSeparator(QStringLiteral(".")); } void testingConstants() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/org.kde.kcalc.appdata.xml new/kcalc-18.08.0/org.kde.kcalc.appdata.xml --- old/kcalc-18.04.3/org.kde.kcalc.appdata.xml 2018-07-07 11:24:31.000000000 +0200 +++ new/kcalc-18.08.0/org.kde.kcalc.appdata.xml 2018-08-06 22:43:37.000000000 +0200 @@ -25,6 +25,7 @@ <name xml:lang="nn">KCalc</name> <name xml:lang="pl">KCalc</name> <name xml:lang="pt">KCalc</name> + <name xml:lang="pt-BR">KCalc</name> <name xml:lang="ru">KCalc</name> <name xml:lang="sk">KCalc</name> <name xml:lang="sl">KCalc</name> @@ -60,6 +61,7 @@ <summary xml:lang="nn">Vitskapleg kalkulator</summary> <summary xml:lang="pl">Kalkulator naukowy</summary> <summary xml:lang="pt">Calculadora Científica</summary> + <summary xml:lang="pt-BR">Calculadora científica</summary> <summary xml:lang="ru">Калькулятор</summary> <summary xml:lang="sk">Vedecká kalkulačka</summary> <summary xml:lang="sl">Znanstveno računalo</summary> @@ -97,6 +99,7 @@ <p xml:lang="nn">KCalc har alt du forventar av ein vitskapleg kalkulator, pluss:</p> <p xml:lang="pl">KCalc ma wszystko czego możnaby oczekiwać od kalkulatora naukowego, plus:</p> <p xml:lang="pt">O KCalc tem tudo o que poderá esperar de uma calculadora científica, e ainda mais:</p> + <p xml:lang="pt-BR">O KCalc tem tudo que você espera de uma calculadora científica, mais:</p> <p xml:lang="sk">KCalc má všetko, čo by ste očakávali od vedeckej kalkulačky, plus:</p> <p xml:lang="sl">KCalc poleg zmožnosti znanstvenega računala ponuja še naslednje zmožnosti:</p> <p xml:lang="sr">К‑калк има све што бисте очекивали код једног научног калкулатора, плус:</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/po/ca/kcalc.po new/kcalc-18.08.0/po/ca/kcalc.po --- old/kcalc-18.04.3/po/ca/kcalc.po 2018-07-10 02:07:55.000000000 +0200 +++ new/kcalc-18.08.0/po/ca/kcalc.po 2018-08-10 02:07:19.000000000 +0200 @@ -1,9 +1,9 @@ # Translation of kcalc.po to Catalan -# Copyright (C) 1998-2018 This_file_is_part_of_KDE +# Copyright (C) 1998-2016 This_file_is_part_of_KDE # # Sebastià Pla i Sanz <s...@sastia.com>, 1998, 1999, 2000, 2001, 2005. # Albert Astals Cid <aa...@kde.org>, 2002, 2003, 2004, 2005, 2007. -# Josep Ma. Ferrer <txe...@gmail.com>, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2018. +# Josep Ma. Ferrer <txe...@gmail.com>, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015. # Joan Maspons <joanmasp...@gmail.com>, 2009. # Manuel Tortosa Moreno <manutort...@gmail.com>, 2009. # Antoni Bella Pérez <antonibel...@yahoo.com>, 2016. @@ -12,8 +12,8 @@ "Project-Id-Version: kcalc\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2018-03-07 03:28+0100\n" -"PO-Revision-Date: 2018-04-04 21:59+0100\n" -"Last-Translator: Josep Ma. Ferrer <txe...@gmail.com>\n" +"PO-Revision-Date: 2016-04-26 00:25+0100\n" +"Last-Translator: Antoni Bella Pérez <antonibel...@yahoo.com>\n" "Language-Team: Catalan <kde-i18n...@kde.org>\n" "Language: ca\n" "MIME-Version: 1.0\n" @@ -1894,7 +1894,7 @@ #: kcalc_const_button.cpp:114 #, kde-format msgid "New name:" -msgstr "Nom nou:" +msgstr "Nou nom:" #: kcalc_const_menu.cpp:106 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/po/ca@valencia/kcalc.po new/kcalc-18.08.0/po/ca@valencia/kcalc.po --- old/kcalc-18.04.3/po/ca@valencia/kcalc.po 2018-07-10 02:07:55.000000000 +0200 +++ new/kcalc-18.08.0/po/ca@valencia/kcalc.po 2018-08-10 02:07:19.000000000 +0200 @@ -1,9 +1,9 @@ # Translation of kcalc.po to Catalan (Valencian) -# Copyright (C) 1998-2018 This_file_is_part_of_KDE +# Copyright (C) 1998-2016 This_file_is_part_of_KDE # # Sebastià Pla i Sanz <s...@sastia.com>, 1998, 1999, 2000, 2001, 2005. # Albert Astals Cid <aa...@kde.org>, 2002, 2003, 2004, 2005, 2007. -# Josep Ma. Ferrer <txe...@gmail.com>, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2018. +# Josep Ma. Ferrer <txe...@gmail.com>, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015. # Joan Maspons <joanmasp...@gmail.com>, 2009. # Manuel Tortosa Moreno <manutort...@gmail.com>, 2009. # Antoni Bella Pérez <antonibel...@yahoo.com>, 2016. @@ -12,8 +12,8 @@ "Project-Id-Version: kcalc\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2018-03-07 03:28+0100\n" -"PO-Revision-Date: 2018-04-04 21:59+0100\n" -"Last-Translator: Josep Ma. Ferrer <txe...@gmail.com>\n" +"PO-Revision-Date: 2016-04-26 00:25+0100\n" +"Last-Translator: Antoni Bella Pérez <antonibel...@yahoo.com>\n" "Language-Team: Catalan <kde-i18n...@kde.org>\n" "Language: ca@valencia\n" "MIME-Version: 1.0\n" @@ -1894,7 +1894,7 @@ #: kcalc_const_button.cpp:114 #, kde-format msgid "New name:" -msgstr "Nom nou:" +msgstr "Nou nom:" #: kcalc_const_menu.cpp:106 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/po/da/kcalc.po new/kcalc-18.08.0/po/da/kcalc.po --- old/kcalc-18.04.3/po/da/kcalc.po 2018-07-10 02:07:55.000000000 +0200 +++ new/kcalc-18.08.0/po/da/kcalc.po 2018-08-10 02:07:19.000000000 +0200 @@ -2,7 +2,7 @@ # Danish translation of kcalc # Copyright (C). # -# Erik Kjær Pedersen <e...@binghamton.edu>, 1998,2002,2003, 2004, 2005, 2006. +# Erik Kjær Pedersen <e...@binghamton.edu>, 1998, 2002, 2003, 2004, 2005, 2006. # Erik K. Pedersen <e...@binghamton.edu>, 2005. # Martin Schlander <mschlan...@opensuse.org>, 2008, 2009, 2010, 2012, 2013, 2014, 2015. # Jan Madsen <jan-portu...@opensuse.org>, 2009. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/po/zh_CN/kcalc.po new/kcalc-18.08.0/po/zh_CN/kcalc.po --- old/kcalc-18.04.3/po/zh_CN/kcalc.po 2018-07-10 02:07:55.000000000 +0200 +++ new/kcalc-18.08.0/po/zh_CN/kcalc.po 2018-08-10 02:07:20.000000000 +0200 @@ -14,7 +14,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2018-03-07 03:28+0100\n" -"PO-Revision-Date: 2018-07-03 17:42\n" +"PO-Revision-Date: 2018-07-24 08:49\n" "Last-Translator: guoyunhebrave <guoyunhebr...@gmail.com>\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcalc-18.04.3/po/zh_TW/kcalc.po new/kcalc-18.08.0/po/zh_TW/kcalc.po --- old/kcalc-18.04.3/po/zh_TW/kcalc.po 2018-07-10 02:07:55.000000000 +0200 +++ new/kcalc-18.08.0/po/zh_TW/kcalc.po 2018-08-10 02:07:20.000000000 +0200 @@ -2018,91 +2018,3 @@ #, kde-format msgid "Avogadro's Number" msgstr "亞佛加厥常數" - -#~ msgid "Numbers" -#~ msgstr "編號" - -#~ msgid "sr" -#~ msgstr "sr" - -#~ msgid "Inverse mode" -#~ msgstr "反函數模式" - -#~ msgid "Inv" -#~ msgstr "Inv" - -#~ msgid "I" -#~ msgstr "I" - -#~ msgid "Science/&Engineering Buttons" -#~ msgstr "科學/工程按鈕(&E)" - -#~ msgid "&Logic Buttons" -#~ msgstr "邏輯按鈕(&L)" - -#~ msgid "&Show All" -#~ msgstr "全部顯示(&S)" - -#~ msgid "&Hide All" -#~ msgstr "全部隱藏(&H)" - -#~ msgid "Whether to show statistical buttons." -#~ msgstr "要不要顯示統計按鍵" - -#~ msgid "" -#~ "Whether to show buttons with functions used in science/engineering,\n" -#~ "\t like exp, log, sin, etc." -#~ msgstr "要不要顯示科學/工程使用的按鍵,如指數、對數等等。" - -#~ msgid "Whether to show logic buttons." -#~ msgstr "要不要顯示邏輯按鍵" - -#~ msgctxt "Subtract from memory" -#~ msgid "M-" -#~ msgstr "M-" - -#~ msgid "/" -#~ msgstr "/" - -#~ msgid "X" -#~ msgstr "X" - -#~ msgctxt "- calculator button" -#~ msgid "-" -#~ msgstr "-" - -#~ msgid "+/-" -#~ msgstr "+/-" - -#~ msgid "Constant of Gravitation" -#~ msgstr "重力常數" - -#~ msgid "Fonts" -#~ msgstr "字型" - -#~ msgid "Alt+1" -#~ msgstr "Alt+1" - -#~ msgid "Alt+2" -#~ msgstr "Alt+2" - -#~ msgid "Alt+3" -#~ msgstr "Alt+3" - -#~ msgid "Alt+4" -#~ msgstr "Alt+4" - -#~ msgid "Alt+5" -#~ msgstr "Alt+5" - -#~ msgid "Alt+6" -#~ msgstr "Alt+6" - -#~ msgid "Stack processing error - empty stack" -#~ msgstr "堆疊處理錯誤 - 空的堆疊" - -#~ msgid "PgUp" -#~ msgstr "PgUp" - -#~ msgid "Del" -#~ msgstr "Del"