yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
agent_tools_test.h
Go to the documentation of this file.
1#ifndef YAZE_APP_TEST_AGENT_TOOLS_TEST_H_
2#define YAZE_APP_TEST_AGENT_TOOLS_TEST_H_
3
4#include <filesystem>
9
10namespace yaze {
11namespace test {
12
14
16 public:
18 ~AgentToolsTestSuite() override = default;
19
20 std::string GetName() const override { return "Agent Tools & Config"; }
21 TestCategory GetCategory() const override { return TestCategory::kUnit; }
22
23 absl::Status RunTests(TestResults& results) override {
26 return absl::OkStatus();
27 }
28
29 private:
31 auto start_time = std::chrono::steady_clock::now();
32 TestResult result;
33 result.name = "ToolPreferences_MemoryInspector";
34 result.suite_name = GetName();
35 result.category = GetCategory();
36 result.timestamp = start_time;
37
39 // Verify default matches expectation (I set it to true in header)
40 if (prefs.memory_inspector) {
41 prefs.memory_inspector = false;
42 if (!prefs.memory_inspector) {
44 } else {
46 result.error_message = "Failed to toggle memory_inspector preference";
47 }
48 } else {
49 // If default changed, just verify we can toggle it
50 prefs.memory_inspector = true;
51 if (prefs.memory_inspector) {
53 } else {
55 result.error_message = "Failed to enable memory_inspector";
56 }
57 }
58
59 auto end_time = std::chrono::steady_clock::now();
60 result.duration = std::chrono::duration_cast<std::chrono::milliseconds>(
61 end_time - start_time);
62 results.AddResult(result);
63 }
64
66 auto start_time = std::chrono::steady_clock::now();
67 TestResult result;
68 result.name = "ConfigPersistence_MemoryInspector";
69 result.suite_name = GetName();
70 result.category = GetCategory();
71 result.timestamp = start_time;
72
73#if defined(YAZE_WITH_JSON)
74 // Create a snapshot with memory_inspector = true
77 config.tools.memory_inspector = true;
78 snapshot.agent_config = config;
79
80 // Save to temp file
81 std::filesystem::path temp_path = std::filesystem::temp_directory_path() / "yaze_test_config.json";
82 auto save_status = yaze::editor::AgentChatHistoryCodec::Save(temp_path, snapshot);
83
84 if (!save_status.ok()) {
86 result.error_message = "Save failed: " + std::string(save_status.message());
87 } else {
88 // Load back
89 auto load_result = yaze::editor::AgentChatHistoryCodec::Load(temp_path);
90 if (load_result.ok()) {
91 if (load_result->agent_config.has_value() &&
92 load_result->agent_config->tools.memory_inspector == true) {
93
94 // Now test false
95 snapshot.agent_config->tools.memory_inspector = false;
97 auto load_result2 = yaze::editor::AgentChatHistoryCodec::Load(temp_path);
98
99 if (load_result2.ok() &&
100 load_result2->agent_config.has_value() &&
101 load_result2->agent_config->tools.memory_inspector == false) {
103 } else {
105 result.error_message = "Failed to persist memory_inspector=false";
106 }
107 } else {
109 result.error_message = "Failed to persist memory_inspector=true";
110 }
111 } else {
113 result.error_message = "Load failed: " + std::string(load_result.status().message());
114 }
115 }
116 // Cleanup
117 std::error_code ec;
118 std::filesystem::remove(temp_path, ec);
119#else
121 result.error_message = "JSON support disabled";
122#endif
123
124 auto end_time = std::chrono::steady_clock::now();
125 result.duration = std::chrono::duration_cast<std::chrono::milliseconds>(
126 end_time - start_time);
127 results.AddResult(result);
128 }
129};
130
131// Register the AgentToolsTestSuite with the TestManager.
133
134} // namespace test
135} // namespace yaze
136
137#endif // YAZE_APP_TEST_AGENT_TOOLS_TEST_H_
static absl::Status Save(const std::filesystem::path &path, const Snapshot &snapshot)
static absl::StatusOr< Snapshot > Load(const std::filesystem::path &path)
void RunConfigPersistenceTest(TestResults &results)
std::string GetName() const override
void RunToolPreferencesTest(TestResults &results)
TestCategory GetCategory() const override
absl::Status RunTests(TestResults &results) override
~AgentToolsTestSuite() override=default
void RegisterAgentToolsTestSuite()
std::optional< AgentConfigSnapshot > agent_config
std::chrono::milliseconds duration
std::string error_message
std::chrono::time_point< std::chrono::steady_clock > timestamp
void AddResult(const TestResult &result)