in air/src/air/assertions/tests.rs [115:150]
fn sequence_assertion() {
let values = rand_vector::<BaseElement>(2);
let a = Assertion::sequence(3, 2, 4, values.clone());
assert_eq!(3, a.register);
assert_eq!(2, a.first_step);
assert_eq!(values, a.values);
assert_eq!(4, a.stride);
assert_eq!(2, a.get_num_steps(8));
a.apply(8, |step, val| {
if step == 2 {
assert_eq!(values[0], val);
return;
} else if step == 6 {
assert_eq!(values[1], val);
return;
}
assert!(false);
});
assert_eq!(Ok(()), a.validate_trace_length(8));
assert_eq!(
Err(AssertionError::TraceLengthNotExact(8, 4)),
a.validate_trace_length(4)
);
assert_eq!(
Err(AssertionError::TraceLengthNotExact(8, 16)),
a.validate_trace_length(16)
);
assert_eq!(Ok(()), a.validate_trace_width(4));
assert_eq!(
Err(AssertionError::TraceWidthTooShort(3, 2)),
a.validate_trace_width(2)
);
}