1//===-- Unittests for absfx -----------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "AbsTest.h"
10#include "src/stdfix/abshk.h"
11#include "src/stdfix/abshr.h"
12#include "src/stdfix/absk.h"
13#include "src/stdfix/abslk.h"
14#include "src/stdfix/abslr.h"
15#include "src/stdfix/absr.h"
16
17#include "src/stdfix/countlshk.h"
18#include "src/stdfix/countlshr.h"
19#include "src/stdfix/countlsk.h"
20#include "src/stdfix/countlslk.h"
21#include "src/stdfix/countlslr.h"
22#include "src/stdfix/countlsr.h"
23#include "src/stdfix/countlsuhk.h"
24#include "src/stdfix/countlsuhr.h"
25#include "src/stdfix/countlsuk.h"
26#include "src/stdfix/countlsulk.h"
27#include "src/stdfix/countlsulr.h"
28#include "src/stdfix/countlsur.h"
29
30#include "src/stdfix/roundhk.h"
31#include "src/stdfix/roundhr.h"
32#include "src/stdfix/roundk.h"
33#include "src/stdfix/roundlk.h"
34#include "src/stdfix/roundlr.h"
35#include "src/stdfix/roundr.h"
36#include "src/stdfix/rounduhk.h"
37#include "src/stdfix/rounduhr.h"
38#include "src/stdfix/rounduk.h"
39#include "src/stdfix/roundulk.h"
40#include "src/stdfix/roundulr.h"
41#include "src/stdfix/roundur.h"
42
43using LIBC_NAMESPACE::abshk;
44using LIBC_NAMESPACE::abshr;
45using LIBC_NAMESPACE::absk;
46using LIBC_NAMESPACE::abslk;
47using LIBC_NAMESPACE::abslr;
48using LIBC_NAMESPACE::absr;
49using LIBC_NAMESPACE::countlshk;
50using LIBC_NAMESPACE::countlshr;
51using LIBC_NAMESPACE::countlsk;
52using LIBC_NAMESPACE::countlslk;
53using LIBC_NAMESPACE::countlslr;
54using LIBC_NAMESPACE::countlsr;
55using LIBC_NAMESPACE::countlsuhk;
56using LIBC_NAMESPACE::countlsuhr;
57using LIBC_NAMESPACE::countlsuk;
58using LIBC_NAMESPACE::countlsulk;
59using LIBC_NAMESPACE::countlsulr;
60using LIBC_NAMESPACE::countlsur;
61using LIBC_NAMESPACE::roundhk;
62using LIBC_NAMESPACE::roundhr;
63using LIBC_NAMESPACE::roundk;
64using LIBC_NAMESPACE::roundlk;
65using LIBC_NAMESPACE::roundlr;
66using LIBC_NAMESPACE::roundr;
67using LIBC_NAMESPACE::rounduhk;
68using LIBC_NAMESPACE::rounduhr;
69using LIBC_NAMESPACE::rounduk;
70using LIBC_NAMESPACE::roundulk;
71using LIBC_NAMESPACE::roundulr;
72using LIBC_NAMESPACE::roundur;
73
74TEST(LlvmLibcAbsfxTest, Basic) {
75 ASSERT_EQ(absfx(-0.5r), absr(-0.5r));
76 ASSERT_EQ(absfx(-0.5hr), abshr(-0.5hr));
77 ASSERT_EQ(absfx(-0.5lr), abslr(-0.5lr));
78 ASSERT_EQ(absfx(-0.5k), absk(-0.5k));
79 ASSERT_EQ(absfx(-0.5hk), abshk(-0.5hk));
80 ASSERT_EQ(absfx(-0.5lk), abslk(-0.5lk));
81}
82
83TEST(LlvmLibcRoundfxTest, Basic) {
84 ASSERT_EQ(roundfx(0.75r, 0), roundr(0.75r, 0));
85 ASSERT_EQ(roundfx(0.75hr, 0), roundhr(0.75hr, 0));
86 ASSERT_EQ(roundfx(0.75lr, 0), roundlr(0.75lr, 0));
87 ASSERT_EQ(roundfx(0.75k, 0), roundk(0.75k, 0));
88 ASSERT_EQ(roundfx(0.75hk, 0), roundhk(0.75hk, 0));
89 ASSERT_EQ(roundfx(0.75lk, 0), roundlk(0.75lk, 0));
90
91 ASSERT_EQ(roundfx(0.75ur, 0), roundur(0.75ur, 0));
92 ASSERT_EQ(roundfx(0.75uhr, 0), rounduhr(0.75uhr, 0));
93 ASSERT_EQ(roundfx(0.75ulr, 0), roundulr(0.75ulr, 0));
94 ASSERT_EQ(roundfx(0.75uk, 0), rounduk(0.75uk, 0));
95 ASSERT_EQ(roundfx(0.75uhk, 0), rounduhk(0.75uhk, 0));
96 ASSERT_EQ(roundfx(0.75ulk, 0), roundulk(0.75ulk, 0));
97}
98
99TEST(LlvmLibcCountlsfxTest, Basic) {
100 ASSERT_EQ(countlsfx(0.5r), countlsr(0.5r));
101 ASSERT_EQ(countlsfx(0.5hr), countlshr(0.5hr));
102 ASSERT_EQ(countlsfx(0.5lr), countlslr(0.5lr));
103 ASSERT_EQ(countlsfx(0.5k), countlsk(0.5k));
104 ASSERT_EQ(countlsfx(0.5hk), countlshk(0.5hk));
105 ASSERT_EQ(countlsfx(0.5lk), countlslk(0.5lk));
106
107 ASSERT_EQ(countlsfx(0.5ur), countlsur(0.5ur));
108 ASSERT_EQ(countlsfx(0.5uhr), countlsuhr(0.5uhr));
109 ASSERT_EQ(countlsfx(0.5ulr), countlsulr(0.5ulr));
110 ASSERT_EQ(countlsfx(0.5uk), countlsuk(0.5uk));
111 ASSERT_EQ(countlsfx(0.5uhk), countlsuhk(0.5uhk));
112 ASSERT_EQ(countlsfx(0.5ulk), countlsulk(0.5ulk));
113}
114

source code of libc/test/src/stdfix/macros_test.cpp