Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/rhiannon / tests/rhiannon_tests.cpp |
| Date | Not specified in source |
| Repository | Janady13/rhiannon |
| Revision | df358362a21fdde4372dc6239573622aafe4835f |
| Branch | main |
| Path or archive member | tests/rhiannon_tests.cpp |
| Original SHA-256 | a6c9484464898c06a6f07b48175444e433e5d06c88cbf987946468e30abdbcec |
| Git blob SHA | c2a88e0fac1c89acf5bb04ebe7e4a0cfd50d026f |
| Reading-copy SHA-256 | a6c9484464898c06a6f07b48175444e433e5d06c88cbf987946468e30abdbcec |
Recovered source transcript
Download complete source text ↓42 lines · 0.9 KB
// Tests — convergence and determinism basics
#include <gtest/gtest.h>
#include "agents/two_way_engine.hpp"
#include "agents/rhiannon.hpp"
using agents::TwoWayEngine;
using agents::Rhiannon;
TEST(TwoWayEngine, ConvergesToConstantTarget) {
TwoWayEngine::Cfg cfg;
cfg.dim = 8;
cfg.iters = 50;
cfg.epsilon = 1e-6;
TwoWayEngine eng(cfg);
std::vector<float> target(cfg.dim, 0.8f);
eng.set_target(target);
// Run a few outer ticks
for (int i = 0; i < 20; ++i) eng.step();
EXPECT_LT(eng.error(), 1e-2);
}
TEST(Rhiannon, DeterminismSameInputs) {
TwoWayEngine::Cfg cfg;
cfg.dim = 8;
cfg.iters = 30;
Rhiannon r1(cfg), r2(cfg);
std::vector<float> input(cfg.dim, 0.3f);
for (int i = 0; i < 10; ++i) {
r1.set_input(input); r1.tick();
r2.set_input(input); r2.tick();
}
EXPECT_NEAR(r1.state_e(), r2.state_e(), 1e-6);
}
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}