tests file for int24

This commit is contained in:
Vladyslav Baranovskyi
2024-10-08 12:37:23 +03:00
parent c00e8a69e2
commit 19289bf1b5

110
tests/Math/Int24.cpp Normal file
View File

@@ -0,0 +1,110 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include <catch2/catch_all.hpp>
#include "Math/Int24.hpp"
using namespace OpenVulkano;
TEST_CASE("Default constructor", "[Int24]")
{
int24 a;
REQUIRE(static_cast<int>(a) == 0);
}
TEST_CASE("Integer constructor", "[Int24]")
{
int24 a(0x123456);
REQUIRE(static_cast<int>(a) == 0x123456);
int24 b(-1);
REQUIRE(static_cast<int>(b) == -1);
}
TEST_CASE("Copy constructor", "[Int24]")
{
int24 a(0x123456);
int24 b(a);
REQUIRE(static_cast<int>(b) == 0x123456);
}
TEST_CASE("Assignment operator", "[Int24]")
{
int24 a;
a = 0x123456;
REQUIRE(static_cast<int>(a) == 0x123456);
int24 b;
b = a;
REQUIRE(static_cast<int>(b) == 0x123456);
}
TEST_CASE("Arithmetic operators", "[Int24]")
{
int24 a(0x10);
int24 b(0x20);
REQUIRE(static_cast<int>(a + b) == 0x30);
REQUIRE(static_cast<int>(b - a) == 0x10);
REQUIRE(static_cast<int>(a * b) == 0x200);
REQUIRE(static_cast<int>(b / a) == 2);
}
TEST_CASE("Compound assignment operators", "[Int24]")
{
int24 a(0x10);
int24 b(0x20);
a += b;
REQUIRE(static_cast<int>(a) == 0x30);
a -= b;
REQUIRE(static_cast<int>(a) == 0x10);
a *= b;
REQUIRE(static_cast<int>(a) == 0x200);
a /= b;
REQUIRE(static_cast<int>(a) == 0x10);
}
TEST_CASE("Comparison operators", "[Int24]")
{
int24 a(0x100000);
int24 b(0x200000);
REQUIRE(a < b);
REQUIRE(b > a);
REQUIRE(a <= b);
REQUIRE(b >= a);
REQUIRE(a != b);
int24 c(0x100000);
REQUIRE(a == c);
}
TEST_CASE("Shift operators", "[Int24]")
{
int24 a(0x123456);
REQUIRE(static_cast<int>(a << 1) == 0x2468ac);
REQUIRE(static_cast<int>(a >> 1) == 0x91a2b);
}
TEST_CASE("Boolean operators", "[Int24]")
{
int24 a(0);
int24 b(1);
REQUIRE(!a);
REQUIRE(b);
}
TEST_CASE("Negation", "[Int24]")
{
int24 a(0x123456);
REQUIRE(static_cast<int>(-a) == -0x123456);
}