| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| //===-- Exhaustive test for cospif ----------------------------------------===// | ||
| // | ||
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
| // See https://llvm.org/LICENSE.txt for license information. | ||
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
| // | ||
| //===----------------------------------------------------------------------===// | ||
|
|
||
| #include "exhaustive_test.h" | ||
| #include "src/math/cospif.h" | ||
| #include "utils/MPFRWrapper/MPFRUtils.h" | ||
|
|
||
| namespace mpfr = LIBC_NAMESPACE::testing::mpfr; | ||
|
|
||
| using LlvmLibcCospifExhaustiveTest = | ||
| LlvmLibcUnaryOpExhaustiveMathTest<float, mpfr::Operation::Cospi, | ||
| LIBC_NAMESPACE::cospif>; | ||
|
|
||
| static constexpr uint32_t POS_START = 0x0000'0000U; | ||
| static constexpr uint32_t POS_STOP = 0x7f80'0000U; | ||
|
|
||
| // Range: [0, Inf] | ||
| TEST_F(LlvmLibcCospifExhaustiveTest, PostiveRange) { | ||
| test_full_range_all_roundings(POS_START, POS_STOP); | ||
| } | ||
|
|
||
| // Range: [-Inf, 0] | ||
| static constexpr uint32_t NEG_START = 0xb000'0000U; | ||
| static constexpr uint32_t NEG_STOP = 0xff80'0000U; | ||
|
|
||
| TEST_F(LlvmLibcCospifExhaustiveTest, NegativeRange) { | ||
| test_full_range_all_roundings(NEG_START, NEG_STOP); | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| //===-- Unittests for cospif ----------------------------------------------===// | ||
| // | ||
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
| // See https://llvm.org/LICENSE.txt for license information. | ||
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
| // | ||
| //===----------------------------------------------------------------------===// | ||
|
|
||
| #include "src/errno/libc_errno.h" | ||
| #include "src/math/cospif.h" | ||
| #include "test/UnitTest/FPMatcher.h" | ||
|
|
||
| #include <stdint.h> | ||
|
|
||
| using LlvmLibcCospifTest = LIBC_NAMESPACE::testing::FPTest<float>; | ||
|
|
||
| TEST_F(LlvmLibcCospifTest, SpecialNumbers) { | ||
| LIBC_NAMESPACE::libc_errno = 0; | ||
|
|
||
| EXPECT_FP_EQ(aNaN, LIBC_NAMESPACE::cospif(aNaN)); | ||
| EXPECT_MATH_ERRNO(0); | ||
|
|
||
| EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::cospif(0.0f)); | ||
| EXPECT_MATH_ERRNO(0); | ||
|
|
||
| EXPECT_FP_EQ(1.0f, LIBC_NAMESPACE::cospif(-0.0f)); | ||
| EXPECT_MATH_ERRNO(0); | ||
|
|
||
| EXPECT_FP_EQ(aNaN, LIBC_NAMESPACE::cospif(inf)); | ||
| EXPECT_MATH_ERRNO(EDOM); | ||
|
|
||
| EXPECT_FP_EQ(aNaN, LIBC_NAMESPACE::cospif(neg_inf)); | ||
| EXPECT_MATH_ERRNO(EDOM); | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -34,6 +34,7 @@ enum class Operation : int { | |
| Ceil, | ||
| Cos, | ||
| Cosh, | ||
| Cospi, | ||
| Erf, | ||
| Exp, | ||
| Exp2, | ||
|
|
||