You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.2 KiB
C++

/* See the end of this file for copyright and license terms. */
#include <catch2/catch.hpp>
#include <errno.h>
#include <neo/limits.h>
#include <neo/utf.h>
TEST_CASE( "limits.h: Correct values", "[limits.h]" )
{
REQUIRE( sizeof(BYTE_MIN) == 1 );
REQUIRE( sizeof(U8_MIN) == 1 );
REQUIRE( sizeof(U16_MIN) == 2 );
REQUIRE( sizeof(U32_MIN) == 4 );
REQUIRE( sizeof(U64_MIN) == 8 );
REQUIRE( sizeof(I8_MIN) == 1 );
REQUIRE( sizeof(I16_MIN) == 2 );
REQUIRE( sizeof(I32_MIN) == 4 );
REQUIRE( sizeof(I64_MIN) == 8 );
REQUIRE( sizeof(BYTE_MAX) == 1 );
REQUIRE( sizeof(U8_MAX) == 1 );
REQUIRE( sizeof(U16_MAX) == 2 );
REQUIRE( sizeof(U32_MAX) == 4);
REQUIRE( sizeof(U64_MAX) == 8 );
REQUIRE( sizeof(I8_MAX) == 1 );
REQUIRE( sizeof(I16_MAX) == 2 );
REQUIRE( sizeof(I32_MAX) == 4 );
REQUIRE( sizeof(I64_MAX) == 8 );
REQUIRE( BYTE_MAX > BYTE_MIN );
REQUIRE( U8_MAX > U8_MIN );
REQUIRE( U16_MAX > U16_MIN );
REQUIRE( U32_MAX > U32_MIN );
REQUIRE( U64_MAX > U64_MIN );
REQUIRE( USIZE_MAX > USIZE_MIN );
REQUIRE( I8_MAX > I8_MIN );
REQUIRE( I16_MAX > I16_MIN );
REQUIRE( I32_MAX > I32_MIN );
REQUIRE( I64_MAX > I64_MIN );
REQUIRE( ISIZE_MAX > ISIZE_MIN );
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverflow"
REQUIRE( (byte)(BYTE_MAX + 1) == BYTE_MIN );
REQUIRE( (u8)(U8_MAX + 1) == U8_MIN );
REQUIRE( (u16)(U16_MAX + 1) == U16_MIN );
REQUIRE( (u32)(U32_MAX + 1) == U32_MIN );
REQUIRE( (u64)(U64_MAX + 1) == U64_MIN );
REQUIRE( (usize)(USIZE_MAX + 1) == USIZE_MIN );
REQUIRE( (i8)(I8_MAX + 1) == I8_MIN );
REQUIRE( (i16)(I16_MAX + 1) == I16_MIN );
REQUIRE( (i32)(I32_MAX + 1) == I32_MIN );
REQUIRE( (i64)(I64_MAX + 1) == I64_MIN );
REQUIRE( (isize)(ISIZE_MAX + 1) == ISIZE_MIN );
#pragma GCC diagnostic pop
}
/*
* This file is part of libneo.
* Copyright (c) 2021 Fefie <owo@fef.moe>.
*
* libneo is non-violent software: you may only use, redistribute,
* and/or modify it under the terms of the CNPLv6+ as found in
* the LICENSE file in the source code root directory or at
* <https://git.pixie.town/thufie/CNPL>.
*
* libneo comes with ABSOLUTELY NO WARRANTY, to the extent
* permitted by applicable law. See the CNPLv6+ for details.
*/