完善V1.4踢乒乓球版本

This commit is contained in:
myperworld committed 2026-01-20 22:15:03 +08:00
1 parent d14fe6c37b
commit 72455a5e76
1864 files changed
+19294 -218

No files matched your search

@@ -0,0 +1,51 @@
#include "doctest.h"
#include "fl/async.h"
#include "fl/task.h"
#include "fl/time.h"
#include "fl/warn.h"
TEST_CASE("Async tasks run correctly [async]") {
// Clear any leftover tasks from previous tests
fl::Scheduler::instance().clear_all_tasks();
SUBCASE("A simple task runs") {
bool task_ran = false;
auto task = fl::task::every_ms(10);
task.then([&task_ran]() {
task_ran = true;
});
fl::Scheduler::instance().add_task(task);
fl::Scheduler::instance().update();
REQUIRE(task_ran);
// Clear task after this subcase to prevent interference
fl::Scheduler::instance().clear_all_tasks();
}
SUBCASE("Task timing works correctly") {
// Clear any leftover tasks from previous subcases
fl::Scheduler::instance().clear_all_tasks();
int run_count = 0;
auto task = fl::task::every_ms(50); // 50ms interval
task.then([&run_count]() {
run_count++;
});
fl::Scheduler::instance().add_task(task);
// Run immediately - should execute
fl::Scheduler::instance().update();
REQUIRE(run_count == 1);
// Run again immediately - should not execute (not enough time passed)
fl::Scheduler::instance().update();
REQUIRE(run_count == 1);
// Clear task after this subcase
fl::Scheduler::instance().clear_all_tasks();
}
}