use crate::{
integer::Z,
macros::unsafe_passthrough::{unsafe_getter, unsafe_setter},
};
use flint_sys::fmpz::{fmpz, fmpz_clear};
unsafe_getter!(Z, value, fmpz);
unsafe_setter!(Z, value, fmpz, fmpz_clear);
#[cfg(test)]
mod test_get_fmpz {
use super::Z;
#[test]
#[allow(unused_mut)]
fn availability_and_modification() {
let mut integer = Z::from(1);
let mut fmpz_int = unsafe { integer.get_fmpz() };
fmpz_int.0 = 2;
assert_eq!(Z::from(2), integer);
}
}
#[cfg(test)]
mod test_set_fmpz {
use super::Z;
use flint_sys::fmpz::fmpz;
#[test]
#[allow(unused_mut)]
fn availability_and_modification() {
let mut integer = Z::from(1);
let b = fmpz(2);
unsafe { integer.set_fmpz(b) };
assert_eq!(Z::from(2), integer);
}
}