use super::*;
#[allow(unused_imports)]
use std::collections::HashMap;
#[allow(unused_imports)]
use std::path::Path;
#[allow(unused_imports)]
use uuid::Uuid;
mod tests {
use super::*;
#[test]
fn test_node_size() {
let size = std::mem::size_of::<UnifiedAstNode>();
assert!(
size <= 128,
"Node size {size} exceeds maximum expected size of 128 bytes"
);
assert!(
size >= 64,
"Node size {size} is smaller than minimum expected size of 64 bytes"
);
}
#[test]
fn test_node_alignment() {
assert_eq!(std::mem::align_of::<UnifiedAstNode>(), 32);
}
#[test]
fn test_node_flags() {
let mut flags = NodeFlags::new();
flags.set(NodeFlags::ASYNC);
flags.set(NodeFlags::EXPORTED);
assert!(flags.has(NodeFlags::ASYNC));
assert!(flags.has(NodeFlags::EXPORTED));
assert!(!flags.has(NodeFlags::PRIVATE));
flags.unset(NodeFlags::ASYNC);
assert!(!flags.has(NodeFlags::ASYNC));
}
#[test]
fn test_ast_dag() {
let mut dag = AstDag::new();
let node = UnifiedAstNode::new(AstKind::Function(FunctionKind::Regular), Language::Rust);
let key = dag.add_node(node);
assert_eq!(dag.nodes.len(), 1);
assert!(dag.dirty_nodes.contains(key));
dag.mark_clean(key);
assert!(!dag.dirty_nodes.contains(key));
}
}
mod property_tests {
use proptest::prelude::*;
proptest! {
#[test]
fn basic_property_stability(_input in ".*") {
prop_assert!(true);
}
#[test]
fn module_consistency_check(_x in 0u32..1000) {
prop_assert!(_x < 1001);
}
}
}
mod coverage_tests {
use super::*;
use chrono::Utc;
use proptest::prelude::*;
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};
use std::path::PathBuf;
include!("core_tests_enums.rs");
include!("core_tests_types.rs");
include!("core_tests_nodes.rs");
include!("core_tests_properties.rs");
}