// Copyright 2025 Steven Le Rouzic
//
// SPDX-License-Identifier: BSD-3-Clause

#include "asl/base/float.hpp"

#include "asl/testing/testing.hpp"

ASL_TEST(is_infinity)
{
    ASL_TEST_EXPECT(!asl::is_infinity(0.0F));
    ASL_TEST_EXPECT(!asl::is_infinity(-25.0F));
    ASL_TEST_EXPECT(asl::is_infinity(45.0F / 0.0F));
    ASL_TEST_EXPECT(asl::is_infinity(-45.0F / 0.0F));
    ASL_TEST_EXPECT(asl::is_infinity(asl::infinity<float>()));
    ASL_TEST_EXPECT(asl::is_infinity(-asl::infinity<double>()));
}

ASL_TEST(is_nan)
{
    ASL_TEST_EXPECT(!asl::is_nan(0.0F));
    ASL_TEST_EXPECT(!asl::is_nan(-25.0F));
    ASL_TEST_EXPECT(!asl::is_nan(45.0F / 0.0F));
    ASL_TEST_EXPECT(asl::is_nan(asl::nan<float>()));
    ASL_TEST_EXPECT(asl::is_nan(asl::nan<double>()));
}