use super::*;
#[test]
fn sample_grid_reports_diffusion_signature() {
let generator = MockGenerator {
cond_weight: 1.0,
seed_weight: 1.0,
};
let d = sample_grid(
&generator,
&[cond(0.0), cond(10.0)],
&[Seed(1), Seed(2), Seed(3)],
¶ms(),
)
.unwrap();
assert!(d.within_condition() > 0.0);
assert!(d.between_condition() > 0.0);
assert_eq!(d.condition_count(), 2);
assert_eq!(d.sample_count(), 6);
}
#[test]
fn sample_grid_reports_l2_collapse_signature() {
let generator = MockGenerator {
cond_weight: 1.0,
seed_weight: 0.0,
};
let d = sample_grid(
&generator,
&[cond(1.0), cond(5.0)],
&[Seed(7), Seed(8), Seed(9)],
¶ms(),
)
.unwrap();
assert_eq!(d.within_condition(), 0.0);
assert!(d.between_condition() > 0.0);
}
#[test]
fn sample_grid_propagates_generator_error() {
let err = sample_grid(&FailingGenerator, &[cond(0.0)], &[Seed(1)], ¶ms());
assert!(matches!(err, Err(Error::Validation(_))));
}
#[test]
fn sample_grid_rejects_empty_grid_spec() {
let generator = MockGenerator {
cond_weight: 1.0,
seed_weight: 1.0,
};
assert!(matches!(
sample_grid(&generator, &[], &[Seed(1)], ¶ms()),
Err(Error::Validation(_))
));
assert!(matches!(
sample_grid(&generator, &[cond(0.0)], &[], ¶ms()),
Err(Error::Validation(_))
));
}