use super::Divstep;
impl Divstep {
pub(crate) fn run(mut self) -> Divstep {
for _ in 0..12 {
self.macrostep();
}
self
}
}
#[cfg(test)]
mod ai_tests {
use super::*;
use crate::u256::U256;
const P: U256 = U256::from_be_limbs([
0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF,
0xFFFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFC2F,
]);
#[test]
fn g_is_zero_after_run() {
let ds = Divstep::new(P, U256::from_be_limbs([0, 0, 0, 7])).run();
assert!(ds.g.is_zero(), "g should be zero after 12 macrosteps, got {:?}", ds.g);
}
#[test]
fn f_is_one_after_run() {
let ds = Divstep::new(P, U256::from_be_limbs([0, 0, 0, 7])).run();
assert_eq!(ds.f, U256::ONE, "f magnitude should be 1 after run");
}
}