use super::batch_execution::Batch;
use super::{ProgressSink, StreamingRunner};
impl<P: ProgressSink> StreamingRunner<P> {
#[inline]
pub fn __test_run_mut(
&mut self,
backend: &dyn vyre::VyreBackend,
specs: &[crate::OpSpec],
) -> Vec<crate::spec::types::ParityFailure> {
if let Some(f) = self.config_failure() {
return vec![f];
}
let mut failures = Vec::new();
let mut next_test_id = 0_u64;
for op in specs {
self.run_op(backend, op, None, &mut next_test_id, &mut failures);
for (label, alt_wgsl_fn) in &op.alt_wgsl_fns {
let alt = crate::OpSpec {
wgsl_fn: *alt_wgsl_fn,
alt_wgsl_fns: Vec::new(),
version_history: op.version_history.clone(),
..op.clone()
};
self.run_op(backend, &alt, Some(label), &mut next_test_id, &mut failures);
}
}
failures
}
#[inline]
pub fn __test_accept_case(
&mut self,
backend: &dyn vyre::VyreBackend,
op: &crate::OpSpec,
case: crate::pipeline::execution::InputCase,
next_test_id: &mut u64,
failures: &mut Vec<crate::spec::types::ParityFailure>,
) -> Result<(), String> {
let mut batch = Batch::new(op.id, op.version, 1, None);
self.accept_case(backend, op, case, next_test_id, &mut batch, failures)
}
#[inline]
pub fn __test_clear_generators(&mut self) {
self.generators.clear();
}
}