Use constants of the correct type in qnumeric NaN test

Replaces 0, 0.0, 1, 1.0 and 2.0 with zero, one and two constants of
the templated floating-point type, to avoid type-conversions which
might have meant the test only checked doubles, or similar.

Change-Id: Id9d4488f0cc7226b5b8958d2a204a76fe5ae469d
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
This commit is contained in:
Edward Welbourne 2022-03-30 15:25:11 +02:00
parent 67a563e5c5
commit 3a2e3625d1

View File

@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2021 The Qt Company Ltd. ** Copyright (C) 2022 The Qt Company Ltd.
** Copyright (C) 2016 Intel Corporation. ** Copyright (C) 2016 Intel Corporation.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
@ -195,21 +195,22 @@ void tst_QNumeric::checkNaN(F nan)
QVERIFY(!qIsFinite(v)); \ QVERIFY(!qIsFinite(v)); \
QVERIFY(!qIsInf(v)); \ QVERIFY(!qIsInf(v)); \
} while (0) } while (0)
const F zero(0), one(1), two(2);
QVERIFY(!(0 > nan)); QVERIFY(!(zero > nan));
QVERIFY(!(0 < nan)); QVERIFY(!(zero < nan));
QVERIFY(!(0 == nan)); QVERIFY(!(zero == nan));
QVERIFY(!(nan == nan)); QVERIFY(!(nan == nan));
CHECKNAN(nan); CHECKNAN(nan);
CHECKNAN(nan + 1); CHECKNAN(nan + one);
CHECKNAN(nan - 1); CHECKNAN(nan - one);
CHECKNAN(-nan); CHECKNAN(-nan);
CHECKNAN(nan * 2.0); CHECKNAN(nan * two);
CHECKNAN(nan / 2.0); CHECKNAN(nan / two);
CHECKNAN(1.0 / nan); CHECKNAN(one / nan);
CHECKNAN(0.0 / nan); CHECKNAN(zero / nan);
CHECKNAN(0.0 * nan); CHECKNAN(zero * nan);
// When any NaN is expected, any NaN will do: // When any NaN is expected, any NaN will do:
QCOMPARE(nan, nan); QCOMPARE(nan, nan);