Bump version to 6.4-15
[LibreOffice.git] / tools / qa / cppunit / test_minmax.cxx
blob93709def974ec6430471cf6a092a5c73ddbac6af
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <sal/types.h>
21 #include <cppunit/TestFixture.h>
22 #include <cppunit/extensions/HelperMacros.h>
24 #include <tools/helpers.hxx>
26 namespace tools
28 class MinMaxTest : public CppUnit::TestFixture
30 public:
31 void testSignedMinMax()
33 sal_Int32 nSignedVal = -10;
34 long nMin = 1;
35 long nMax = 10;
36 CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(nMin),
37 static_cast<sal_Int32>(MinMax(nSignedVal, nMin, nMax)));
39 nSignedVal = -10;
40 nMin = -15;
41 nMax = 10;
42 CPPUNIT_ASSERT_EQUAL(nSignedVal, static_cast<sal_Int32>(MinMax(nSignedVal, nMin, nMax)));
44 nSignedVal = -15;
45 nMin = -15;
46 nMax = 10;
47 CPPUNIT_ASSERT_EQUAL(nSignedVal, static_cast<sal_Int32>(MinMax(nSignedVal, nMin, nMax)));
50 void testUnsignedMinMax()
52 sal_uInt32 nUnsignedVal = 5;
53 long nMin = 1;
54 long nMax = 10;
55 CPPUNIT_ASSERT_EQUAL(nUnsignedVal,
56 static_cast<sal_uInt32>(MinMax(nUnsignedVal, nMin, nMax)));
58 nUnsignedVal = 5;
59 nMin = 1;
60 nMax = 5;
61 CPPUNIT_ASSERT_EQUAL(nUnsignedVal,
62 static_cast<sal_uInt32>(MinMax(nUnsignedVal, nMin, nMax)));
64 nUnsignedVal = 5;
65 nMin = 5;
66 nMax = 5;
67 CPPUNIT_ASSERT_EQUAL(nUnsignedVal,
68 static_cast<sal_uInt32>(MinMax(nUnsignedVal, nMin, nMax)));
70 nUnsignedVal = 10;
71 nMin = -20;
72 nMax = 15;
73 CPPUNIT_ASSERT_EQUAL(nUnsignedVal,
74 static_cast<sal_uInt32>(MinMax(nUnsignedVal, nMin, nMax)));
76 nUnsignedVal = 20;
77 nMin = 10;
78 nMax = 15;
79 CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(nMax),
80 static_cast<sal_uInt32>(MinMax(nUnsignedVal, nMin, nMax)));
82 nUnsignedVal = 5;
83 nMin = 10;
84 nMax = 15; // irrelevant, but cannot be less than nMin
85 CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(nMin),
86 static_cast<sal_uInt32>(MinMax(nUnsignedVal, nMin, nMax)));
89 CPPUNIT_TEST_SUITE(MinMaxTest);
90 CPPUNIT_TEST(testSignedMinMax);
91 CPPUNIT_TEST(testUnsignedMinMax);
92 CPPUNIT_TEST_SUITE_END();
95 CPPUNIT_TEST_SUITE_REGISTRATION(MinMaxTest);
96 } // namespace tools
98 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */