Files
TamaASR/linux/fcitx5/protocolsession_test.cpp
MeloriseandCodex 4a5a8dc8dd feat: 发布 MeloASR 0.1.7
整合 Linux Fcitx5 实时输入、网页后端、设置页、悬浮球、托盘和发行打包能力。

AI-assisted-by: Codex

AI-model: gpt-5.6-sol

AI-reasoning-effort: medium

Co-authored-by: Codex <codex@openai.com>
2026-08-23 17:23:33 +08:00

41 lines
1.4 KiB
C++

#include "protocolsession.h"
#include "preeditfinalizer.h"
#include "keyeventclassifier.h"
#include <cassert>
#include <string>
#include <vector>
int main() {
ProtocolSession session;
assert(!session.active());
session.start("round-1");
assert(session.active());
assert(session.accept("round-1", 1));
assert(!session.accept("round-1", 1));
assert(!session.accept("round-1", 0));
assert(!session.accept("old-round", 2));
assert(session.accept("round-1", 3));
session.reset();
assert(!session.active());
assert(!session.accept("round-1", 4));
session.start("round-2");
assert(!session.accept("round-1", 100));
assert(session.accept("round-2", 1));
std::vector<std::string> finalizationEvents;
finalizePreedit(
"最终文本",
[&finalizationEvents]() { finalizationEvents.emplace_back("clear"); },
[&finalizationEvents](const std::string &text) {
finalizationEvents.emplace_back("commit:" + text);
});
assert((finalizationEvents == std::vector<std::string>{"clear", "commit:最终文本"}));
assert(classifyVoiceKeyEvent(false, true, false, true, false, false, false) ==
VoiceKeyAction::ConsumeHeldTrigger);
assert(classifyVoiceKeyEvent(true, true, false, true, false, false, false) ==
VoiceKeyAction::Stop);
assert(classifyVoiceKeyEvent(false, true, false, false, false, false, true) ==
VoiceKeyAction::Cancel);
}