//===-- Unittests for complex ---------------------------------------------===// // // 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 "include/llvm-libc-macros/complex-macros.h" #include "test/UnitTest/FPMatcher.h" #include "test/UnitTest/Test.h" TEST(LlvmLibcComplexTest, VersionMacro) { EXPECT_EQ(__STDC_VERSION_COMPLEX_H__, 202311L); } TEST(LlvmLibcComplexTest, IMacro) { EXPECT_CFP_EQ(1.0fi, I); } TEST(LlvmLibcComplexTest, _Complex_IMacro) { EXPECT_CFP_EQ(1.0fi, _Complex_I); } TEST(LlvmLibcComplexTest, CMPLXMacro) { EXPECT_CFP_EQ(CMPLX(0, 1.0), I); EXPECT_CFP_EQ(CMPLX(1.0, 0), 1.0); EXPECT_CFP_EQ(CMPLXF(0, 1.0f), I); EXPECT_CFP_EQ(CMPLXF(1.0f, 0), 1.0f); EXPECT_CFP_EQ(CMPLXL(0, 1.0l), I); EXPECT_CFP_EQ(CMPLXL(1.0l, 0), 1.0l); #ifdef LIBC_TYPES_HAS_CFLOAT16 EXPECT_CFP_EQ(CMPLXF16(0, 1.0), I); EXPECT_CFP_EQ(CMPLXF16(1.0, 0), 1.0); #endif // LIBC_TYPES_HAS_CFLOAT16 #ifdef LIBC_TYPES_HAS_CFLOAT128 EXPECT_CFP_EQ(CMPLXF128(0, 1.0), I); EXPECT_CFP_EQ(CMPLXF128(1.0, 0), 1.0); #endif // LIBC_TYPES_HAS_CFLOAT128 }