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)