use oak_testing::parsing::ParserTester;
use oak_valkyrie::{ValkyrieLanguage, ValkyrieParser};
use std::{path::Path, time::Duration};
#[test]
fn test_valkyrie_parser() -> Result<(), oak_core::OakError> {
let here = Path::new(env!("CARGO_MANIFEST_DIR"));
let lang = Box::leak(Box::new(ValkyrieLanguage::default()));
let parser = ValkyrieParser::new(lang);
let test_runner = ParserTester::new(here.join("tests").join("parser")).with_extension("valkyrie").with_timeout(Duration::from_secs(5));
test_runner.run_tests::<ValkyrieLanguage, _>(&parser)
}
#[test]
fn test_flags_parser() -> Result<(), oak_core::OakError> {
let here = Path::new(env!("CARGO_MANIFEST_DIR"));
let lang = Box::leak(Box::new(ValkyrieLanguage::default()));
let parser = ValkyrieParser::new(lang);
let test_runner = ParserTester::new(here.join("tests").join("parser").join("flags")).with_extension("valkyrie").with_timeout(Duration::from_secs(5));
test_runner.run_tests::<ValkyrieLanguage, _>(&parser)
}
#[test]
fn test_valkyrie_namespace_parsing() {
use oak_core::SourceText;
use oak_valkyrie::{ValkyrieLanguage, ValkyrieParser};
let language = ValkyrieLanguage::default();
let _parser = ValkyrieParser::new(&language);
let source = SourceText::new("namespace Test {}");
println!("Testing Valkyrie namespace parsing with: {}", source.text());
assert!(true, "Namespace parsing test placeholder - parser implementation needed")
}
#[test]
fn test_valkyrie_micro_function_parsing() {
use oak_core::SourceText;
use oak_valkyrie::{ValkyrieLanguage, ValkyrieParser};
let language = ValkyrieLanguage::default();
let _parser = ValkyrieParser::new(&language);
let source = SourceText::new("micro main() { let x = 42 }");
println!("Testing Valkyrie micro function parsing with: {}", source.text());
assert!(true, "Micro function parsing test placeholder - parser implementation needed")
}
#[test]
fn test_valkyrie_micro_parsing() {
use oak_core::SourceText;
use oak_valkyrie::{ValkyrieLanguage, ValkyrieParser};
let language = ValkyrieLanguage::default();
let _parser = ValkyrieParser::new(&language);
let source = SourceText::new("micro PI() { return 3.14 }");
println!("Testing Valkyrie micro parsing with: {}", source.text());
assert!(true, "Micro parsing test placeholder - parser implementation needed")
}
#[test]
fn test_valkyrie_complex_parsing() {
use oak_core::SourceText;
use oak_valkyrie::{ValkyrieLanguage, ValkyrieParser};
let language = ValkyrieLanguage::default();
let _parser = ValkyrieParser::new(&language);
let source = SourceText::new(
r#"
namespace Math {
micro PI() { return 3.14159 }
micro calculate(x: i32, y: i32) {
let result = x + y;
return result
}
}
"#,
);
println!("Testing Valkyrie complex parsing with: {}", source.text());
assert!(true, "Complex parsing test placeholder - parser implementation needed")
}