67 lines · cpp
1//===-- Unittests for acoshf16 --------------------------------------------===//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 "src/__support/FPUtil/cast.h"11#include "src/math/acoshf16.h"12#include "test/UnitTest/FPMatcher.h"13#include "test/UnitTest/Test.h"14 15using LlvmLibcAcoshf16Test = LIBC_NAMESPACE::testing::FPTest<float16>;16 17TEST_F(LlvmLibcAcoshf16Test, SpecialNumbers) {18 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::acoshf16(aNaN));19 EXPECT_MATH_ERRNO(0);20 21 EXPECT_FP_IS_NAN_WITH_EXCEPTION(LIBC_NAMESPACE::acoshf16(sNaN), FE_INVALID);22 EXPECT_MATH_ERRNO(0);23 24 EXPECT_FP_IS_NAN_WITH_EXCEPTION(LIBC_NAMESPACE::acoshf16(zero), FE_INVALID);25 EXPECT_MATH_ERRNO(EDOM);26 27 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::acoshf16(neg_zero));28 EXPECT_MATH_ERRNO(EDOM);29 30 EXPECT_FP_IS_NAN_WITH_EXCEPTION(LIBC_NAMESPACE::acoshf16(neg_zero),31 FE_INVALID);32 EXPECT_MATH_ERRNO(EDOM);33 34 EXPECT_FP_EQ(inf, LIBC_NAMESPACE::acoshf16(inf));35 EXPECT_MATH_ERRNO(0);36 37 EXPECT_FP_IS_NAN(LIBC_NAMESPACE::acoshf16(neg_inf));38 EXPECT_MATH_ERRNO(EDOM);39 40 EXPECT_FP_IS_NAN_WITH_EXCEPTION(LIBC_NAMESPACE::acoshf16(neg_inf),41 FE_INVALID);42 EXPECT_MATH_ERRNO(EDOM);43 44 EXPECT_FP_EQ(zero, LIBC_NAMESPACE::acoshf16(45 LIBC_NAMESPACE::fputil::cast<float16>(1.0)));46 EXPECT_MATH_ERRNO(0);47 48 EXPECT_FP_IS_NAN(49 LIBC_NAMESPACE::acoshf16(LIBC_NAMESPACE::fputil::cast<float16>(0.5)));50 EXPECT_MATH_ERRNO(EDOM);51 52 EXPECT_FP_IS_NAN_WITH_EXCEPTION(53 LIBC_NAMESPACE::acoshf16(LIBC_NAMESPACE::fputil::cast<float16>(-1.0)),54 FE_INVALID);55 EXPECT_MATH_ERRNO(EDOM);56 57 EXPECT_FP_IS_NAN_WITH_EXCEPTION(58 LIBC_NAMESPACE::acoshf16(LIBC_NAMESPACE::fputil::cast<float16>(-2.0)),59 FE_INVALID);60 EXPECT_MATH_ERRNO(EDOM);61 62 EXPECT_FP_IS_NAN_WITH_EXCEPTION(63 LIBC_NAMESPACE::acoshf16(LIBC_NAMESPACE::fputil::cast<float16>(-3.0)),64 FE_INVALID);65 EXPECT_MATH_ERRNO(EDOM);66}67