brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · f39a112 Raw
52 lines · cpp
1//===-- Unittests for sincosf ---------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "hdr/errno_macros.h"10#include "hdr/math_macros.h"11#include "hdr/stdint_proxy.h"12#include "src/__support/FPUtil/FPBits.h"13#include "src/math/sincosf.h"14#include "test/UnitTest/FPMatcher.h"15#include "test/UnitTest/Test.h"16 17using LlvmLibcSinCosfTest = LIBC_NAMESPACE::testing::FPTest<float>;18 19TEST_F(LlvmLibcSinCosfTest, SpecialNumbers) {20  float sin, cos;21 22  LIBC_NAMESPACE::sincosf(sNaN, &sin, &cos);23  EXPECT_FP_EQ(aNaN, cos);24  EXPECT_FP_EQ(aNaN, sin);25  EXPECT_MATH_ERRNO(0);26 27  LIBC_NAMESPACE::sincosf(aNaN, &sin, &cos);28  EXPECT_FP_EQ(aNaN, cos);29  EXPECT_FP_EQ(aNaN, sin);30  EXPECT_MATH_ERRNO(0);31 32  LIBC_NAMESPACE::sincosf(0.0f, &sin, &cos);33  EXPECT_FP_EQ(1.0f, cos);34  EXPECT_FP_EQ(0.0f, sin);35  EXPECT_MATH_ERRNO(0);36 37  LIBC_NAMESPACE::sincosf(-0.0f, &sin, &cos);38  EXPECT_FP_EQ(1.0f, cos);39  EXPECT_FP_EQ(-0.0f, sin);40  EXPECT_MATH_ERRNO(0);41 42  LIBC_NAMESPACE::sincosf(inf, &sin, &cos);43  EXPECT_FP_EQ(aNaN, cos);44  EXPECT_FP_EQ(aNaN, sin);45  EXPECT_MATH_ERRNO(EDOM);46 47  LIBC_NAMESPACE::sincosf(neg_inf, &sin, &cos);48  EXPECT_FP_EQ(aNaN, cos);49  EXPECT_FP_EQ(aNaN, sin);50  EXPECT_MATH_ERRNO(EDOM);51}52