From 73a285ec3358744d42fb83b28073719037062c29 Mon Sep 17 00:00:00 2001 From: Jannis Froese Date: Tue, 1 Apr 2014 00:58:24 +0200 Subject: [PATCH] convert number formatting unit test to dogecoin --- src/qt/test/bitcoinunitstests.cpp | 105 ++++++++++++++++++------------ 1 file changed, 62 insertions(+), 43 deletions(-) diff --git a/src/qt/test/bitcoinunitstests.cpp b/src/qt/test/bitcoinunitstests.cpp index ec4eb4c65..359e8cc0d 100644 --- a/src/qt/test/bitcoinunitstests.cpp +++ b/src/qt/test/bitcoinunitstests.cpp @@ -10,95 +10,114 @@ void BitcoinUnitsTests::parseTests() /// Tests with en_US locale QLocale locale1("en_US"); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "0", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "0", &value, locale1)); QCOMPARE(value, 0LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "1", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1", &value, locale1)); QCOMPARE(value, 100000000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "1.0", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1.0", &value, locale1)); QCOMPARE(value, 100000000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::uBTC, "1,000,000.0", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "10.0", &value, locale1)); + QCOMPARE(value, 1000000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1,000.0", &value, locale1)); + QCOMPARE(value, 100000000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1,000,000.0", &value, locale1)); + QCOMPARE(value, 100000000000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::Koinu, "1,000,000,000", &value, locale1)); + QCOMPARE(value, 1000000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::kDOGE, "1.0", &value, locale1)); + QCOMPARE(value, 100000000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::MDOGE, "1.0", &value, locale1)); + QCOMPARE(value, 100000000000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::kDOGE, "0.001", &value, locale1)); QCOMPARE(value, 100000000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::uBTC, "1,000.0", &value, locale1)); - QCOMPARE(value, 100000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::mBTC, "1,000.0", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::MDOGE, "0.000001", &value, locale1)); QCOMPARE(value, 100000000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "0.00000001", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "0.00000001", &value, locale1)); QCOMPARE(value, 1LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::mBTC, "0.00001", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::kDOGE, "0.00000000001", &value, locale1)); QCOMPARE(value, 1LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::uBTC, "0.01", &value, locale1)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::MDOGE, "0.00000000000001", &value, locale1)); QCOMPARE(value, 1LL); + //Without seperator + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1000.0", &value, locale1)); + QCOMPARE(value, 100000000000LL); + //MAX_MONEY + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "10000000000", &value, locale1)); + QCOMPARE(value, 1000000000000000000LL); // Fail: group separator in wrong place - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "0,00", &value, locale1)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "0,00", &value, locale1)); // Fail: group separator in decimals - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "0.0,000", &value, locale1)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "0.0,000", &value, locale1)); // Fail: multiple decimal separators - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "0.000.000", &value, locale1)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "0.000.000", &value, locale1)); /// Tests with nl_NL locale QLocale locale2("nl_NL"); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "1", &value, locale2)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1", &value, locale2)); QCOMPARE(value, 100000000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "1,0", &value, locale2)); - QCOMPARE(value, 100000000LL); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::uBTC, "1.000.000,0", &value, locale2)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1,0", &value, locale2)); QCOMPARE(value, 100000000LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::Koinu, "1.000.000", &value, locale2)); + QCOMPARE(value, 1000000LL); // Fail: multiple decimal separators - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "0,000,000", &value, locale2)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "0,000,000", &value, locale2)); /// Tests with de_CH locale QLocale locale3("de_CH"); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::uBTC, "123'456.78", &value, locale3)); - QCOMPARE(value, 12345678LL); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "123'456.78", &value, locale3)); + QCOMPARE(value, 12345678000000LL); // Fail: multiple decimal separators - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "0.000.000", &value, locale3)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "0.000.000", &value, locale3)); /// Tests with c locale QLocale locale4(QLocale::c()); locale4.setNumberOptions(QLocale::OmitGroupSeparator | QLocale::RejectGroupSeparator); - QVERIFY(BitcoinUnits::parse(BitcoinUnits::BTC, "1000.00000000", &value, locale4)); + QVERIFY(BitcoinUnits::parse(BitcoinUnits::DOGE, "1000.00000000", &value, locale4)); QCOMPARE(value, 100000000000LL); // Fail: group separator - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "1,000.00", &value, locale4)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "1,000.00", &value, locale4)); // Fail: too many decimals - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "1000.000000000", &value, locale4)); - // Fail: overflow - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "21000001.0", &value, locale4)); - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "92233720368547758090.0", &value, locale4)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "1000.000000000", &value, locale4)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::Koinu, "1.0", &value, locale4)); + //no overflow because Dogecoin has unlimited money supply + /*// Fail: overflow + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "10000000000.1", &value, locale4)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "92233720368547758090.0", &value, locale4));*/ // Fail: underflow - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "-1000000.0", &value, locale4)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "-1000000.0", &value, locale4)); // Fail: sign in decimals - QVERIFY(!BitcoinUnits::parse(BitcoinUnits::BTC, "0.-1000000", &value, locale4)); + QVERIFY(!BitcoinUnits::parse(BitcoinUnits::DOGE, "0.-1000000", &value, locale4)); } void BitcoinUnitsTests::formatTests() { /// Tests with en_US locale QLocale locale1("en_US"); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::BTC, 0, false, false, locale1), QString("0.00000000")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::BTC, 0, false, true, locale1), QString("0.00")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::mBTC, 0, false, false, locale1), QString("0.00000")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 0, false, false, locale1), QString("0.00")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 0, true, false, locale1), QString("+0.00")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 100000000, false, true, locale1), QString("1,000,000.00")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 100000000, true, true, locale1), QString("+1,000,000.00")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 0, false, false, locale1), QString("0.00000000")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 0, false, true, locale1), QString("0.00")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::kDOGE, 0, false, false, locale1), QString("0.00000000000")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::MDOGE, 0, false, false, locale1), QString("0.00000000000000")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::Koinu, 0, false, false, locale1), QString("0.0")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 0, true, false, locale1), QString("+0.00000000")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::Koinu, 100000000, false, true, locale1), QString("100,000,000.0")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::Koinu, 100000000, true, true, locale1), QString("+100,000,000.0")); - QCOMPARE(BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, 100000000, false, true, locale1), QString("1.00 BTC")); - QCOMPARE(BitcoinUnits::formatWithUnit(BitcoinUnits::mBTC, 100000000, false, true, locale1), QString("1,000.00 mBTC")); - QCOMPARE(BitcoinUnits::formatWithUnit(BitcoinUnits::uBTC, 100000000, false, true, locale1), QString("1,000,000.00 μBTC")); + QCOMPARE(BitcoinUnits::formatWithUnit(BitcoinUnits::DOGE, 100000000000000LL, false, true, locale1), QString("1,000,000.00 DOGE")); + QCOMPARE(BitcoinUnits::formatWithUnit(BitcoinUnits::kDOGE, 100000000000000LL, false, true, locale1), QString("1,000.00 kDOGE")); + QCOMPARE(BitcoinUnits::formatWithUnit(BitcoinUnits::MDOGE, 100000000000000LL, false, true, locale1), QString("1.00 MDOGE")); /// Tests with nl_NL locale QLocale locale2("nl_NL"); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 100000000, false, true, locale2), QString("1.000.000,00")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 100000000000000LL, false, true, locale2), QString("1.000.000,00")); /// Tests with de_CH locale QLocale locale3("de_CH"); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 100000000, false, true, locale3), QString("1'000'000.00")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 100000000000000LL, false, true, locale3), QString("1'000'000.00")); /// Tests with c locale (with and without group separators) QLocale locale4(QLocale::c()); locale4.setNumberOptions(QLocale::OmitGroupSeparator | QLocale::RejectGroupSeparator); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 100000000, false, true, QLocale::c()), QString("1,000,000.00")); - QCOMPARE(BitcoinUnits::format(BitcoinUnits::uBTC, 100000000, false, true, locale4), QString("1000000.00")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 100000000000000LL, false, true, QLocale::c()), QString("1,000,000.00")); + QCOMPARE(BitcoinUnits::format(BitcoinUnits::DOGE, 100000000000000LL, false, true, locale4), QString("1000000.00")); }