use pattern_core::Pattern;
#[test]
fn test_analysis_atomic_pattern() {
let pattern = Pattern::point("atom".to_string());
let analysis = pattern.analyze_structure();
insta::assert_snapshot!("analysis_atomic_depth_distribution", format!("{:?}", analysis.depth_distribution));
insta::assert_snapshot!("analysis_atomic_element_counts", format!("{:?}", analysis.element_counts));
insta::assert_snapshot!("analysis_atomic_nesting_patterns", format!("{:?}", analysis.nesting_patterns));
insta::assert_snapshot!("analysis_atomic_summary", analysis.summary);
}
#[test]
fn test_analysis_nested_pattern() {
let pattern = Pattern::pattern("root".to_string(), vec![
Pattern::point("child1".to_string()),
Pattern::point("child2".to_string()),
]);
let analysis = pattern.analyze_structure();
insta::assert_snapshot!("analysis_nested_depth_distribution", format!("{:?}", analysis.depth_distribution));
insta::assert_snapshot!("analysis_nested_element_counts", format!("{:?}", analysis.element_counts));
insta::assert_snapshot!("analysis_nested_summary", analysis.summary);
}
#[test]
fn test_analysis_linear_pattern() {
let pattern = Pattern::pattern("level1".to_string(), vec![
Pattern::pattern("level2".to_string(), vec![
Pattern::point("level3".to_string()),
]),
]);
let analysis = pattern.analyze_structure();
insta::assert_snapshot!("analysis_linear_nesting_patterns", format!("{:?}", analysis.nesting_patterns));
insta::assert_snapshot!("analysis_linear_summary", analysis.summary);
}