- More Documentation
- Vulkan Configuration Implementations - Fixed build errors on GCC and Clang
This commit is contained in:
@@ -12,6 +12,7 @@ add_executable(fennec-test
|
||||
tests/test_core.h
|
||||
tests/core/test_event.h
|
||||
tests/core/test_version.h
|
||||
tests/lang/test_ranges.h
|
||||
)
|
||||
|
||||
target_compile_definitions(fennec-test PUBLIC FENNEC_TEST_CWD="${CMAKE_SOURCE_DIR}/bin/${FENNEC_BUILD_NAME}"
|
||||
|
||||
@@ -70,7 +70,7 @@ inline void fennec_test_containers_bintree() {
|
||||
|
||||
fennec_test_spacer(1);
|
||||
|
||||
size_t i;
|
||||
size_t i = 0;
|
||||
|
||||
i = 0;
|
||||
test.traverse<tree_t::pre_order>([&](size_t x, size_t) -> uint8_t {
|
||||
|
||||
@@ -80,7 +80,7 @@ inline void fennec_test_containers_rdtree() {
|
||||
|
||||
fennec_test_spacer(1);
|
||||
|
||||
size_t i;
|
||||
size_t i = 0;
|
||||
|
||||
i = 0;
|
||||
test.traverse<tree_t::pre_order>([&](size_t x, size_t) -> uint8_t {
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace fennec::test
|
||||
inline void fennec_test_lang_bits()
|
||||
{
|
||||
int a = 0x48ef13ad;
|
||||
int b = 0x23e5ab9c;
|
||||
const int b = 0x23e5ab9c;
|
||||
|
||||
fennec_test_run(fennec::bit_cast<float>(0x3ee00000), 0.4375f);
|
||||
|
||||
|
||||
@@ -33,17 +33,17 @@ inline bool fennec_test_lang_function_test() {
|
||||
inline void fennec_test_lang_function() {
|
||||
function<bool()> test;
|
||||
|
||||
fennec_test_run((bool)(test = fennec_test_lang_function_test), true);
|
||||
fennec_test_run(bool(test = fennec_test_lang_function_test), true);
|
||||
fennec_test_run(test(), true);
|
||||
|
||||
fennec_test_spacer(1);
|
||||
|
||||
fennec_test_run((bool)(test = []() { return true; }), true);
|
||||
fennec_test_run(bool(test = []() { return true; }), true);
|
||||
fennec_test_run(test(), true);
|
||||
|
||||
fennec_test_spacer(1);
|
||||
|
||||
fennec_test_run((bool)(test = nullptr), false);
|
||||
fennec_test_run(bool(test = nullptr), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,10 +27,10 @@ namespace fennec::test
|
||||
|
||||
inline void fennec_test_lang_hashing() {
|
||||
|
||||
size_t num = 61;
|
||||
float_t numf = bit_cast<float>((uint32_t)num);
|
||||
double_t numd = bit_cast<double>(num);
|
||||
size_t exp = hash<size_t>()(num);
|
||||
constexpr size_t num = 61;
|
||||
constexpr float_t numf = bit_cast<float>(uint32_t(num));
|
||||
constexpr double_t numd = bit_cast<double>(num);
|
||||
constexpr size_t exp = hash<size_t>()(num);
|
||||
|
||||
fennec_test_run(hash<int8_t>()(num), exp);
|
||||
fennec_test_run(hash<uint8_t>()(num), exp);
|
||||
|
||||
55
test/tests/lang/test_ranges.h
Normal file
55
test/tests/lang/test_ranges.h
Normal file
@@ -0,0 +1,55 @@
|
||||
// =====================================================================================================================
|
||||
// fennec, a free and open source game engine
|
||||
// Copyright © 2025 Medusa Slockbower
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
// =====================================================================================================================
|
||||
|
||||
///
|
||||
/// \file test_ranges.h
|
||||
/// \brief
|
||||
///
|
||||
///
|
||||
/// \details
|
||||
/// \author Medusa Slockbower
|
||||
///
|
||||
/// \copyright Copyright © 2025 - 2026 Medusa Slockbower ([GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html))
|
||||
///
|
||||
///
|
||||
|
||||
|
||||
#ifndef FENNEC_TEST_LANG_RANGES_H
|
||||
#define FENNEC_TEST_LANG_RANGES_H
|
||||
|
||||
#include "../../test.h"
|
||||
|
||||
#include <fennec/lang/ranges.h>
|
||||
#include <fennec/string/string.h>
|
||||
|
||||
namespace fennec::test
|
||||
{
|
||||
|
||||
inline void fennec_test_lang_ranges() {
|
||||
|
||||
string res = string(10);
|
||||
for (const int i : range<int>(0, 10)) {
|
||||
res[i] = char('0' + char(i));
|
||||
}
|
||||
|
||||
fennec_test_run(res, string("0123456789"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif // FENNEC_TEST_LANG_RANGES_H
|
||||
@@ -151,9 +151,9 @@ namespace fennec::test
|
||||
|
||||
fennec_test_spacer(1);
|
||||
|
||||
fennec_test_run([]() -> float { int i; float f = fennec::frexp(2.4f, i); return fennec::ldexp(f, i); }(), 2.4f);
|
||||
fennec_test_run([]() -> float { int i; float f = fennec::frexp(2.5f, i); return fennec::ldexp(f, i); }(), 2.5f);
|
||||
fennec_test_run([]() -> float { int i; float f = fennec::frexp(2.6f, i); return fennec::ldexp(f, i); }(), 2.6f);
|
||||
fennec_test_run([]() -> float { int i; const float f = fennec::frexp(2.4f, i); return fennec::ldexp(f, i); }(), 2.4f);
|
||||
fennec_test_run([]() -> float { int i; const float f = fennec::frexp(2.5f, i); return fennec::ldexp(f, i); }(), 2.5f);
|
||||
fennec_test_run([]() -> float { int i; const float f = fennec::frexp(2.6f, i); return fennec::ldexp(f, i); }(), 2.6f);
|
||||
|
||||
fennec_test_spacer(2);
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "lang/test_function.h"
|
||||
#include "lang/test_hashing.h"
|
||||
#include "lang/test_metaprogramming.h"
|
||||
#include "lang/test_ranges.h"
|
||||
|
||||
namespace fennec::test
|
||||
{
|
||||
@@ -47,6 +48,11 @@ namespace fennec::test
|
||||
fennec_test_subheader("function tests");
|
||||
fennec_test_spacer(2);
|
||||
fennec_test_lang_function();
|
||||
fennec_test_spacer(3);
|
||||
|
||||
fennec_test_subheader("ranges tests");
|
||||
fennec_test_spacer(2);
|
||||
fennec_test_lang_ranges();
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ inline void fennec_test_platform() {
|
||||
|
||||
window_manager& wm = platform->get_window_manager();
|
||||
|
||||
window_id window = wm.create_window(window::config {
|
||||
const window_id window = wm.create_window(window::config {
|
||||
.title = string("fennec-test"),
|
||||
.flags = { },
|
||||
.mode = window::mode_windowed,
|
||||
|
||||
@@ -105,7 +105,7 @@ inline void fennec_test_threading_run_test_mpscq(array<thread, ThreadsV>& thread
|
||||
|
||||
template<typename ReturnT, typename...ParamsT, typename...ArgsT>
|
||||
inline double fennec_test_threading_timed(ReturnT (func)(ParamsT...), ArgsT&&...args) {
|
||||
auto start = std::chrono::high_resolution_clock::now();
|
||||
const auto start = std::chrono::high_resolution_clock::now();
|
||||
func(fennec::forward<ArgsT>(args)...);
|
||||
return std::chrono::duration<double>(std::chrono::high_resolution_clock::now() - start).count();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user