[cosmetics] update date in GPL header
[vuplus_xbmc] / xbmc / utils / test / TestMathUtils.cpp
1 /*
2  *      Copyright (C) 2005-2013 Team XBMC
3  *      http://www.xbmc.org
4  *
5  *  This Program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2, or (at your option)
8  *  any later version.
9  *
10  *  This Program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with XBMC; see the file COPYING.  If not, see
17  *  <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 #include "utils/MathUtils.h"
22
23 #include "gtest/gtest.h"
24
25 TEST(TestMathUtils, round_int)
26 {
27   int refval, varval, i;
28
29   for (i = -8; i < 8; ++i)
30   {
31     double d = 0.25*i;
32     refval = (i < 0) ? (i - 1) / 4 : (i + 2) / 4;
33     varval = MathUtils::round_int(d);
34     EXPECT_EQ(refval, varval);
35   }
36 }
37
38 TEST(TestMathUtils, truncate_int)
39 {
40   int refval, varval, i;
41
42   for (i = -8; i < 8; ++i)
43   {
44     double d = 0.25*i;
45     refval = i / 4;
46     varval = MathUtils::truncate_int(d);
47     EXPECT_EQ(refval, varval);
48   }
49 }
50
51 TEST(TestMathUtils, abs)
52 {
53   int64_t refval, varval;
54
55   refval = 5;
56   varval = MathUtils::abs(-5);
57   EXPECT_EQ(refval, varval);
58 }
59
60 TEST(TestMathUtils, bitcount)
61 {
62   unsigned refval, varval;
63
64   refval = 10;
65   varval = MathUtils::bitcount(0x03FF);
66   EXPECT_EQ(refval, varval);
67
68   refval = 8;
69   varval = MathUtils::bitcount(0x2AD5);
70   EXPECT_EQ(refval, varval);
71 }