File indexing completed on 2024-05-12 03:49:33
0001 /* 0002 File : NSLMathTest.cpp 0003 Project : LabPlot 0004 Description : NSL tests for math functions 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2024 Stefan Gerlach <stefan.gerlach@uni.kn> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #include "NSLMathTest.h" 0012 0013 extern "C" { 0014 #include "backend/nsl/nsl_math.h" 0015 } 0016 0017 void NSLMathTest::mathMultiple() { 0018 // (2.5, 2.) -> 2.,2.,4.,2. 0019 double value = 2.5, multiple = 2.; 0020 QCOMPARE(nsl_math_round_multiple(value, multiple), 2.); 0021 QCOMPARE(nsl_math_floor_multiple(value, multiple), 2.); 0022 QCOMPARE(nsl_math_ceil_multiple(value, multiple), 4.); 0023 QCOMPARE(nsl_math_trunc_multiple(value, multiple), 2.); 0024 0025 // (4.5, 3) -> 6.,3.,6.,3. 0026 value = 4.5, multiple = 3.; 0027 QCOMPARE(nsl_math_round_multiple(value, multiple), 6.); 0028 QCOMPARE(nsl_math_floor_multiple(value, multiple), 3.); 0029 QCOMPARE(nsl_math_ceil_multiple(value, multiple), 6.); 0030 QCOMPARE(nsl_math_trunc_multiple(value, multiple), 3.); 0031 0032 // (-0.25, 1) -> 0.,0.,-1.,0. 0033 value = -0.25, multiple = 1.; 0034 QCOMPARE(nsl_math_round_multiple(value, multiple), 0.); 0035 QCOMPARE(nsl_math_floor_multiple(value, multiple), -1.); 0036 QCOMPARE(nsl_math_ceil_multiple(value, multiple), 0.); 0037 QCOMPARE(nsl_math_trunc_multiple(value, multiple), 0.); 0038 } 0039 0040 // ############################################################################## 0041 // ################# performance 0042 // ############################################################################## 0043 0044 QTEST_MAIN(NSLMathTest)