14 Real bp = 10.0, pp = 0.1, pd = 0.04, wd = 0.01, wp = 50.0;
15 unsigned int nr = 1,
a = 2;
19 EXPECT_EQ(hl1.
rings(1), (
unsigned int)1);
20 EXPECT_EQ(hl1.
rings(7), (
unsigned int)2);
21 EXPECT_EQ(hl1.
rings(19), (
unsigned int)3);
22 EXPECT_EQ(hl1.
rings(37), (
unsigned int)4);
27 FAIL() <<
"missing expected error";
29 catch (
const std::exception & e)
31 std::string msg(e.what());
32 ASSERT_NE(msg.find(
"Number of pins 100 not evenly divisible in a hexagonal lattice!"),
34 <<
"failed with unexpected error: " << msg;
38 EXPECT_EQ(hl1.
pins(1), (
unsigned int)1);
39 EXPECT_EQ(hl1.
pins(2), (
unsigned int)6);
40 EXPECT_EQ(hl1.
pins(3), (
unsigned int)12);
55 Real bp = 10.0, pp = 0.1, pd = 0.04, wd = 0.01, wp = 50.0;
56 unsigned int nr = 1,
a = 2;
68 EXPECT_EQ(hl1.
nPins(), (
unsigned int)1);
77 EXPECT_EQ(hl2.
nPins(), (
unsigned int)7);
86 EXPECT_EQ(hl3.
nPins(), (
unsigned int)19);
95 EXPECT_EQ(hl4.
nPins(), (
unsigned int)37);
105 EXPECT_EQ(interior_pins2[0][0], (
unsigned int)0);
106 EXPECT_EQ(interior_pins2[0][1], (
unsigned int)1);
107 EXPECT_EQ(interior_pins2[0][2], (
unsigned int)2);
108 EXPECT_EQ(interior_pins2[1][0], (
unsigned int)0);
109 EXPECT_EQ(interior_pins2[1][1], (
unsigned int)2);
110 EXPECT_EQ(interior_pins2[1][2], (
unsigned int)3);
111 EXPECT_EQ(interior_pins2[2][0], (
unsigned int)0);
112 EXPECT_EQ(interior_pins2[2][1], (
unsigned int)3);
113 EXPECT_EQ(interior_pins2[2][2], (
unsigned int)4);
114 EXPECT_EQ(interior_pins2[3][0], (
unsigned int)0);
115 EXPECT_EQ(interior_pins2[3][1], (
unsigned int)4);
116 EXPECT_EQ(interior_pins2[3][2], (
unsigned int)5);
117 EXPECT_EQ(interior_pins2[4][0], (
unsigned int)0);
118 EXPECT_EQ(interior_pins2[4][1], (
unsigned int)5);
119 EXPECT_EQ(interior_pins2[4][2], (
unsigned int)6);
120 EXPECT_EQ(interior_pins2[5][0], (
unsigned int)0);
121 EXPECT_EQ(interior_pins2[5][1], (
unsigned int)6);
122 EXPECT_EQ(interior_pins2[5][2], (
unsigned int)1);
125 EXPECT_EQ(edge_pins2[0][0], (
unsigned int)1);
126 EXPECT_EQ(edge_pins2[0][1], (
unsigned int)2);
127 EXPECT_EQ(edge_pins2[1][0], (
unsigned int)2);
128 EXPECT_EQ(edge_pins2[1][1], (
unsigned int)3);
129 EXPECT_EQ(edge_pins2[2][0], (
unsigned int)3);
130 EXPECT_EQ(edge_pins2[2][1], (
unsigned int)4);
131 EXPECT_EQ(edge_pins2[3][0], (
unsigned int)4);
132 EXPECT_EQ(edge_pins2[3][1], (
unsigned int)5);
133 EXPECT_EQ(edge_pins2[4][0], (
unsigned int)5);
134 EXPECT_EQ(edge_pins2[4][1], (
unsigned int)6);
135 EXPECT_EQ(edge_pins2[5][0], (
unsigned int)6);
136 EXPECT_EQ(edge_pins2[5][1], (
unsigned int)1);
139 EXPECT_EQ(corner_pins2[0][0], (
unsigned int)1);
140 EXPECT_EQ(corner_pins2[1][0], (
unsigned int)2);
141 EXPECT_EQ(corner_pins2[2][0], (
unsigned int)3);
142 EXPECT_EQ(corner_pins2[3][0], (
unsigned int)4);
143 EXPECT_EQ(corner_pins2[4][0], (
unsigned int)5);
144 EXPECT_EQ(corner_pins2[5][0], (
unsigned int)6);
147 EXPECT_EQ(interior_pins3[0][0], (
unsigned int)0);
148 EXPECT_EQ(interior_pins3[0][1], (
unsigned int)1);
149 EXPECT_EQ(interior_pins3[0][2], (
unsigned int)2);
150 EXPECT_EQ(interior_pins3[1][0], (
unsigned int)0);
151 EXPECT_EQ(interior_pins3[1][1], (
unsigned int)2);
152 EXPECT_EQ(interior_pins3[1][2], (
unsigned int)3);
153 EXPECT_EQ(interior_pins3[2][0], (
unsigned int)0);
154 EXPECT_EQ(interior_pins3[2][1], (
unsigned int)3);
155 EXPECT_EQ(interior_pins3[2][2], (
unsigned int)4);
156 EXPECT_EQ(interior_pins3[3][0], (
unsigned int)0);
157 EXPECT_EQ(interior_pins3[3][1], (
unsigned int)4);
158 EXPECT_EQ(interior_pins3[3][2], (
unsigned int)5);
159 EXPECT_EQ(interior_pins3[4][0], (
unsigned int)0);
160 EXPECT_EQ(interior_pins3[4][1], (
unsigned int)5);
161 EXPECT_EQ(interior_pins3[4][2], (
unsigned int)6);
162 EXPECT_EQ(interior_pins3[5][0], (
unsigned int)0);
163 EXPECT_EQ(interior_pins3[5][1], (
unsigned int)6);
164 EXPECT_EQ(interior_pins3[5][2], (
unsigned int)1);
165 EXPECT_EQ(interior_pins3[6][0], (
unsigned int)1);
166 EXPECT_EQ(interior_pins3[6][1], (
unsigned int)7);
167 EXPECT_EQ(interior_pins3[6][2], (
unsigned int)8);
168 EXPECT_EQ(interior_pins3[7][0], (
unsigned int)8);
169 EXPECT_EQ(interior_pins3[7][1], (
unsigned int)2);
170 EXPECT_EQ(interior_pins3[7][2], (
unsigned int)1);
171 EXPECT_EQ(interior_pins3[8][0], (
unsigned int)2);
172 EXPECT_EQ(interior_pins3[8][1], (
unsigned int)8);
173 EXPECT_EQ(interior_pins3[8][2], (
unsigned int)9);
174 EXPECT_EQ(interior_pins3[9][0], (
unsigned int)2);
175 EXPECT_EQ(interior_pins3[9][1], (
unsigned int)9);
176 EXPECT_EQ(interior_pins3[9][2], (
unsigned int)10);
177 EXPECT_EQ(interior_pins3[10][0], (
unsigned int)10);
178 EXPECT_EQ(interior_pins3[10][1], (
unsigned int)3);
179 EXPECT_EQ(interior_pins3[10][2], (
unsigned int)2);
180 EXPECT_EQ(interior_pins3[11][0], (
unsigned int)3);
181 EXPECT_EQ(interior_pins3[11][1], (
unsigned int)10);
182 EXPECT_EQ(interior_pins3[11][2], (
unsigned int)11);
183 EXPECT_EQ(interior_pins3[12][0], (
unsigned int)3);
184 EXPECT_EQ(interior_pins3[12][1], (
unsigned int)11);
185 EXPECT_EQ(interior_pins3[12][2], (
unsigned int)12);
186 EXPECT_EQ(interior_pins3[13][0], (
unsigned int)12);
187 EXPECT_EQ(interior_pins3[13][1], (
unsigned int)4);
188 EXPECT_EQ(interior_pins3[13][2], (
unsigned int)3);
189 EXPECT_EQ(interior_pins3[14][0], (
unsigned int)4);
190 EXPECT_EQ(interior_pins3[14][1], (
unsigned int)12);
191 EXPECT_EQ(interior_pins3[14][2], (
unsigned int)13);
192 EXPECT_EQ(interior_pins3[15][0], (
unsigned int)4);
193 EXPECT_EQ(interior_pins3[15][1], (
unsigned int)13);
194 EXPECT_EQ(interior_pins3[15][2], (
unsigned int)14);
195 EXPECT_EQ(interior_pins3[16][0], (
unsigned int)14);
196 EXPECT_EQ(interior_pins3[16][1], (
unsigned int)5);
197 EXPECT_EQ(interior_pins3[16][2], (
unsigned int)4);
198 EXPECT_EQ(interior_pins3[17][0], (
unsigned int)5);
199 EXPECT_EQ(interior_pins3[17][1], (
unsigned int)14);
200 EXPECT_EQ(interior_pins3[17][2], (
unsigned int)15);
201 EXPECT_EQ(interior_pins3[18][0], (
unsigned int)5);
202 EXPECT_EQ(interior_pins3[18][1], (
unsigned int)15);
203 EXPECT_EQ(interior_pins3[18][2], (
unsigned int)16);
204 EXPECT_EQ(interior_pins3[19][0], (
unsigned int)16);
205 EXPECT_EQ(interior_pins3[19][1], (
unsigned int)6);
206 EXPECT_EQ(interior_pins3[19][2], (
unsigned int)5);
207 EXPECT_EQ(interior_pins3[20][0], (
unsigned int)6);
208 EXPECT_EQ(interior_pins3[20][1], (
unsigned int)16);
209 EXPECT_EQ(interior_pins3[20][2], (
unsigned int)17);
210 EXPECT_EQ(interior_pins3[21][0], (
unsigned int)6);
211 EXPECT_EQ(interior_pins3[21][1], (
unsigned int)17);
212 EXPECT_EQ(interior_pins3[21][2], (
unsigned int)18);
213 EXPECT_EQ(interior_pins3[22][0], (
unsigned int)18);
214 EXPECT_EQ(interior_pins3[22][1], (
unsigned int)1);
215 EXPECT_EQ(interior_pins3[22][2], (
unsigned int)6);
216 EXPECT_EQ(interior_pins3[23][0], (
unsigned int)1);
217 EXPECT_EQ(interior_pins3[23][1], (
unsigned int)18);
218 EXPECT_EQ(interior_pins3[23][2], (
unsigned int)7);
221 EXPECT_EQ(edge_pins3[0][0], (
unsigned int)7);
222 EXPECT_EQ(edge_pins3[0][1], (
unsigned int)8);
223 EXPECT_EQ(edge_pins3[1][0], (
unsigned int)8);
224 EXPECT_EQ(edge_pins3[1][1], (
unsigned int)9);
225 EXPECT_EQ(edge_pins3[2][0], (
unsigned int)9);
226 EXPECT_EQ(edge_pins3[2][1], (
unsigned int)10);
227 EXPECT_EQ(edge_pins3[3][0], (
unsigned int)10);
228 EXPECT_EQ(edge_pins3[3][1], (
unsigned int)11);
229 EXPECT_EQ(edge_pins3[4][0], (
unsigned int)11);
230 EXPECT_EQ(edge_pins3[4][1], (
unsigned int)12);
231 EXPECT_EQ(edge_pins3[5][0], (
unsigned int)12);
232 EXPECT_EQ(edge_pins3[5][1], (
unsigned int)13);
233 EXPECT_EQ(edge_pins3[6][0], (
unsigned int)13);
234 EXPECT_EQ(edge_pins3[6][1], (
unsigned int)14);
235 EXPECT_EQ(edge_pins3[7][0], (
unsigned int)14);
236 EXPECT_EQ(edge_pins3[7][1], (
unsigned int)15);
237 EXPECT_EQ(edge_pins3[8][0], (
unsigned int)15);
238 EXPECT_EQ(edge_pins3[8][1], (
unsigned int)16);
239 EXPECT_EQ(edge_pins3[9][0], (
unsigned int)16);
240 EXPECT_EQ(edge_pins3[9][1], (
unsigned int)17);
241 EXPECT_EQ(edge_pins3[10][0], (
unsigned int)17);
242 EXPECT_EQ(edge_pins3[10][1], (
unsigned int)18);
243 EXPECT_EQ(edge_pins3[11][0], (
unsigned int)18);
244 EXPECT_EQ(edge_pins3[11][1], (
unsigned int)7);
247 EXPECT_EQ(corner_pins3[0][0], (
unsigned int)7);
248 EXPECT_EQ(corner_pins3[1][0], (
unsigned int)9);
249 EXPECT_EQ(corner_pins3[2][0], (
unsigned int)11);
250 EXPECT_EQ(corner_pins3[3][0], (
unsigned int)13);
251 EXPECT_EQ(corner_pins3[4][0], (
unsigned int)15);
252 EXPECT_EQ(corner_pins3[5][0], (
unsigned int)17);
257 Real bp = 5.0, pp = 1.0, pd = 0.8, wd = 0.05, wp = 50.0;
258 unsigned int nr = 1,
a = 2;
273 EXPECT_DOUBLE_EQ(hl6.
pinBundleSpacing(), (5.0 - (std::sqrt(3.0) + 0.8)) / 2.);
277 EXPECT_DOUBLE_EQ(hl8.
pinBundleSpacing(), (5.0 - (std::sqrt(3.0) + 0.8)) / 2.);
282 int n_interior, n_edge, n_corner;
283 Real flow_interior, flow_edge, flow_corner;
284 Real area_interior, area_edge, area_corner;
286 Real bp = 5.0, pp = 1.0, pd = 0.8, wd = 0.1, wp = 50.0;
287 unsigned int nr = 1,
a = 2;
324 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
326 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
339 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
341 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
354 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
356 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
370 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
372 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
385 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
387 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
400 n_interior * flow_interior + n_edge * flow_edge + n_corner * flow_corner);
402 n_interior * area_interior + n_edge * area_edge + n_corner * area_corner);
407 Real bp = 5.0, pp = 0.99, pd = 0.8, wd = 0.0, wp = 50.0;
408 unsigned int nr = 3,
a = 2;
422 Real sin60 = std::sqrt(3.0) / 2.0;
425 EXPECT_EQ(centers.size(), hl15.
nPins());
426 EXPECT_DOUBLE_EQ(centers[0](0), 0.0);
427 EXPECT_DOUBLE_EQ(centers[0](1), 0.0);
428 EXPECT_DOUBLE_EQ(centers[0](2), 0.0);
432 EXPECT_EQ(centers2.size(), hl16.
nPins());
433 EXPECT_DOUBLE_EQ(centers2[0](0), 0.0);
434 EXPECT_DOUBLE_EQ(centers2[0](1), 0.0);
435 EXPECT_DOUBLE_EQ(centers2[1](0), cos60 * p);
436 EXPECT_DOUBLE_EQ(centers2[1](1), sin60 * p);
437 EXPECT_DOUBLE_EQ(centers2[2](0), -cos60 * p);
438 EXPECT_DOUBLE_EQ(centers2[2](1), sin60 * p);
439 EXPECT_DOUBLE_EQ(centers2[3](0), -p);
440 EXPECT_DOUBLE_EQ(centers2[3](1), 0.0);
441 EXPECT_DOUBLE_EQ(centers2[4](0), -cos60 * p);
442 EXPECT_DOUBLE_EQ(centers2[4](1), -sin60 * p);
443 EXPECT_DOUBLE_EQ(centers2[5](0), cos60 * p);
444 EXPECT_DOUBLE_EQ(centers2[5](1), -sin60 * p);
445 EXPECT_DOUBLE_EQ(centers2[6](0), p);
446 EXPECT_DOUBLE_EQ(centers2[6](1), (
unsigned int)0);
449 EXPECT_DOUBLE_EQ(centers2[i](2), 0.0);
452 EXPECT_EQ(centers3.size(), hl14.
nPins());
453 EXPECT_DOUBLE_EQ(centers3[0](0), 0.0);
454 EXPECT_DOUBLE_EQ(centers3[0](1), 0.0);
455 EXPECT_DOUBLE_EQ(centers3[1](0), cos60 * p);
456 EXPECT_DOUBLE_EQ(centers3[1](1), sin60 * p);
457 EXPECT_DOUBLE_EQ(centers3[2](0), -cos60 * p);
458 EXPECT_DOUBLE_EQ(centers3[2](1), sin60 * p);
459 EXPECT_DOUBLE_EQ(centers3[3](0), -p);
460 EXPECT_DOUBLE_EQ(centers3[3](1), 0.0);
461 EXPECT_DOUBLE_EQ(centers3[4](0), -cos60 * p);
462 EXPECT_DOUBLE_EQ(centers3[4](1), -sin60 * p);
463 EXPECT_DOUBLE_EQ(centers3[5](0), cos60 * p);
464 EXPECT_DOUBLE_EQ(centers3[5](1), -sin60 * p);
465 EXPECT_DOUBLE_EQ(centers3[6](0), p);
466 EXPECT_DOUBLE_EQ(centers3[6](1), (
unsigned int)0);
468 EXPECT_DOUBLE_EQ(centers3[7](0), p);
469 EXPECT_DOUBLE_EQ(centers3[7](1), 2 * p * sin60);
470 EXPECT_DOUBLE_EQ(centers3[8](0), (
unsigned int)0);
471 EXPECT_DOUBLE_EQ(centers3[8](1), 2 * p * sin60);
472 EXPECT_DOUBLE_EQ(centers3[9](0), -p);
473 EXPECT_DOUBLE_EQ(centers3[9](1), 2 * p * sin60);
474 EXPECT_DOUBLE_EQ(centers3[10](0), -p - p * cos60);
475 EXPECT_DOUBLE_EQ(centers3[10](1), p * sin60);
476 EXPECT_DOUBLE_EQ(centers3[11](0), -2 * p);
477 EXPECT_DOUBLE_EQ(centers3[11](1), (
unsigned int)0);
478 EXPECT_DOUBLE_EQ(centers3[12](0), -p - p * cos60);
479 EXPECT_DOUBLE_EQ(centers3[12](1), -p * sin60);
480 EXPECT_DOUBLE_EQ(centers3[13](0), -p);
481 EXPECT_DOUBLE_EQ(centers3[13](1), -2 * p * sin60);
482 EXPECT_DOUBLE_EQ(centers3[14](0), (
unsigned int)0);
483 EXPECT_DOUBLE_EQ(centers3[14](1), -2 * p * sin60);
484 EXPECT_DOUBLE_EQ(centers3[15](0), p);
485 EXPECT_DOUBLE_EQ(centers3[15](1), -2 * p * sin60);
486 EXPECT_DOUBLE_EQ(centers3[16](0), p + p * cos60);
487 EXPECT_DOUBLE_EQ(centers3[16](1), -p * sin60);
488 EXPECT_DOUBLE_EQ(centers3[17](0), 2 * p);
489 EXPECT_DOUBLE_EQ(centers3[17](1), 0.0);
490 EXPECT_DOUBLE_EQ(centers3[18](0), p + p * cos60);
491 EXPECT_DOUBLE_EQ(centers3[18](1), p * sin60);
494 EXPECT_DOUBLE_EQ(centers3[i](2), 0.0);
497 EXPECT_EQ(centers4.size(), hl17.
nPins());
498 EXPECT_DOUBLE_EQ(centers4[0](0), 0.0);
499 EXPECT_DOUBLE_EQ(centers4[0](1), 0.0);
500 EXPECT_DOUBLE_EQ(centers4[1](0), cos60 * p);
501 EXPECT_DOUBLE_EQ(centers4[1](1), sin60 * p);
502 EXPECT_DOUBLE_EQ(centers4[2](0), -cos60 * p);
503 EXPECT_DOUBLE_EQ(centers4[2](1), sin60 * p);
504 EXPECT_DOUBLE_EQ(centers4[3](0), -p);
505 EXPECT_DOUBLE_EQ(centers4[3](1), 0.0);
506 EXPECT_DOUBLE_EQ(centers4[4](0), -cos60 * p);
507 EXPECT_DOUBLE_EQ(centers4[4](1), -sin60 * p);
508 EXPECT_DOUBLE_EQ(centers4[5](0), cos60 * p);
509 EXPECT_DOUBLE_EQ(centers4[5](1), -sin60 * p);
510 EXPECT_DOUBLE_EQ(centers4[6](0), p);
511 EXPECT_DOUBLE_EQ(centers4[6](1), (
unsigned int)0);
513 EXPECT_DOUBLE_EQ(centers4[7](0), p);
514 EXPECT_DOUBLE_EQ(centers4[7](1), 2 * p * sin60);
515 EXPECT_DOUBLE_EQ(centers4[8](0), (
unsigned int)0);
516 EXPECT_DOUBLE_EQ(centers4[8](1), 2 * p * sin60);
517 EXPECT_DOUBLE_EQ(centers4[9](0), -p);
518 EXPECT_DOUBLE_EQ(centers4[9](1), 2 * p * sin60);
519 EXPECT_DOUBLE_EQ(centers4[10](0), -p - p * cos60);
520 EXPECT_DOUBLE_EQ(centers4[10](1), p * sin60);
521 EXPECT_DOUBLE_EQ(centers4[11](0), -2 * p);
522 EXPECT_DOUBLE_EQ(centers4[11](1), (
unsigned int)0);
523 EXPECT_DOUBLE_EQ(centers4[12](0), -p - p * cos60);
524 EXPECT_DOUBLE_EQ(centers4[12](1), -p * sin60);
525 EXPECT_DOUBLE_EQ(centers4[13](0), -p);
526 EXPECT_DOUBLE_EQ(centers4[13](1), -2 * p * sin60);
527 EXPECT_DOUBLE_EQ(centers4[14](0), (
unsigned int)0);
528 EXPECT_DOUBLE_EQ(centers4[14](1), -2 * p * sin60);
529 EXPECT_DOUBLE_EQ(centers4[15](0), p);
530 EXPECT_DOUBLE_EQ(centers4[15](1), -2 * p * sin60);
531 EXPECT_DOUBLE_EQ(centers4[16](0), p + p * cos60);
532 EXPECT_DOUBLE_EQ(centers4[16](1), -p * sin60);
533 EXPECT_DOUBLE_EQ(centers4[17](0), 2 * p);
534 EXPECT_DOUBLE_EQ(centers4[17](1), 0.0);
535 EXPECT_DOUBLE_EQ(centers4[18](0), p + p * cos60);
536 EXPECT_DOUBLE_EQ(centers4[18](1), p * sin60);
538 EXPECT_DOUBLE_EQ(centers4[19](0), p + p * cos60);
539 EXPECT_DOUBLE_EQ(centers4[19](1), 3 * p * sin60);
540 EXPECT_DOUBLE_EQ(centers4[20](0), p * cos60);
541 EXPECT_DOUBLE_EQ(centers4[20](1), 3 * p * sin60);
542 EXPECT_DOUBLE_EQ(centers4[21](0), -p * cos60);
543 EXPECT_DOUBLE_EQ(centers4[21](1), 3 * p * sin60);
544 EXPECT_DOUBLE_EQ(centers4[22](0), -p - p * cos60);
545 EXPECT_DOUBLE_EQ(centers4[22](1), 3 * p * sin60);
546 EXPECT_DOUBLE_EQ(centers4[23](0), -2 * p);
547 EXPECT_DOUBLE_EQ(centers4[23](1), 2 * p * sin60);
548 EXPECT_DOUBLE_EQ(centers4[24](0), -2 * p - p * cos60);
549 EXPECT_DOUBLE_EQ(centers4[24](1), p * sin60);
550 EXPECT_DOUBLE_EQ(centers4[25](0), -3 * p);
551 EXPECT_DOUBLE_EQ(centers4[25](1), (
unsigned int)0);
552 EXPECT_DOUBLE_EQ(centers4[26](0), -2 * p - p * cos60);
553 EXPECT_DOUBLE_EQ(centers4[26](1), -p * sin60);
554 EXPECT_DOUBLE_EQ(centers4[27](0), -2 * p);
555 EXPECT_DOUBLE_EQ(centers4[27](1), -2 * p * sin60);
556 EXPECT_DOUBLE_EQ(centers4[28](0), -p - p * cos60);
557 EXPECT_DOUBLE_EQ(centers4[28](1), -3 * p * sin60);
558 EXPECT_DOUBLE_EQ(centers4[29](0), -p * cos60);
559 EXPECT_DOUBLE_EQ(centers4[29](1), -3 * p * sin60);
560 EXPECT_DOUBLE_EQ(centers4[30](0), p * cos60);
561 EXPECT_DOUBLE_EQ(centers4[30](1), -3 * p * sin60);
562 EXPECT_DOUBLE_EQ(centers4[31](0), p + p * cos60);
563 EXPECT_DOUBLE_EQ(centers4[31](1), -3 * p * sin60);
564 EXPECT_DOUBLE_EQ(centers4[32](0), 2 * p);
565 EXPECT_DOUBLE_EQ(centers4[32](1), -2 * p * sin60);
566 EXPECT_DOUBLE_EQ(centers4[33](0), 2 * p + p * cos60);
567 EXPECT_DOUBLE_EQ(centers4[33](1), -p * sin60);
568 EXPECT_DOUBLE_EQ(centers4[34](0), 3 * p);
569 EXPECT_DOUBLE_EQ(centers4[34](1), (
unsigned int)0);
570 EXPECT_DOUBLE_EQ(centers4[35](0), 2 * p + p * cos60);
571 EXPECT_DOUBLE_EQ(centers4[35](1), p * sin60);
572 EXPECT_DOUBLE_EQ(centers4[36](0), 2 * p);
573 EXPECT_DOUBLE_EQ(centers4[36](1), 2 * p * sin60);
576 EXPECT_DOUBLE_EQ(centers4[i](2), 0.0);
581 Real bp = 5.0, pp = 0.99, pd = 0.8, wd = 0.0, wp = 50.0;
582 unsigned int nr = 3,
a = 2;
596 Real sin60 = std::sqrt(3.0) / 2.0;
599 EXPECT_EQ(centers.size(), hl15.
nPins());
600 ABS_DOUBLE_TEST(centers[0](0), 0.0);
601 ABS_DOUBLE_TEST(centers[0](1), 0.0);
602 ABS_DOUBLE_TEST(centers[0](2), 0.0);
606 EXPECT_EQ(centers2.size(), hl16.
nPins());
607 ABS_DOUBLE_TEST(centers2[0](0), 0.0);
608 ABS_DOUBLE_TEST(centers2[0](1), 0.0);
609 ABS_DOUBLE_TEST(centers2[1](0), -cos60 * p);
610 ABS_DOUBLE_TEST(centers2[1](1), -sin60 * p);
611 ABS_DOUBLE_TEST(centers2[2](0), cos60 * p);
612 ABS_DOUBLE_TEST(centers2[2](1), -sin60 * p);
613 ABS_DOUBLE_TEST(centers2[3](0), p);
614 ABS_DOUBLE_TEST(centers2[3](1), 0.0);
615 ABS_DOUBLE_TEST(centers2[4](0), cos60 * p);
616 ABS_DOUBLE_TEST(centers2[4](1), sin60 * p);
617 ABS_DOUBLE_TEST(centers2[5](0), -cos60 * p);
618 ABS_DOUBLE_TEST(centers2[5](1), sin60 * p);
619 ABS_DOUBLE_TEST(centers2[6](0), -p);
620 ABS_DOUBLE_TEST(centers2[6](1), (
unsigned int)0);
623 ABS_DOUBLE_TEST(centers2[i](2), 0.0);
626 EXPECT_EQ(centers3.size(), hl14.
nPins());
627 ABS_DOUBLE_TEST(centers3[0](0), 0.0);
628 ABS_DOUBLE_TEST(centers3[0](1), 0.0);
629 ABS_DOUBLE_TEST(centers3[1](0), -cos60 * p);
630 ABS_DOUBLE_TEST(centers3[1](1), -sin60 * p);
631 ABS_DOUBLE_TEST(centers3[2](0), cos60 * p);
632 ABS_DOUBLE_TEST(centers3[2](1), -sin60 * p);
633 ABS_DOUBLE_TEST(centers3[3](0), p);
634 ABS_DOUBLE_TEST(centers3[3](1), 0.0);
635 ABS_DOUBLE_TEST(centers3[4](0), cos60 * p);
636 ABS_DOUBLE_TEST(centers3[4](1), sin60 * p);
637 ABS_DOUBLE_TEST(centers3[5](0), -cos60 * p);
638 ABS_DOUBLE_TEST(centers3[5](1), sin60 * p);
639 ABS_DOUBLE_TEST(centers3[6](0), -p);
640 ABS_DOUBLE_TEST(centers3[6](1), (
unsigned int)0);
642 ABS_DOUBLE_TEST(centers3[7](0), -p);
643 ABS_DOUBLE_TEST(centers3[7](1), -2 * p * sin60);
644 ABS_DOUBLE_TEST(centers3[8](0), (
unsigned int)0);
645 ABS_DOUBLE_TEST(centers3[8](1), -2 * p * sin60);
646 ABS_DOUBLE_TEST(centers3[9](0), p);
647 ABS_DOUBLE_TEST(centers3[9](1), -2 * p * sin60);
648 ABS_DOUBLE_TEST(centers3[10](0), p + p * cos60);
649 ABS_DOUBLE_TEST(centers3[10](1), -p * sin60);
650 ABS_DOUBLE_TEST(centers3[11](0), 2 * p);
651 ABS_DOUBLE_TEST(centers3[11](1), (
unsigned int)0);
652 ABS_DOUBLE_TEST(centers3[12](0), p + p * cos60);
653 ABS_DOUBLE_TEST(centers3[12](1), p * sin60);
654 ABS_DOUBLE_TEST(centers3[13](0), p);
655 ABS_DOUBLE_TEST(centers3[13](1), 2 * p * sin60);
656 ABS_DOUBLE_TEST(centers3[14](0), (
unsigned int)0);
657 ABS_DOUBLE_TEST(centers3[14](1), 2 * p * sin60);
658 ABS_DOUBLE_TEST(centers3[15](0), -p);
659 ABS_DOUBLE_TEST(centers3[15](1), 2 * p * sin60);
660 ABS_DOUBLE_TEST(centers3[16](0), -p - p * cos60);
661 ABS_DOUBLE_TEST(centers3[16](1), p * sin60);
662 ABS_DOUBLE_TEST(centers3[17](0), -2 * p);
663 ABS_DOUBLE_TEST(centers3[17](1), 0.0);
664 ABS_DOUBLE_TEST(centers3[18](0), -p - p * cos60);
665 ABS_DOUBLE_TEST(centers3[18](1), -p * sin60);
668 ABS_DOUBLE_TEST(centers3[i](2), 0.0);
671 EXPECT_EQ(centers4.size(), hl17.
nPins());
672 ABS_DOUBLE_TEST(centers4[0](0), 0.0);
673 ABS_DOUBLE_TEST(centers4[0](1), 0.0);
674 ABS_DOUBLE_TEST(centers4[1](0), -cos60 * p);
675 ABS_DOUBLE_TEST(centers4[1](1), -sin60 * p);
676 ABS_DOUBLE_TEST(centers4[2](0), cos60 * p);
677 ABS_DOUBLE_TEST(centers4[2](1), -sin60 * p);
678 ABS_DOUBLE_TEST(centers4[3](0), p);
679 ABS_DOUBLE_TEST(centers4[3](1), 0.0);
680 ABS_DOUBLE_TEST(centers4[4](0), cos60 * p);
681 ABS_DOUBLE_TEST(centers4[4](1), sin60 * p);
682 ABS_DOUBLE_TEST(centers4[5](0), -cos60 * p);
683 ABS_DOUBLE_TEST(centers4[5](1), sin60 * p);
684 ABS_DOUBLE_TEST(centers4[6](0), -p);
685 ABS_DOUBLE_TEST(centers4[6](1), (
unsigned int)0);
687 ABS_DOUBLE_TEST(centers4[7](0), -p);
688 ABS_DOUBLE_TEST(centers4[7](1), -2 * p * sin60);
689 ABS_DOUBLE_TEST(centers4[8](0), (
unsigned int)0);
690 ABS_DOUBLE_TEST(centers4[8](1), -2 * p * sin60);
691 ABS_DOUBLE_TEST(centers4[9](0), p);
692 ABS_DOUBLE_TEST(centers4[9](1), -2 * p * sin60);
693 ABS_DOUBLE_TEST(centers4[10](0), p + p * cos60);
694 ABS_DOUBLE_TEST(centers4[10](1), -p * sin60);
695 ABS_DOUBLE_TEST(centers4[11](0), 2 * p);
696 ABS_DOUBLE_TEST(centers4[11](1), (
unsigned int)0);
697 ABS_DOUBLE_TEST(centers4[12](0), p + p * cos60);
698 ABS_DOUBLE_TEST(centers4[12](1), p * sin60);
699 ABS_DOUBLE_TEST(centers4[13](0), p);
700 ABS_DOUBLE_TEST(centers4[13](1), 2 * p * sin60);
701 ABS_DOUBLE_TEST(centers4[14](0), (
unsigned int)0);
702 ABS_DOUBLE_TEST(centers4[14](1), 2 * p * sin60);
703 ABS_DOUBLE_TEST(centers4[15](0), -p);
704 ABS_DOUBLE_TEST(centers4[15](1), 2 * p * sin60);
705 ABS_DOUBLE_TEST(centers4[16](0), -p - p * cos60);
706 ABS_DOUBLE_TEST(centers4[16](1), p * sin60);
707 ABS_DOUBLE_TEST(centers4[17](0), -2 * p);
708 ABS_DOUBLE_TEST(centers4[17](1), 0.0);
709 ABS_DOUBLE_TEST(centers4[18](0), -p - p * cos60);
710 ABS_DOUBLE_TEST(centers4[18](1), -p * sin60);
712 ABS_DOUBLE_TEST(centers4[19](0), -p - p * cos60);
713 ABS_DOUBLE_TEST(centers4[19](1), -3 * p * sin60);
714 ABS_DOUBLE_TEST(centers4[20](0), -p * cos60);
715 ABS_DOUBLE_TEST(centers4[20](1), -3 * p * sin60);
716 ABS_DOUBLE_TEST(centers4[21](0), p * cos60);
717 ABS_DOUBLE_TEST(centers4[21](1), -3 * p * sin60);
718 ABS_DOUBLE_TEST(centers4[22](0), p + p * cos60);
719 ABS_DOUBLE_TEST(centers4[22](1), -3 * p * sin60);
720 ABS_DOUBLE_TEST(centers4[23](0), 2 * p);
721 ABS_DOUBLE_TEST(centers4[23](1), -2 * p * sin60);
722 ABS_DOUBLE_TEST(centers4[24](0), 2 * p + p * cos60);
723 ABS_DOUBLE_TEST(centers4[24](1), -p * sin60);
724 ABS_DOUBLE_TEST(centers4[25](0), 3 * p);
725 ABS_DOUBLE_TEST(centers4[25](1), (
unsigned int)0);
726 ABS_DOUBLE_TEST(centers4[26](0), 2 * p + p * cos60);
727 ABS_DOUBLE_TEST(centers4[26](1), p * sin60);
728 ABS_DOUBLE_TEST(centers4[27](0), 2 * p);
729 ABS_DOUBLE_TEST(centers4[27](1), 2 * p * sin60);
730 ABS_DOUBLE_TEST(centers4[28](0), p + p * cos60);
731 ABS_DOUBLE_TEST(centers4[28](1), 3 * p * sin60);
732 ABS_DOUBLE_TEST(centers4[29](0), p * cos60);
733 ABS_DOUBLE_TEST(centers4[29](1), 3 * p * sin60);
734 ABS_DOUBLE_TEST(centers4[30](0), -p * cos60);
735 ABS_DOUBLE_TEST(centers4[30](1), 3 * p * sin60);
736 ABS_DOUBLE_TEST(centers4[31](0), -p - p * cos60);
737 ABS_DOUBLE_TEST(centers4[31](1), 3 * p * sin60);
738 ABS_DOUBLE_TEST(centers4[32](0), -2 * p);
739 ABS_DOUBLE_TEST(centers4[32](1), 2 * p * sin60);
740 ABS_DOUBLE_TEST(centers4[33](0), -2 * p - p * cos60);
741 ABS_DOUBLE_TEST(centers4[33](1), p * sin60);
742 ABS_DOUBLE_TEST(centers4[34](0), -3 * p);
743 ABS_DOUBLE_TEST(centers4[34](1), (
unsigned int)0);
744 ABS_DOUBLE_TEST(centers4[35](0), -2 * p - p * cos60);
745 ABS_DOUBLE_TEST(centers4[35](1), -p * sin60);
746 ABS_DOUBLE_TEST(centers4[36](0), -2 * p);
747 ABS_DOUBLE_TEST(centers4[36](1), -2 * p * sin60);
750 ABS_DOUBLE_TEST(centers4[i](2), 0.0);
755 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
756 unsigned int nr = 3,
a = 2;
760 Point pt0(0.06, 0.35, 3.5);
761 Point pt1(-0.47, 0.28, 3.5);
762 Point pt2(-0.26, -0.21, 3.5);
763 Point pt3(-0.12, -0.349, 3.5);
764 Point pt4(0.46, -0.27, 3.5);
765 Point pt5(0.37, 0.6, 3.5);
774 Point pt6(0.36, 1.06, -7.0);
775 Point pt7(0.11, 0.98, -7.0);
776 Point pt8(-0.43, 1.27, -7.0);
777 Point pt9(-0.81, 0.93, -7.0);
778 Point pt10(-0.75, 0.47, -7.0);
779 Point pt11(-1.06, 0.28, -7.0);
780 Point pt12(-1.16, -0.13, -7.0);
781 Point pt13(-0.73, -0.41, -7.0);
782 Point pt14(-0.73, -0.81, -7.0);
783 Point pt15(-0.46, -1.18, -7.0);
784 Point pt16(0.05, -0.98, -7.0);
785 Point pt17(0.27, -1.00, -7.0);
786 Point pt18(0.72, -0.98, -7.0);
787 Point pt19(0.75, -0.58, -7.0);
788 Point pt20(1.23, -0.23, -7.0);
789 Point pt21(1.17, 0.09, -7.0);
790 Point pt22(0.78, 0.38, -7.0);
791 Point pt23(0.74, 0.84, -7.0);
812 Point pt24(0.31, 1.44, -0.1);
813 Point pt25(-0.38, 1.61, -0.1);
814 Point pt26(-1.17, 1.52, -0.1);
815 Point pt27(-1.78, 0.38, -0.1);
816 Point pt28(-1.91, -0.42, -0.1);
817 Point pt29(-1.39, -1.24, -0.1);
818 Point pt30(-0.46, -1.74, -0.1);
819 Point pt31(0.18, -1.79, -0.1);
820 Point pt32(1.24, -1.17, -0.1);
821 Point pt33(1.75, -0.57, -0.1);
822 Point pt34(1.51, 0.37, -0.1);
823 Point pt35(1.16, 1.42, -0.1);
838 Point pt36(1.05, 1.75, 1.2);
839 Point pt37(-1.02, 1.72, 1.2);
840 Point pt38(-2.03, -0.05, 1.2);
841 Point pt39(-1.01, -1.59, 1.2);
842 Point pt40(0.89, -1.79, 1.2);
843 Point pt41(1.98, 0.12, 1.2);
855 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
856 unsigned int nr = 3,
a = 2;
859 Point pt0(0.06, 0.35, 0.0);
860 Point pt1(-0.47, 0.28, 0.0);
861 Point pt2(-0.26, -0.21, 0.0);
862 Point pt3(-0.12, -0.349, 0.0);
863 Point pt4(0.46, -0.27, 0.0);
864 Point pt5(0.37, 0.6, 0.0);
879 pt0 = {0.5 * 0.8 * 0.5, 0.5 * 0.8 * std::sqrt(3.0) / 2.0, 0.0};
882 Point pt6(0.36, 1.06, 0.0);
883 Point pt7(0.11, 0.98, 0.0);
884 Point pt8(-0.43, 1.27, 0.0);
885 Point pt9(-0.81, 0.93, 0.0);
886 Point pt10(-0.75, 0.47, 0.0);
887 Point pt11(-1.06, 0.28, 0.0);
888 Point pt12(-1.16, -0.13, 0.0);
889 Point pt13(-0.73, -0.41, 0.0);
890 Point pt14(-0.73, -0.81, 0.0);
891 Point pt15(-0.46, -1.18, 0.0);
892 Point pt16(0.05, -0.98, 0.0);
893 Point pt17(0.27, -1.00, 0.0);
894 Point pt18(0.72, -0.98, 0.0);
895 Point pt19(0.75, -0.58, 0.0);
896 Point pt20(1.23, -0.23, 0.0);
897 Point pt21(1.17, 0.09, 0.0);
898 Point pt22(0.78, 0.38, 0.0);
899 Point pt23(0.74, 0.84, 0.0);
938 Point pt24(0.31, 1.44, 0.0);
939 Point pt25(-0.38, 1.61, 0.0);
940 Point pt26(-1.17, 1.52, 0.0);
941 Point pt27(-1.78, 0.38, 0.0);
942 Point pt28(-1.91, -0.42, 0.0);
943 Point pt29(-1.39, -1.24, 0.0);
944 Point pt30(-0.46, -1.74, 0.0);
945 Point pt31(0.18, -1.79, 0.0);
946 Point pt32(1.24, -1.17, 0.0);
947 Point pt33(1.75, -0.57, 0.0);
948 Point pt34(1.51, 0.37, 0.0);
949 Point pt35(1.16, 1.42, 0.0);
976 Point pt36(1.05, 1.75, 0.0);
977 Point pt37(-1.02, 1.72, 0.0);
978 Point pt38(-2.03, -0.05, 0.0);
979 Point pt39(-1.01, -1.59, 0.0);
980 Point pt40(0.89, -1.79, 0.0);
981 Point pt41(1.98, 0.12, 0.0);
999 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1000 unsigned int nr = 1,
a = 2;
1008 EXPECT_EQ(gi[i].first, 0);
1009 EXPECT_EQ(gi[i++].second, -1);
1011 EXPECT_EQ(gi[i].first, 0);
1012 EXPECT_EQ(gi[i++].second, -2);
1014 EXPECT_EQ(gi[i].first, 0);
1015 EXPECT_EQ(gi[i++].second, -3);
1017 EXPECT_EQ(gi[i].first, 0);
1018 EXPECT_EQ(gi[i++].second, -4);
1020 EXPECT_EQ(gi[i].first, 0);
1021 EXPECT_EQ(gi[i++].second, -5);
1023 EXPECT_EQ(gi[i].first, 0);
1024 EXPECT_EQ(gi[i++].second, -6);
1026 for (
unsigned int i = 0; i < hl.
nGaps(); ++i)
1030 EXPECT_EQ(lg[i][0], 5);
1031 EXPECT_EQ(lg[i++][1], 0);
1033 EXPECT_EQ(lg[i][0], 0);
1034 EXPECT_EQ(lg[i++][1], 1);
1036 EXPECT_EQ(lg[i][0], 1);
1037 EXPECT_EQ(lg[i++][1], 2);
1039 EXPECT_EQ(lg[i][0], 2);
1040 EXPECT_EQ(lg[i++][1], 3);
1042 EXPECT_EQ(lg[i][0], 3);
1043 EXPECT_EQ(lg[i++][1], 4);
1045 EXPECT_EQ(lg[i][0], 4);
1046 EXPECT_EQ(lg[i++][1], 5);
1051 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1052 unsigned int nr = 2,
a = 2;
1060 EXPECT_EQ(gi[i].first, 0);
1061 EXPECT_EQ(gi[i++].second, 1);
1063 EXPECT_EQ(gi[i].first, 0);
1064 EXPECT_EQ(gi[i++].second, 2);
1066 EXPECT_EQ(gi[i].first, 0);
1067 EXPECT_EQ(gi[i++].second, 3);
1069 EXPECT_EQ(gi[i].first, 0);
1070 EXPECT_EQ(gi[i++].second, 4);
1072 EXPECT_EQ(gi[i].first, 0);
1073 EXPECT_EQ(gi[i++].second, 5);
1075 EXPECT_EQ(gi[i].first, 0);
1076 EXPECT_EQ(gi[i++].second, 6);
1078 EXPECT_EQ(gi[i].first, 1);
1079 EXPECT_EQ(gi[i++].second, 2);
1081 EXPECT_EQ(gi[i].first, 1);
1082 EXPECT_EQ(gi[i++].second, 6);
1084 EXPECT_EQ(gi[i].first, 2);
1085 EXPECT_EQ(gi[i++].second, 3);
1087 EXPECT_EQ(gi[i].first, 3);
1088 EXPECT_EQ(gi[i++].second, 4);
1090 EXPECT_EQ(gi[i].first, 4);
1091 EXPECT_EQ(gi[i++].second, 5);
1093 EXPECT_EQ(gi[i].first, 5);
1094 EXPECT_EQ(gi[i++].second, 6);
1096 EXPECT_EQ(gi[i].first, 1);
1097 EXPECT_EQ(gi[i++].second, -1);
1099 EXPECT_EQ(gi[i].first, 2);
1100 EXPECT_EQ(gi[i++].second, -1);
1102 EXPECT_EQ(gi[i].first, 2);
1103 EXPECT_EQ(gi[i++].second, -2);
1105 EXPECT_EQ(gi[i].first, 3);
1106 EXPECT_EQ(gi[i++].second, -2);
1108 EXPECT_EQ(gi[i].first, 3);
1109 EXPECT_EQ(gi[i++].second, -3);
1111 EXPECT_EQ(gi[i].first, 4);
1112 EXPECT_EQ(gi[i++].second, -3);
1114 EXPECT_EQ(gi[i].first, 4);
1115 EXPECT_EQ(gi[i++].second, -4);
1117 EXPECT_EQ(gi[i].first, 5);
1118 EXPECT_EQ(gi[i++].second, -4);
1120 EXPECT_EQ(gi[i].first, 5);
1121 EXPECT_EQ(gi[i++].second, -5);
1123 EXPECT_EQ(gi[i].first, 6);
1124 EXPECT_EQ(gi[i++].second, -5);
1126 EXPECT_EQ(gi[i].first, 6);
1127 EXPECT_EQ(gi[i++].second, -6);
1129 EXPECT_EQ(gi[i].first, 1);
1130 EXPECT_EQ(gi[i++].second, -6);
1132 for (
unsigned int i = 0; i < hl.
nGaps(); ++i)
1141 EXPECT_EQ(lg[i][0], 0);
1142 EXPECT_EQ(lg[i][1], 6);
1143 EXPECT_EQ(lg[i++][2], 1);
1145 EXPECT_EQ(lg[i][0], 1);
1146 EXPECT_EQ(lg[i][1], 8);
1147 EXPECT_EQ(lg[i++][2], 2);
1149 EXPECT_EQ(lg[i][0], 2);
1150 EXPECT_EQ(lg[i][1], 9);
1151 EXPECT_EQ(lg[i++][2], 3);
1153 EXPECT_EQ(lg[i][0], 3);
1154 EXPECT_EQ(lg[i][1], 10);
1155 EXPECT_EQ(lg[i++][2], 4);
1157 EXPECT_EQ(lg[i][0], 4);
1158 EXPECT_EQ(lg[i][1], 11);
1159 EXPECT_EQ(lg[i++][2], 5);
1161 EXPECT_EQ(lg[i][0], 5);
1162 EXPECT_EQ(lg[i][1], 7);
1163 EXPECT_EQ(lg[i++][2], 0);
1165 EXPECT_EQ(lg[i][0], 6);
1166 EXPECT_EQ(lg[i][1], 13);
1167 EXPECT_EQ(lg[i++][2], 12);
1169 EXPECT_EQ(lg[i][0], 8);
1170 EXPECT_EQ(lg[i][1], 15);
1171 EXPECT_EQ(lg[i++][2], 14);
1173 EXPECT_EQ(lg[i][0], 9);
1174 EXPECT_EQ(lg[i][1], 17);
1175 EXPECT_EQ(lg[i++][2], 16);
1177 EXPECT_EQ(lg[i][0], 10);
1178 EXPECT_EQ(lg[i][1], 19);
1179 EXPECT_EQ(lg[i++][2], 18);
1181 EXPECT_EQ(lg[i][0], 11);
1182 EXPECT_EQ(lg[i][1], 21);
1183 EXPECT_EQ(lg[i++][2], 20);
1185 EXPECT_EQ(lg[i][0], 7);
1186 EXPECT_EQ(lg[i][1], 23);
1187 EXPECT_EQ(lg[i++][2], 22);
1189 EXPECT_EQ(lg[i][0], 23);
1190 EXPECT_EQ(lg[i++][1], 12);
1192 EXPECT_EQ(lg[i][0], 13);
1193 EXPECT_EQ(lg[i++][1], 14);
1195 EXPECT_EQ(lg[i][0], 15);
1196 EXPECT_EQ(lg[i++][1], 16);
1198 EXPECT_EQ(lg[i][0], 17);
1199 EXPECT_EQ(lg[i++][1], 18);
1201 EXPECT_EQ(lg[i][0], 19);
1202 EXPECT_EQ(lg[i++][1], 20);
1204 EXPECT_EQ(lg[i][0], 21);
1205 EXPECT_EQ(lg[i++][1], 22);
1210 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1211 unsigned int nr = 3,
a = 2;
1219 EXPECT_EQ(gi[i].first, 0);
1220 EXPECT_EQ(gi[i++].second, 1);
1222 EXPECT_EQ(gi[i].first, 0);
1223 EXPECT_EQ(gi[i++].second, 2);
1225 EXPECT_EQ(gi[i].first, 0);
1226 EXPECT_EQ(gi[i++].second, 3);
1228 EXPECT_EQ(gi[i].first, 0);
1229 EXPECT_EQ(gi[i++].second, 4);
1231 EXPECT_EQ(gi[i].first, 0);
1232 EXPECT_EQ(gi[i++].second, 5);
1234 EXPECT_EQ(gi[i].first, 0);
1235 EXPECT_EQ(gi[i++].second, 6);
1237 EXPECT_EQ(gi[i].first, 1);
1238 EXPECT_EQ(gi[i++].second, 2);
1240 EXPECT_EQ(gi[i].first, 1);
1241 EXPECT_EQ(gi[i++].second, 6);
1243 EXPECT_EQ(gi[i].first, 1);
1244 EXPECT_EQ(gi[i++].second, 7);
1246 EXPECT_EQ(gi[i].first, 1);
1247 EXPECT_EQ(gi[i++].second, 8);
1249 EXPECT_EQ(gi[i].first, 1);
1250 EXPECT_EQ(gi[i++].second, 18);
1252 EXPECT_EQ(gi[i].first, 2);
1253 EXPECT_EQ(gi[i++].second, 3);
1255 EXPECT_EQ(gi[i].first, 2);
1256 EXPECT_EQ(gi[i++].second, 8);
1258 EXPECT_EQ(gi[i].first, 2);
1259 EXPECT_EQ(gi[i++].second, 9);
1261 EXPECT_EQ(gi[i].first, 2);
1262 EXPECT_EQ(gi[i++].second, 10);
1264 EXPECT_EQ(gi[i].first, 3);
1265 EXPECT_EQ(gi[i++].second, 4);
1267 EXPECT_EQ(gi[i].first, 3);
1268 EXPECT_EQ(gi[i++].second, 10);
1270 EXPECT_EQ(gi[i].first, 3);
1271 EXPECT_EQ(gi[i++].second, 11);
1273 EXPECT_EQ(gi[i].first, 3);
1274 EXPECT_EQ(gi[i++].second, 12);
1276 EXPECT_EQ(gi[i].first, 4);
1277 EXPECT_EQ(gi[i++].second, 5);
1279 EXPECT_EQ(gi[i].first, 4);
1280 EXPECT_EQ(gi[i++].second, 12);
1282 EXPECT_EQ(gi[i].first, 4);
1283 EXPECT_EQ(gi[i++].second, 13);
1285 EXPECT_EQ(gi[i].first, 4);
1286 EXPECT_EQ(gi[i++].second, 14);
1288 EXPECT_EQ(gi[i].first, 5);
1289 EXPECT_EQ(gi[i++].second, 6);
1291 EXPECT_EQ(gi[i].first, 5);
1292 EXPECT_EQ(gi[i++].second, 14);
1294 EXPECT_EQ(gi[i].first, 5);
1295 EXPECT_EQ(gi[i++].second, 15);
1297 EXPECT_EQ(gi[i].first, 5);
1298 EXPECT_EQ(gi[i++].second, 16);
1300 EXPECT_EQ(gi[i].first, 6);
1301 EXPECT_EQ(gi[i++].second, 16);
1303 EXPECT_EQ(gi[i].first, 6);
1304 EXPECT_EQ(gi[i++].second, 17);
1306 EXPECT_EQ(gi[i].first, 6);
1307 EXPECT_EQ(gi[i++].second, 18);
1309 EXPECT_EQ(gi[i].first, 7);
1310 EXPECT_EQ(gi[i++].second, 8);
1312 EXPECT_EQ(gi[i].first, 7);
1313 EXPECT_EQ(gi[i++].second, 18);
1315 EXPECT_EQ(gi[i].first, 8);
1316 EXPECT_EQ(gi[i++].second, 9);
1318 EXPECT_EQ(gi[i].first, 9);
1319 EXPECT_EQ(gi[i++].second, 10);
1321 EXPECT_EQ(gi[i].first, 10);
1322 EXPECT_EQ(gi[i++].second, 11);
1324 EXPECT_EQ(gi[i].first, 11);
1325 EXPECT_EQ(gi[i++].second, 12);
1327 EXPECT_EQ(gi[i].first, 12);
1328 EXPECT_EQ(gi[i++].second, 13);
1330 EXPECT_EQ(gi[i].first, 13);
1331 EXPECT_EQ(gi[i++].second, 14);
1333 EXPECT_EQ(gi[i].first, 14);
1334 EXPECT_EQ(gi[i++].second, 15);
1336 EXPECT_EQ(gi[i].first, 15);
1337 EXPECT_EQ(gi[i++].second, 16);
1339 EXPECT_EQ(gi[i].first, 16);
1340 EXPECT_EQ(gi[i++].second, 17);
1342 EXPECT_EQ(gi[i].first, 17);
1343 EXPECT_EQ(gi[i++].second, 18);
1345 EXPECT_EQ(gi[i].first, 7);
1346 EXPECT_EQ(gi[i++].second, -1);
1348 EXPECT_EQ(gi[i].first, 8);
1349 EXPECT_EQ(gi[i++].second, -1);
1351 EXPECT_EQ(gi[i].first, 9);
1352 EXPECT_EQ(gi[i++].second, -1);
1354 EXPECT_EQ(gi[i].first, 9);
1355 EXPECT_EQ(gi[i++].second, -2);
1357 EXPECT_EQ(gi[i].first, 10);
1358 EXPECT_EQ(gi[i++].second, -2);
1360 EXPECT_EQ(gi[i].first, 11);
1361 EXPECT_EQ(gi[i++].second, -2);
1363 EXPECT_EQ(gi[i].first, 11);
1364 EXPECT_EQ(gi[i++].second, -3);
1366 EXPECT_EQ(gi[i].first, 12);
1367 EXPECT_EQ(gi[i++].second, -3);
1369 EXPECT_EQ(gi[i].first, 13);
1370 EXPECT_EQ(gi[i++].second, -3);
1372 EXPECT_EQ(gi[i].first, 13);
1373 EXPECT_EQ(gi[i++].second, -4);
1375 EXPECT_EQ(gi[i].first, 14);
1376 EXPECT_EQ(gi[i++].second, -4);
1378 EXPECT_EQ(gi[i].first, 15);
1379 EXPECT_EQ(gi[i++].second, -4);
1381 EXPECT_EQ(gi[i].first, 15);
1382 EXPECT_EQ(gi[i++].second, -5);
1384 EXPECT_EQ(gi[i].first, 16);
1385 EXPECT_EQ(gi[i++].second, -5);
1387 EXPECT_EQ(gi[i].first, 17);
1388 EXPECT_EQ(gi[i++].second, -5);
1390 EXPECT_EQ(gi[i].first, 17);
1391 EXPECT_EQ(gi[i++].second, -6);
1393 EXPECT_EQ(gi[i].first, 18);
1394 EXPECT_EQ(gi[i++].second, -6);
1396 EXPECT_EQ(gi[i].first, 7);
1397 EXPECT_EQ(gi[i++].second, -6);
1399 for (
unsigned int i = 0; i < hl.
nGaps(); ++i)
1401 if (i == 7 || i == 31)
1408 EXPECT_EQ(lg[i][0], 0);
1409 EXPECT_EQ(lg[i][1], 6);
1410 EXPECT_EQ(lg[i++][2], 1);
1412 EXPECT_EQ(lg[i][0], 1);
1413 EXPECT_EQ(lg[i][1], 11);
1414 EXPECT_EQ(lg[i++][2], 2);
1416 EXPECT_EQ(lg[i][0], 2);
1417 EXPECT_EQ(lg[i][1], 15);
1418 EXPECT_EQ(lg[i++][2], 3);
1420 EXPECT_EQ(lg[i][0], 3);
1421 EXPECT_EQ(lg[i][1], 19);
1422 EXPECT_EQ(lg[i++][2], 4);
1424 EXPECT_EQ(lg[i][0], 4);
1425 EXPECT_EQ(lg[i][1], 23);
1426 EXPECT_EQ(lg[i++][2], 5);
1428 EXPECT_EQ(lg[i][0], 5);
1429 EXPECT_EQ(lg[i][1], 7);
1430 EXPECT_EQ(lg[i++][2], 0);
1432 EXPECT_EQ(lg[i][0], 8);
1433 EXPECT_EQ(lg[i][1], 30);
1434 EXPECT_EQ(lg[i++][2], 9);
1436 EXPECT_EQ(lg[i][0], 12);
1437 EXPECT_EQ(lg[i][1], 6);
1438 EXPECT_EQ(lg[i++][2], 9);
1440 EXPECT_EQ(lg[i][0], 12);
1441 EXPECT_EQ(lg[i][1], 32);
1442 EXPECT_EQ(lg[i++][2], 13);
1444 EXPECT_EQ(lg[i][0], 13);
1445 EXPECT_EQ(lg[i][1], 33);
1446 EXPECT_EQ(lg[i++][2], 14);
1448 EXPECT_EQ(lg[i][0], 16);
1449 EXPECT_EQ(lg[i][1], 11);
1450 EXPECT_EQ(lg[i++][2], 14);
1452 EXPECT_EQ(lg[i][0], 16);
1453 EXPECT_EQ(lg[i][1], 34);
1454 EXPECT_EQ(lg[i++][2], 17);
1456 EXPECT_EQ(lg[i][0], 17);
1457 EXPECT_EQ(lg[i][1], 35);
1458 EXPECT_EQ(lg[i++][2], 18);
1460 EXPECT_EQ(lg[i][0], 20);
1461 EXPECT_EQ(lg[i][1], 15);
1462 EXPECT_EQ(lg[i++][2], 18);
1464 EXPECT_EQ(lg[i][0], 20);
1465 EXPECT_EQ(lg[i][1], 36);
1466 EXPECT_EQ(lg[i++][2], 21);
1468 EXPECT_EQ(lg[i][0], 21);
1469 EXPECT_EQ(lg[i][1], 37);
1470 EXPECT_EQ(lg[i++][2], 22);
1472 EXPECT_EQ(lg[i][0], 24);
1473 EXPECT_EQ(lg[i][1], 19);
1474 EXPECT_EQ(lg[i++][2], 22);
1476 EXPECT_EQ(lg[i][0], 24);
1477 EXPECT_EQ(lg[i][1], 38);
1478 EXPECT_EQ(lg[i++][2], 25);
1480 EXPECT_EQ(lg[i][0], 25);
1481 EXPECT_EQ(lg[i][1], 39);
1482 EXPECT_EQ(lg[i++][2], 26);
1484 EXPECT_EQ(lg[i][0], 27);
1485 EXPECT_EQ(lg[i][1], 23);
1486 EXPECT_EQ(lg[i++][2], 26);
1488 EXPECT_EQ(lg[i][0], 27);
1489 EXPECT_EQ(lg[i][1], 40);
1490 EXPECT_EQ(lg[i++][2], 28);
1492 EXPECT_EQ(lg[i][0], 28);
1493 EXPECT_EQ(lg[i][1], 41);
1494 EXPECT_EQ(lg[i++][2], 29);
1496 EXPECT_EQ(lg[i][0], 10);
1497 EXPECT_EQ(lg[i][1], 7);
1498 EXPECT_EQ(lg[i++][2], 29);
1500 EXPECT_EQ(lg[i][0], 10);
1501 EXPECT_EQ(lg[i][1], 31);
1502 EXPECT_EQ(lg[i++][2], 8);
1505 EXPECT_EQ(lg[i][0], 30);
1506 EXPECT_EQ(lg[i][1], 43);
1507 EXPECT_EQ(lg[i++][2], 42);
1509 EXPECT_EQ(lg[i][0], 32);
1510 EXPECT_EQ(lg[i][1], 44);
1511 EXPECT_EQ(lg[i++][2], 43);
1513 EXPECT_EQ(lg[i][0], 33);
1514 EXPECT_EQ(lg[i][1], 46);
1515 EXPECT_EQ(lg[i++][2], 45);
1517 EXPECT_EQ(lg[i][0], 34);
1518 EXPECT_EQ(lg[i][1], 47);
1519 EXPECT_EQ(lg[i++][2], 46);
1521 EXPECT_EQ(lg[i][0], 35);
1522 EXPECT_EQ(lg[i][1], 49);
1523 EXPECT_EQ(lg[i++][2], 48);
1525 EXPECT_EQ(lg[i][0], 36);
1526 EXPECT_EQ(lg[i][1], 50);
1527 EXPECT_EQ(lg[i++][2], 49);
1529 EXPECT_EQ(lg[i][0], 37);
1530 EXPECT_EQ(lg[i][1], 52);
1531 EXPECT_EQ(lg[i++][2], 51);
1533 EXPECT_EQ(lg[i][0], 38);
1534 EXPECT_EQ(lg[i][1], 53);
1535 EXPECT_EQ(lg[i++][2], 52);
1537 EXPECT_EQ(lg[i][0], 39);
1538 EXPECT_EQ(lg[i][1], 55);
1539 EXPECT_EQ(lg[i++][2], 54);
1541 EXPECT_EQ(lg[i][0], 40);
1542 EXPECT_EQ(lg[i][1], 56);
1543 EXPECT_EQ(lg[i++][2], 55);
1545 EXPECT_EQ(lg[i][0], 41);
1546 EXPECT_EQ(lg[i][1], 58);
1547 EXPECT_EQ(lg[i++][2], 57);
1549 EXPECT_EQ(lg[i][0], 31);
1550 EXPECT_EQ(lg[i][1], 59);
1551 EXPECT_EQ(lg[i++][2], 58);
1554 EXPECT_EQ(lg[i][0], 59);
1555 EXPECT_EQ(lg[i++][1], 42);
1557 EXPECT_EQ(lg[i][0], 44);
1558 EXPECT_EQ(lg[i++][1], 45);
1560 EXPECT_EQ(lg[i][0], 47);
1561 EXPECT_EQ(lg[i++][1], 48);
1563 EXPECT_EQ(lg[i][0], 50);
1564 EXPECT_EQ(lg[i++][1], 51);
1566 EXPECT_EQ(lg[i][0], 53);
1567 EXPECT_EQ(lg[i++][1], 54);
1569 EXPECT_EQ(lg[i][0], 56);
1570 EXPECT_EQ(lg[i++][1], 57);
1575 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1576 unsigned int nr = 3,
a = 2;
1579 Point pt1(0.23, 0.27, 0.0);
1582 Point pt2(-0.5, 0.29, 0.0);
1585 Point pt3(1.14, 0.275, 0.0);
1588 Point pt4(-0.77, 1.015, 0.0);
1591 Point pt5(-0.84, 0.445, 0.0);
1594 Point pt6(-0.47, 1.55, 0.0);
1597 Point pt7(-0.069, 1.94, 0.0);
1600 Point pt8(-1.22, 1.79, 0.0);
1603 Point pt10(-0.26, -1.61, 0.0);
1606 Point pt11(2.23, 0.03, 0.0);
1609 Point pt12(-1.77, -0.70, 0.0);
1615 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1616 unsigned int nr = 1,
a = 2;
1619 Real sin60 = std::sqrt(3.0) / 2.0;
1621 for (
const auto & n : normals)
1622 EXPECT_DOUBLE_EQ(n(2), 0.0);
1624 EXPECT_DOUBLE_EQ(normals[0](0), -1.0);
1625 EXPECT_DOUBLE_EQ(normals[0](1), 0.0);
1627 EXPECT_DOUBLE_EQ(normals[1](0), -0.5);
1628 EXPECT_DOUBLE_EQ(normals[1](1), -sin60);
1630 EXPECT_DOUBLE_EQ(normals[2](0), 0.5);
1631 EXPECT_DOUBLE_EQ(normals[2](1), -sin60);
1633 EXPECT_DOUBLE_EQ(normals[3](0), 1.0);
1634 EXPECT_DOUBLE_EQ(normals[3](1), 0.0);
1636 EXPECT_DOUBLE_EQ(normals[4](0), 0.5);
1637 EXPECT_DOUBLE_EQ(normals[4](1), sin60);
1639 EXPECT_DOUBLE_EQ(normals[5](0), -0.5);
1640 EXPECT_DOUBLE_EQ(normals[5](1), sin60);
1645 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1646 unsigned int nr = 2,
a = 2;
1649 Real sin60 = std::sqrt(3.0) / 2.0;
1651 for (
const auto & n : normals)
1652 EXPECT_DOUBLE_EQ(n(2), 0.0);
1654 EXPECT_DOUBLE_EQ(normals[0](0), -sin60);
1655 EXPECT_DOUBLE_EQ(normals[0](1), 0.5);
1657 EXPECT_DOUBLE_EQ(normals[1](0), -sin60);
1658 EXPECT_DOUBLE_EQ(normals[1](1), -0.5);
1660 EXPECT_DOUBLE_EQ(normals[2](0), 0.0);
1661 EXPECT_DOUBLE_EQ(normals[2](1), -1.0);
1663 EXPECT_DOUBLE_EQ(normals[3](0), sin60);
1664 EXPECT_DOUBLE_EQ(normals[3](1), -0.5);
1666 EXPECT_DOUBLE_EQ(normals[4](0), sin60);
1667 EXPECT_DOUBLE_EQ(normals[4](1), 0.5);
1669 EXPECT_DOUBLE_EQ(normals[5](0), 0.0);
1670 EXPECT_DOUBLE_EQ(normals[5](1), 1.0);
1672 EXPECT_DOUBLE_EQ(normals[6](0), 0.0);
1673 EXPECT_DOUBLE_EQ(normals[6](1), -1.0);
1675 EXPECT_DOUBLE_EQ(normals[7](0), -sin60);
1676 EXPECT_DOUBLE_EQ(normals[7](1), -0.5);
1678 EXPECT_DOUBLE_EQ(normals[8](0), sin60);
1679 EXPECT_DOUBLE_EQ(normals[8](1), -0.5);
1681 EXPECT_DOUBLE_EQ(normals[9](0), sin60);
1682 EXPECT_DOUBLE_EQ(normals[9](1), 0.5);
1684 EXPECT_DOUBLE_EQ(normals[10](0), 0.0);
1685 EXPECT_DOUBLE_EQ(normals[10](1), 1.0);
1687 EXPECT_DOUBLE_EQ(normals[11](0), -sin60);
1688 EXPECT_DOUBLE_EQ(normals[11](1), 0.5);
1690 EXPECT_DOUBLE_EQ(normals[12](0), -1.0);
1691 EXPECT_DOUBLE_EQ(normals[12](1), 0.0);
1693 EXPECT_DOUBLE_EQ(normals[13](0), -1.0);
1694 EXPECT_DOUBLE_EQ(normals[13](1), 0.0);
1696 EXPECT_DOUBLE_EQ(normals[14](0), -0.5);
1697 EXPECT_DOUBLE_EQ(normals[14](1), -sin60);
1699 EXPECT_DOUBLE_EQ(normals[15](0), -0.5);
1700 EXPECT_DOUBLE_EQ(normals[15](1), -sin60);
1702 EXPECT_DOUBLE_EQ(normals[16](0), 0.5);
1703 EXPECT_DOUBLE_EQ(normals[16](1), -sin60);
1705 EXPECT_DOUBLE_EQ(normals[17](0), 0.5);
1706 EXPECT_DOUBLE_EQ(normals[17](1), -sin60);
1708 EXPECT_DOUBLE_EQ(normals[18](0), 1.0);
1709 EXPECT_DOUBLE_EQ(normals[18](1), 0.0);
1711 EXPECT_DOUBLE_EQ(normals[19](0), 1.0);
1712 EXPECT_DOUBLE_EQ(normals[19](1), 0.0);
1714 EXPECT_DOUBLE_EQ(normals[20](0), 0.5);
1715 EXPECT_DOUBLE_EQ(normals[20](1), sin60);
1717 EXPECT_DOUBLE_EQ(normals[21](0), 0.5);
1718 EXPECT_DOUBLE_EQ(normals[21](1), sin60);
1720 EXPECT_DOUBLE_EQ(normals[22](0), -0.5);
1721 EXPECT_DOUBLE_EQ(normals[22](1), sin60);
1723 EXPECT_DOUBLE_EQ(normals[23](0), -0.5);
1724 EXPECT_DOUBLE_EQ(normals[23](1), sin60);
1729 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1730 unsigned int nr = 3,
a = 2;
1733 Real sin60 = std::sqrt(3.0) / 2.0;
1735 for (
const auto & n : normals)
1736 EXPECT_DOUBLE_EQ(n(2), 0.0);
1738 EXPECT_DOUBLE_EQ(normals[0](0), -sin60);
1739 EXPECT_DOUBLE_EQ(normals[0](1), 0.5);
1741 EXPECT_DOUBLE_EQ(normals[1](0), -sin60);
1742 EXPECT_DOUBLE_EQ(normals[1](1), -0.5);
1744 EXPECT_DOUBLE_EQ(normals[2](0), 0.0);
1745 EXPECT_DOUBLE_EQ(normals[2](1), -1.0);
1747 EXPECT_DOUBLE_EQ(normals[3](0), sin60);
1748 EXPECT_DOUBLE_EQ(normals[3](1), -0.5);
1750 EXPECT_DOUBLE_EQ(normals[4](0), sin60);
1751 EXPECT_DOUBLE_EQ(normals[4](1), 0.5);
1753 EXPECT_DOUBLE_EQ(normals[5](0), 0.0);
1754 EXPECT_DOUBLE_EQ(normals[5](1), 1.0);
1756 EXPECT_DOUBLE_EQ(normals[6](0), 0.0);
1757 EXPECT_DOUBLE_EQ(normals[6](1), -1.0);
1759 EXPECT_DOUBLE_EQ(normals[7](0), -sin60);
1760 EXPECT_DOUBLE_EQ(normals[7](1), -0.5);
1762 EXPECT_DOUBLE_EQ(normals[8](0), -sin60);
1763 EXPECT_DOUBLE_EQ(normals[8](1), 0.5);
1765 EXPECT_DOUBLE_EQ(normals[9](0), -sin60);
1766 EXPECT_DOUBLE_EQ(normals[9](1), -0.5);
1768 EXPECT_DOUBLE_EQ(normals[10](0), 0.0);
1769 EXPECT_DOUBLE_EQ(normals[10](1), 1.0);
1771 EXPECT_DOUBLE_EQ(normals[11](0), sin60);
1772 EXPECT_DOUBLE_EQ(normals[11](1), -0.5);
1774 EXPECT_DOUBLE_EQ(normals[12](0), -sin60);
1775 EXPECT_DOUBLE_EQ(normals[12](1), 0.5);
1777 EXPECT_DOUBLE_EQ(normals[13](0), -sin60);
1778 EXPECT_DOUBLE_EQ(normals[13](1), -0.5);
1780 EXPECT_DOUBLE_EQ(normals[14](0), 0.0);
1781 EXPECT_DOUBLE_EQ(normals[14](1), -1.0);
1783 EXPECT_DOUBLE_EQ(normals[15](0), sin60);
1784 EXPECT_DOUBLE_EQ(normals[15](1), 0.5);
1786 EXPECT_DOUBLE_EQ(normals[16](0), -sin60);
1787 EXPECT_DOUBLE_EQ(normals[16](1), -0.5);
1789 EXPECT_DOUBLE_EQ(normals[17](0), 0.0);
1790 EXPECT_DOUBLE_EQ(normals[17](1), -1.0);
1792 EXPECT_DOUBLE_EQ(normals[18](0), sin60);
1793 EXPECT_DOUBLE_EQ(normals[18](1), -0.5);
1795 EXPECT_DOUBLE_EQ(normals[19](0), 0.0);
1796 EXPECT_DOUBLE_EQ(normals[19](1), 1.0);
1798 EXPECT_DOUBLE_EQ(normals[20](0), 0.0);
1799 EXPECT_DOUBLE_EQ(normals[20](1), -1.0);
1801 EXPECT_DOUBLE_EQ(normals[21](0), sin60);
1802 EXPECT_DOUBLE_EQ(normals[21](1), -0.5);
1804 EXPECT_DOUBLE_EQ(normals[22](0), sin60);
1805 EXPECT_DOUBLE_EQ(normals[22](1), 0.5);
1807 EXPECT_DOUBLE_EQ(normals[23](0), -sin60);
1808 EXPECT_DOUBLE_EQ(normals[23](1), 0.5);
1810 EXPECT_DOUBLE_EQ(normals[24](0), sin60);
1811 EXPECT_DOUBLE_EQ(normals[24](1), -0.5);
1813 EXPECT_DOUBLE_EQ(normals[25](0), sin60);
1814 EXPECT_DOUBLE_EQ(normals[25](1), 0.5);
1816 EXPECT_DOUBLE_EQ(normals[26](0), 0.0);
1817 EXPECT_DOUBLE_EQ(normals[26](1), 1.0);
1819 EXPECT_DOUBLE_EQ(normals[27](0), sin60);
1820 EXPECT_DOUBLE_EQ(normals[27](1), 0.5);
1822 EXPECT_DOUBLE_EQ(normals[28](0), 0.0);
1823 EXPECT_DOUBLE_EQ(normals[28](1), 1.0);
1825 EXPECT_DOUBLE_EQ(normals[29](0), -sin60);
1826 EXPECT_DOUBLE_EQ(normals[29](1), 0.5);
1828 EXPECT_DOUBLE_EQ(normals[30](0), 0.0);
1829 EXPECT_DOUBLE_EQ(normals[30](1), -1.0);
1831 EXPECT_DOUBLE_EQ(normals[31](0), -sin60);
1832 EXPECT_DOUBLE_EQ(normals[31](1), -0.5);
1834 EXPECT_DOUBLE_EQ(normals[32](0), 0.0);
1835 EXPECT_DOUBLE_EQ(normals[32](1), -1.0);
1837 EXPECT_DOUBLE_EQ(normals[33](0), sin60);
1838 EXPECT_DOUBLE_EQ(normals[33](1), -0.5);
1840 EXPECT_DOUBLE_EQ(normals[34](0), sin60);
1841 EXPECT_DOUBLE_EQ(normals[34](1), -0.5);
1843 EXPECT_DOUBLE_EQ(normals[35](0), sin60);
1844 EXPECT_DOUBLE_EQ(normals[35](1), 0.5);
1846 EXPECT_DOUBLE_EQ(normals[36](0), sin60);
1847 EXPECT_DOUBLE_EQ(normals[36](1), 0.5);
1849 EXPECT_DOUBLE_EQ(normals[37](0), 0.0);
1850 EXPECT_DOUBLE_EQ(normals[37](1), 1.0);
1852 EXPECT_DOUBLE_EQ(normals[38](0), 0.0);
1853 EXPECT_DOUBLE_EQ(normals[38](1), 1.0);
1855 EXPECT_DOUBLE_EQ(normals[39](0), -sin60);
1856 EXPECT_DOUBLE_EQ(normals[39](1), 0.5);
1858 EXPECT_DOUBLE_EQ(normals[40](0), -sin60);
1859 EXPECT_DOUBLE_EQ(normals[40](1), 0.5);
1861 EXPECT_DOUBLE_EQ(normals[41](0), -sin60);
1862 EXPECT_DOUBLE_EQ(normals[41](1), -0.5);
1864 EXPECT_DOUBLE_EQ(normals[42](0), -1.0);
1865 EXPECT_DOUBLE_EQ(normals[42](1), 0.0);
1867 EXPECT_DOUBLE_EQ(normals[43](0), -1.0);
1868 EXPECT_DOUBLE_EQ(normals[43](1), 0.0);
1870 EXPECT_DOUBLE_EQ(normals[44](0), -1.0);
1871 EXPECT_DOUBLE_EQ(normals[44](1), 0.0);
1873 EXPECT_DOUBLE_EQ(normals[45](0), -0.5);
1874 EXPECT_DOUBLE_EQ(normals[45](1), -sin60);
1876 EXPECT_DOUBLE_EQ(normals[46](0), -0.5);
1877 EXPECT_DOUBLE_EQ(normals[46](1), -sin60);
1879 EXPECT_DOUBLE_EQ(normals[47](0), -0.5);
1880 EXPECT_DOUBLE_EQ(normals[47](1), -sin60);
1882 EXPECT_DOUBLE_EQ(normals[48](0), 0.5);
1883 EXPECT_DOUBLE_EQ(normals[48](1), -sin60);
1885 EXPECT_DOUBLE_EQ(normals[49](0), 0.5);
1886 EXPECT_DOUBLE_EQ(normals[49](1), -sin60);
1888 EXPECT_DOUBLE_EQ(normals[50](0), 0.5);
1889 EXPECT_DOUBLE_EQ(normals[50](1), -sin60);
1891 EXPECT_DOUBLE_EQ(normals[51](0), 1.0);
1892 EXPECT_DOUBLE_EQ(normals[51](1), 0.0);
1894 EXPECT_DOUBLE_EQ(normals[52](0), 1.0);
1895 EXPECT_DOUBLE_EQ(normals[52](1), 0.0);
1897 EXPECT_DOUBLE_EQ(normals[53](0), 1.0);
1898 EXPECT_DOUBLE_EQ(normals[53](1), 0.0);
1900 EXPECT_DOUBLE_EQ(normals[54](0), 0.5);
1901 EXPECT_DOUBLE_EQ(normals[54](1), sin60);
1903 EXPECT_DOUBLE_EQ(normals[55](0), 0.5);
1904 EXPECT_DOUBLE_EQ(normals[55](1), sin60);
1906 EXPECT_DOUBLE_EQ(normals[56](0), 0.5);
1907 EXPECT_DOUBLE_EQ(normals[56](1), sin60);
1909 EXPECT_DOUBLE_EQ(normals[57](0), -0.5);
1910 EXPECT_DOUBLE_EQ(normals[57](1), sin60);
1912 EXPECT_DOUBLE_EQ(normals[58](0), -0.5);
1913 EXPECT_DOUBLE_EQ(normals[58](1), sin60);
1915 EXPECT_DOUBLE_EQ(normals[59](0), -0.5);
1916 EXPECT_DOUBLE_EQ(normals[59](1), sin60);
1921 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
1922 unsigned int nr = 2,
a = 2;
1925 Real sin60 = std::sqrt(3.0) / 2.0;
1929 double side = 0.46188021535170065;
1930 const auto & pin0 = pin_corners[0];
1931 EXPECT_DOUBLE_EQ(pin0[0](0), 0.0);
1932 EXPECT_DOUBLE_EQ(pin0[0](1), side);
1934 EXPECT_DOUBLE_EQ(pin0[1](0), -side * sin60);
1935 EXPECT_DOUBLE_EQ(pin0[1](1), side * cos60);
1937 EXPECT_DOUBLE_EQ(pin0[2](0), -side * sin60);
1938 EXPECT_DOUBLE_EQ(pin0[2](1), -side * cos60);
1940 EXPECT_DOUBLE_EQ(pin0[3](0), (
unsigned int)0);
1941 EXPECT_DOUBLE_EQ(pin0[3](1), -side);
1943 EXPECT_DOUBLE_EQ(pin0[4](0), side * sin60);
1944 EXPECT_DOUBLE_EQ(pin0[4](1), -side * cos60);
1946 EXPECT_DOUBLE_EQ(pin0[5](0), side * sin60);
1947 EXPECT_DOUBLE_EQ(pin0[5](1), side * cos60);
1951 const auto & pin1 = pin_corners[1];
1952 double x = pin_centers[1](0);
1953 double y = pin_centers[1](1);
1955 EXPECT_DOUBLE_EQ(pin1[0](0),
x + 0.0);
1956 EXPECT_DOUBLE_EQ(pin1[0](1),
y + side);
1958 ABS_DOUBLE_TEST(pin1[1](0),
x + -side * sin60);
1959 EXPECT_DOUBLE_EQ(pin1[1](1),
y + side * cos60);
1961 ABS_DOUBLE_TEST(pin1[2](0),
x + -side * sin60);
1962 EXPECT_DOUBLE_EQ(pin1[2](1),
y + -side * cos60);
1964 EXPECT_DOUBLE_EQ(pin1[3](0),
x + 0);
1965 EXPECT_DOUBLE_EQ(pin1[3](1),
y + -side);
1967 EXPECT_DOUBLE_EQ(pin1[4](0),
x + side * sin60);
1968 EXPECT_DOUBLE_EQ(pin1[4](1),
y + -side * cos60);
1970 EXPECT_DOUBLE_EQ(pin1[5](0),
x + side * sin60);
1971 EXPECT_DOUBLE_EQ(pin1[5](1),
y + side * cos60);
1974 Point p(0.07, 0.195, 0.0);
1977 p = {0.02, 0.42, 0.0};
1980 p = {0.74, 0.46, 0.0};
1983 p = {-0.206, 0.668, 0.0};
1986 p = {-0.99, 0.313, 0.0};
1989 p = {-0.257, -0.67, 0.0};
1992 p = {0.67, -0.79, 0.0};
1995 p = {0.43, 0.0206, 0.0};
1998 p = {0.85, 0.51, 0.0};
2004 Real bp = 4.0, pp = 0.8, pd = 0.6, wd = 0.05, wp = 50.0;
2005 unsigned int nr = 3,
a = 2;
2008 EXPECT_DOUBLE_EQ(hl.
pinPitch(), 0.8);
Real cornerFlowVolume() const
Get the flow volume of an corner channel per wire pitch.
Real cornerWettedArea() const
Get the wetted area of a corner channel per wire pitch.
unsigned int rings(const unsigned int n) const
Get the number of rings for a specified number of pins.
unsigned int pinIndex(const Point &point) const
Get the pin index given a point.
unsigned int nInteriorPins() const
Get the number of interior pins.
unsigned int nChannels() const
Get the total number of channels.
unsigned int channelIndex(const Point &point) const
Get the channel index given a point.
channel_type::ChannelTypeEnum channelType(const Point &p) const
Get the channel type (interior, edge, corner) given a point.
Real interiorFlowVolume() const
Get the flow volume of an interior channel per wire pitch.
const std::vector< std::vector< unsigned int > > & interiorChannelPinIndices() const
Get the pin indices forming the corners of all interior channels.
const std::vector< double > y
Real flowVolume() const
Get the flow volume of the bundle per wire pitch.
unsigned int nEdgeChannels() const
Get the number of edge channels.
Real pinBundleSpacing() const
Get the distance between the outermost pins and the duct walls.
Real edgeWettedArea() const
Get the wetted area of an edge channel per wire pitch.
const std::vector< std::vector< unsigned int > > & cornerChannelPinIndices() const
Get the pin indices forming one of the corners of all corner channels.
unsigned int nCornerPins() const
Get the number of corner pins.
Real wireDiameter() const
Get the wire diameter.
const std::vector< std::vector< unsigned int > > & edgeChannelPinIndices() const
Get the pin indices forming two of the corners of all edge channels.
unsigned int gapIndex(const Point &point) const
Get the index for the gap closest to the point.
Real wirePitch() const
Get the wire pitch.
Class providing various utility functions related to triangular lattices of pins enclosed in a hexago...
unsigned int nCornerChannels() const
Get the number of corner channels.
const std::vector< double > x
Real wettedArea() const
Get the wetted area of entire bundle per wire pitch.
unsigned int nInteriorChannels() const
Get the number of interior channels.
unsigned int pins(const unsigned int n) const
Get the number of pins in a given ring.
bool lastGapInRing(const unsigned int gap_index) const
Whether this gap is the "last" in the ring, i.e.
const std::vector< std::vector< int > > & localToGlobalGaps() const
For each subchannel, get the indices of the gaps that touch that subchannel.
unsigned int nEdgePins() const
Get the number of edge pins.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::vector< std::pair< int, int > > & gapIndices() const
Get the pin and side indices on each gap.
Real pinRadius() const
Get the pin outer radius.
const std::vector< std::vector< Point > > & pinCenteredCornerCoordinates() const
Get the corner coordinates of a hexagon surrounding each pin.
IntRange< T > make_range(T beg, T end)
unsigned int nGaps() const
Get the number of gaps.
const std::vector< Point > & gapUnitNormals() const
Get the unit normals for all of the gaps.
Real hydraulicDiameter() const
Get the overall bundle hydraulic diameter.
const std::vector< Point > & pinCenters() const
Get the center coordinates of the pins.
Real interiorWettedArea() const
Get the wetted area of an interior channel per wire pitch.
TEST_F(HexagonalLatticeTest, rings_and_pins)
Real pinPitch() const
Get the pin pitch.
unsigned int firstPinInRing(const unsigned int ring) const
Get the index of the "first" pin in a ring.
unsigned int nInteriorGaps() const
Get the number of gaps that touch an interior channel.
Real edgeFlowVolume() const
Get the flow volume of an edge channel per wire pitch.
void ErrorVector unsigned int
unsigned int nPins() const
Get the total number of pins for the lattice.
unsigned int lastPinInRing(const unsigned int ring) const
Get the index of the "last" pin in a ring.
Real bundlePitch() const
Get the bundle pitch.
Real pinDiameter() const
Get the pin diameter.