use super::Factorization;
use flint_sys::fmpz_factor::fmpz_factor_clear;
impl Drop for Factorization {
fn drop(&mut self) {
unsafe { fmpz_factor_clear(&mut self.factors) }
}
}
#[cfg(test)]
mod test_drop {
use crate::utils::Factorization;
#[test]
fn free_memory() {
let a = Factorization::from(u64::MAX);
let a_p = a.factors.p;
let _ = Factorization::from(u64::MAX);
drop(a);
let c = Factorization::from(u64::MAX);
drop(c);
let d = Factorization::from(u64::MAX);
let d_p = d.factors.p;
assert_eq!(a_p, d_p);
}
}