use super::Q;
use crate::macros::unsafe_passthrough::{unsafe_getter, unsafe_setter};
use flint3_sys::{fmpq, fmpq_clear};
unsafe_getter!(Q, value, fmpq);
unsafe_setter!(Q, value, fmpq, fmpq_clear);
#[cfg(test)]
mod test_get_fmpq {
use super::Q;
#[test]
#[allow(unused_mut)]
fn availability_and_modification() {
let mut rational = Q::from(1);
let mut fmpq_rat = unsafe { rational.get_fmpq() };
fmpq_rat.num = 2;
assert_eq!(Q::from(2), rational);
}
}
#[cfg(test)]
mod test_set_fmpq {
use super::Q;
use flint3_sys::fmpq;
#[test]
#[allow(unused_mut)]
fn availability_and_modification() {
let mut rational = Q::from(1);
let flint_struct = fmpq { num: 2, den: 1 };
unsafe { rational.set_fmpq(flint_struct) };
assert_eq!(Q::from(2), rational);
}
}