use mecha10_cli::sim::robot_generator::*;
#[test]
fn test_basic_robot_generation() {
}
#[test]
fn test_robot_dimensions() {
let profile = RobotProfile {
platform: "differential-drive".to_string(),
sensors: vec!["camera".to_string(), "lidar".to_string()],
sensor_configs: vec![],
task_nodes: vec![],
capabilities: vec![],
difficulty_preference: "medium".to_string(),
};
let generator = RobotGenerator { profile, rl_mode: true };
assert_eq!(generator.get_robot_radius(), 0.3);
assert_eq!(generator.get_robot_height(), 1.0);
}
#[test]
fn test_tscn_header() {
let profile = RobotProfile {
platform: "differential-drive".to_string(),
sensors: vec![],
sensor_configs: vec![],
task_nodes: vec![],
capabilities: vec![],
difficulty_preference: "medium".to_string(),
};
let generator = RobotGenerator {
profile,
rl_mode: false,
};
let tscn = generator.generate_tscn();
assert!(tscn.contains("[gd_scene load_steps=3 format=3]"));
assert!(tscn.contains("[node name=\"Robot\" type=\"CharacterBody3D\"]"));
}
#[test]
fn test_rl_mode_includes_ai_controller() {
let profile = RobotProfile {
platform: "differential-drive".to_string(),
sensors: vec!["camera".to_string()],
sensor_configs: vec![],
task_nodes: vec![],
capabilities: vec![],
difficulty_preference: "medium".to_string(),
};
let generator = RobotGenerator { profile, rl_mode: true };
let tscn = generator.generate_tscn();
assert!(tscn.contains("[gd_scene load_steps=5 format=3]"));
assert!(tscn.contains("[node name=\"AIController3D\""));
assert!(tscn.contains("rover_base_rl.gd"));
assert!(tscn.contains("rover_ai_controller.gd"));
assert!(tscn.contains("[node name=\"CameraRL\""));
}