#include #include "war/WarEngine.h" using namespace Warfactory::War; class WarEngineAPITest : public ::testing::Test { protected: void SetUp() override { engine = std::make_unique(); ASSERT_TRUE(engine->initialize()); } void TearDown() override { engine->shutdown(); } std::unique_ptr engine; }; TEST_F(WarEngineAPITest, BattleCreation) { // Test multi-chunk battle creation std::vector chunks = {1, 2, 3, 4}; // Multi-chunk battle engine->createBattle("test_battle", chunks); EXPECT_EQ(engine->getActiveBattles(), 1); } TEST_F(WarEngineAPITest, AutoBattlerControl) { // Test auto-battler functionality std::vector chunks = {1}; engine->createBattle("auto_battle", chunks); engine->enableAutoBattler("auto_battle"); engine->setPlayerOversight("auto_battle", true); // Should allow player oversight while auto-battling EXPECT_EQ(engine->getActiveBattles(), 1); } TEST_F(WarEngineAPITest, ThermalManagement) { // Test automatic thermal management (fire & scoot) // TODO: Create units with thermal properties // TODO: Verify automatic retreat/advance on overheating } TEST_F(WarEngineAPITest, PerformanceWith500Units) { // Test performance target: 500 units simultaneous std::vector chunks = {1, 2, 3}; engine->createBattle("large_battle", chunks); // TODO: Add 500 units to battle // TODO: Verify 60fps maintained EXPECT_GE(engine->getTickRate(), 55.0); // Allow some tolerance }