1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#include "common.hpp"
#include <fpm/math.hpp>
TEST(nearest, round)
{
using P = fpm::fixed_24_8;
EXPECT_EQ(P( 2), round(P( 2.3)));
EXPECT_EQ(P( 3), round(P( 2.5)));
EXPECT_EQ(P( 3), round(P( 2.7)));
EXPECT_EQ(P(-2), round(P(-2.3)));
EXPECT_EQ(P(-3), round(P(-2.5)));
EXPECT_EQ(P(-3), round(P(-2.7)));
EXPECT_EQ(P( 0), round(P( 0)));
}
TEST(nearest, ceil)
{
using P = fpm::fixed_24_8;
EXPECT_EQ(P( 1), ceil(P( 1)));
EXPECT_EQ(P(-1), ceil(P(-1)));
EXPECT_EQ(P( 3), ceil(P( 2.4)));
EXPECT_EQ(P(-2), ceil(P(-2.4)));
EXPECT_EQ(P( 0), ceil(P( 0)));
}
TEST(nearest, floor)
{
using P = fpm::fixed_24_8;
EXPECT_EQ(P( 1), floor(P( 1)));
EXPECT_EQ(P(-1), floor(P(-1)));
EXPECT_EQ(P( 2), floor(P( 2.7)));
EXPECT_EQ(P(-3), floor(P(-2.7)));
EXPECT_EQ(P( 0), floor(P( 0)));
}
TEST(nearest, trunc)
{
using P = fpm::fixed_24_8;
EXPECT_EQ(P( 1), trunc(P( 1)));
EXPECT_EQ(P(-1), trunc(P(-1)));
EXPECT_EQ(P( 2), trunc(P( 2.7)));
EXPECT_EQ(P(-2), trunc(P(-2.9)));
EXPECT_EQ(P( 0), trunc(P( 0)));
}
TEST(nearest, nearbyint)
{
using P = fpm::fixed_24_8;
EXPECT_EQ(P( 2), nearbyint(P( 2.3)));
EXPECT_EQ(P( 2), nearbyint(P( 2.5)));
EXPECT_EQ(P( 4), nearbyint(P( 3.5)));
EXPECT_EQ(P(-2), nearbyint(P(-2.3)));
EXPECT_EQ(P(-2), nearbyint(P(-2.5)));
EXPECT_EQ(P(-4), nearbyint(P(-3.5)));
EXPECT_EQ(P( 0), nearbyint(P( 0)));
}
TEST(nearest, rint)
{
using P = fpm::fixed_24_8;
EXPECT_EQ(P( 2), rint(P( 2.3)));
EXPECT_EQ(P( 2), rint(P( 2.5)));
EXPECT_EQ(P( 4), rint(P( 3.5)));
EXPECT_EQ(P(-2), rint(P(-2.3)));
EXPECT_EQ(P(-2), rint(P(-2.5)));
EXPECT_EQ(P(-4), rint(P(-3.5)));
EXPECT_EQ(P( 0), rint(P( 0)));
}
|