Skip to content

Commit 3d3f2e7

Browse files
committed
add test cases
1 parent 9864930 commit 3d3f2e7

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

test/test_xsimd_api.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,29 @@ struct xsimd_api_float_types_functions
658658
value_type val(0);
659659
CHECK_EQ(extract(xsimd::log1p(T(val))), std::log1p(val));
660660
}
661+
662+
void test_max_nan()
663+
{
664+
value_type val0(2.7818);
665+
value_type valN(NAN);
666+
#if XSIMD_WITH_AVX || XSIMD_WITH_SSE2
667+
using isnan = doctest::IsNaN<value_type>;
668+
CHECK_EQ(isnan(extract(xsimd::max(T(val0), T(valN)))), isnan(std::max(val0, valN)));
669+
CHECK_EQ(isnan(extract(xsimd::max(T(valN), T(val0)))), isnan(std::max(valN, val0)));
670+
#endif
671+
}
672+
673+
void test_min_nan()
674+
{
675+
value_type val0(2.7818);
676+
value_type valN(NAN);
677+
#if XSIMD_WITH_AVX || XSIMD_WITH_SSE2
678+
using isnan = doctest::IsNaN<value_type>;
679+
CHECK_EQ(isnan(extract(xsimd::min(T(val0), T(valN)))), isnan(std::min(val0, valN)));
680+
CHECK_EQ(isnan(extract(xsimd::min(T(valN), T(val0)))), isnan(std::min(valN, val0)));
681+
#endif
682+
}
683+
661684
void test_nearbyint()
662685
{
663686
value_type val(3.1);
@@ -929,6 +952,16 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
929952
Test.test_log1p();
930953
}
931954

955+
SUBCASE("max_nan")
956+
{
957+
Test.test_max_nan();
958+
}
959+
960+
SUBCASE("min_nan")
961+
{
962+
Test.test_min_nan();
963+
}
964+
932965
SUBCASE("nearbyint")
933966
{
934967
Test.test_nearbyint();

0 commit comments

Comments
 (0)