style: run clang-format and configure pre-commit hooks

This commit is contained in:
AI-anonymous
2026-05-20 00:18:23 +02:00
parent 041eab7155
commit 3b15770437
28 changed files with 2226 additions and 2061 deletions

View File

@@ -1,58 +1,59 @@
#include <gtest/gtest.h>
#include "fces/controller.hpp"
#include <gtest/gtest.h>
using namespace fces;
TEST(ControllerTest, Construction) {
FuzzyController ctrl;
EXPECT_GT(ctrl.id, 0u);
EXPECT_EQ(ctrl.fitness, 0.0f);
EXPECT_EQ(ctrl.origin, "random");
FuzzyController ctrl;
EXPECT_GT(ctrl.id, 0u);
EXPECT_EQ(ctrl.fitness, 0.0f);
EXPECT_EQ(ctrl.origin, "random");
}
TEST(ControllerTest, GenomeSize) {
FuzzyController ctrl;
EXPECT_EQ(ctrl.genome.weights.size(), static_cast<size_t>(GENOME_SIZE));
FuzzyController ctrl;
EXPECT_EQ(ctrl.genome.weights.size(), static_cast<size_t>(GENOME_SIZE));
}
TEST(ControllerTest, Mutation) {
FuzzyController parent;
auto child = parent.mutate(1.0f);
EXPECT_NE(child.id, parent.id);
EXPECT_EQ(child.origin, "mutation");
// Child should differ from parent
bool differs = false;
for (size_t i = 0; i < parent.genome.weights.size(); ++i) {
if (parent.genome.weights[i] != child.genome.weights[i]) {
differs = true;
break;
}
FuzzyController parent;
auto child = parent.mutate(1.0f);
EXPECT_NE(child.id, parent.id);
EXPECT_EQ(child.origin, "mutation");
// Child should differ from parent
bool differs = false;
for (size_t i = 0; i < parent.genome.weights.size(); ++i) {
if (parent.genome.weights[i] != child.genome.weights[i]) {
differs = true;
break;
}
EXPECT_TRUE(differs);
}
EXPECT_TRUE(differs);
}
TEST(ControllerTest, Crossover) {
FuzzyController a, b;
auto child = a.crossover(b);
EXPECT_EQ(child.origin, "crossover");
FuzzyController a, b;
auto child = a.crossover(b);
EXPECT_EQ(child.origin, "crossover");
}
TEST(ControllerTest, DecideUpdate) {
FuzzyController ctrl;
std::vector<std::vector<float>> stats = {{0.1f, 0.2f, 0.3f, 0.4f, 0.5f}};
auto actions = ctrl.decide_update(stats, 0.0f, 0.5f, 0.0f, 0.1f, 0.0f, 0.0f, 1.0f, 0.0f);
EXPECT_EQ(actions.size(0), 1);
EXPECT_EQ(actions.size(1), GENOME_OUTPUT_DIM);
FuzzyController ctrl;
std::vector<std::vector<float>> stats = {{0.1f, 0.2f, 0.3f, 0.4f, 0.5f}};
auto actions =
ctrl.decide_update(stats, 0.0f, 0.5f, 0.0f, 0.1f, 0.0f, 0.0f, 1.0f, 0.0f);
EXPECT_EQ(actions.size(0), 1);
EXPECT_EQ(actions.size(1), GENOME_OUTPUT_DIM);
}
TEST(ControllerTest, OrthogonalChild) {
FuzzyController parent;
auto child = parent.create_orthogonal_child(1.0f);
EXPECT_EQ(child.origin, "phoenix_rebirth");
FuzzyController parent;
auto child = parent.create_orthogonal_child(1.0f);
EXPECT_EQ(child.origin, "phoenix_rebirth");
}
TEST(ControllerTest, BanachFission) {
FuzzyController parent;
auto [plus, minus] = parent.banach_tarski_fission(1.0f);
EXPECT_NE(plus.id, minus.id);
FuzzyController parent;
auto [plus, minus] = parent.banach_tarski_fission(1.0f);
EXPECT_NE(plus.id, minus.id);
}