1#![warn(missing_docs)]
10
11pub mod feature_extraction;
12pub mod hypergraph;
13pub mod types;
14
15pub use feature_extraction::{FeatureConfig, FeatureExtraction};
16pub use hypergraph::{HypergraphConfig, HypergraphConstruction};
17pub use types::*;
18
19pub fn register_all(
21 registry: &rustkernel_core::registry::KernelRegistry,
22) -> rustkernel_core::error::Result<()> {
23 use rustkernel_core::traits::GpuKernel;
24
25 tracing::info!("Registering financial audit kernels");
26
27 registry.register_metadata(
29 feature_extraction::FeatureExtraction::new()
30 .metadata()
31 .clone(),
32 )?;
33
34 registry.register_metadata(hypergraph::HypergraphConstruction::new().metadata().clone())?;
36
37 tracing::info!("Registered 2 financial audit kernels");
38 Ok(())
39}
40
41#[cfg(test)]
42mod tests {
43 use super::*;
44 use rustkernel_core::{domain::Domain, registry::KernelRegistry, traits::GpuKernel};
45
46 #[test]
47 fn test_register_all() {
48 let registry = KernelRegistry::new();
49 register_all(®istry).expect("Failed to register audit kernels");
50 assert_eq!(registry.total_count(), 2);
51 }
52
53 #[test]
54 fn test_feature_extraction_metadata() {
55 let kernel = FeatureExtraction::new();
56 let metadata = kernel.metadata();
57 assert!(metadata.id.contains("feature"));
58 assert_eq!(metadata.domain, Domain::FinancialAudit);
59 }
60
61 #[test]
62 fn test_hypergraph_construction_metadata() {
63 let kernel = HypergraphConstruction::new();
64 let metadata = kernel.metadata();
65 assert!(metadata.id.contains("hypergraph"));
66 assert_eq!(metadata.domain, Domain::FinancialAudit);
67 }
68}