#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(missing_docs)]
#![allow(deprecated)]
pub mod traits;
pub mod generators;
pub mod validation;
pub mod format;
pub mod loaders;
pub mod memory;
pub mod memory_pool;
pub mod zero_copy;
pub mod config;
pub mod config_templates;
pub mod composable;
pub mod plugins;
pub mod streaming;
pub mod parallel_rng;
pub mod simd_gen;
pub mod versioning;
pub mod viz;
pub mod basic;
pub mod benchmarks;
pub mod classification_regression;
pub mod distributions;
pub mod domain_specific;
pub mod graphs;
pub mod manifold;
pub mod manifolds_spatial;
pub mod matrix;
pub mod missing_data;
pub mod specialized;
pub mod timeseries;
pub use traits::{
Dataset, DatasetGenerator, DatasetLoader, DatasetTraitError, DatasetTraitResult,
DatasetTransformer, DatasetValidator, GenerationStrategy, GeneratorConfig, GeneratorRegistry,
InMemoryDataset, MutableDataset, StreamingDataset,
};
pub use versioning::{
calculate_checksum, verify_checksum, DatasetVersion, ProvenanceInfo, TransformationStep,
VersionRegistry, VersioningError, VersioningResult,
};
pub use viz::{
plot_2d_classification, plot_2d_regression, plot_feature_distributions, PlotConfig,
VisualizationError, VisualizationResult,
};
pub use simd_gen::{
add_vectors_simd, generate_normal_matrix_simd, make_classification_simd, make_regression_simd,
scale_vector_simd, SimdCapabilities,
};
pub use parallel_rng::{
make_blobs_parallel, make_classification_parallel, make_regression_parallel, ParallelRng,
};
pub use generators::{
make_blobs,
make_circles,
make_classification,
make_moons,
make_regression,
make_typed_blobs,
make_typed_classification,
make_typed_regression,
DatasetStream,
LazyDatasetGenerator,
parallel_generate,
make_federated_partitions,
make_privacy_preserving_dataset,
make_audio_visual_dataset,
make_communication_cost_datasets,
make_cross_modal_retrieval_dataset,
make_multi_agent_environment,
make_multimodal_alignment_dataset,
make_sensor_fusion_dataset,
make_vision_language_dataset,
make_geographic_information_dataset,
make_geostatistical_data,
make_spatial_clustering_dataset,
make_spatial_point_process,
make_ab_testing_simulation,
make_factorial_design,
};
pub use validation::{
ValidationConfig,
ValidationMetrics,
ValidationReport,
ValidationResult,
validate_dataset_basic,
validate_feature_names,
validate_no_missing_values,
validate_shape,
calculate_dataset_quality_metrics,
detect_anomalies,
detect_data_drift,
chi_square_test,
kolmogorov_smirnov_test,
validate_exponential_distribution,
validate_normal_distribution,
validate_uniform_distribution,
generate_statistical_summary,
};
pub use config::{ConfigError, ConfigResult, GenerationConfig};
pub use memory::{MemoryError, MemoryResult, MmapDataset, MmapDatasetBuilder};
pub use memory_pool::{
ArenaAllocator, MemoryBlock as MemoryPoolBlock, MemoryPool, MemoryPoolConfig,
MemoryPoolError, MemoryPoolResult, PooledArray1, PooledArray2,
};
pub use zero_copy::{
BatchView, DatasetView, DatasetViewMut, ZeroCopyError, ZeroCopyResult, ZeroCopySlice,
};
pub use streaming::{
BufferedStream, ChunkIterator, StreamingConfig, StreamingDatasetGenerator, StreamingError,
StreamingResult,
};
pub use plugins::{
GeneratorPlugin, PluginError, PluginManager, PluginMetadata, PluginRegistry, PluginResult,
};
pub use composable::{
ComposableError, ComposableResult, GenerationPipeline, StrategyConfig, StrategyValue,
};
use scirs2_core::ndarray::{Array1, Array2};
#[derive(Debug, Clone)]
pub struct SimpleDataset {
pub features: Array2<f64>,
pub targets: Option<Array1<f64>>,
}
impl SimpleDataset {
pub fn new(features: Array2<f64>, targets: Option<Array1<f64>>) -> Self {
Self { features, targets }
}
pub fn n_samples(&self) -> usize {
self.features.nrows()
}
pub fn n_features(&self) -> usize {
self.features.ncols()
}
}
#[allow(non_snake_case)]
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_simple_dataset() {
let features = Array2::zeros((10, 3));
let targets = Some(Array1::zeros(10));
let dataset = SimpleDataset::new(features, targets);
assert_eq!(dataset.n_samples(), 10);
assert_eq!(dataset.n_features(), 3);
assert!(dataset.targets.is_some());
}
#[test]
fn test_module_structure() {
let _ = ValidationConfig::default();
let _ = PlotConfig::default();
let _ = SimdCapabilities::detect();
}
}