50 {1, 117, 148}, {1, 118, 149}, {1, 120, 25}, {1, 120, 152}, {1, 121, 153}, {1, 122, 154}, {1, 123, 155}, {1, 123, 156}, {1, 124, 26}, {1, 124, 157},
51 {1, 125, 26}, {1, 125, 158}, {1, 126, 77}, {1, 126, 159}, {1, 127, 160}, {1, 127, 161}, {1, 128, 27}, {1, 128, 162}, {1, 129, 27}, {1, 129, 163},
52 {1, 130, 164}, {1, 130, 165}, {1, 131, 165}, {1, 131, 166}, {1, 132, 28}, {1, 132, 166}, {1, 132, 167}, {1, 133, 28}, {1, 133, 168}, {1, 134, 169},
53 {1, 134, 170}, {1, 135, 170}, {1, 135, 171}, {1, 136, 171}, {1, 136, 172}, {1, 137, 29}, {1, 137, 173}, {1, 137, 174}, {1, 138, 174}, {1, 138, 175},
54 {1, 139, 175}, {1, 139, 176}, {1, 140, 176}, {1, 140, 177}, {1, 140, 178}, {1, 141, 30}, {1, 141, 178}, {1, 141, 179}, {1, 142, 179}, {1, 142, 180},
55 {1, 143, 180}, {1, 143, 181}, {1, 144, 182}, {1, 144, 183}, {1, 145, 183}, {1, 145, 184}, {1, 146, 184}, {1, 146, 185}, {1, 147, 186}, {1, 147, 187},
56 {1, 148, 187}, {1, 148, 188}, {1, 149, 188}, {1, 149, 189}, {1, 150, 190}, {1, 151, 191}, {1, 151, 192}, {1, 152, 192}, {1, 152, 193}, {1, 153, 194},
57 {1, 154, 195}, {1, 154, 196}, {1, 155, 196}, {1, 155, 197}, {1, 156, 198}, {1, 157, 199}, {1, 173, 30}, {1, 174, 30}, {1, 175, 30}, {1, 178, 31},
58 {1, 179, 31}, {1, 180, 31}, {1, 181, 31}, {1, 184, 32}, {1, 185, 32}, {1, 186, 32}, {1, 187, 32}, {1, 188, 32}, {1, 189, 33}, {1, 190, 33},
59 {1, 191, 33}, {1, 192, 33}, {1, 193, 33}, {1, 194, 33}, {1, 194, 34}, {1, 195, 34}, {1, 196, 34}, {1, 197, 34}, {1, 198, 34}, {1, 199, 34},
87TEST_CASE(
"Testing PlaneProbingTetrahedronEstimator")
89 SECTION(
"H-algorithm should return the correct normal, but a non-reduced basis")
94 TestPlaneProbingTetrahedronEstimator<int, ProbingMode::H>::compute
96 [&] (TestPlaneProbingTetrahedronEstimator<int, ProbingMode::H>::Estimator& estimator) {
97 auto estimated = estimator.compute();
98 bool isReducedH = estimator.isReduced();
100 if (estimated == n && !isReducedH)
110 SECTION(
"R and R1 algorithm should return the correct, same normal and the final basis should be reduced")
115 Point estimatedR, estimatedR1;
116 bool isReducedR =
false, isReducedR1 =
false;
119 TestPlaneProbingTetrahedronEstimator<int, ProbingMode::R>::compute
121 [&] (TestPlaneProbingTetrahedronEstimator<int, ProbingMode::R>::Estimator& estimator) {
122 estimatedR = estimator.compute();
123 isReducedR = estimator.isReduced();
126 TestPlaneProbingTetrahedronEstimator<int, ProbingMode::R1>::compute
128 [&] (TestPlaneProbingTetrahedronEstimator<int, ProbingMode::R1>::Estimator& estimator) {
129 estimatedR1 = estimator.compute();
130 isReducedR1 = estimator.isReduced();
133 if (estimatedR == n && estimatedR1 == estimatedR &&
134 isReducedR && isReducedR1)
144 SECTION(
"R and L algorithms should return the correct, same normal and the final basis should be reduced")
149 Point estimatedR, estimatedL;
150 bool isReducedR =
false, isReducedL =
false;
153 TestPlaneProbingTetrahedronEstimator<int, ProbingMode::R>::compute
155 [&] (TestPlaneProbingTetrahedronEstimator<int, ProbingMode::R>::Estimator& estimator) {
156 estimatedR = estimator.compute();
157 isReducedR = estimator.isReduced();
160 TestPlaneProbingTetrahedronEstimator<int, ProbingMode::L>::compute
162 [&] (TestPlaneProbingTetrahedronEstimator<int, ProbingMode::L>::Estimator& estimator) {
163 estimatedL = estimator.compute();
164 isReducedL = estimator.isReduced();
167 if (estimatedR == n && estimatedL == estimatedR &&
168 isReducedR && isReducedL)
178 SECTION(
"H , R and L algorithms should return the correct normal, R and L algorithms a reduced basis with BigInteger")
183 Point estimatedH, estimatedR, estimatedL;
184 bool isReducedH =
false, isReducedR =
false, isReducedL =
false;
187 TestPlaneProbingTetrahedronEstimator<BigInteger, ProbingMode::H>::compute
189 [&] (TestPlaneProbingTetrahedronEstimator<BigInteger, ProbingMode::H>::Estimator& estimator) {
190 estimatedH = estimator.compute();
191 isReducedH = estimator.isReduced();
194 TestPlaneProbingTetrahedronEstimator<BigInteger, ProbingMode::R>::compute
196 [&] (TestPlaneProbingTetrahedronEstimator<BigInteger, ProbingMode::R>::Estimator& estimator) {
197 estimatedR = estimator.compute();
198 isReducedR = estimator.isReduced();
201 TestPlaneProbingTetrahedronEstimator<BigInteger, ProbingMode::L>::compute
203 [&] (TestPlaneProbingTetrahedronEstimator<BigInteger, ProbingMode::L>::Estimator& estimator) {
204 estimatedL = estimator.compute();
205 isReducedL = estimator.isReduced();
208 if (estimatedH == n && estimatedR == estimatedH && estimatedL == estimatedH
209 && !isReducedH && isReducedR && isReducedL)