spawn-access-control 0.1.12

A Rust library for access control management with WebAssembly support, including role-based access control (RBAC), permissions, and audit logging.
Documentation
use crate::model_optimizer::{ModelOptimizer, OptimizationConfig, GridSearchConfig, ValidationData};
use crate::adaptive_learning::PerformanceTrend;
use crate::ml_metrics::ModelMetrics;

#[test]
fn test_grid_search() {
    let config = OptimizationConfig {
        learning_rate_range: (0.001, 0.1),
        batch_size_range: (16, 128),
        max_iterations: 10,
        early_stopping_patience: 3,
        validation_split: 0.2,
    };

    let mut optimizer = ModelOptimizer::new(config);

    let validation_data = create_test_data();

    let best_params = optimizer.grid_search(&validation_data);

    assert!(best_params.learning_rate >= 0.001 && best_params.learning_rate <= 0.1);
    assert!(best_params.batch_size >= 16 && best_params.batch_size <= 128);
    assert!(best_params.num_trees >= 50 && best_params.num_trees <= 200);
}

fn create_test_data() -> ValidationData {
    let mut features = Vec::new();
    let mut labels = Vec::new();

    for i in 0..100 {
        let x = (i as f64) / 100.0;
        features.push(vec![x, x.powi(2)]);
        labels.push(x > 0.5);
    }

    ValidationData { features, labels }
}

#[test]
fn test_cross_validation() {
    let config = OptimizationConfig {
        learning_rate_range: (0.001, 0.1),
        batch_size_range: (16, 128),
        max_iterations: 5,
        early_stopping_patience: 2,
        validation_split: 0.2,
    };

    let optimizer = ModelOptimizer::new(config);
    let params = optimizer.get_default_parameters();
    let data = create_test_data();

    let score = optimizer.cross_validate(&params, &data);
    assert!(score >= 0.0 && score <= 1.0);
}