#![allow(missing_docs)]
use assert_cmd::Command;
use std::fs;
use tempfile::TempDir;
fn ruchy_cmd() -> Command {
assert_cmd::cargo::cargo_bin_cmd!("ruchy")
}
#[test]
fn test_parser_002_raw_string_minimal() {
let temp = TempDir::new().expect("Failed to create temp dir");
let source = temp.path().join("test.ruchy");
let code = r##"
fun main() {
let x = r#"test"#;
println(x);
}
"##;
fs::write(&source, code).expect("Failed to write test file");
ruchy_cmd().arg("check").arg(&source).assert().success();
}
#[test]
fn test_parser_002_raw_string_with_quotes() {
let temp = TempDir::new().expect("Failed to create temp dir");
let source = temp.path().join("test.ruchy");
let code = r##"
fun main() {
let json = r#"{"name": "Alice", "age": 25}"#;
println(json);
}
"##;
fs::write(&source, code).expect("Failed to write test file");
ruchy_cmd().arg("check").arg(&source).assert().success();
}
#[test]
fn test_parser_002_raw_string_multiline() {
let temp = TempDir::new().expect("Failed to create temp dir");
let source = temp.path().join("test.ruchy");
let code = r##"
fun main() {
let data = r#"[
{"name": "Alice"},
{"name": "Bob"}
]"#;
println(data);
}
"##;
fs::write(&source, code).expect("Failed to write test file");
ruchy_cmd().arg("check").arg(&source).assert().success();
}
#[test]
fn test_parser_002_raw_string_with_backslashes() {
let temp = TempDir::new().expect("Failed to create temp dir");
let source = temp.path().join("test.ruchy");
let code = r##"
fun main() {
let path = r#"C:\Users\Alice\Documents\file.txt"#;
println(path);
}
"##;
fs::write(&source, code).expect("Failed to write test file");
ruchy_cmd().arg("check").arg(&source).assert().success();
}
#[test]
fn test_parser_002_regular_string_still_works() {
let temp = TempDir::new().expect("Failed to create temp dir");
let source = temp.path().join("test.ruchy");
let code = r#"
fun main() {
let x = "normal string";
println(x);
}
"#;
fs::write(&source, code).expect("Failed to write test file");
ruchy_cmd().arg("check").arg(&source).assert().success();
}
#[test]
fn test_parser_002_book_example_dataframe() {
let temp = TempDir::new().expect("Failed to create temp dir");
let source = temp.path().join("test.ruchy");
let code = r##"
fun test_dataframe_from_json() {
let json_data = r#"[
{"name": "Alice", "age": 25, "active": true},
{"name": "Bob", "age": 30, "active": false}
]"#;
let df = DataFrame::from_json(json_data);
println("Loaded {} rows from JSON", df.rows());
}
"##;
fs::write(&source, code).expect("Failed to write test file");
ruchy_cmd().arg("check").arg(&source).assert().success();
}