///|
/// Summarizes one dense feature column using population variance.
pub struct FeatureProfile {
  source_column : Int
  minimum_value : Double
  maximum_value : Double
  arithmetic_mean : Double
  population_variance : Double
  population_standard_deviation : Double
  constant_column : Bool
} derive(Eq, Debug)

///|
/// Records one sorted class label's frequency.
pub struct ClassProfile {
  class_label : Int
  observation_count : Int
  observation_proportion : Double
} derive(Eq, Debug)

///|
/// Stores deterministic descriptive evidence for a validated dataset.
pub struct DatasetProfile {
  source_name : String
  source_row_count : Int
  source_feature_count : Int
  source_class_count : Int
  feature_profiles : Array[FeatureProfile]
  class_profiles : Array[ClassProfile]
  feature_centroid : Array[Double]
  smallest_squared_row_norm : Double
  largest_squared_row_norm : Double
  average_squared_row_norm : Double
} derive(Eq, Debug)

///|
/// Summarizes positive sample weights and their concentration.
pub struct WeightProfile {
  weight_count : Int
  minimum_weight : Double
  maximum_weight : Double
  total_weight : Double
  average_weight : Double
  effective_observation_count : Double
} derive(Eq, Debug)