Files
whetstone_DSL/editor/tests/step83_test.cpp

53 lines
1.8 KiB
C++
Raw Normal View History

2026-02-09 09:22:03 -07:00
// Step 83 TDD Test: Additional tree-sitter grammars
//
// Tests:
// 1. SyntaxHighlighter returns spans for new languages
// 2. EditorMode can switch to new languages
#include <cassert>
#include <iostream>
#include "SyntaxHighlighter.h"
#include "EditorMode.h"
int main() {
int passed = 0;
int failed = 0;
// --- Test 1: SyntaxHighlighter spans ---
{
const char* js = "function add(a,b){ return a+b; }";
const char* ts = "function add(a: number, b: number): number { return a + b; }";
const char* java = "class A { int add(int a, int b){ return a+b; } }";
const char* rust = "fn add(a:i32,b:i32)->i32{ a+b }";
const char* go = "func add(a int, b int) int { return a+b }";
auto jsSpans = SyntaxHighlighter::highlight(js, "javascript");
auto tsSpans = SyntaxHighlighter::highlight(ts, "typescript");
auto javaSpans = SyntaxHighlighter::highlight(java, "java");
auto rustSpans = SyntaxHighlighter::highlight(rust, "rust");
auto goSpans = SyntaxHighlighter::highlight(go, "go");
assert(!jsSpans.empty());
assert(!tsSpans.empty());
assert(!javaSpans.empty());
assert(!rustSpans.empty());
assert(!goSpans.empty());
std::cout << "Test 1 PASS: Highlight spans for new languages" << std::endl;
++passed;
}
// --- Test 2: EditorMode switches ---
{
EditorMode mode("javascript");
assert(mode.getLanguage() == "javascript");
mode.setLanguage("rust");
assert(mode.getLanguage() == "rust");
std::cout << "Test 2 PASS: EditorMode supports new languages" << std::endl;
++passed;
}
std::cout << "\n=== Step 83 Results: " << passed << " passed, " << failed << " failed ===" << std::endl;
return failed > 0 ? 1 : 0;
}