diff options
Diffstat (limited to 'tests/auto/corelib/global/qnumeric')
-rw-r--r-- | tests/auto/corelib/global/qnumeric/CMakeLists.txt | 6 | ||||
-rw-r--r-- | tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp | 87 |
2 files changed, 51 insertions, 42 deletions
diff --git a/tests/auto/corelib/global/qnumeric/CMakeLists.txt b/tests/auto/corelib/global/qnumeric/CMakeLists.txt index adb467c778..e53a096c92 100644 --- a/tests/auto/corelib/global/qnumeric/CMakeLists.txt +++ b/tests/auto/corelib/global/qnumeric/CMakeLists.txt @@ -5,6 +5,12 @@ ## tst_qnumeric Test: ##################################################################### +if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(tst_qnumeric LANGUAGES CXX) + find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST) +endif() + qt_internal_add_test(tst_qnumeric SOURCES tst_qnumeric.cpp diff --git a/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp b/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp index 03acf5c074..d21fabd74e 100644 --- a/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp +++ b/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp @@ -1,6 +1,6 @@ // Copyright (C) 2022 The Qt Company Ltd. // Copyright (C) 2016 Intel Corporation. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <QTest> @@ -91,7 +91,7 @@ void tst_QNumeric::fuzzyCompare_data() QTest::addColumn<bool>("isEqual"); const F zero(0), one(1), ten(10); const F huge = Fuzzy<F>::scale, tiny = one / huge; - const F deci(.1), giga(1e9), nano(1e-9), big(1e7), small(1e-10); + const F deci(.1f), giga(1e9f), nano(1e-9f), big(1e7f), small(1e-10f); QTest::newRow("zero") << zero << zero << true; QTest::newRow("ten") << ten << ten << true; @@ -321,8 +321,11 @@ void tst_QNumeric::classifyfp() QCOMPARE(qFpClassify(inf), FP_INFINITE); QCOMPARE(qFpClassify(-inf), FP_INFINITE); + QT_WARNING_PUSH; + QT_WARNING_DISABLE_MSVC(4056); QCOMPARE(qFpClassify(huge * two), FP_INFINITE); QCOMPARE(qFpClassify(huge * -two), FP_INFINITE); + QT_WARNING_POP; QCOMPARE(qFpClassify(one), FP_NORMAL); QCOMPARE(qFpClassify(huge), FP_NORMAL); @@ -434,33 +437,33 @@ template <typename Int> static void addOverflow_template() #define ADD_COMPARE_NONOVF(v1, v2, expected) \ do { \ - QCOMPARE(add_overflow(Int(v1), Int(v2), &r), false); \ + QCOMPARE(qAddOverflow(Int(v1), Int(v2), &r), false); \ QCOMPARE(r, Int(expected)); \ - QCOMPARE(add_overflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), false); \ + QCOMPARE(qAddOverflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), false); \ QCOMPARE(r, Int(expected)); \ - QCOMPARE(add_overflow<v2>(Int(v1), &r), false); \ + QCOMPARE(qAddOverflow<v2>(Int(v1), &r), false); \ QCOMPARE(r, Int(expected)); \ } while (false) #define ADD_COMPARE_OVF(v1, v2) \ do { \ - QCOMPARE(add_overflow(Int(v1), Int(v2), &r), true); \ - QCOMPARE(add_overflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), true); \ - QCOMPARE(add_overflow<v2>(Int(v1), &r), true); \ + QCOMPARE(qAddOverflow(Int(v1), Int(v2), &r), true); \ + QCOMPARE(qAddOverflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), true); \ + QCOMPARE(qAddOverflow<v2>(Int(v1), &r), true); \ } while (false) #define SUB_COMPARE_NONOVF(v1, v2, expected) \ do { \ - QCOMPARE(sub_overflow(Int(v1), Int(v2), &r), false); \ + QCOMPARE(qSubOverflow(Int(v1), Int(v2), &r), false); \ QCOMPARE(r, Int(expected)); \ - QCOMPARE(sub_overflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), false); \ + QCOMPARE(qSubOverflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), false); \ QCOMPARE(r, Int(expected)); \ - QCOMPARE(sub_overflow<v2>(Int(v1), &r), false); \ + QCOMPARE(qSubOverflow<v2>(Int(v1), &r), false); \ QCOMPARE(r, Int(expected)); \ } while (false) #define SUB_COMPARE_OVF(v1, v2) \ do { \ - QCOMPARE(sub_overflow(Int(v1), Int(v2), &r), true); \ - QCOMPARE(sub_overflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), true); \ - QCOMPARE(sub_overflow<v2>(Int(v1), &r), true); \ + QCOMPARE(qSubOverflow(Int(v1), Int(v2), &r), true); \ + QCOMPARE(qSubOverflow(Int(v1), (std::integral_constant<Int, Int(v2)>()), &r), true); \ + QCOMPARE(qSubOverflow<v2>(Int(v1), &r), true); \ } while (false) // basic values @@ -611,18 +614,18 @@ template <typename Int> static void mulOverflow_template() #define MUL_COMPARE_NONOVF(v1, v2, expected) \ do { \ - QCOMPARE(mul_overflow(Int(v1), Int(v2), &r), false); \ + QCOMPARE(qMulOverflow(Int(v1), Int(v2), &r), false); \ QCOMPARE(r, Int(expected)); \ - QCOMPARE(mul_overflow(Int(v1), (std::integral_constant<Int, v2>()), &r), false); \ + QCOMPARE(qMulOverflow(Int(v1), (std::integral_constant<Int, v2>()), &r), false); \ QCOMPARE(r, Int(expected)); \ - QCOMPARE(mul_overflow<v2>(Int(v1), &r), false); \ + QCOMPARE(qMulOverflow<v2>(Int(v1), &r), false); \ QCOMPARE(r, Int(expected)); \ } while (false); #define MUL_COMPARE_OVF(v1, v2) \ do { \ - QCOMPARE(mul_overflow(Int(v1), Int(v2), &r), true); \ - QCOMPARE(mul_overflow(Int(v1), (std::integral_constant<Int, v2>()), &r), true); \ - QCOMPARE(mul_overflow<v2>(Int(v1), &r), true); \ + QCOMPARE(qMulOverflow(Int(v1), Int(v2), &r), true); \ + QCOMPARE(qMulOverflow(Int(v1), (std::integral_constant<Int, v2>()), &r), true); \ + QCOMPARE(qMulOverflow<v2>(Int(v1), &r), true); \ } while (false); // basic multiplications @@ -723,28 +726,28 @@ void tst_QNumeric::signedOverflow() const int maxInt = std::numeric_limits<int>::max(); int r; - QCOMPARE(add_overflow(minInt + 1, int(-1), &r), false); - QCOMPARE(add_overflow(minInt, int(-1), &r), true); - QCOMPARE(add_overflow(minInt, minInt, &r), true); - QCOMPARE(add_overflow(maxInt - 1, int(1), &r), false); - QCOMPARE(add_overflow(maxInt, int(1), &r), true); - QCOMPARE(add_overflow(maxInt, maxInt, &r), true); - - QCOMPARE(sub_overflow(minInt + 1, int(1), &r), false); - QCOMPARE(sub_overflow(minInt, int(1), &r), true); - QCOMPARE(sub_overflow(minInt, maxInt, &r), true); - QCOMPARE(sub_overflow(maxInt - 1, int(-1), &r), false); - QCOMPARE(sub_overflow(maxInt, int(-1), &r), true); - QCOMPARE(sub_overflow(maxInt, minInt, &r), true); - - QCOMPARE(mul_overflow(minInt, int(1), &r), false); - QCOMPARE(mul_overflow(minInt, int(-1), &r), true); - QCOMPARE(mul_overflow(minInt, int(2), &r), true); - QCOMPARE(mul_overflow(minInt, minInt, &r), true); - QCOMPARE(mul_overflow(maxInt, int(1), &r), false); - QCOMPARE(mul_overflow(maxInt, int(-1), &r), false); - QCOMPARE(mul_overflow(maxInt, int(2), &r), true); - QCOMPARE(mul_overflow(maxInt, maxInt, &r), true); + QCOMPARE(qAddOverflow(minInt + 1, int(-1), &r), false); + QCOMPARE(qAddOverflow(minInt, int(-1), &r), true); + QCOMPARE(qAddOverflow(minInt, minInt, &r), true); + QCOMPARE(qAddOverflow(maxInt - 1, int(1), &r), false); + QCOMPARE(qAddOverflow(maxInt, int(1), &r), true); + QCOMPARE(qAddOverflow(maxInt, maxInt, &r), true); + + QCOMPARE(qSubOverflow(minInt + 1, int(1), &r), false); + QCOMPARE(qSubOverflow(minInt, int(1), &r), true); + QCOMPARE(qSubOverflow(minInt, maxInt, &r), true); + QCOMPARE(qSubOverflow(maxInt - 1, int(-1), &r), false); + QCOMPARE(qSubOverflow(maxInt, int(-1), &r), true); + QCOMPARE(qSubOverflow(maxInt, minInt, &r), true); + + QCOMPARE(qMulOverflow(minInt, int(1), &r), false); + QCOMPARE(qMulOverflow(minInt, int(-1), &r), true); + QCOMPARE(qMulOverflow(minInt, int(2), &r), true); + QCOMPARE(qMulOverflow(minInt, minInt, &r), true); + QCOMPARE(qMulOverflow(maxInt, int(1), &r), false); + QCOMPARE(qMulOverflow(maxInt, int(-1), &r), false); + QCOMPARE(qMulOverflow(maxInt, int(2), &r), true); + QCOMPARE(qMulOverflow(maxInt, maxInt, &r), true); } QTEST_APPLESS_MAIN(tst_QNumeric) |