use crate::Rational;
use crate::test_util::generators::common::{
rational_integer_pair_rm, rational_natural_pair_rm, rational_nrm, rational_pair_1_nrm,
rational_pair_1_rm, rational_pair_nm, rational_pair_nrm, rational_pair_rm, rational_rm,
rational_vec_nrm,
};
use crate::test_util::generators::exhaustive::*;
use crate::test_util::generators::random::*;
use crate::test_util::generators::special_random::*;
use malachite_base::num::basic::floats::PrimitiveFloat;
use malachite_base::num::basic::integers::PrimitiveInt;
use malachite_base::num::basic::signeds::PrimitiveSigned;
use malachite_base::num::basic::unsigneds::PrimitiveUnsigned;
use malachite_base::num::conversion::string::options::ToSciOptions;
use malachite_base::num::conversion::traits::ConvertibleFrom;
use malachite_base::rounding_modes::RoundingMode;
use malachite_base::test_util::generators::common::Generator;
use malachite_nz::integer::Integer;
use malachite_nz::natural::Natural;
use num::BigRational;
use std::ops::Shr;
pub fn rational_gen() -> Generator<Rational> {
Generator::new(
&exhaustive_rational_gen,
&random_rational_gen,
&special_random_rational_gen,
)
}
pub fn rational_gen_rm() -> Generator<(rug::Rational, Rational)> {
Generator::new(
&|| rational_rm(exhaustive_rational_gen()),
&|config| rational_rm(random_rational_gen(config)),
&|config| rational_rm(special_random_rational_gen(config)),
)
}
pub fn rational_gen_nrm() -> Generator<(BigRational, rug::Rational, Rational)> {
Generator::new(
&|| rational_nrm(exhaustive_rational_gen()),
&|config| rational_nrm(random_rational_gen(config)),
&|config| rational_nrm(special_random_rational_gen(config)),
)
}
pub fn rational_gen_var_1() -> Generator<Rational> {
Generator::new(
&exhaustive_rational_gen_var_1,
&random_rational_gen_var_1,
&special_random_rational_gen_var_1,
)
}
pub fn rational_gen_var_1_nrm() -> Generator<(BigRational, rug::Rational, Rational)> {
Generator::new(
&|| rational_nrm(exhaustive_rational_gen_var_1()),
&|config| rational_nrm(random_rational_gen_var_1(config)),
&|config| rational_nrm(special_random_rational_gen_var_1(config)),
)
}
pub fn rational_gen_var_2() -> Generator<Rational> {
Generator::new(
&exhaustive_rational_gen_var_2,
&random_rational_gen_var_2,
&special_random_rational_gen_var_2,
)
}
pub fn rational_gen_var_3() -> Generator<Rational> {
Generator::new(
&exhaustive_rational_gen_var_3,
&random_rational_gen_var_3,
&special_random_rational_gen_var_3,
)
}
pub fn rational_gen_var_4<T: PrimitiveFloat>() -> Generator<Rational>
where
Rational: TryFrom<T>,
{
Generator::new(
&exhaustive_rational_gen_var_4::<T>,
&random_rational_gen_var_4::<T>,
&special_random_rational_gen_var_4::<T>,
)
}
pub fn rational_gen_var_5<T: for<'a> ConvertibleFrom<&'a Rational> + PrimitiveFloat>()
-> Generator<Rational> {
Generator::new(
&exhaustive_rational_gen_var_5::<T>,
&random_rational_gen_var_5::<T>,
&special_random_rational_gen_var_5::<T>,
)
}
pub fn rational_gen_var_6<T: PrimitiveFloat>() -> Generator<Rational>
where
Rational: TryFrom<T>,
{
Generator::new(
&exhaustive_rational_gen_var_6::<T>,
&random_rational_gen_var_6::<T>,
&special_random_rational_gen_var_6::<T>,
)
}
pub fn rational_gen_var_7() -> Generator<Rational> {
Generator::new_no_special(&exhaustive_rational_gen, &random_rational_gen_var_7)
}
pub fn rational_gen_var_8() -> Generator<Rational> {
Generator::new(
&exhaustive_rational_gen_var_7,
&random_rational_gen_var_8,
&special_random_rational_gen_var_7,
)
}
pub fn rational_integer_pair_gen() -> Generator<(Rational, Integer)> {
Generator::new(
&exhaustive_rational_integer_pair_gen,
&random_rational_integer_pair_gen,
&special_random_rational_integer_pair_gen,
)
}
pub fn rational_integer_pair_gen_rm()
-> Generator<((rug::Rational, rug::Integer), (Rational, Integer))> {
Generator::new(
&|| rational_integer_pair_rm(exhaustive_rational_integer_pair_gen()),
&|config| rational_integer_pair_rm(random_rational_integer_pair_gen(config)),
&|config| rational_integer_pair_rm(random_rational_integer_pair_gen(config)),
)
}
pub fn rational_integer_integer_triple_gen() -> Generator<(Rational, Integer, Integer)> {
Generator::new(
&exhaustive_rational_integer_integer_triple_gen,
&random_rational_integer_integer_triple_gen,
&special_random_rational_integer_integer_triple_gen,
)
}
pub fn rational_natural_pair_gen() -> Generator<(Rational, Natural)> {
Generator::new(
&exhaustive_rational_natural_pair_gen,
&random_rational_natural_pair_gen,
&special_random_rational_natural_pair_gen,
)
}
pub fn rational_natural_pair_gen_rm()
-> Generator<((rug::Rational, rug::Integer), (Rational, Natural))> {
Generator::new(
&|| rational_natural_pair_rm(exhaustive_rational_natural_pair_gen()),
&|config| rational_natural_pair_rm(random_rational_natural_pair_gen(config)),
&|config| rational_natural_pair_rm(random_rational_natural_pair_gen(config)),
)
}
pub fn rational_natural_pair_gen_var_1() -> Generator<(Rational, Natural)> {
Generator::new(
&exhaustive_rational_natural_pair_gen_var_1,
&random_rational_natural_pair_gen_var_1,
&special_random_rational_natural_pair_gen_var_1,
)
}
pub fn rational_natural_pair_gen_var_2() -> Generator<(Rational, Natural)> {
Generator::new(
&exhaustive_rational_natural_pair_gen_var_1,
&random_rational_natural_pair_gen_var_2,
&special_random_rational_natural_pair_gen_var_2,
)
}
pub fn rational_natural_pair_gen_var_3() -> Generator<(Rational, Natural)> {
Generator::new(
&exhaustive_rational_natural_pair_gen_var_2,
&random_rational_natural_pair_gen_var_3,
&special_random_rational_natural_pair_gen_var_3,
)
}
pub fn rational_natural_pair_gen_var_4() -> Generator<(Rational, Natural)> {
Generator::new(
&exhaustive_rational_natural_pair_gen_var_3,
&random_rational_natural_pair_gen_var_4,
&special_random_rational_natural_pair_gen_var_4,
)
}
pub fn rational_natural_natural_triple_gen() -> Generator<(Rational, Natural, Natural)> {
Generator::new(
&exhaustive_rational_natural_natural_triple_gen,
&random_rational_natural_natural_triple_gen,
&special_random_rational_natural_natural_triple_gen,
)
}
pub fn rational_natural_natural_triple_gen_var_1() -> Generator<(Rational, Natural, Natural)> {
Generator::new(
&exhaustive_rational_natural_natural_triple_gen_var_1,
&random_rational_natural_natural_triple_gen_var_1,
&special_random_rational_natural_natural_triple_gen_var_1,
)
}
pub fn rational_primitive_float_pair_gen<T: PrimitiveFloat>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_primitive_float_pair_gen,
&random_rational_primitive_float_pair_gen,
&special_random_rational_primitive_float_pair_gen,
)
}
pub fn rational_primitive_float_pair_gen_rm<T: PrimitiveFloat>()
-> Generator<((rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_rm(exhaustive_rational_primitive_float_pair_gen()),
&|config| rational_pair_1_rm(random_rational_primitive_float_pair_gen(config)),
&|config| rational_pair_1_rm(special_random_rational_primitive_float_pair_gen(config)),
)
}
pub fn rational_primitive_float_primitive_float_triple_gen<T: PrimitiveFloat>()
-> Generator<(Rational, T, T)> {
Generator::new(
&exhaustive_rational_primitive_float_primitive_float_triple_gen,
&random_rational_primitive_float_primitive_float_triple_gen,
&special_random_rational_primitive_float_primitive_float_triple_gen,
)
}
pub fn rational_signed_pair_gen<T: PrimitiveSigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_signed_pair_gen,
&random_rational_primitive_int_pair_gen,
&special_random_rational_signed_pair_gen,
)
}
pub fn rational_signed_pair_gen_rm<T: PrimitiveSigned>()
-> Generator<((rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_rm(exhaustive_rational_signed_pair_gen()),
&|config| rational_pair_1_rm(random_rational_primitive_int_pair_gen(config)),
&|config| rational_pair_1_rm(special_random_rational_signed_pair_gen(config)),
)
}
pub fn rational_signed_pair_gen_var_1<T: PrimitiveSigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_signed_pair_gen_var_1,
&random_rational_signed_pair_gen_var_1,
&special_random_rational_signed_pair_gen_var_1,
)
}
pub fn rational_signed_pair_gen_var_1_rm<T: PrimitiveSigned>()
-> Generator<((rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_rm(exhaustive_rational_signed_pair_gen_var_1()),
&|config| rational_pair_1_rm(random_rational_signed_pair_gen_var_1(config)),
&|config| rational_pair_1_rm(special_random_rational_signed_pair_gen_var_1(config)),
)
}
pub fn rational_signed_pair_gen_var_2<T: PrimitiveSigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_signed_pair_gen_var_2,
&random_rational_signed_pair_gen_var_2,
&special_random_rational_signed_pair_gen_var_2,
)
}
pub fn rational_signed_pair_gen_var_2_nrm<T: PrimitiveSigned>()
-> Generator<((BigRational, T), (rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_nrm(exhaustive_rational_signed_pair_gen_var_2()),
&|config| rational_pair_1_nrm(random_rational_signed_pair_gen_var_2(config)),
&|config| rational_pair_1_nrm(special_random_rational_signed_pair_gen_var_2(config)),
)
}
pub fn rational_signed_pair_gen_var_3<T: PrimitiveSigned>() -> Generator<(Rational, T)>
where
for<'a> &'a Rational: Shr<T, Output = Rational>,
{
Generator::new(
&exhaustive_rational_signed_pair_gen_var_3,
&random_rational_signed_pair_gen_var_3,
&special_random_rational_signed_pair_gen_var_3,
)
}
pub fn rational_signed_pair_gen_var_4<T: PrimitiveSigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_signed_pair_gen_var_4,
&random_rational_signed_pair_gen_var_4,
&special_random_rational_signed_pair_gen_var_4,
)
}
pub fn rational_signed_pair_gen_var_5<T: PrimitiveSigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_signed_pair_gen_var_5,
&random_rational_signed_pair_gen_var_5,
&special_random_rational_signed_pair_gen_var_5,
)
}
pub fn rational_signed_rounding_mode_triple_gen_var_1() -> Generator<(Rational, i64, RoundingMode)>
{
Generator::new(
&exhaustive_rational_signed_rounding_mode_triple_gen_var_1,
&random_rational_signed_rounding_mode_triple_gen_var_1,
&special_random_rational_signed_rounding_mode_triple_gen_var_1,
)
}
pub fn rational_signed_signed_triple_gen<T: PrimitiveSigned>() -> Generator<(Rational, T, T)> {
Generator::new(
&exhaustive_rational_signed_signed_triple_gen,
&random_rational_primitive_int_primitive_int_triple_gen,
&special_random_rational_signed_signed_triple_gen,
)
}
pub fn rational_signed_signed_triple_gen_var_1<T: PrimitiveSigned>() -> Generator<(Rational, T, T)>
{
Generator::new(
&exhaustive_rational_signed_signed_triple_gen_var_1,
&random_rational_signed_signed_triple_gen_var_1,
&special_random_rational_signed_signed_triple_gen_var_1,
)
}
pub fn rational_signed_unsigned_triple_gen_var_1<T: PrimitiveSigned, U: PrimitiveUnsigned>()
-> Generator<(Rational, T, U)> {
Generator::new(
&exhaustive_rational_signed_unsigned_triple_gen_var_1,
&random_rational_signed_unsigned_triple_gen_var_1,
&special_random_rational_signed_unsigned_triple_gen_var_1,
)
}
pub fn rational_signed_unsigned_triple_gen_var_2<T: PrimitiveSigned, U: PrimitiveUnsigned>()
-> Generator<(Rational, T, U)> {
Generator::new(
&exhaustive_rational_signed_unsigned_triple_gen_var_2,
&random_rational_signed_unsigned_triple_gen_var_2,
&special_random_rational_signed_unsigned_triple_gen_var_2,
)
}
pub fn rational_unsigned_pair_gen<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen,
&random_rational_primitive_int_pair_gen,
&special_random_rational_unsigned_pair_gen,
)
}
pub fn rational_unsigned_pair_gen_rm<T: PrimitiveUnsigned>()
-> Generator<((rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_rm(exhaustive_rational_unsigned_pair_gen()),
&|config| rational_pair_1_rm(random_rational_primitive_int_pair_gen(config)),
&|config| rational_pair_1_rm(special_random_rational_unsigned_pair_gen(config)),
)
}
pub fn rational_unsigned_pair_gen_var_1<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_1,
&random_rational_unsigned_pair_gen_var_1,
&special_random_rational_unsigned_pair_gen_var_1,
)
}
pub fn rational_unsigned_pair_gen_var_1_rm<T: PrimitiveUnsigned>()
-> Generator<((rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_rm(exhaustive_rational_unsigned_pair_gen_var_1()),
&|config| rational_pair_1_rm(random_rational_unsigned_pair_gen_var_1(config)),
&|config| rational_pair_1_rm(special_random_rational_unsigned_pair_gen_var_1(config)),
)
}
pub fn rational_unsigned_pair_gen_var_1_nrm<T: PrimitiveUnsigned>()
-> Generator<((BigRational, T), (rug::Rational, T), (Rational, T))> {
Generator::new(
&|| rational_pair_1_nrm(exhaustive_rational_unsigned_pair_gen_var_1()),
&|config| rational_pair_1_nrm(random_rational_unsigned_pair_gen_var_1(config)),
&|config| rational_pair_1_nrm(special_random_rational_unsigned_pair_gen_var_1(config)),
)
}
pub fn rational_unsigned_pair_gen_var_2<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new_no_special(
&exhaustive_rational_unsigned_pair_gen_var_2,
&random_rational_unsigned_pair_gen_var_2,
)
}
pub fn rational_unsigned_pair_gen_var_3<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_2,
&random_rational_unsigned_pair_gen_var_3,
&special_random_rational_unsigned_pair_gen_var_2,
)
}
pub fn rational_unsigned_pair_gen_var_4<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_3,
&random_rational_unsigned_pair_gen_var_4,
&special_random_rational_unsigned_pair_gen_var_3,
)
}
pub fn rational_unsigned_pair_gen_var_5() -> Generator<(Rational, u8)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_4,
&random_rational_unsigned_pair_gen_var_5,
&special_random_rational_unsigned_pair_gen_var_4,
)
}
pub fn rational_unsigned_pair_gen_var_6() -> Generator<(Rational, u8)> {
Generator::new_no_special(
&exhaustive_rational_unsigned_pair_gen_var_4,
&random_rational_unsigned_pair_gen_var_6,
)
}
pub fn rational_unsigned_pair_gen_var_7<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_5,
&random_rational_unsigned_pair_gen_var_7,
&special_random_rational_unsigned_pair_gen_var_5,
)
}
pub fn rational_unsigned_pair_gen_var_8<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_6,
&random_rational_unsigned_pair_gen_var_8,
&special_random_rational_unsigned_pair_gen_var_6,
)
}
pub fn rational_unsigned_pair_gen_var_9<T: PrimitiveUnsigned>() -> Generator<(Rational, T)> {
Generator::new(
&exhaustive_rational_unsigned_pair_gen_var_7,
&random_rational_unsigned_pair_gen_var_9,
&special_random_rational_unsigned_pair_gen_var_7,
)
}
pub fn rational_unsigned_unsigned_triple_gen<T: PrimitiveUnsigned>() -> Generator<(Rational, T, T)>
{
Generator::new(
&exhaustive_rational_unsigned_unsigned_triple_gen,
&random_rational_primitive_int_primitive_int_triple_gen,
&special_random_rational_unsigned_unsigned_triple_gen,
)
}
pub fn rational_unsigned_unsigned_triple_gen_var_1<T: PrimitiveUnsigned>()
-> Generator<(Rational, T, T)> {
Generator::new(
&exhaustive_rational_unsigned_unsigned_triple_gen_var_1,
&random_rational_unsigned_unsigned_triple_gen_var_1,
&special_random_rational_unsigned_unsigned_triple_gen_var_1,
)
}
pub fn rational_pair_gen() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen,
&random_rational_pair_gen,
&special_random_rational_pair_gen,
)
}
pub fn rational_pair_gen_rm() -> Generator<((rug::Rational, rug::Rational), (Rational, Rational))> {
Generator::new(
&|| rational_pair_rm(exhaustive_rational_pair_gen()),
&|config| rational_pair_rm(random_rational_pair_gen(config)),
&|config| rational_pair_rm(special_random_rational_pair_gen(config)),
)
}
pub fn rational_pair_gen_nm() -> Generator<((BigRational, BigRational), (Rational, Rational))> {
Generator::new(
&|| rational_pair_nm(exhaustive_rational_pair_gen()),
&|config| rational_pair_nm(random_rational_pair_gen(config)),
&|config| rational_pair_nm(special_random_rational_pair_gen(config)),
)
}
pub fn rational_pair_gen_nrm() -> Generator<(
(BigRational, BigRational),
(rug::Rational, rug::Rational),
(Rational, Rational),
)> {
Generator::new(
&|| rational_pair_nrm(exhaustive_rational_pair_gen()),
&|config| rational_pair_nrm(random_rational_pair_gen(config)),
&|config| rational_pair_nrm(special_random_rational_pair_gen(config)),
)
}
pub fn rational_pair_gen_var_1() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen_var_1,
&random_rational_pair_gen_var_1,
&special_random_rational_pair_gen_var_1,
)
}
pub fn rational_pair_gen_var_1_rm()
-> Generator<((rug::Rational, rug::Rational), (Rational, Rational))> {
Generator::new(
&|| rational_pair_rm(exhaustive_rational_pair_gen_var_1()),
&|config| rational_pair_rm(random_rational_pair_gen_var_1(config)),
&|config| rational_pair_rm(special_random_rational_pair_gen_var_1(config)),
)
}
pub fn rational_pair_gen_var_1_nm() -> Generator<((BigRational, BigRational), (Rational, Rational))>
{
Generator::new(
&|| rational_pair_nm(exhaustive_rational_pair_gen_var_1()),
&|config| rational_pair_nm(random_rational_pair_gen_var_1(config)),
&|config| rational_pair_nm(special_random_rational_pair_gen_var_1(config)),
)
}
pub fn rational_pair_gen_var_1_nrm() -> Generator<(
(BigRational, BigRational),
(rug::Rational, rug::Rational),
(Rational, Rational),
)> {
Generator::new(
&|| rational_pair_nrm(exhaustive_rational_pair_gen_var_1()),
&|config| rational_pair_nrm(random_rational_pair_gen_var_1(config)),
&|config| rational_pair_nrm(special_random_rational_pair_gen_var_1(config)),
)
}
pub fn rational_pair_gen_var_2() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen_var_2,
&random_rational_pair_gen_var_2,
&special_random_rational_pair_gen_var_2,
)
}
pub fn rational_pair_gen_var_3() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen_var_3,
&random_rational_pair_gen_var_3,
&special_random_rational_pair_gen_var_3,
)
}
pub fn rational_pair_gen_var_4() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen_var_4,
&random_rational_pair_gen_var_4,
&special_random_rational_pair_gen_var_4,
)
}
pub fn rational_pair_gen_var_5() -> Generator<(Rational, Rational)> {
Generator::new_no_special(
&exhaustive_rational_pair_gen_var_3,
&random_rational_pair_gen_var_5,
)
}
pub fn rational_pair_gen_var_6() -> Generator<(Rational, Rational)> {
Generator::new_no_special(
&exhaustive_rational_pair_gen_var_4,
&random_rational_pair_gen_var_6,
)
}
pub fn rational_pair_gen_var_7() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen_var_5,
&random_rational_pair_gen_var_7,
&special_random_rational_pair_gen_var_5,
)
}
pub fn rational_pair_gen_var_8() -> Generator<(Rational, Rational)> {
Generator::new(
&exhaustive_rational_pair_gen_var_6,
&random_rational_pair_gen_var_8,
&special_random_rational_pair_gen_var_6,
)
}
pub fn rational_rational_integer_triple_gen() -> Generator<(Rational, Rational, Integer)> {
Generator::new(
&exhaustive_rational_rational_integer_triple_gen,
&random_rational_rational_integer_triple_gen,
&special_random_rational_rational_integer_triple_gen,
)
}
pub fn rational_rational_natural_triple_gen() -> Generator<(Rational, Rational, Natural)> {
Generator::new(
&exhaustive_rational_rational_natural_triple_gen,
&random_rational_rational_natural_triple_gen,
&special_random_rational_rational_natural_triple_gen,
)
}
pub fn rational_rational_natural_triple_gen_var_1() -> Generator<(Rational, Rational, Natural)> {
Generator::new(
&exhaustive_rational_rational_natural_triple_gen_var_1,
&random_rational_rational_natural_triple_gen_var_1,
&special_random_rational_rational_natural_triple_gen_var_1,
)
}
pub fn rational_rational_natural_natural_quadruple_gen_var_1()
-> Generator<(Rational, Rational, Natural, Natural)> {
Generator::new(
&exhaustive_rational_rational_natural_natural_quadruple_gen_var_1,
&random_rational_rational_natural_natural_quadruple_gen_var_1,
&special_random_rational_rational_natural_natural_quadruple_gen_var_1,
)
}
pub fn rational_rational_primitive_float_triple_gen<T: PrimitiveFloat>()
-> Generator<(Rational, Rational, T)> {
Generator::new(
&exhaustive_rational_rational_primitive_float_triple_gen,
&random_rational_rational_primitive_float_triple_gen,
&special_random_rational_rational_primitive_float_triple_gen,
)
}
pub fn rational_rational_unsigned_triple_gen<T: PrimitiveUnsigned>()
-> Generator<(Rational, Rational, T)> {
Generator::new(
&exhaustive_rational_rational_unsigned_triple_gen,
&random_rational_rational_primitive_int_triple_gen,
&special_random_rational_rational_unsigned_triple_gen,
)
}
pub fn rational_rational_unsigned_triple_gen_var_1<T: PrimitiveUnsigned>()
-> Generator<(Rational, Rational, T)> {
Generator::new(
&exhaustive_rational_rational_unsigned_triple_gen_var_1,
&random_rational_rational_unsigned_triple_gen_var_1,
&special_random_rational_rational_unsigned_triple_gen_var_1,
)
}
pub fn rational_rational_unsigned_triple_gen_var_2<T: PrimitiveUnsigned>()
-> Generator<(Rational, Rational, T)> {
Generator::new(
&exhaustive_rational_rational_primitive_int_triple_gen_var_1,
&random_rational_rational_unsigned_triple_gen_var_2,
&special_random_rational_rational_unsigned_triple_gen_var_2,
)
}
pub fn rational_rational_signed_triple_gen<T: PrimitiveSigned>()
-> Generator<(Rational, Rational, T)> {
Generator::new(
&exhaustive_rational_rational_signed_triple_gen,
&random_rational_rational_primitive_int_triple_gen,
&special_random_rational_rational_signed_triple_gen,
)
}
pub fn rational_rational_signed_triple_gen_var_1<T: PrimitiveSigned>()
-> Generator<(Rational, Rational, T)> {
Generator::new(
&exhaustive_rational_rational_signed_triple_gen_var_1,
&random_rational_rational_signed_triple_gen_var_1,
&special_random_rational_rational_signed_triple_gen_var_1,
)
}
pub fn rational_triple_gen() -> Generator<(Rational, Rational, Rational)> {
Generator::new(
&exhaustive_rational_triple_gen,
&random_rational_triple_gen,
&special_random_rational_triple_gen,
)
}
pub fn rational_triple_gen_var_1() -> Generator<(Rational, Rational, Rational)> {
Generator::new(
&exhaustive_rational_triple_gen_var_1,
&random_rational_triple_gen_var_1,
&special_random_rational_triple_gen_var_1,
)
}
pub fn rational_triple_gen_var_2() -> Generator<(Rational, Rational, Rational)> {
Generator::new(
&exhaustive_rational_triple_gen_var_2,
&random_rational_triple_gen_var_2,
&special_random_rational_triple_gen_var_2,
)
}
pub fn rational_triple_gen_var_3() -> Generator<(Rational, Rational, Rational)> {
Generator::new(
&exhaustive_rational_triple_gen_var_3,
&random_rational_triple_gen_var_3,
&special_random_rational_triple_gen_var_3,
)
}
pub fn rational_rational_rounding_mode_triple_gen_var_1()
-> Generator<(Rational, Rational, RoundingMode)> {
Generator::new(
&exhaustive_rational_rational_rounding_mode_triple_gen_var_1,
&random_rational_rational_rounding_mode_triple_gen_var_1,
&special_random_rational_rational_rounding_mode_triple_gen_var_1,
)
}
pub fn rational_rounding_mode_pair_gen() -> Generator<(Rational, RoundingMode)> {
Generator::new(
&exhaustive_rational_rounding_mode_pair_gen,
&random_rational_rounding_mode_pair_gen,
&special_random_rational_rounding_mode_pair_gen,
)
}
pub fn rational_rounding_mode_pair_gen_var_1() -> Generator<(Rational, RoundingMode)> {
Generator::new(
&exhaustive_rational_rounding_mode_pair_gen_var_1,
&random_rational_rounding_mode_pair_gen_var_1,
&special_random_rational_rounding_mode_pair_gen_var_1,
)
}
pub fn rational_rounding_mode_pair_gen_var_2() -> Generator<(Rational, RoundingMode)> {
Generator::new(
&exhaustive_rational_rounding_mode_pair_gen_var_2,
&random_rational_rounding_mode_pair_gen_var_2,
&special_random_rational_rounding_mode_pair_gen_var_2,
)
}
pub fn rational_rounding_mode_pair_gen_var_3<
T: for<'a> ConvertibleFrom<&'a Rational> + PrimitiveInt,
>() -> Generator<(Rational, RoundingMode)>
where
Rational: PartialOrd<T>,
{
Generator::new(
&exhaustive_rational_rounding_mode_pair_gen_var_3::<T>,
&random_rational_rounding_mode_pair_gen_var_3::<T>,
&special_random_rational_rounding_mode_pair_gen_var_3::<T>,
)
}
pub fn rational_rounding_mode_pair_gen_var_4() -> Generator<(Rational, RoundingMode)> {
Generator::new(
&exhaustive_rational_rounding_mode_pair_gen_var_4,
&random_rational_rounding_mode_pair_gen_var_4,
&special_random_rational_rounding_mode_pair_gen_var_4,
)
}
pub fn rational_rounding_mode_pair_gen_var_5<
T: for<'a> ConvertibleFrom<&'a Rational> + PrimitiveFloat,
>() -> Generator<(Rational, RoundingMode)>
where
Rational: TryFrom<T>,
{
Generator::new(
&exhaustive_rational_rounding_mode_pair_gen_var_5::<T>,
&random_rational_rounding_mode_pair_gen_var_5::<T>,
&special_random_rational_rounding_mode_pair_gen_var_5::<T>,
)
}
pub fn rational_to_sci_options_pair_gen() -> Generator<(Rational, ToSciOptions)> {
Generator::new(
&exhaustive_rational_to_sci_options_pair_gen,
&random_rational_to_sci_options_pair_gen,
&special_random_rational_to_sci_options_pair_gen,
)
}
pub fn rational_to_sci_options_pair_gen_var_1() -> Generator<(Rational, ToSciOptions)> {
Generator::new(
&exhaustive_rational_to_sci_options_pair_gen_var_1,
&random_rational_to_sci_options_pair_gen_var_1,
&special_random_rational_to_sci_options_pair_gen_var_1,
)
}
pub fn string_gen_var_11() -> Generator<String> {
Generator::new(
&exhaustive_string_gen_var_11,
&random_string_gen_var_11,
&special_random_string_gen_var_2,
)
}
pub fn string_gen_var_12() -> Generator<String> {
Generator::new(
&exhaustive_string_gen_var_12,
&random_string_gen_var_12,
&special_random_string_gen_var_3,
)
}
pub fn string_triple_gen_var_3() -> Generator<(String, String, String)> {
Generator::new(
&exhaustive_string_triple_gen_var_3,
&random_string_triple_gen_var_3,
&special_random_string_triple_gen_var_3,
)
}
pub fn rational_vec_gen() -> Generator<Vec<Rational>> {
Generator::new(
&exhaustive_rational_vec_gen,
&random_rational_vec_gen,
&special_random_rational_vec_gen,
)
}
pub fn rational_vec_gen_nrm() -> Generator<(Vec<BigRational>, Vec<rug::Rational>, Vec<Rational>)> {
Generator::new(
&|| rational_vec_nrm(exhaustive_rational_vec_gen()),
&|config| rational_vec_nrm(random_rational_vec_gen(config)),
&|config| rational_vec_nrm(special_random_rational_vec_gen(config)),
)
}
pub mod common;
pub mod exhaustive;
pub mod random;
pub mod special_random;