|
3 | 3 | #![cfg(feature = "build-mpfr")] |
4 | 4 |
|
5 | 5 | use libm_test::generate::{case_list, edge_cases, random, spaced}; |
6 | | -use libm_test::mpfloat::MpOp; |
| 6 | +use libm_test::mpfloat::{MpFloat, MpOp}; |
7 | 7 | use libm_test::{CheckBasis, CheckCtx, CheckOutput, GeneratorKind, MathOp, TupleCall}; |
8 | 8 |
|
9 | 9 | const BASIS: CheckBasis = CheckBasis::Mpfr; |
@@ -77,3 +77,65 @@ libm_macros::for_each_function! { |
77 | 77 | nextafterf, |
78 | 78 | ], |
79 | 79 | } |
| 80 | + |
| 81 | +// fn mp_runner_rem_pio2<F: Float, Args>(ctx: &CheckCtx, cases: impl Iterator<Item = Args>) { |
| 82 | +// let x = MpFloat::new(prec) |
| 83 | + |
| 84 | +// // let mut mp_vals = Op::new_mp(); |
| 85 | +// for input in cases { |
| 86 | +// // let mp_res = Op::run(&mut mp_vals, input); |
| 87 | +// let crate_res = input.call_intercept_panics(Op::ROUTINE); |
| 88 | + |
| 89 | +// crate_res.validate(mp_res, input, ctx).unwrap(); |
| 90 | +// } |
| 91 | +// } |
| 92 | + |
| 93 | +// macro_rules! mp_tests_rem_pio2 { |
| 94 | +// ( |
| 95 | +// fn_name: $fn_name:ident, |
| 96 | +// attrs: [$($attr:meta),*], |
| 97 | +// ) => { |
| 98 | +// paste::paste! { |
| 99 | +// #[test] |
| 100 | +// $(#[$attr])* |
| 101 | +// fn [< mp_case_list_ $fn_name >]() { |
| 102 | +// type Op = libm_test::op::sin::Routine; |
| 103 | +// let ctx = CheckCtx::new(Op::IDENTIFIER, BASIS, GeneratorKind::List); |
| 104 | +// let cases = case_list::get_test_cases_basis::<Op>(&ctx).0; |
| 105 | +// mp_runner_rem_pio2(&ctx, cases); |
| 106 | +// } |
| 107 | + |
| 108 | +// #[test] |
| 109 | +// $(#[$attr])* |
| 110 | +// fn [< mp_random_ $fn_name >]() { |
| 111 | +// type Op = libm_test::op::sin::Routine; |
| 112 | +// let ctx = CheckCtx::new(Op::IDENTIFIER, BASIS, GeneratorKind::Random); |
| 113 | +// let cases = random::get_test_cases::<<Op as MathOp>::RustArgs>(&ctx).0; |
| 114 | +// mp_runner_rem_pio2(&ctx, cases); |
| 115 | +// } |
| 116 | + |
| 117 | +// #[test] |
| 118 | +// $(#[$attr])* |
| 119 | +// fn [< mp_edge_case_ $fn_name >]() { |
| 120 | +// type Op = libm_test::op::sin::Routine; |
| 121 | +// let ctx = CheckCtx::new(Op::IDENTIFIER, BASIS, GeneratorKind::EdgeCases); |
| 122 | +// let cases = edge_cases::get_test_cases::<Op>(&ctx).0; |
| 123 | +// mp_runner_rem_pio2(&ctx, cases); |
| 124 | +// } |
| 125 | + |
| 126 | +// #[test] |
| 127 | +// $(#[$attr])* |
| 128 | +// fn [< mp_quickspace_ $fn_name >]() { |
| 129 | +// type Op = libm_test::op::sin::Routine; |
| 130 | +// let ctx = CheckCtx::new(Op::IDENTIFIER, BASIS, GeneratorKind::QuickSpaced); |
| 131 | +// let cases = spaced::get_test_cases::<Op>(&ctx).0; |
| 132 | +// mp_runner_rem_pio2(&ctx, cases); |
| 133 | +// } |
| 134 | +// } |
| 135 | +// }; |
| 136 | +// } |
| 137 | + |
| 138 | +// mp_tests_rem_pio2! { |
| 139 | +// fn_name: rem_pio2, |
| 140 | +// attrs: [], |
| 141 | +// } |
0 commit comments