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 =
82 std::filesystem::temp_directory_path() / "yaze_test_config.json";
83 auto save_status =
85
86 if (!save_status.ok()) {
88 result.error_message =
89 "Save failed: " + std::string(save_status.message());
90 } else {
91 // Load back
92 auto load_result = yaze::editor::AgentChatHistoryCodec::Load(temp_path);
93 if (load_result.ok()) {
94 if (load_result->agent_config.has_value() &&
95 load_result->agent_config->tools.memory_inspector == true) {
96
97 // Now test false
98 snapshot.agent_config->tools.memory_inspector = false;
100 auto load_result2 =
102
103 if (load_result2.ok() && load_result2->agent_config.has_value() &&
104 load_result2->agent_config->tools.memory_inspector == false) {
106 } else {
108 result.error_message = "Failed to persist memory_inspector=false";
109 }
110 } else {
112 result.error_message = "Failed to persist memory_inspector=true";
113 }
114 } else {
116 result.error_message =
117 "Load failed: " + std::string(load_result.status().message());
118 }
119 }
120 // Cleanup
121 std::error_code ec;
122 std::filesystem::remove(temp_path, ec);
123#else
125 result.error_message = "JSON support disabled";
126#endif
127
128 auto end_time = std::chrono::steady_clock::now();
129 result.duration = std::chrono::duration_cast<std::chrono::milliseconds>(
130 end_time - start_time);
131 results.AddResult(result);
132 }
133};
134
135// Register the AgentToolsTestSuite with the TestManager.
137
138} // namespace test
139} // namespace yaze
140
141#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)