1 // WARNING: this file was generated by ../scripts/gen-shaping-tests.py
2
3 mod shaping_impl;
4 use shaping_impl::shape;
5
6 #[test]
classdef1_001()7 fn classdef1_001() {
8 assert_eq!(
9 shape(
10 "tests/fonts/aots/classdef1_font4.otf",
11 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
12 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
13 ),
14 "17|\
15 18|\
16 19|\
17 20|\
18 21"
19 );
20 }
21
22 #[test]
classdef1_empty_001()23 fn classdef1_empty_001() {
24 assert_eq!(
25 shape(
26 "tests/fonts/aots/classdef1_font2.otf",
27 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
28 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
29 ),
30 "17|\
31 23|\
32 24|\
33 25|\
34 21"
35 );
36 }
37
38 #[test]
classdef1_multiple_001()39 fn classdef1_multiple_001() {
40 assert_eq!(
41 shape(
42 "tests/fonts/aots/classdef1_font3.otf",
43 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\
44 \u{001B}\u{001C}\u{001D}\u{001E}\u{001F}\u{0020}\u{0021}\u{0022}\u{0023}\u{0024}",
45 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
46 ),
47 "20|\
48 23|\
49 24|\
50 25|\
51 24|\
52 26|\
53 27|\
54 28|\
55 28|\
56 29|\
57 30|\
58 31|\
59 34|\
60 33|\
61 34|\
62 35|\
63 37|\
64 38|\
65 38|\
66 39"
67 );
68 }
69
70 #[test]
classdef1_single_001()71 fn classdef1_single_001() {
72 assert_eq!(
73 shape(
74 "tests/fonts/aots/classdef2_font1.otf",
75 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
76 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
77 ),
78 "17|\
79 23|\
80 24|\
81 25|\
82 21"
83 );
84 }
85
86 #[test]
classdef2_001()87 fn classdef2_001() {
88 assert_eq!(
89 shape(
90 "tests/fonts/aots/classdef2_font4.otf",
91 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
92 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
93 ),
94 "17|\
95 18|\
96 19|\
97 20|\
98 21"
99 );
100 }
101
102 #[test]
classdef2_empty_001()103 fn classdef2_empty_001() {
104 assert_eq!(
105 shape(
106 "tests/fonts/aots/classdef2_font2.otf",
107 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
108 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
109 ),
110 "17|\
111 23|\
112 24|\
113 25|\
114 21"
115 );
116 }
117
118 #[test]
classdef2_multiple_001()119 fn classdef2_multiple_001() {
120 assert_eq!(
121 shape(
122 "tests/fonts/aots/classdef2_font3.otf",
123 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\
124 \u{001B}\u{001C}\u{001D}\u{001E}\u{001F}\u{0020}\u{0021}\u{0022}\u{0023}\u{0024}",
125 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
126 ),
127 "20|\
128 23|\
129 24|\
130 25|\
131 24|\
132 26|\
133 27|\
134 28|\
135 28|\
136 29|\
137 30|\
138 31|\
139 34|\
140 33|\
141 34|\
142 35|\
143 37|\
144 38|\
145 38|\
146 39"
147 );
148 }
149
150 #[test]
classdef2_single_001()151 fn classdef2_single_001() {
152 assert_eq!(
153 shape(
154 "tests/fonts/aots/classdef2_font1.otf",
155 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
156 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
157 ),
158 "17|\
159 23|\
160 24|\
161 25|\
162 21"
163 );
164 }
165
166 #[test]
gpos1_1_lookupflag_001()167 fn gpos1_1_lookupflag_001() {
168 assert_eq!(
169 shape(
170 "tests/fonts/aots/gpos1_1_lookupflag_f1.otf",
171 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
172 "--features=\"test\" --no-clusters --no-glyph-names --ned",
173 ),
174 "17|\
175 18@1500,0|\
176 19@3000,0|\
177 20@4200,0|\
178 21@6000,0"
179 );
180 }
181
182 #[test]
gpos1_1_simple_001()183 fn gpos1_1_simple_001() {
184 assert_eq!(
185 shape(
186 "tests/fonts/aots/gpos1_1_simple_f1.otf",
187 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
188 "--features=\"test\" --no-clusters --no-glyph-names --ned",
189 ),
190 "17|\
191 18@1300,0|\
192 19@3000,0|\
193 20@4300,0|\
194 21@6000,0"
195 );
196 }
197
198 #[test]
gpos1_1_simple_002()199 fn gpos1_1_simple_002() {
200 assert_eq!(
201 shape(
202 "tests/fonts/aots/gpos1_1_simple_f2.otf",
203 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
204 "--features=\"test\" --no-clusters --no-glyph-names --ned",
205 ),
206 "17|\
207 18@1500,-200|\
208 19@3000,0|\
209 20@4500,-200|\
210 21@6000,0"
211 );
212 }
213
214 #[test]
gpos1_1_simple_003()215 fn gpos1_1_simple_003() {
216 assert_eq!(
217 shape(
218 "tests/fonts/aots/gpos1_1_simple_f3.otf",
219 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
220 "--features=\"test\" --no-clusters --no-glyph-names --ned",
221 ),
222 "17|\
223 18@1500,0|\
224 19@2800,0|\
225 20@4300,0|\
226 21@5600,0"
227 );
228 }
229
230 #[test]
gpos1_2_001()231 fn gpos1_2_001() {
232 assert_eq!(
233 shape(
234 "tests/fonts/aots/gpos1_2_font1.otf",
235 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
236 "--features=\"test\" --no-clusters --no-glyph-names --ned",
237 ),
238 "17|\
239 18@1300,0|\
240 19@3000,0|\
241 20@4200,0|\
242 21@6000,0"
243 );
244 }
245
246 #[test]
gpos1_2_lookupflag_001()247 fn gpos1_2_lookupflag_001() {
248 assert_eq!(
249 shape(
250 "tests/fonts/aots/gpos1_2_font2.otf",
251 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
252 "--features=\"test\" --no-clusters --no-glyph-names --ned",
253 ),
254 "17|\
255 18@1500,0|\
256 19@3000,0|\
257 20@4200,0|\
258 21@6000,0"
259 );
260 }
261
262 #[test]
gpos2_1_001()263 fn gpos2_1_001() {
264 assert_eq!(
265 shape(
266 "tests/fonts/aots/gpos2_1_font6.otf",
267 "\u{0011}\u{0012}\u{0013}\u{0011}\u{0012}\u{0014}\u{0011}",
268 "--features=\"test\" --no-clusters --no-glyph-names --ned",
269 ),
270 "17|\
271 18@1300,0|\
272 19@3000,-100|\
273 17@4500,0|\
274 18@5700,0|\
275 20@7500,-400|\
276 17@9000,0"
277 );
278 }
279
280 #[test]
gpos2_1_002()281 fn gpos2_1_002() {
282 assert_eq!(
283 shape(
284 "tests/fonts/aots/gpos2_1_font7.otf",
285 "\u{0011}\u{0012}\u{0013}\u{0011}\u{0012}\u{0014}\u{0011}\u{0015}\u{0016}\u{0011}",
286 "--features=\"test\" --no-clusters --no-glyph-names --ned",
287 ),
288 "17|\
289 18@1300,0|\
290 19@3000,-100|\
291 17@4500,0|\
292 18@5700,0|\
293 20@7500,-400|\
294 17@9000,0|\
295 21@10000,0|\
296 22@12000,-600|\
297 17@13500,0"
298 );
299 }
300
301 #[test]
gpos2_1_lookupflag_001()302 fn gpos2_1_lookupflag_001() {
303 assert_eq!(
304 shape(
305 "tests/fonts/aots/gpos2_1_lookupflag_f1.otf",
306 "\u{0011}\u{0013}\u{0014}\u{0011}\u{0013}\u{0012}\u{0014}\u{0011}",
307 "--features=\"test\" --no-clusters --no-glyph-names --ned",
308 ),
309 "17|\
310 19@1300,0|\
311 20@3000,-100|\
312 17@4500,0|\
313 19@5800,0|\
314 18@7500,0|\
315 20@9000,-100|\
316 17@10500,0"
317 );
318 }
319
320 #[test]
gpos2_1_lookupflag_002()321 fn gpos2_1_lookupflag_002() {
322 assert_eq!(
323 shape(
324 "tests/fonts/aots/gpos2_1_lookupflag_f2.otf",
325 "\u{0011}\u{0013}\u{0014}\u{0011}\u{0013}\u{0012}\u{0014}\u{0011}",
326 "--features=\"test\" --no-clusters --no-glyph-names --ned",
327 ),
328 "17|\
329 19@1500,0|\
330 20@2800,-100|\
331 17@4300,0|\
332 19@5800,0|\
333 18@7100,0|\
334 20@8600,-100|\
335 17@10100,0"
336 );
337 }
338
339 #[test]
gpos2_1_next_glyph_001()340 fn gpos2_1_next_glyph_001() {
341 assert_eq!(
342 shape(
343 "tests/fonts/aots/gpos2_1_next_glyph_f1.otf",
344 "\u{0012}\u{0012}\u{0012}\u{0012}",
345 "--features=\"test\" --no-clusters --no-glyph-names --ned",
346 ),
347 "18@-100,0|\
348 18@1500,-100|\
349 18@2900,0|\
350 18@4500,-100"
351 );
352 }
353
354 #[test]
gpos2_1_next_glyph_002()355 fn gpos2_1_next_glyph_002() {
356 assert_eq!(
357 shape(
358 "tests/fonts/aots/gpos2_1_next_glyph_f2.otf",
359 "\u{0012}\u{0012}\u{0012}\u{0012}",
360 "--features=\"test\" --no-clusters --no-glyph-names --ned",
361 ),
362 "18@-100,0|\
363 18@1400,0|\
364 18@2900,0|\
365 18@4500,0"
366 );
367 }
368
369 #[test]
gpos2_1_simple_001()370 fn gpos2_1_simple_001() {
371 assert_eq!(
372 shape(
373 "tests/fonts/aots/gpos2_1_simple_f1.otf",
374 "\u{0011}\u{0012}\u{0013}\u{0011}\u{0012}\u{0014}",
375 "--features=\"test\" --no-clusters --no-glyph-names --ned",
376 ),
377 "17|\
378 18@1300,0|\
379 19@3000,-100|\
380 17@4500,0|\
381 18@6000,0|\
382 20@7500,0"
383 );
384 }
385
386 #[test]
gpos2_1_simple_002()387 fn gpos2_1_simple_002() {
388 assert_eq!(
389 shape(
390 "tests/fonts/aots/gpos2_1_simple_f1.otf",
391 "\u{0011}\u{0012}",
392 "--features=\"test\" --no-clusters --no-glyph-names --ned",
393 ),
394 "17|\
395 18@1500,0"
396 );
397 }
398
399 #[test]
gpos2_2_001()400 fn gpos2_2_001() {
401 assert_eq!(
402 shape(
403 "tests/fonts/aots/gpos2_2_font1.otf",
404 "\u{0011}\u{0012}\u{0013}\u{0011}\u{0012}\u{0014}",
405 "--features=\"test\" --no-clusters --no-glyph-names --ned",
406 ),
407 "17|\
408 18@1300,0|\
409 19@3000,-100|\
410 17@4500,0|\
411 18@6000,0|\
412 20@7500,0"
413 );
414 }
415
416 #[test]
gpos2_2_002()417 fn gpos2_2_002() {
418 assert_eq!(
419 shape(
420 "tests/fonts/aots/gpos2_2_font2.otf",
421 "\u{0011}\u{0013}\u{0014}\u{0011}\u{0013}\u{0012}\u{0014}\u{0011}",
422 "--features=\"test\" --no-clusters --no-glyph-names --ned",
423 ),
424 "17|\
425 19@1300,0|\
426 20@3000,-100|\
427 17@4500,0|\
428 19@5800,0|\
429 18@7500,0|\
430 20@9000,-100|\
431 17@10500,0"
432 );
433 }
434
435 #[test]
gpos2_2_003()436 fn gpos2_2_003() {
437 assert_eq!(
438 shape(
439 "tests/fonts/aots/gpos2_2_font3.otf",
440 "\u{0011}\u{0013}\u{0014}\u{0011}\u{0013}\u{0012}\u{0014}\u{0011}",
441 "--features=\"test\" --no-clusters --no-glyph-names --ned",
442 ),
443 "17|\
444 19@1500,0|\
445 20@2800,-100|\
446 17@4300,0|\
447 19@5800,0|\
448 18@7100,0|\
449 20@8600,-100|\
450 17@10100,0"
451 );
452 }
453
454 #[test]
gpos2_2_004()455 fn gpos2_2_004() {
456 assert_eq!(
457 shape(
458 "tests/fonts/aots/gpos2_2_font4.otf",
459 "\u{0012}\u{0012}\u{0012}\u{0012}",
460 "--features=\"test\" --no-clusters --no-glyph-names --ned",
461 ),
462 "18@-100,0|\
463 18@1500,-100|\
464 18@2900,0|\
465 18@4500,-100"
466 );
467 }
468
469 #[test]
gpos2_2_005()470 fn gpos2_2_005() {
471 assert_eq!(
472 shape(
473 "tests/fonts/aots/gpos2_2_font5.otf",
474 "\u{0012}\u{0012}\u{0012}\u{0012}",
475 "--features=\"test\" --no-clusters --no-glyph-names --ned",
476 ),
477 "18@-100,0|\
478 18@1400,0|\
479 18@2900,0|\
480 18@4500,0"
481 );
482 }
483
484 #[test]
gpos3_002()485 fn gpos3_002() {
486 assert_eq!(
487 shape(
488 "tests/fonts/aots/gpos3_font1.otf",
489 "\u{0011}\u{0012}\u{0011}\u{0013}\u{0011}",
490 "--features=\"test\" --no-clusters --no-glyph-names --ned",
491 ),
492 "17|\
493 18@1500,0|\
494 17@3000,0|\
495 19@4500,0|\
496 17@6000,0"
497 );
498 }
499
500 #[test]
gpos3_007()501 fn gpos3_007() {
502 assert_eq!(
503 shape(
504 "tests/fonts/aots/gpos3_font3.otf",
505 "\u{0011}\u{0012}\u{0014}\u{0011}",
506 "--features=\"test\" --no-clusters --no-glyph-names --ned",
507 ),
508 "17|\
509 18@1500,0|\
510 20@3000,0|\
511 17@4500,0"
512 );
513 }
514
515 #[test]
gpos3_008()516 fn gpos3_008() {
517 assert_eq!(
518 shape(
519 "tests/fonts/aots/gpos3_font3.otf",
520 "\u{0011}\u{0013}\u{0012}\u{0011}",
521 "--features=\"test\" --no-clusters --no-glyph-names --ned",
522 ),
523 "17|\
524 19@1500,0|\
525 18@3000,0|\
526 17@4500,0"
527 );
528 }
529
530 #[test]
gpos3_009()531 fn gpos3_009() {
532 assert_eq!(
533 shape(
534 "tests/fonts/aots/gpos3_font3.otf",
535 "\u{0011}\u{0013}\u{0014}\u{0011}",
536 "--features=\"test\" --no-clusters --no-glyph-names --ned",
537 ),
538 "17|\
539 19@1500,0|\
540 20@3000,0|\
541 17@4500,0"
542 );
543 }
544
545 #[test]
gpos3_010()546 fn gpos3_010() {
547 assert_eq!(
548 shape(
549 "tests/fonts/aots/gpos3_font3.otf",
550 "\u{0011}\u{0012}",
551 "--features=\"test\" --no-clusters --no-glyph-names --ned",
552 ),
553 "17|\
554 18@1500,0"
555 );
556 }
557
558 #[test]
gpos3_011()559 fn gpos3_011() {
560 assert_eq!(
561 shape(
562 "tests/fonts/aots/gpos3_font3.otf",
563 "\u{0011}\u{0012}\u{0015}\u{0015}\u{0015}",
564 "--features=\"test\" --no-clusters --no-glyph-names --ned",
565 ),
566 "17|\
567 18@1500,0|\
568 21@3000,0|\
569 21@4500,0|\
570 21@6000,0"
571 );
572 }
573
574 #[test]
gpos7_1_001()575 fn gpos7_1_001() {
576 assert_eq!(
577 shape(
578 "tests/fonts/aots/gpos7_1_font1.otf",
579 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
580 "--features=\"test\" --no-clusters --no-glyph-names --ned",
581 ),
582 "17|\
583 18@1600,0|\
584 19@3200,0|\
585 20@4800,0|\
586 21@6000,0"
587 );
588 }
589
590 #[test]
gpos7_1_002()591 fn gpos7_1_002() {
592 assert_eq!(
593 shape(
594 "tests/fonts/aots/gpos7_1_font1.otf",
595 "\u{0011}\u{0012}\u{0011}\u{0012}\u{0013}\u{0011}",
596 "--features=\"test\" --no-clusters --no-glyph-names --ned",
597 ),
598 "17|\
599 18@1500,0|\
600 17@3000,0|\
601 18@4500,0|\
602 19@6000,0|\
603 17@7500,0"
604 );
605 }
606
607 #[test]
gpos9_001()608 fn gpos9_001() {
609 assert_eq!(
610 shape(
611 "tests/fonts/aots/gpos9_font1.otf",
612 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
613 "--features=\"test\" --no-clusters --no-glyph-names --ned",
614 ),
615 "17|\
616 18@1300,0|\
617 19@3000,0|\
618 20@4300,0|\
619 21@6000,0"
620 );
621 }
622
623 #[test]
gpos9_002()624 fn gpos9_002() {
625 assert_eq!(
626 shape(
627 "tests/fonts/aots/gpos9_font2.otf",
628 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}\u{0011}",
629 "--features=\"test\" --no-clusters --no-glyph-names --ned",
630 ),
631 "17|\
632 18@1300,0|\
633 19@2700,0|\
634 20@4300,0|\
635 21@5700,0|\
636 17@7500,0"
637 );
638 }
639
640 #[test]
gpos_chaining1_boundary_001()641 fn gpos_chaining1_boundary_001() {
642 assert_eq!(
643 shape(
644 "tests/fonts/aots/gpos_chaining1_boundary_f1.otf",
645 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
646 "--features=\"test\" --no-clusters --no-glyph-names --ned",
647 ),
648 "0|\
649 20@1500,0|\
650 21@3000,0|\
651 22@4500,0|\
652 23@6000,0|\
653 0@7500,0"
654 );
655 }
656
657 #[test]
gpos_chaining1_boundary_002()658 fn gpos_chaining1_boundary_002() {
659 assert_eq!(
660 shape(
661 "tests/fonts/aots/gpos_chaining1_boundary_f2.otf",
662 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
663 "--features=\"test\" --no-clusters --no-glyph-names --ned",
664 ),
665 "0|\
666 20@1500,0|\
667 21@3020,0|\
668 22@4500,0|\
669 23@6000,0|\
670 0@7500,0"
671 );
672 }
673
674 #[test]
gpos_chaining1_boundary_003()675 fn gpos_chaining1_boundary_003() {
676 assert_eq!(
677 shape(
678 "tests/fonts/aots/gpos_chaining1_boundary_f3.otf",
679 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
680 "--features=\"test\" --no-clusters --no-glyph-names --ned",
681 ),
682 "0|\
683 20@1500,0|\
684 21@3020,0|\
685 22@4500,0|\
686 23@6000,0|\
687 0@7500,0"
688 );
689 }
690
691 #[test]
gpos_chaining1_boundary_004()692 fn gpos_chaining1_boundary_004() {
693 assert_eq!(
694 shape(
695 "tests/fonts/aots/gpos_chaining1_boundary_f4.otf",
696 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
697 "--features=\"test\" --no-clusters --no-glyph-names --ned",
698 ),
699 "0|\
700 20@1500,0|\
701 21@3000,0|\
702 22@4520,0|\
703 23@6000,0|\
704 0@7500,0"
705 );
706 }
707
708 #[test]
gpos_chaining1_multiple_subrules_001()709 fn gpos_chaining1_multiple_subrules_001() {
710 assert_eq!(
711 shape(
712 "tests/fonts/aots/gpos_chaining1_multiple_subrules_f1.otf",
713 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
714 \u{0017}\u{0000}",
715 "--features=\"test\" --no-clusters --no-glyph-names --ned",
716 ),
717 "0|\
718 20@1500,0|\
719 21@3020,0|\
720 22@4500,0|\
721 23@6000,0|\
722 24@7500,0|\
723 0@9000,0|\
724 20@10500,0|\
725 21@12000,0|\
726 22@13520,0|\
727 23@15000,0|\
728 0@16500,0"
729 );
730 }
731
732 #[test]
gpos_chaining1_multiple_subrules_002()733 fn gpos_chaining1_multiple_subrules_002() {
734 assert_eq!(
735 shape(
736 "tests/fonts/aots/gpos_chaining1_multiple_subrules_f2.otf",
737 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
738 \u{0017}\u{0000}",
739 "--features=\"test\" --no-clusters --no-glyph-names --ned",
740 ),
741 "0|\
742 20@1500,0|\
743 21@3000,0|\
744 22@4520,0|\
745 23@6000,0|\
746 24@7500,0|\
747 0@9000,0|\
748 20@10500,0|\
749 21@12000,0|\
750 22@13520,0|\
751 23@15000,0|\
752 0@16500,0"
753 );
754 }
755
756 #[test]
gpos_chaining1_next_glyph_001()757 fn gpos_chaining1_next_glyph_001() {
758 assert_eq!(
759 shape(
760 "tests/fonts/aots/gpos_chaining1_next_glyph_f1.otf",
761 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
762 "--features=\"test\" --no-clusters --no-glyph-names --ned",
763 ),
764 "0|\
765 20@1500,0|\
766 21@3020,0|\
767 22@4520,0|\
768 23@6020,0|\
769 0@7500,0"
770 );
771 }
772
773 #[test]
gpos_chaining1_simple_001()774 fn gpos_chaining1_simple_001() {
775 assert_eq!(
776 shape(
777 "tests/fonts/aots/gpos_chaining1_simple_f1.otf",
778 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
779 "--features=\"test\" --no-clusters --no-glyph-names --ned",
780 ),
781 "0|\
782 20@1500,0|\
783 21@3020,0|\
784 22@4520,0|\
785 23@6000,0|\
786 0@7500,0"
787 );
788 }
789
790 #[test]
gpos_chaining1_simple_002()791 fn gpos_chaining1_simple_002() {
792 assert_eq!(
793 shape(
794 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
795 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
796 "--features=\"test\" --no-clusters --no-glyph-names --ned",
797 ),
798 "0|\
799 20@1500,0|\
800 21@3000,0|\
801 22@4520,0|\
802 23@6000,0|\
803 24@7500,0|\
804 25@9000,0|\
805 26@10500,0|\
806 0@12000,0"
807 );
808 }
809
810 #[test]
gpos_chaining1_simple_003()811 fn gpos_chaining1_simple_003() {
812 assert_eq!(
813 shape(
814 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
815 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{0000}\u{0000}",
816 "--features=\"test\" --no-clusters --no-glyph-names --ned",
817 ),
818 "0|\
819 20@1500,0|\
820 21@3000,0|\
821 22@4500,0|\
822 23@6000,0|\
823 24@7500,0|\
824 25@9000,0|\
825 0@10500,0|\
826 0@12000,0"
827 );
828 }
829
830 #[test]
gpos_chaining1_simple_004()831 fn gpos_chaining1_simple_004() {
832 assert_eq!(
833 shape(
834 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
835 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}",
836 "--features=\"test\" --no-clusters --no-glyph-names --ned",
837 ),
838 "0|\
839 20@1500,0|\
840 21@3000,0|\
841 22@4500,0|\
842 23@6000,0|\
843 24@7500,0|\
844 25@9000,0"
845 );
846 }
847
848 #[test]
gpos_chaining1_simple_005()849 fn gpos_chaining1_simple_005() {
850 assert_eq!(
851 shape(
852 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
853 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
854 "--features=\"test\" --no-clusters --no-glyph-names --ned",
855 ),
856 "0|\
857 20@1500,0|\
858 21@3000,0|\
859 22@4500,0|\
860 23@6000,0|\
861 24@7500,0"
862 );
863 }
864
865 #[test]
gpos_chaining1_simple_006()866 fn gpos_chaining1_simple_006() {
867 assert_eq!(
868 shape(
869 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
870 "\u{0000}\u{0000}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
871 "--features=\"test\" --no-clusters --no-glyph-names --ned",
872 ),
873 "0|\
874 0@1500,0|\
875 21@3000,0|\
876 22@4500,0|\
877 23@6000,0|\
878 24@7500,0|\
879 25@9000,0|\
880 26@10500,0|\
881 0@12000,0"
882 );
883 }
884
885 #[test]
gpos_chaining1_simple_007()886 fn gpos_chaining1_simple_007() {
887 assert_eq!(
888 shape(
889 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
890 "\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
891 "--features=\"test\" --no-clusters --no-glyph-names --ned",
892 ),
893 "21|\
894 22@1500,0|\
895 23@3000,0|\
896 24@4500,0|\
897 25@6000,0|\
898 26@7500,0|\
899 0@9000,0"
900 );
901 }
902
903 #[test]
gpos_chaining1_simple_008()904 fn gpos_chaining1_simple_008() {
905 assert_eq!(
906 shape(
907 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
908 "\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
909 "--features=\"test\" --no-clusters --no-glyph-names --ned",
910 ),
911 "22|\
912 23@1500,0|\
913 24@3000,0|\
914 25@4500,0|\
915 26@6000,0|\
916 0@7500,0"
917 );
918 }
919
920 #[test]
gpos_chaining1_simple_009()921 fn gpos_chaining1_simple_009() {
922 assert_eq!(
923 shape(
924 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
925 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0018}\u{0019}\u{001A}\u{0000}",
926 "--features=\"test\" --no-clusters --no-glyph-names --ned",
927 ),
928 "0|\
929 20@1500,0|\
930 21@3000,0|\
931 22@4500,0|\
932 0@6000,0|\
933 24@7500,0|\
934 25@9000,0|\
935 26@10500,0|\
936 0@12000,0"
937 );
938 }
939
940 #[test]
gpos_chaining1_simple_010()941 fn gpos_chaining1_simple_010() {
942 assert_eq!(
943 shape(
944 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
945 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}",
946 "--features=\"test\" --no-clusters --no-glyph-names --ned",
947 ),
948 "0|\
949 20@1500,0|\
950 21@3000,0|\
951 22@4500,0|\
952 23@6000,0"
953 );
954 }
955
956 #[test]
gpos_chaining1_simple_011()957 fn gpos_chaining1_simple_011() {
958 assert_eq!(
959 shape(
960 "tests/fonts/aots/gpos_chaining1_simple_f2.otf",
961 "\u{0000}\u{0014}\u{0015}\u{0016}",
962 "--features=\"test\" --no-clusters --no-glyph-names --ned",
963 ),
964 "0|\
965 20@1500,0|\
966 21@3000,0|\
967 22@4500,0"
968 );
969 }
970
971 #[test]
gpos_chaining1_successive_001()972 fn gpos_chaining1_successive_001() {
973 assert_eq!(
974 shape(
975 "tests/fonts/aots/gpos_chaining1_successive_f1.otf",
976 "\u{0000}\u{0019}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}",
977 "--features=\"test\" --no-clusters --no-glyph-names --ned",
978 ),
979 "0|\
980 25@1500,0|\
981 20@3000,0|\
982 21@4520,0|\
983 22@6020,0|\
984 23@7500,0|\
985 24@9000,0|\
986 0@10500,0"
987 );
988 }
989
990 #[test]
gpos_chaining2_boundary_001()991 fn gpos_chaining2_boundary_001() {
992 assert_eq!(
993 shape(
994 "tests/fonts/aots/gpos_chaining2_boundary_f1.otf",
995 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
996 "--features=\"test\" --no-clusters --no-glyph-names --ned",
997 ),
998 "0|\
999 20@1500,0|\
1000 21@3000,0|\
1001 22@4500,0|\
1002 23@6000,0|\
1003 0@7500,0"
1004 );
1005 }
1006
1007 #[test]
gpos_chaining2_boundary_002()1008 fn gpos_chaining2_boundary_002() {
1009 assert_eq!(
1010 shape(
1011 "tests/fonts/aots/gpos_chaining2_boundary_f2.otf",
1012 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1013 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1014 ),
1015 "0|\
1016 20@1500,0|\
1017 21@3020,0|\
1018 22@4500,0|\
1019 23@6000,0|\
1020 0@7500,0"
1021 );
1022 }
1023
1024 #[test]
gpos_chaining2_boundary_003()1025 fn gpos_chaining2_boundary_003() {
1026 assert_eq!(
1027 shape(
1028 "tests/fonts/aots/gpos_chaining2_boundary_f3.otf",
1029 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1030 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1031 ),
1032 "0|\
1033 20@1500,0|\
1034 21@3020,0|\
1035 22@4500,0|\
1036 23@6000,0|\
1037 0@7500,0"
1038 );
1039 }
1040
1041 #[test]
gpos_chaining2_boundary_004()1042 fn gpos_chaining2_boundary_004() {
1043 assert_eq!(
1044 shape(
1045 "tests/fonts/aots/gpos_chaining2_boundary_f4.otf",
1046 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1047 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1048 ),
1049 "0|\
1050 20@1500,0|\
1051 21@3000,0|\
1052 22@4520,0|\
1053 23@6000,0|\
1054 0@7500,0"
1055 );
1056 }
1057
1058 #[test]
gpos_chaining2_multiple_subrules_001()1059 fn gpos_chaining2_multiple_subrules_001() {
1060 assert_eq!(
1061 shape(
1062 "tests/fonts/aots/gpos_chaining2_multiple_subrules_f1.otf",
1063 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
1064 \u{0017}\u{0000}",
1065 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1066 ),
1067 "0|\
1068 20@1500,0|\
1069 21@3020,0|\
1070 22@4500,0|\
1071 23@6000,0|\
1072 24@7500,0|\
1073 0@9000,0|\
1074 20@10500,0|\
1075 21@12000,0|\
1076 22@13520,0|\
1077 23@15000,0|\
1078 0@16500,0"
1079 );
1080 }
1081
1082 #[test]
gpos_chaining2_multiple_subrules_002()1083 fn gpos_chaining2_multiple_subrules_002() {
1084 assert_eq!(
1085 shape(
1086 "tests/fonts/aots/gpos_chaining2_multiple_subrules_f2.otf",
1087 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
1088 \u{0017}\u{0000}",
1089 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1090 ),
1091 "0|\
1092 20@1500,0|\
1093 21@3000,0|\
1094 22@4520,0|\
1095 23@6000,0|\
1096 24@7500,0|\
1097 0@9000,0|\
1098 20@10500,0|\
1099 21@12000,0|\
1100 22@13520,0|\
1101 23@15000,0|\
1102 0@16500,0"
1103 );
1104 }
1105
1106 #[test]
gpos_chaining2_next_glyph_001()1107 fn gpos_chaining2_next_glyph_001() {
1108 assert_eq!(
1109 shape(
1110 "tests/fonts/aots/gpos_chaining2_next_glyph_f1.otf",
1111 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1112 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1113 ),
1114 "0|\
1115 20@1500,0|\
1116 21@3020,0|\
1117 22@4520,0|\
1118 23@6020,0|\
1119 0@7500,0"
1120 );
1121 }
1122
1123 #[test]
gpos_chaining2_simple_001()1124 fn gpos_chaining2_simple_001() {
1125 assert_eq!(
1126 shape(
1127 "tests/fonts/aots/gpos_chaining2_simple_f1.otf",
1128 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1129 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1130 ),
1131 "0|\
1132 20@1500,0|\
1133 21@3020,0|\
1134 22@4520,0|\
1135 23@6000,0|\
1136 0@7500,0"
1137 );
1138 }
1139
1140 #[test]
gpos_chaining2_simple_002()1141 fn gpos_chaining2_simple_002() {
1142 assert_eq!(
1143 shape(
1144 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1145 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1146 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1147 ),
1148 "0|\
1149 20@1500,0|\
1150 21@3000,0|\
1151 22@4520,0|\
1152 23@6000,0|\
1153 24@7500,0|\
1154 25@9000,0|\
1155 26@10500,0|\
1156 0@12000,0"
1157 );
1158 }
1159
1160 #[test]
gpos_chaining2_simple_003()1161 fn gpos_chaining2_simple_003() {
1162 assert_eq!(
1163 shape(
1164 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1165 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{0000}\u{0000}",
1166 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1167 ),
1168 "0|\
1169 20@1500,0|\
1170 21@3000,0|\
1171 22@4500,0|\
1172 23@6000,0|\
1173 24@7500,0|\
1174 25@9000,0|\
1175 0@10500,0|\
1176 0@12000,0"
1177 );
1178 }
1179
1180 #[test]
gpos_chaining2_simple_004()1181 fn gpos_chaining2_simple_004() {
1182 assert_eq!(
1183 shape(
1184 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1185 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}",
1186 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1187 ),
1188 "0|\
1189 20@1500,0|\
1190 21@3000,0|\
1191 22@4500,0|\
1192 23@6000,0|\
1193 24@7500,0|\
1194 25@9000,0"
1195 );
1196 }
1197
1198 #[test]
gpos_chaining2_simple_005()1199 fn gpos_chaining2_simple_005() {
1200 assert_eq!(
1201 shape(
1202 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1203 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
1204 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1205 ),
1206 "0|\
1207 20@1500,0|\
1208 21@3000,0|\
1209 22@4500,0|\
1210 23@6000,0|\
1211 24@7500,0"
1212 );
1213 }
1214
1215 #[test]
gpos_chaining2_simple_006()1216 fn gpos_chaining2_simple_006() {
1217 assert_eq!(
1218 shape(
1219 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1220 "\u{0000}\u{0000}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1221 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1222 ),
1223 "0|\
1224 0@1500,0|\
1225 21@3000,0|\
1226 22@4500,0|\
1227 23@6000,0|\
1228 24@7500,0|\
1229 25@9000,0|\
1230 26@10500,0|\
1231 0@12000,0"
1232 );
1233 }
1234
1235 #[test]
gpos_chaining2_simple_007()1236 fn gpos_chaining2_simple_007() {
1237 assert_eq!(
1238 shape(
1239 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1240 "\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1241 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1242 ),
1243 "21|\
1244 22@1500,0|\
1245 23@3000,0|\
1246 24@4500,0|\
1247 25@6000,0|\
1248 26@7500,0|\
1249 0@9000,0"
1250 );
1251 }
1252
1253 #[test]
gpos_chaining2_simple_008()1254 fn gpos_chaining2_simple_008() {
1255 assert_eq!(
1256 shape(
1257 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1258 "\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1259 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1260 ),
1261 "22|\
1262 23@1500,0|\
1263 24@3000,0|\
1264 25@4500,0|\
1265 26@6000,0|\
1266 0@7500,0"
1267 );
1268 }
1269
1270 #[test]
gpos_chaining2_simple_009()1271 fn gpos_chaining2_simple_009() {
1272 assert_eq!(
1273 shape(
1274 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1275 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0018}\u{0019}\u{001A}\u{0000}",
1276 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1277 ),
1278 "0|\
1279 20@1500,0|\
1280 21@3000,0|\
1281 22@4500,0|\
1282 0@6000,0|\
1283 24@7500,0|\
1284 25@9000,0|\
1285 26@10500,0|\
1286 0@12000,0"
1287 );
1288 }
1289
1290 #[test]
gpos_chaining2_simple_010()1291 fn gpos_chaining2_simple_010() {
1292 assert_eq!(
1293 shape(
1294 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1295 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}",
1296 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1297 ),
1298 "0|\
1299 20@1500,0|\
1300 21@3000,0|\
1301 22@4500,0|\
1302 23@6000,0"
1303 );
1304 }
1305
1306 #[test]
gpos_chaining2_simple_011()1307 fn gpos_chaining2_simple_011() {
1308 assert_eq!(
1309 shape(
1310 "tests/fonts/aots/gpos_chaining2_simple_f2.otf",
1311 "\u{0000}\u{0014}\u{0015}\u{0016}",
1312 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1313 ),
1314 "0|\
1315 20@1500,0|\
1316 21@3000,0|\
1317 22@4500,0"
1318 );
1319 }
1320
1321 #[test]
gpos_chaining2_successive_001()1322 fn gpos_chaining2_successive_001() {
1323 assert_eq!(
1324 shape(
1325 "tests/fonts/aots/gpos_chaining2_successive_f1.otf",
1326 "\u{0000}\u{0019}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}",
1327 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1328 ),
1329 "0|\
1330 25@1500,0|\
1331 20@3000,0|\
1332 21@4520,0|\
1333 22@6020,0|\
1334 23@7500,0|\
1335 24@9000,0|\
1336 0@10500,0"
1337 );
1338 }
1339
1340 #[test]
gpos_chaining3_boundary_001()1341 fn gpos_chaining3_boundary_001() {
1342 assert_eq!(
1343 shape(
1344 "tests/fonts/aots/gpos_chaining3_boundary_f1.otf",
1345 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1346 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1347 ),
1348 "0|\
1349 20@1500,0|\
1350 21@3000,0|\
1351 22@4500,0|\
1352 23@6000,0|\
1353 0@7500,0"
1354 );
1355 }
1356
1357 #[test]
gpos_chaining3_boundary_002()1358 fn gpos_chaining3_boundary_002() {
1359 assert_eq!(
1360 shape(
1361 "tests/fonts/aots/gpos_chaining3_boundary_f2.otf",
1362 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1363 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1364 ),
1365 "0|\
1366 20@1500,0|\
1367 21@3020,0|\
1368 22@4500,0|\
1369 23@6000,0|\
1370 0@7500,0"
1371 );
1372 }
1373
1374 #[test]
gpos_chaining3_boundary_003()1375 fn gpos_chaining3_boundary_003() {
1376 assert_eq!(
1377 shape(
1378 "tests/fonts/aots/gpos_chaining3_boundary_f3.otf",
1379 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1380 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1381 ),
1382 "0|\
1383 20@1500,0|\
1384 21@3020,0|\
1385 22@4500,0|\
1386 23@6000,0|\
1387 0@7500,0"
1388 );
1389 }
1390
1391 #[test]
gpos_chaining3_boundary_004()1392 fn gpos_chaining3_boundary_004() {
1393 assert_eq!(
1394 shape(
1395 "tests/fonts/aots/gpos_chaining3_boundary_f4.otf",
1396 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1397 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1398 ),
1399 "0|\
1400 20@1500,0|\
1401 21@3000,0|\
1402 22@4520,0|\
1403 23@6000,0|\
1404 0@7500,0"
1405 );
1406 }
1407
1408 #[test]
gpos_chaining3_next_glyph_001()1409 fn gpos_chaining3_next_glyph_001() {
1410 assert_eq!(
1411 shape(
1412 "tests/fonts/aots/gpos_chaining3_next_glyph_f1.otf",
1413 "\u{0000}\u{0016}\u{0015}\u{0016}\u{0015}\u{0016}\u{0015}\u{0000}",
1414 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1415 ),
1416 "0|\
1417 22@1500,0|\
1418 21@3020,0|\
1419 22@4500,0|\
1420 21@6020,0|\
1421 22@7500,0|\
1422 21@9000,0|\
1423 0@10500,0"
1424 );
1425 }
1426
1427 #[test]
gpos_chaining3_simple_001()1428 fn gpos_chaining3_simple_001() {
1429 assert_eq!(
1430 shape(
1431 "tests/fonts/aots/gpos_chaining3_simple_f1.otf",
1432 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1433 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1434 ),
1435 "0|\
1436 20@1500,0|\
1437 21@3020,0|\
1438 22@4520,0|\
1439 23@6000,0|\
1440 0@7500,0"
1441 );
1442 }
1443
1444 #[test]
gpos_chaining3_simple_002()1445 fn gpos_chaining3_simple_002() {
1446 assert_eq!(
1447 shape(
1448 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1449 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1450 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1451 ),
1452 "0|\
1453 20@1500,0|\
1454 21@3000,0|\
1455 22@4520,0|\
1456 23@6000,0|\
1457 24@7500,0|\
1458 25@9000,0|\
1459 26@10500,0|\
1460 0@12000,0"
1461 );
1462 }
1463
1464 #[test]
gpos_chaining3_simple_003()1465 fn gpos_chaining3_simple_003() {
1466 assert_eq!(
1467 shape(
1468 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1469 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{0000}\u{0000}",
1470 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1471 ),
1472 "0|\
1473 20@1500,0|\
1474 21@3000,0|\
1475 22@4500,0|\
1476 23@6000,0|\
1477 24@7500,0|\
1478 25@9000,0|\
1479 0@10500,0|\
1480 0@12000,0"
1481 );
1482 }
1483
1484 #[test]
gpos_chaining3_simple_004()1485 fn gpos_chaining3_simple_004() {
1486 assert_eq!(
1487 shape(
1488 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1489 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}",
1490 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1491 ),
1492 "0|\
1493 20@1500,0|\
1494 21@3000,0|\
1495 22@4500,0|\
1496 23@6000,0|\
1497 24@7500,0|\
1498 25@9000,0"
1499 );
1500 }
1501
1502 #[test]
gpos_chaining3_simple_005()1503 fn gpos_chaining3_simple_005() {
1504 assert_eq!(
1505 shape(
1506 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1507 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
1508 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1509 ),
1510 "0|\
1511 20@1500,0|\
1512 21@3000,0|\
1513 22@4500,0|\
1514 23@6000,0|\
1515 24@7500,0"
1516 );
1517 }
1518
1519 #[test]
gpos_chaining3_simple_006()1520 fn gpos_chaining3_simple_006() {
1521 assert_eq!(
1522 shape(
1523 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1524 "\u{0000}\u{0000}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1525 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1526 ),
1527 "0|\
1528 0@1500,0|\
1529 21@3000,0|\
1530 22@4500,0|\
1531 23@6000,0|\
1532 24@7500,0|\
1533 25@9000,0|\
1534 26@10500,0|\
1535 0@12000,0"
1536 );
1537 }
1538
1539 #[test]
gpos_chaining3_simple_007()1540 fn gpos_chaining3_simple_007() {
1541 assert_eq!(
1542 shape(
1543 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1544 "\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1545 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1546 ),
1547 "21|\
1548 22@1500,0|\
1549 23@3000,0|\
1550 24@4500,0|\
1551 25@6000,0|\
1552 26@7500,0|\
1553 0@9000,0"
1554 );
1555 }
1556
1557 #[test]
gpos_chaining3_simple_008()1558 fn gpos_chaining3_simple_008() {
1559 assert_eq!(
1560 shape(
1561 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1562 "\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
1563 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1564 ),
1565 "22|\
1566 23@1500,0|\
1567 24@3000,0|\
1568 25@4500,0|\
1569 26@6000,0|\
1570 0@7500,0"
1571 );
1572 }
1573
1574 #[test]
gpos_chaining3_simple_009()1575 fn gpos_chaining3_simple_009() {
1576 assert_eq!(
1577 shape(
1578 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1579 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0018}\u{0019}\u{001A}\u{0000}",
1580 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1581 ),
1582 "0|\
1583 20@1500,0|\
1584 21@3000,0|\
1585 22@4500,0|\
1586 0@6000,0|\
1587 24@7500,0|\
1588 25@9000,0|\
1589 26@10500,0|\
1590 0@12000,0"
1591 );
1592 }
1593
1594 #[test]
gpos_chaining3_simple_010()1595 fn gpos_chaining3_simple_010() {
1596 assert_eq!(
1597 shape(
1598 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1599 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}",
1600 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1601 ),
1602 "0|\
1603 20@1500,0|\
1604 21@3000,0|\
1605 22@4500,0|\
1606 23@6000,0"
1607 );
1608 }
1609
1610 #[test]
gpos_chaining3_simple_011()1611 fn gpos_chaining3_simple_011() {
1612 assert_eq!(
1613 shape(
1614 "tests/fonts/aots/gpos_chaining3_simple_f2.otf",
1615 "\u{0000}\u{0014}\u{0015}\u{0016}",
1616 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1617 ),
1618 "0|\
1619 20@1500,0|\
1620 21@3000,0|\
1621 22@4500,0"
1622 );
1623 }
1624
1625 #[test]
gpos_chaining3_successive_001()1626 fn gpos_chaining3_successive_001() {
1627 assert_eq!(
1628 shape(
1629 "tests/fonts/aots/gpos_chaining3_successive_f1.otf",
1630 "\u{0000}\u{0019}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}",
1631 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1632 ),
1633 "0|\
1634 25@1500,0|\
1635 20@3000,0|\
1636 21@4520,0|\
1637 22@6020,0|\
1638 23@7500,0|\
1639 24@9000,0|\
1640 0@10500,0"
1641 );
1642 }
1643
1644 #[test]
gpos_context1_boundary_001()1645 fn gpos_context1_boundary_001() {
1646 assert_eq!(
1647 shape(
1648 "tests/fonts/aots/gpos_context1_boundary_f1.otf",
1649 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1650 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1651 ),
1652 "0|\
1653 20@1500,0|\
1654 20@3000,0|\
1655 20@4500,0|\
1656 20@6000,0|\
1657 20@7500,0|\
1658 0@9000,0"
1659 );
1660 }
1661
1662 #[test]
gpos_context1_boundary_002()1663 fn gpos_context1_boundary_002() {
1664 assert_eq!(
1665 shape(
1666 "tests/fonts/aots/gpos_context1_boundary_f2.otf",
1667 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1668 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1669 ),
1670 "0|\
1671 20@1520,0|\
1672 20@3020,0|\
1673 20@4520,0|\
1674 20@6020,0|\
1675 20@7520,0|\
1676 0@9000,0"
1677 );
1678 }
1679
1680 #[test]
gpos_context1_expansion_001()1681 fn gpos_context1_expansion_001() {
1682 assert_eq!(
1683 shape(
1684 "tests/fonts/aots/gpos_context1_expansion_f1.otf",
1685 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
1686 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1687 ),
1688 "0|\
1689 20@1500,0|\
1690 21@3000,0|\
1691 22@4500,0|\
1692 0@6000,0"
1693 );
1694 }
1695
1696 #[test]
gpos_context1_multiple_subrules_001()1697 fn gpos_context1_multiple_subrules_001() {
1698 assert_eq!(
1699 shape(
1700 "tests/fonts/aots/gpos_context1_multiple_subrules_f1.otf",
1701 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
1702 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1703 ),
1704 "0|\
1705 20@1520,0|\
1706 21@3000,0|\
1707 22@4500,0|\
1708 0@6000,0|\
1709 20@7500,0|\
1710 21@9020,0|\
1711 0@10500,0"
1712 );
1713 }
1714
1715 #[test]
gpos_context1_multiple_subrules_002()1716 fn gpos_context1_multiple_subrules_002() {
1717 assert_eq!(
1718 shape(
1719 "tests/fonts/aots/gpos_context1_multiple_subrules_f2.otf",
1720 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
1721 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1722 ),
1723 "0|\
1724 20@1500,0|\
1725 21@3020,0|\
1726 22@4500,0|\
1727 0@6000,0|\
1728 20@7500,0|\
1729 21@9020,0|\
1730 0@10500,0"
1731 );
1732 }
1733
1734 #[test]
gpos_context1_next_glyph_001()1735 fn gpos_context1_next_glyph_001() {
1736 assert_eq!(
1737 shape(
1738 "tests/fonts/aots/gpos_context1_next_glyph_f1.otf",
1739 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1740 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1741 ),
1742 "0|\
1743 20@1520,0|\
1744 20@3000,0|\
1745 20@4520,0|\
1746 20@6000,0|\
1747 20@7500,0|\
1748 0@9000,0"
1749 );
1750 }
1751
1752 #[test]
gpos_context1_simple_001()1753 fn gpos_context1_simple_001() {
1754 assert_eq!(
1755 shape(
1756 "tests/fonts/aots/gpos_context1_simple_f1.otf",
1757 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
1758 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1759 ),
1760 "0|\
1761 20@1520,0|\
1762 21@3020,0|\
1763 22@4520,0|\
1764 0@6000,0"
1765 );
1766 }
1767
1768 #[test]
gpos_context1_simple_002()1769 fn gpos_context1_simple_002() {
1770 assert_eq!(
1771 shape(
1772 "tests/fonts/aots/gpos_context1_simple_f1.otf",
1773 "\u{0000}\u{0014}\u{0000}\u{0014}\u{0015}\u{0000}",
1774 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1775 ),
1776 "0|\
1777 20@1500,0|\
1778 0@3000,0|\
1779 20@4500,0|\
1780 21@6000,0|\
1781 0@7500,0"
1782 );
1783 }
1784
1785 #[test]
gpos_context1_simple_003()1786 fn gpos_context1_simple_003() {
1787 assert_eq!(
1788 shape(
1789 "tests/fonts/aots/gpos_context1_simple_f2.otf",
1790 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1791 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1792 ),
1793 "0|\
1794 20@1500,0|\
1795 20@3020,0|\
1796 20@4500,0|\
1797 20@6000,0|\
1798 20@7500,0|\
1799 0@9000,0"
1800 );
1801 }
1802
1803 #[test]
gpos_context1_successive_001()1804 fn gpos_context1_successive_001() {
1805 assert_eq!(
1806 shape(
1807 "tests/fonts/aots/gpos_context1_successive_f1.otf",
1808 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1809 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1810 ),
1811 "0|\
1812 20@1500,0|\
1813 21@3020,0|\
1814 22@4520,0|\
1815 23@6000,0|\
1816 0@7500,0"
1817 );
1818 }
1819
1820 #[test]
gpos_context2_boundary_001()1821 fn gpos_context2_boundary_001() {
1822 assert_eq!(
1823 shape(
1824 "tests/fonts/aots/gpos_context2_boundary_f1.otf",
1825 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1826 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1827 ),
1828 "0|\
1829 20@1500,0|\
1830 20@3000,0|\
1831 20@4500,0|\
1832 20@6000,0|\
1833 20@7500,0|\
1834 0@9000,0"
1835 );
1836 }
1837
1838 #[test]
gpos_context2_boundary_002()1839 fn gpos_context2_boundary_002() {
1840 assert_eq!(
1841 shape(
1842 "tests/fonts/aots/gpos_context2_boundary_f2.otf",
1843 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1844 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1845 ),
1846 "0|\
1847 20@1520,0|\
1848 20@3020,0|\
1849 20@4520,0|\
1850 20@6020,0|\
1851 20@7520,0|\
1852 0@9000,0"
1853 );
1854 }
1855
1856 #[test]
gpos_context2_expansion_001()1857 fn gpos_context2_expansion_001() {
1858 assert_eq!(
1859 shape(
1860 "tests/fonts/aots/gpos_context2_expansion_f1.otf",
1861 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
1862 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1863 ),
1864 "0|\
1865 20@1500,0|\
1866 21@3000,0|\
1867 22@4500,0|\
1868 0@6000,0"
1869 );
1870 }
1871
1872 #[test]
gpos_context2_multiple_subrules_001()1873 fn gpos_context2_multiple_subrules_001() {
1874 assert_eq!(
1875 shape(
1876 "tests/fonts/aots/gpos_context2_multiple_subrules_f1.otf",
1877 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
1878 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1879 ),
1880 "0|\
1881 20@1520,0|\
1882 21@3000,0|\
1883 22@4500,0|\
1884 0@6000,0|\
1885 20@7500,0|\
1886 21@9020,0|\
1887 0@10500,0"
1888 );
1889 }
1890
1891 #[test]
gpos_context2_multiple_subrules_002()1892 fn gpos_context2_multiple_subrules_002() {
1893 assert_eq!(
1894 shape(
1895 "tests/fonts/aots/gpos_context2_multiple_subrules_f2.otf",
1896 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
1897 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1898 ),
1899 "0|\
1900 20@1500,0|\
1901 21@3020,0|\
1902 22@4500,0|\
1903 0@6000,0|\
1904 20@7500,0|\
1905 21@9020,0|\
1906 0@10500,0"
1907 );
1908 }
1909
1910 #[test]
gpos_context2_next_glyph_001()1911 fn gpos_context2_next_glyph_001() {
1912 assert_eq!(
1913 shape(
1914 "tests/fonts/aots/gpos_context2_next_glyph_f1.otf",
1915 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1916 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1917 ),
1918 "0|\
1919 20@1520,0|\
1920 20@3000,0|\
1921 20@4520,0|\
1922 20@6000,0|\
1923 20@7500,0|\
1924 0@9000,0"
1925 );
1926 }
1927
1928 #[test]
gpos_context2_simple_001()1929 fn gpos_context2_simple_001() {
1930 assert_eq!(
1931 shape(
1932 "tests/fonts/aots/gpos_context2_simple_f1.otf",
1933 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
1934 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1935 ),
1936 "0|\
1937 20@1520,0|\
1938 21@3020,0|\
1939 22@4520,0|\
1940 0@6000,0"
1941 );
1942 }
1943
1944 #[test]
gpos_context2_simple_002()1945 fn gpos_context2_simple_002() {
1946 assert_eq!(
1947 shape(
1948 "tests/fonts/aots/gpos_context2_simple_f1.otf",
1949 "\u{0000}\u{0014}\u{0000}\u{0014}\u{0015}\u{0000}",
1950 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1951 ),
1952 "0|\
1953 20@1500,0|\
1954 0@3000,0|\
1955 20@4500,0|\
1956 21@6000,0|\
1957 0@7500,0"
1958 );
1959 }
1960
1961 #[test]
gpos_context2_simple_003()1962 fn gpos_context2_simple_003() {
1963 assert_eq!(
1964 shape(
1965 "tests/fonts/aots/gpos_context2_simple_f2.otf",
1966 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
1967 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1968 ),
1969 "0|\
1970 20@1500,0|\
1971 20@3020,0|\
1972 20@4500,0|\
1973 20@6000,0|\
1974 20@7500,0|\
1975 0@9000,0"
1976 );
1977 }
1978
1979 #[test]
gpos_context2_successive_001()1980 fn gpos_context2_successive_001() {
1981 assert_eq!(
1982 shape(
1983 "tests/fonts/aots/gpos_context2_successive_f1.otf",
1984 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
1985 "--features=\"test\" --no-clusters --no-glyph-names --ned",
1986 ),
1987 "0|\
1988 20@1500,0|\
1989 21@3020,0|\
1990 22@4520,0|\
1991 23@6000,0|\
1992 0@7500,0"
1993 );
1994 }
1995
1996 #[test]
gpos_context3_boundary_001()1997 fn gpos_context3_boundary_001() {
1998 assert_eq!(
1999 shape(
2000 "tests/fonts/aots/gpos_context3_boundary_f1.otf",
2001 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
2002 "--features=\"test\" --no-clusters --no-glyph-names --ned",
2003 ),
2004 "0|\
2005 20@1500,0|\
2006 20@3000,0|\
2007 20@4500,0|\
2008 20@6000,0|\
2009 20@7500,0|\
2010 0@9000,0"
2011 );
2012 }
2013
2014 #[test]
gpos_context3_boundary_002()2015 fn gpos_context3_boundary_002() {
2016 assert_eq!(
2017 shape(
2018 "tests/fonts/aots/gpos_context3_boundary_f2.otf",
2019 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
2020 "--features=\"test\" --no-clusters --no-glyph-names --ned",
2021 ),
2022 "0|\
2023 20@1520,0|\
2024 20@3020,0|\
2025 20@4520,0|\
2026 20@6020,0|\
2027 20@7520,0|\
2028 0@9000,0"
2029 );
2030 }
2031
2032 #[test]
gpos_context3_next_glyph_001()2033 fn gpos_context3_next_glyph_001() {
2034 assert_eq!(
2035 shape(
2036 "tests/fonts/aots/gpos_context3_next_glyph_f1.otf",
2037 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
2038 "--features=\"test\" --no-clusters --no-glyph-names --ned",
2039 ),
2040 "0|\
2041 20@1520,0|\
2042 20@3000,0|\
2043 20@4520,0|\
2044 20@6000,0|\
2045 20@7500,0|\
2046 0@9000,0"
2047 );
2048 }
2049
2050 #[test]
gpos_context3_simple_001()2051 fn gpos_context3_simple_001() {
2052 assert_eq!(
2053 shape(
2054 "tests/fonts/aots/gpos_context3_simple_f1.otf",
2055 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
2056 "--features=\"test\" --no-clusters --no-glyph-names --ned",
2057 ),
2058 "0|\
2059 20@1520,0|\
2060 21@3020,0|\
2061 22@4520,0|\
2062 0@6000,0"
2063 );
2064 }
2065
2066 #[test]
gpos_context3_simple_002()2067 fn gpos_context3_simple_002() {
2068 assert_eq!(
2069 shape(
2070 "tests/fonts/aots/gpos_context3_simple_f1.otf",
2071 "\u{0000}\u{0014}\u{0000}\u{0014}\u{0015}\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
2072 "--features=\"test\" --no-clusters --no-glyph-names --ned",
2073 ),
2074 "0|\
2075 20@1500,0|\
2076 0@3000,0|\
2077 20@4500,0|\
2078 21@6000,0|\
2079 0@7500,0|\
2080 20@9020,0|\
2081 21@10520,0|\
2082 22@12020,0|\
2083 0@13500,0"
2084 );
2085 }
2086
2087 #[test]
gpos_context3_successive_001()2088 fn gpos_context3_successive_001() {
2089 assert_eq!(
2090 shape(
2091 "tests/fonts/aots/gpos_context3_successive_f1.otf",
2092 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2093 "--features=\"test\" --no-clusters --no-glyph-names --ned",
2094 ),
2095 "0|\
2096 20@1500,0|\
2097 21@3020,0|\
2098 22@4520,0|\
2099 23@6000,0|\
2100 0@7500,0"
2101 );
2102 }
2103
2104 #[test]
gsub1_1_lookupflag_001()2105 fn gsub1_1_lookupflag_001() {
2106 assert_eq!(
2107 shape(
2108 "tests/fonts/aots/gsub1_1_lookupflag_f1.otf",
2109 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
2110 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2111 ),
2112 "17|\
2113 18|\
2114 24|\
2115 20|\
2116 21"
2117 );
2118 }
2119
2120 #[test]
gsub1_1_modulo_001()2121 fn gsub1_1_modulo_001() {
2122 assert_eq!(
2123 shape(
2124 "tests/fonts/aots/gsub1_1_modulo_f1.otf",
2125 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
2126 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2127 ),
2128 "17|\
2129 18|\
2130 17|\
2131 24|\
2132 23|\
2133 18|\
2134 23|\
2135 24"
2136 );
2137 }
2138
2139 #[test]
gsub1_1_simple_001()2140 fn gsub1_1_simple_001() {
2141 assert_eq!(
2142 shape(
2143 "tests/fonts/aots/gsub1_1_simple_f1.otf",
2144 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
2145 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2146 ),
2147 "17|\
2148 23|\
2149 24|\
2150 20|\
2151 21"
2152 );
2153 }
2154
2155 #[test]
gsub1_2_lookupflag_001()2156 fn gsub1_2_lookupflag_001() {
2157 assert_eq!(
2158 shape(
2159 "tests/fonts/aots/gsub1_2_lookupflag_f1.otf",
2160 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
2161 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2162 ),
2163 "17|\
2164 18|\
2165 19|\
2166 25|\
2167 21"
2168 );
2169 }
2170
2171 #[test]
gsub1_2_simple_001()2172 fn gsub1_2_simple_001() {
2173 assert_eq!(
2174 shape(
2175 "tests/fonts/aots/gsub1_2_simple_f1.otf",
2176 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
2177 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2178 ),
2179 "17|\
2180 22|\
2181 19|\
2182 25|\
2183 21"
2184 );
2185 }
2186
2187 #[test]
gsub2_1_lookupflag_001()2188 fn gsub2_1_lookupflag_001() {
2189 assert_eq!(
2190 shape(
2191 "tests/fonts/aots/gsub2_1_lookupflag_f1.otf",
2192 "\u{0011}\u{0012}\u{0013}\u{0011}",
2193 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2194 ),
2195 "17|\
2196 18|\
2197 22|\
2198 23|\
2199 17"
2200 );
2201 }
2202
2203 #[test]
gsub2_1_multiple_sequences_001()2204 fn gsub2_1_multiple_sequences_001() {
2205 assert_eq!(
2206 shape(
2207 "tests/fonts/aots/gsub2_1_multiple_sequences_f1.otf",
2208 "\u{0011}\u{0012}\u{0013}\u{0011}",
2209 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2210 ),
2211 "17|\
2212 20|\
2213 21|\
2214 22|\
2215 23|\
2216 17"
2217 );
2218 }
2219
2220 #[test]
gsub2_1_simple_001()2221 fn gsub2_1_simple_001() {
2222 assert_eq!(
2223 shape(
2224 "tests/fonts/aots/gsub2_1_simple_f1.otf",
2225 "\u{0011}\u{0012}\u{0013}",
2226 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2227 ),
2228 "17|\
2229 20|\
2230 21|\
2231 22|\
2232 19"
2233 );
2234 }
2235
2236 #[test]
gsub2_1_simple_002()2237 fn gsub2_1_simple_002() {
2238 assert_eq!(
2239 shape(
2240 "tests/fonts/aots/gsub2_1_simple_f1.otf",
2241 "\u{0011}\u{0012}\u{0013}\u{0012}",
2242 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2243 ),
2244 "17|\
2245 20|\
2246 21|\
2247 22|\
2248 19|\
2249 20|\
2250 21|\
2251 22"
2252 );
2253 }
2254
2255 #[test]
gsub3_1_lookupflag_001()2256 fn gsub3_1_lookupflag_001() {
2257 assert_eq!(
2258 shape(
2259 "tests/fonts/aots/gsub3_1_lookupflag_f1.otf",
2260 "\u{0011}\u{0012}\u{0012}\u{0012}\u{0013}\u{0013}\u{0013}\u{0013}\u{0011}",
2261 "--features=\"-test[4],test[5],test[6]=2,-test[7]\" --no-clusters --no-glyph-names --no-positions",
2262 ),
2263 "17|\
2264 18|\
2265 18|\
2266 18|\
2267 19|\
2268 22|\
2269 23|\
2270 19|\
2271 17"
2272 );
2273 }
2274
2275 #[test]
gsub3_1_multiple_001()2276 fn gsub3_1_multiple_001() {
2277 assert_eq!(
2278 shape(
2279 "tests/fonts/aots/gsub3_1_multiple_f1.otf",
2280 "\u{0011}\u{0012}\u{0012}\u{0012}\u{0012}\u{0013}\u{0013}\u{0013}\u{0013}\u{0011}",
2281 "--features=\"-test[1],test[2],test[3]=2,-test[4],-test[5],test[6],test[7]=2,-test[8]\" --no-clusters --no-glyph-names --no-positions",
2282 ),
2283 "17|\
2284 18|\
2285 20|\
2286 21|\
2287 18|\
2288 19|\
2289 22|\
2290 23|\
2291 19|\
2292 17"
2293 );
2294 }
2295
2296 #[test]
gsub4_1_lookupflag_001()2297 fn gsub4_1_lookupflag_001() {
2298 assert_eq!(
2299 shape(
2300 "tests/fonts/aots/gsub4_1_lookupflag_f1.otf",
2301 "\u{0011}\u{0018}\u{0012}\u{0018}\u{0013}\u{0018}\u{0018}\u{0014}\u{0018}\u{0011}\
2302 \u{0012}\u{0013}\u{0016}\u{0014}",
2303 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2304 ),
2305 "17|\
2306 24|\
2307 23|\
2308 24|\
2309 24|\
2310 24|\
2311 24|\
2312 17|\
2313 18|\
2314 19|\
2315 22|\
2316 20"
2317 );
2318 }
2319
2320 #[test]
gsub4_1_multiple_ligatures_001()2321 fn gsub4_1_multiple_ligatures_001() {
2322 assert_eq!(
2323 shape(
2324 "tests/fonts/aots/gsub4_1_multiple_ligatures_f1.otf",
2325 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0011}\u{0012}\u{0013}\u{0016}\u{0014}",
2326 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2327 ),
2328 "17|\
2329 23|\
2330 17|\
2331 24|\
2332 22|\
2333 20"
2334 );
2335 }
2336
2337 #[test]
gsub4_1_multiple_ligatures_002()2338 fn gsub4_1_multiple_ligatures_002() {
2339 assert_eq!(
2340 shape(
2341 "tests/fonts/aots/gsub4_1_multiple_ligatures_f2.otf",
2342 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0011}\u{0012}\u{0013}\u{0016}\u{0014}",
2343 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2344 ),
2345 "17|\
2346 24|\
2347 20|\
2348 17|\
2349 24|\
2350 22|\
2351 20"
2352 );
2353 }
2354
2355 #[test]
gsub4_1_multiple_ligsets_001()2356 fn gsub4_1_multiple_ligsets_001() {
2357 assert_eq!(
2358 shape(
2359 "tests/fonts/aots/gsub4_1_multiple_ligsets_f1.otf",
2360 "\u{0011}\u{0012}\u{0013}\u{0015}\u{0014}\u{0013}\u{0016}",
2361 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2362 ),
2363 "17|\
2364 23|\
2365 21|\
2366 24|\
2367 22"
2368 );
2369 }
2370
2371 #[test]
gsub4_1_simple_001()2372 fn gsub4_1_simple_001() {
2373 assert_eq!(
2374 shape(
2375 "tests/fonts/aots/gsub4_1_simple_f1.otf",
2376 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0011}\u{0012}\u{0013}\u{0016}\u{0014}",
2377 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2378 ),
2379 "17|\
2380 23|\
2381 17|\
2382 18|\
2383 19|\
2384 22|\
2385 20"
2386 );
2387 }
2388
2389 #[test]
gsub7_001()2390 fn gsub7_001() {
2391 assert_eq!(
2392 shape(
2393 "tests/fonts/aots/gsub7_font1.otf",
2394 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
2395 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2396 ),
2397 "17|\
2398 23|\
2399 24|\
2400 20|\
2401 21"
2402 );
2403 }
2404
2405 #[test]
gsub7_002()2406 fn gsub7_002() {
2407 assert_eq!(
2408 shape(
2409 "tests/fonts/aots/gsub7_font2.otf",
2410 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
2411 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2412 ),
2413 "17|\
2414 23|\
2415 29|\
2416 20|\
2417 21"
2418 );
2419 }
2420
2421 #[test]
gsub_chaining1_boundary_001()2422 fn gsub_chaining1_boundary_001() {
2423 assert_eq!(
2424 shape(
2425 "tests/fonts/aots/gsub_chaining1_boundary_f1.otf",
2426 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2427 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2428 ),
2429 "0|\
2430 20|\
2431 21|\
2432 22|\
2433 23|\
2434 0"
2435 );
2436 }
2437
2438 #[test]
gsub_chaining1_boundary_002()2439 fn gsub_chaining1_boundary_002() {
2440 assert_eq!(
2441 shape(
2442 "tests/fonts/aots/gsub_chaining1_boundary_f2.otf",
2443 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2444 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2445 ),
2446 "0|\
2447 20|\
2448 61|\
2449 22|\
2450 23|\
2451 0"
2452 );
2453 }
2454
2455 #[test]
gsub_chaining1_boundary_003()2456 fn gsub_chaining1_boundary_003() {
2457 assert_eq!(
2458 shape(
2459 "tests/fonts/aots/gsub_chaining1_boundary_f3.otf",
2460 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2461 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2462 ),
2463 "0|\
2464 20|\
2465 61|\
2466 22|\
2467 23|\
2468 0"
2469 );
2470 }
2471
2472 #[test]
gsub_chaining1_boundary_004()2473 fn gsub_chaining1_boundary_004() {
2474 assert_eq!(
2475 shape(
2476 "tests/fonts/aots/gsub_chaining1_boundary_f4.otf",
2477 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2478 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2479 ),
2480 "0|\
2481 20|\
2482 21|\
2483 62|\
2484 23|\
2485 0"
2486 );
2487 }
2488
2489 #[test]
gsub_chaining1_lookupflag_001()2490 fn gsub_chaining1_lookupflag_001() {
2491 assert_eq!(
2492 shape(
2493 "tests/fonts/aots/gsub_chaining1_lookupflag_f1.otf",
2494 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{0016}\u{005C}\u{0017}\u{005D}\u{005E}\
2495 \u{0018}\u{005A}\u{0019}\u{005B}\u{001A}\u{0000}",
2496 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2497 ),
2498 "0|\
2499 20|\
2500 90|\
2501 21|\
2502 91|\
2503 22|\
2504 92|\
2505 63|\
2506 93|\
2507 94|\
2508 24|\
2509 90|\
2510 25|\
2511 91|\
2512 26|\
2513 0"
2514 );
2515 }
2516
2517 #[test]
gsub_chaining1_multiple_subrules_001()2518 fn gsub_chaining1_multiple_subrules_001() {
2519 assert_eq!(
2520 shape(
2521 "tests/fonts/aots/gsub_chaining1_multiple_subrules_f1.otf",
2522 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
2523 \u{0017}\u{0000}",
2524 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2525 ),
2526 "0|\
2527 20|\
2528 61|\
2529 22|\
2530 23|\
2531 24|\
2532 0|\
2533 20|\
2534 21|\
2535 62|\
2536 23|\
2537 0"
2538 );
2539 }
2540
2541 #[test]
gsub_chaining1_multiple_subrules_002()2542 fn gsub_chaining1_multiple_subrules_002() {
2543 assert_eq!(
2544 shape(
2545 "tests/fonts/aots/gsub_chaining1_multiple_subrules_f2.otf",
2546 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
2547 \u{0017}\u{0000}",
2548 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2549 ),
2550 "0|\
2551 20|\
2552 21|\
2553 62|\
2554 23|\
2555 24|\
2556 0|\
2557 20|\
2558 21|\
2559 62|\
2560 23|\
2561 0"
2562 );
2563 }
2564
2565 #[test]
gsub_chaining1_next_glyph_001()2566 fn gsub_chaining1_next_glyph_001() {
2567 assert_eq!(
2568 shape(
2569 "tests/fonts/aots/gsub_chaining1_next_glyph_f1.otf",
2570 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2571 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2572 ),
2573 "0|\
2574 20|\
2575 61|\
2576 62|\
2577 63|\
2578 0"
2579 );
2580 }
2581
2582 #[test]
gsub_chaining1_simple_001()2583 fn gsub_chaining1_simple_001() {
2584 assert_eq!(
2585 shape(
2586 "tests/fonts/aots/gsub_chaining1_simple_f1.otf",
2587 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2588 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2589 ),
2590 "0|\
2591 20|\
2592 61|\
2593 62|\
2594 23|\
2595 0"
2596 );
2597 }
2598
2599 #[test]
gsub_chaining1_simple_002()2600 fn gsub_chaining1_simple_002() {
2601 assert_eq!(
2602 shape(
2603 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2604 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
2605 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2606 ),
2607 "0|\
2608 20|\
2609 21|\
2610 62|\
2611 23|\
2612 24|\
2613 25|\
2614 26|\
2615 0"
2616 );
2617 }
2618
2619 #[test]
gsub_chaining1_simple_003()2620 fn gsub_chaining1_simple_003() {
2621 assert_eq!(
2622 shape(
2623 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2624 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{0000}\u{0000}",
2625 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2626 ),
2627 "0|\
2628 20|\
2629 21|\
2630 22|\
2631 23|\
2632 24|\
2633 25|\
2634 0|\
2635 0"
2636 );
2637 }
2638
2639 #[test]
gsub_chaining1_simple_004()2640 fn gsub_chaining1_simple_004() {
2641 assert_eq!(
2642 shape(
2643 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2644 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}",
2645 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2646 ),
2647 "0|\
2648 20|\
2649 21|\
2650 22|\
2651 23|\
2652 24|\
2653 25"
2654 );
2655 }
2656
2657 #[test]
gsub_chaining1_simple_005()2658 fn gsub_chaining1_simple_005() {
2659 assert_eq!(
2660 shape(
2661 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2662 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
2663 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2664 ),
2665 "0|\
2666 20|\
2667 21|\
2668 22|\
2669 23|\
2670 24"
2671 );
2672 }
2673
2674 #[test]
gsub_chaining1_simple_006()2675 fn gsub_chaining1_simple_006() {
2676 assert_eq!(
2677 shape(
2678 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2679 "\u{0000}\u{0000}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
2680 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2681 ),
2682 "0|\
2683 0|\
2684 21|\
2685 22|\
2686 23|\
2687 24|\
2688 25|\
2689 26|\
2690 0"
2691 );
2692 }
2693
2694 #[test]
gsub_chaining1_simple_007()2695 fn gsub_chaining1_simple_007() {
2696 assert_eq!(
2697 shape(
2698 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2699 "\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
2700 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2701 ),
2702 "21|\
2703 22|\
2704 23|\
2705 24|\
2706 25|\
2707 26|\
2708 0"
2709 );
2710 }
2711
2712 #[test]
gsub_chaining1_simple_008()2713 fn gsub_chaining1_simple_008() {
2714 assert_eq!(
2715 shape(
2716 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2717 "\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
2718 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2719 ),
2720 "22|\
2721 23|\
2722 24|\
2723 25|\
2724 26|\
2725 0"
2726 );
2727 }
2728
2729 #[test]
gsub_chaining1_simple_009()2730 fn gsub_chaining1_simple_009() {
2731 assert_eq!(
2732 shape(
2733 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2734 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0018}\u{0019}\u{001A}\u{0000}",
2735 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2736 ),
2737 "0|\
2738 20|\
2739 21|\
2740 22|\
2741 0|\
2742 24|\
2743 25|\
2744 26|\
2745 0"
2746 );
2747 }
2748
2749 #[test]
gsub_chaining1_simple_010()2750 fn gsub_chaining1_simple_010() {
2751 assert_eq!(
2752 shape(
2753 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2754 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}",
2755 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2756 ),
2757 "0|\
2758 20|\
2759 21|\
2760 22|\
2761 23"
2762 );
2763 }
2764
2765 #[test]
gsub_chaining1_simple_011()2766 fn gsub_chaining1_simple_011() {
2767 assert_eq!(
2768 shape(
2769 "tests/fonts/aots/gsub_chaining1_simple_f2.otf",
2770 "\u{0000}\u{0014}\u{0015}\u{0016}",
2771 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2772 ),
2773 "0|\
2774 20|\
2775 21|\
2776 22"
2777 );
2778 }
2779
2780 #[test]
gsub_chaining1_successive_001()2781 fn gsub_chaining1_successive_001() {
2782 assert_eq!(
2783 shape(
2784 "tests/fonts/aots/gsub_chaining1_successive_f1.otf",
2785 "\u{0000}\u{0019}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}",
2786 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2787 ),
2788 "0|\
2789 25|\
2790 20|\
2791 61|\
2792 63|\
2793 24|\
2794 0"
2795 );
2796 }
2797
2798 #[test]
gsub_chaining2_boundary_001()2799 fn gsub_chaining2_boundary_001() {
2800 assert_eq!(
2801 shape(
2802 "tests/fonts/aots/gsub_chaining2_boundary_f1.otf",
2803 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2804 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2805 ),
2806 "0|\
2807 20|\
2808 21|\
2809 22|\
2810 23|\
2811 0"
2812 );
2813 }
2814
2815 #[test]
gsub_chaining2_boundary_002()2816 fn gsub_chaining2_boundary_002() {
2817 assert_eq!(
2818 shape(
2819 "tests/fonts/aots/gsub_chaining2_boundary_f2.otf",
2820 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2821 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2822 ),
2823 "0|\
2824 20|\
2825 61|\
2826 22|\
2827 23|\
2828 0"
2829 );
2830 }
2831
2832 #[test]
gsub_chaining2_boundary_003()2833 fn gsub_chaining2_boundary_003() {
2834 assert_eq!(
2835 shape(
2836 "tests/fonts/aots/gsub_chaining2_boundary_f3.otf",
2837 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2838 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2839 ),
2840 "0|\
2841 20|\
2842 61|\
2843 22|\
2844 23|\
2845 0"
2846 );
2847 }
2848
2849 #[test]
gsub_chaining2_boundary_004()2850 fn gsub_chaining2_boundary_004() {
2851 assert_eq!(
2852 shape(
2853 "tests/fonts/aots/gsub_chaining2_boundary_f4.otf",
2854 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2855 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2856 ),
2857 "0|\
2858 20|\
2859 21|\
2860 62|\
2861 23|\
2862 0"
2863 );
2864 }
2865
2866 #[test]
gsub_chaining2_lookupflag_001()2867 fn gsub_chaining2_lookupflag_001() {
2868 assert_eq!(
2869 shape(
2870 "tests/fonts/aots/gsub_chaining2_lookupflag_f1.otf",
2871 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{0016}\u{005C}\u{0017}\u{005D}\u{005E}\
2872 \u{0018}\u{005A}\u{0019}\u{005B}\u{001A}\u{0000}",
2873 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2874 ),
2875 "0|\
2876 20|\
2877 90|\
2878 21|\
2879 91|\
2880 22|\
2881 92|\
2882 63|\
2883 93|\
2884 94|\
2885 24|\
2886 90|\
2887 25|\
2888 91|\
2889 26|\
2890 0"
2891 );
2892 }
2893
2894 #[test]
gsub_chaining2_multiple_subrules_001()2895 fn gsub_chaining2_multiple_subrules_001() {
2896 assert_eq!(
2897 shape(
2898 "tests/fonts/aots/gsub_chaining2_multiple_subrules_f1.otf",
2899 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
2900 \u{0017}\u{0000}",
2901 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2902 ),
2903 "0|\
2904 20|\
2905 61|\
2906 22|\
2907 23|\
2908 24|\
2909 0|\
2910 20|\
2911 21|\
2912 62|\
2913 23|\
2914 0"
2915 );
2916 }
2917
2918 #[test]
gsub_chaining2_multiple_subrules_002()2919 fn gsub_chaining2_multiple_subrules_002() {
2920 assert_eq!(
2921 shape(
2922 "tests/fonts/aots/gsub_chaining2_multiple_subrules_f2.otf",
2923 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}\u{0014}\u{0015}\u{0016}\
2924 \u{0017}\u{0000}",
2925 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2926 ),
2927 "0|\
2928 20|\
2929 21|\
2930 62|\
2931 23|\
2932 24|\
2933 0|\
2934 20|\
2935 21|\
2936 62|\
2937 23|\
2938 0"
2939 );
2940 }
2941
2942 #[test]
gsub_chaining2_next_glyph_001()2943 fn gsub_chaining2_next_glyph_001() {
2944 assert_eq!(
2945 shape(
2946 "tests/fonts/aots/gsub_chaining2_next_glyph_f1.otf",
2947 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2948 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2949 ),
2950 "0|\
2951 20|\
2952 61|\
2953 62|\
2954 63|\
2955 0"
2956 );
2957 }
2958
2959 #[test]
gsub_chaining2_simple_001()2960 fn gsub_chaining2_simple_001() {
2961 assert_eq!(
2962 shape(
2963 "tests/fonts/aots/gsub_chaining2_simple_f1.otf",
2964 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
2965 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2966 ),
2967 "0|\
2968 20|\
2969 61|\
2970 62|\
2971 23|\
2972 0"
2973 );
2974 }
2975
2976 #[test]
gsub_chaining2_simple_002()2977 fn gsub_chaining2_simple_002() {
2978 assert_eq!(
2979 shape(
2980 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
2981 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
2982 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
2983 ),
2984 "0|\
2985 20|\
2986 21|\
2987 62|\
2988 23|\
2989 24|\
2990 25|\
2991 26|\
2992 0"
2993 );
2994 }
2995
2996 #[test]
gsub_chaining2_simple_003()2997 fn gsub_chaining2_simple_003() {
2998 assert_eq!(
2999 shape(
3000 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3001 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{0000}\u{0000}",
3002 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3003 ),
3004 "0|\
3005 20|\
3006 21|\
3007 22|\
3008 23|\
3009 24|\
3010 25|\
3011 0|\
3012 0"
3013 );
3014 }
3015
3016 #[test]
gsub_chaining2_simple_004()3017 fn gsub_chaining2_simple_004() {
3018 assert_eq!(
3019 shape(
3020 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3021 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}",
3022 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3023 ),
3024 "0|\
3025 20|\
3026 21|\
3027 22|\
3028 23|\
3029 24|\
3030 25"
3031 );
3032 }
3033
3034 #[test]
gsub_chaining2_simple_005()3035 fn gsub_chaining2_simple_005() {
3036 assert_eq!(
3037 shape(
3038 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3039 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
3040 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3041 ),
3042 "0|\
3043 20|\
3044 21|\
3045 22|\
3046 23|\
3047 24"
3048 );
3049 }
3050
3051 #[test]
gsub_chaining2_simple_006()3052 fn gsub_chaining2_simple_006() {
3053 assert_eq!(
3054 shape(
3055 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3056 "\u{0000}\u{0000}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3057 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3058 ),
3059 "0|\
3060 0|\
3061 21|\
3062 22|\
3063 23|\
3064 24|\
3065 25|\
3066 26|\
3067 0"
3068 );
3069 }
3070
3071 #[test]
gsub_chaining2_simple_007()3072 fn gsub_chaining2_simple_007() {
3073 assert_eq!(
3074 shape(
3075 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3076 "\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3077 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3078 ),
3079 "21|\
3080 22|\
3081 23|\
3082 24|\
3083 25|\
3084 26|\
3085 0"
3086 );
3087 }
3088
3089 #[test]
gsub_chaining2_simple_008()3090 fn gsub_chaining2_simple_008() {
3091 assert_eq!(
3092 shape(
3093 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3094 "\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3095 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3096 ),
3097 "22|\
3098 23|\
3099 24|\
3100 25|\
3101 26|\
3102 0"
3103 );
3104 }
3105
3106 #[test]
gsub_chaining2_simple_009()3107 fn gsub_chaining2_simple_009() {
3108 assert_eq!(
3109 shape(
3110 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3111 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0018}\u{0019}\u{001A}\u{0000}",
3112 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3113 ),
3114 "0|\
3115 20|\
3116 21|\
3117 22|\
3118 0|\
3119 24|\
3120 25|\
3121 26|\
3122 0"
3123 );
3124 }
3125
3126 #[test]
gsub_chaining2_simple_010()3127 fn gsub_chaining2_simple_010() {
3128 assert_eq!(
3129 shape(
3130 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3131 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}",
3132 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3133 ),
3134 "0|\
3135 20|\
3136 21|\
3137 22|\
3138 23"
3139 );
3140 }
3141
3142 #[test]
gsub_chaining2_simple_011()3143 fn gsub_chaining2_simple_011() {
3144 assert_eq!(
3145 shape(
3146 "tests/fonts/aots/gsub_chaining2_simple_f2.otf",
3147 "\u{0000}\u{0014}\u{0015}\u{0016}",
3148 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3149 ),
3150 "0|\
3151 20|\
3152 21|\
3153 22"
3154 );
3155 }
3156
3157 #[test]
gsub_chaining2_successive_001()3158 fn gsub_chaining2_successive_001() {
3159 assert_eq!(
3160 shape(
3161 "tests/fonts/aots/gsub_chaining2_successive_f1.otf",
3162 "\u{0000}\u{0019}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}",
3163 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3164 ),
3165 "0|\
3166 25|\
3167 20|\
3168 61|\
3169 63|\
3170 24|\
3171 0"
3172 );
3173 }
3174
3175 #[test]
gsub_chaining3_boundary_001()3176 fn gsub_chaining3_boundary_001() {
3177 assert_eq!(
3178 shape(
3179 "tests/fonts/aots/gsub_chaining3_boundary_f1.otf",
3180 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3181 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3182 ),
3183 "0|\
3184 20|\
3185 21|\
3186 22|\
3187 23|\
3188 0"
3189 );
3190 }
3191
3192 #[test]
gsub_chaining3_boundary_002()3193 fn gsub_chaining3_boundary_002() {
3194 assert_eq!(
3195 shape(
3196 "tests/fonts/aots/gsub_chaining3_boundary_f2.otf",
3197 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3198 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3199 ),
3200 "0|\
3201 20|\
3202 61|\
3203 22|\
3204 23|\
3205 0"
3206 );
3207 }
3208
3209 #[test]
gsub_chaining3_boundary_003()3210 fn gsub_chaining3_boundary_003() {
3211 assert_eq!(
3212 shape(
3213 "tests/fonts/aots/gsub_chaining3_boundary_f3.otf",
3214 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3215 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3216 ),
3217 "0|\
3218 20|\
3219 61|\
3220 22|\
3221 23|\
3222 0"
3223 );
3224 }
3225
3226 #[test]
gsub_chaining3_boundary_004()3227 fn gsub_chaining3_boundary_004() {
3228 assert_eq!(
3229 shape(
3230 "tests/fonts/aots/gsub_chaining3_boundary_f4.otf",
3231 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3232 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3233 ),
3234 "0|\
3235 20|\
3236 21|\
3237 62|\
3238 23|\
3239 0"
3240 );
3241 }
3242
3243 #[test]
gsub_chaining3_lookupflag_001()3244 fn gsub_chaining3_lookupflag_001() {
3245 assert_eq!(
3246 shape(
3247 "tests/fonts/aots/gsub_chaining3_lookupflag_f1.otf",
3248 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{0016}\u{005C}\u{0017}\u{005D}\u{005E}\
3249 \u{0018}\u{005A}\u{0019}\u{005B}\u{001A}\u{0000}",
3250 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3251 ),
3252 "0|\
3253 20|\
3254 90|\
3255 21|\
3256 91|\
3257 22|\
3258 92|\
3259 63|\
3260 93|\
3261 94|\
3262 24|\
3263 90|\
3264 25|\
3265 91|\
3266 26|\
3267 0"
3268 );
3269 }
3270
3271 #[test]
gsub_chaining3_next_glyph_001()3272 fn gsub_chaining3_next_glyph_001() {
3273 assert_eq!(
3274 shape(
3275 "tests/fonts/aots/gsub_chaining3_next_glyph_f1.otf",
3276 "\u{0000}\u{0016}\u{0015}\u{0016}\u{0015}\u{0016}\u{0015}\u{0000}",
3277 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3278 ),
3279 "0|\
3280 22|\
3281 61|\
3282 22|\
3283 61|\
3284 22|\
3285 21|\
3286 0"
3287 );
3288 }
3289
3290 #[test]
gsub_chaining3_simple_001()3291 fn gsub_chaining3_simple_001() {
3292 assert_eq!(
3293 shape(
3294 "tests/fonts/aots/gsub_chaining3_simple_f1.otf",
3295 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3296 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3297 ),
3298 "0|\
3299 20|\
3300 61|\
3301 62|\
3302 23|\
3303 0"
3304 );
3305 }
3306
3307 #[test]
gsub_chaining3_simple_002()3308 fn gsub_chaining3_simple_002() {
3309 assert_eq!(
3310 shape(
3311 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3312 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3313 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3314 ),
3315 "0|\
3316 20|\
3317 21|\
3318 62|\
3319 23|\
3320 24|\
3321 25|\
3322 26|\
3323 0"
3324 );
3325 }
3326
3327 #[test]
gsub_chaining3_simple_003()3328 fn gsub_chaining3_simple_003() {
3329 assert_eq!(
3330 shape(
3331 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3332 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{0000}\u{0000}",
3333 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3334 ),
3335 "0|\
3336 20|\
3337 21|\
3338 22|\
3339 23|\
3340 24|\
3341 25|\
3342 0|\
3343 0"
3344 );
3345 }
3346
3347 #[test]
gsub_chaining3_simple_004()3348 fn gsub_chaining3_simple_004() {
3349 assert_eq!(
3350 shape(
3351 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3352 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}",
3353 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3354 ),
3355 "0|\
3356 20|\
3357 21|\
3358 22|\
3359 23|\
3360 24|\
3361 25"
3362 );
3363 }
3364
3365 #[test]
gsub_chaining3_simple_005()3366 fn gsub_chaining3_simple_005() {
3367 assert_eq!(
3368 shape(
3369 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3370 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}",
3371 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3372 ),
3373 "0|\
3374 20|\
3375 21|\
3376 22|\
3377 23|\
3378 24"
3379 );
3380 }
3381
3382 #[test]
gsub_chaining3_simple_006()3383 fn gsub_chaining3_simple_006() {
3384 assert_eq!(
3385 shape(
3386 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3387 "\u{0000}\u{0000}\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3388 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3389 ),
3390 "0|\
3391 0|\
3392 21|\
3393 22|\
3394 23|\
3395 24|\
3396 25|\
3397 26|\
3398 0"
3399 );
3400 }
3401
3402 #[test]
gsub_chaining3_simple_007()3403 fn gsub_chaining3_simple_007() {
3404 assert_eq!(
3405 shape(
3406 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3407 "\u{0015}\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3408 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3409 ),
3410 "21|\
3411 22|\
3412 23|\
3413 24|\
3414 25|\
3415 26|\
3416 0"
3417 );
3418 }
3419
3420 #[test]
gsub_chaining3_simple_008()3421 fn gsub_chaining3_simple_008() {
3422 assert_eq!(
3423 shape(
3424 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3425 "\u{0016}\u{0017}\u{0018}\u{0019}\u{001A}\u{0000}",
3426 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3427 ),
3428 "22|\
3429 23|\
3430 24|\
3431 25|\
3432 26|\
3433 0"
3434 );
3435 }
3436
3437 #[test]
gsub_chaining3_simple_009()3438 fn gsub_chaining3_simple_009() {
3439 assert_eq!(
3440 shape(
3441 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3442 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0018}\u{0019}\u{001A}\u{0000}",
3443 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3444 ),
3445 "0|\
3446 20|\
3447 21|\
3448 22|\
3449 0|\
3450 24|\
3451 25|\
3452 26|\
3453 0"
3454 );
3455 }
3456
3457 #[test]
gsub_chaining3_simple_010()3458 fn gsub_chaining3_simple_010() {
3459 assert_eq!(
3460 shape(
3461 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3462 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}",
3463 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3464 ),
3465 "0|\
3466 20|\
3467 21|\
3468 22|\
3469 23"
3470 );
3471 }
3472
3473 #[test]
gsub_chaining3_simple_011()3474 fn gsub_chaining3_simple_011() {
3475 assert_eq!(
3476 shape(
3477 "tests/fonts/aots/gsub_chaining3_simple_f2.otf",
3478 "\u{0000}\u{0014}\u{0015}\u{0016}",
3479 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3480 ),
3481 "0|\
3482 20|\
3483 21|\
3484 22"
3485 );
3486 }
3487
3488 #[test]
gsub_chaining3_successive_001()3489 fn gsub_chaining3_successive_001() {
3490 assert_eq!(
3491 shape(
3492 "tests/fonts/aots/gsub_chaining3_successive_f1.otf",
3493 "\u{0000}\u{0019}\u{0014}\u{0015}\u{0016}\u{0017}\u{0018}\u{0000}",
3494 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3495 ),
3496 "0|\
3497 25|\
3498 20|\
3499 61|\
3500 63|\
3501 24|\
3502 0"
3503 );
3504 }
3505
3506 #[test]
gsub_context1_boundary_001()3507 fn gsub_context1_boundary_001() {
3508 assert_eq!(
3509 shape(
3510 "tests/fonts/aots/gsub_context1_boundary_f1.otf",
3511 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3512 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3513 ),
3514 "0|\
3515 20|\
3516 20|\
3517 20|\
3518 20|\
3519 20|\
3520 0"
3521 );
3522 }
3523
3524 #[test]
gsub_context1_boundary_002()3525 fn gsub_context1_boundary_002() {
3526 assert_eq!(
3527 shape(
3528 "tests/fonts/aots/gsub_context1_boundary_f2.otf",
3529 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3530 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3531 ),
3532 "0|\
3533 60|\
3534 60|\
3535 60|\
3536 60|\
3537 60|\
3538 0"
3539 );
3540 }
3541
3542 #[test]
gsub_context1_expansion_001()3543 fn gsub_context1_expansion_001() {
3544 assert_eq!(
3545 shape(
3546 "tests/fonts/aots/gsub_context1_expansion_f1.otf",
3547 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
3548 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3549 ),
3550 "0|\
3551 20|\
3552 61|\
3553 62|\
3554 63|\
3555 22|\
3556 0"
3557 );
3558 }
3559
3560 #[test]
gsub_context1_lookupflag_001()3561 fn gsub_context1_lookupflag_001() {
3562 assert_eq!(
3563 shape(
3564 "tests/fonts/aots/gsub_context1_lookupflag_f1.otf",
3565 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{005C}\u{0016}\u{0000}",
3566 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3567 ),
3568 "0|\
3569 60|\
3570 90|\
3571 61|\
3572 91|\
3573 92|\
3574 62|\
3575 0"
3576 );
3577 }
3578
3579 #[test]
gsub_context1_lookupflag_002()3580 fn gsub_context1_lookupflag_002() {
3581 assert_eq!(
3582 shape(
3583 "tests/fonts/aots/gsub_context1_lookupflag_f2.otf",
3584 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{005C}\u{0016}\u{0000}",
3585 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3586 ),
3587 "0|\
3588 20|\
3589 90|\
3590 61|\
3591 91|\
3592 92|\
3593 0"
3594 );
3595 }
3596
3597 #[test]
gsub_context1_multiple_subrules_001()3598 fn gsub_context1_multiple_subrules_001() {
3599 assert_eq!(
3600 shape(
3601 "tests/fonts/aots/gsub_context1_multiple_subrules_f1.otf",
3602 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
3603 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3604 ),
3605 "0|\
3606 60|\
3607 21|\
3608 22|\
3609 0|\
3610 20|\
3611 61|\
3612 0"
3613 );
3614 }
3615
3616 #[test]
gsub_context1_multiple_subrules_002()3617 fn gsub_context1_multiple_subrules_002() {
3618 assert_eq!(
3619 shape(
3620 "tests/fonts/aots/gsub_context1_multiple_subrules_f2.otf",
3621 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
3622 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3623 ),
3624 "0|\
3625 20|\
3626 61|\
3627 22|\
3628 0|\
3629 20|\
3630 61|\
3631 0"
3632 );
3633 }
3634
3635 #[test]
gsub_context1_next_glyph_001()3636 fn gsub_context1_next_glyph_001() {
3637 assert_eq!(
3638 shape(
3639 "tests/fonts/aots/gsub_context1_next_glyph_f1.otf",
3640 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3641 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3642 ),
3643 "0|\
3644 60|\
3645 20|\
3646 60|\
3647 20|\
3648 20|\
3649 0"
3650 );
3651 }
3652
3653 #[test]
gsub_context1_simple_001()3654 fn gsub_context1_simple_001() {
3655 assert_eq!(
3656 shape(
3657 "tests/fonts/aots/gsub_context1_simple_f1.otf",
3658 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
3659 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3660 ),
3661 "0|\
3662 60|\
3663 61|\
3664 62|\
3665 0"
3666 );
3667 }
3668
3669 #[test]
gsub_context1_simple_002()3670 fn gsub_context1_simple_002() {
3671 assert_eq!(
3672 shape(
3673 "tests/fonts/aots/gsub_context1_simple_f1.otf",
3674 "\u{0000}\u{0014}\u{0000}\u{0014}\u{0015}\u{0000}",
3675 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3676 ),
3677 "0|\
3678 20|\
3679 0|\
3680 20|\
3681 21|\
3682 0"
3683 );
3684 }
3685
3686 #[test]
gsub_context1_simple_003()3687 fn gsub_context1_simple_003() {
3688 assert_eq!(
3689 shape(
3690 "tests/fonts/aots/gsub_context1_simple_f2.otf",
3691 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3692 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3693 ),
3694 "0|\
3695 20|\
3696 60|\
3697 20|\
3698 20|\
3699 20|\
3700 0"
3701 );
3702 }
3703
3704 #[test]
gsub_context1_successive_001()3705 fn gsub_context1_successive_001() {
3706 assert_eq!(
3707 shape(
3708 "tests/fonts/aots/gsub_context1_successive_f1.otf",
3709 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3710 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3711 ),
3712 "0|\
3713 20|\
3714 61|\
3715 63|\
3716 0"
3717 );
3718 }
3719
3720 #[test]
gsub_context2_boundary_001()3721 fn gsub_context2_boundary_001() {
3722 assert_eq!(
3723 shape(
3724 "tests/fonts/aots/gsub_context2_boundary_f1.otf",
3725 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3726 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3727 ),
3728 "0|\
3729 20|\
3730 20|\
3731 20|\
3732 20|\
3733 20|\
3734 0"
3735 );
3736 }
3737
3738 #[test]
gsub_context2_boundary_002()3739 fn gsub_context2_boundary_002() {
3740 assert_eq!(
3741 shape(
3742 "tests/fonts/aots/gsub_context2_boundary_f2.otf",
3743 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3744 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3745 ),
3746 "0|\
3747 60|\
3748 60|\
3749 60|\
3750 60|\
3751 60|\
3752 0"
3753 );
3754 }
3755
3756 #[test]
gsub_context2_classes_001()3757 fn gsub_context2_classes_001() {
3758 assert_eq!(
3759 shape(
3760 "tests/fonts/aots/gsub_context2_classes_f1.otf",
3761 "\u{0000}\u{0014}\u{001A}\u{001C}\u{0018}\u{0000}\u{0015}\u{001B}\u{001A}\u{0018}\
3762 \u{0000}\u{0016}\u{001B}\u{001A}\u{0018}",
3763 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3764 ),
3765 "0|\
3766 20|\
3767 66|\
3768 28|\
3769 24|\
3770 0|\
3771 21|\
3772 67|\
3773 26|\
3774 24|\
3775 0|\
3776 22|\
3777 27|\
3778 26|\
3779 24"
3780 );
3781 }
3782
3783 #[test]
gsub_context2_classes_002()3784 fn gsub_context2_classes_002() {
3785 assert_eq!(
3786 shape(
3787 "tests/fonts/aots/gsub_context2_classes_f2.otf",
3788 "\u{0000}\u{0016}\u{001B}\u{001A}\u{0018}\u{0000}\u{0018}\u{0018}\u{001D}\u{0016}\
3789 \u{0000}\u{0016}\u{001B}\u{001A}\u{0018}",
3790 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3791 ),
3792 "0|\
3793 22|\
3794 67|\
3795 26|\
3796 24|\
3797 0|\
3798 24|\
3799 24|\
3800 69|\
3801 22|\
3802 0|\
3803 22|\
3804 67|\
3805 26|\
3806 24"
3807 );
3808 }
3809
3810 #[test]
gsub_context2_expansion_001()3811 fn gsub_context2_expansion_001() {
3812 assert_eq!(
3813 shape(
3814 "tests/fonts/aots/gsub_context2_expansion_f1.otf",
3815 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
3816 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3817 ),
3818 "0|\
3819 20|\
3820 61|\
3821 62|\
3822 63|\
3823 22|\
3824 0"
3825 );
3826 }
3827
3828 #[test]
gsub_context2_lookupflag_001()3829 fn gsub_context2_lookupflag_001() {
3830 assert_eq!(
3831 shape(
3832 "tests/fonts/aots/gsub_context2_lookupflag_f1.otf",
3833 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{005C}\u{0016}\u{0000}",
3834 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3835 ),
3836 "0|\
3837 60|\
3838 90|\
3839 61|\
3840 91|\
3841 92|\
3842 62|\
3843 0"
3844 );
3845 }
3846
3847 #[test]
gsub_context2_lookupflag_002()3848 fn gsub_context2_lookupflag_002() {
3849 assert_eq!(
3850 shape(
3851 "tests/fonts/aots/gsub_context2_lookupflag_f2.otf",
3852 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{005C}\u{0016}\u{0000}",
3853 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3854 ),
3855 "0|\
3856 20|\
3857 90|\
3858 61|\
3859 91|\
3860 92|\
3861 0"
3862 );
3863 }
3864
3865 #[test]
gsub_context2_multiple_subrules_001()3866 fn gsub_context2_multiple_subrules_001() {
3867 assert_eq!(
3868 shape(
3869 "tests/fonts/aots/gsub_context2_multiple_subrules_f1.otf",
3870 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
3871 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3872 ),
3873 "0|\
3874 60|\
3875 21|\
3876 22|\
3877 0|\
3878 20|\
3879 61|\
3880 0"
3881 );
3882 }
3883
3884 #[test]
gsub_context2_multiple_subrules_002()3885 fn gsub_context2_multiple_subrules_002() {
3886 assert_eq!(
3887 shape(
3888 "tests/fonts/aots/gsub_context2_multiple_subrules_f2.otf",
3889 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}\u{0014}\u{0015}\u{0000}",
3890 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3891 ),
3892 "0|\
3893 20|\
3894 61|\
3895 22|\
3896 0|\
3897 20|\
3898 61|\
3899 0"
3900 );
3901 }
3902
3903 #[test]
gsub_context2_next_glyph_001()3904 fn gsub_context2_next_glyph_001() {
3905 assert_eq!(
3906 shape(
3907 "tests/fonts/aots/gsub_context2_next_glyph_f1.otf",
3908 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3909 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3910 ),
3911 "0|\
3912 60|\
3913 20|\
3914 60|\
3915 20|\
3916 20|\
3917 0"
3918 );
3919 }
3920
3921 #[test]
gsub_context2_simple_001()3922 fn gsub_context2_simple_001() {
3923 assert_eq!(
3924 shape(
3925 "tests/fonts/aots/gsub_context2_simple_f1.otf",
3926 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
3927 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3928 ),
3929 "0|\
3930 60|\
3931 61|\
3932 62|\
3933 0"
3934 );
3935 }
3936
3937 #[test]
gsub_context2_simple_002()3938 fn gsub_context2_simple_002() {
3939 assert_eq!(
3940 shape(
3941 "tests/fonts/aots/gsub_context2_simple_f1.otf",
3942 "\u{0000}\u{0014}\u{0000}\u{0014}\u{0015}\u{0000}",
3943 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3944 ),
3945 "0|\
3946 20|\
3947 0|\
3948 20|\
3949 21|\
3950 0"
3951 );
3952 }
3953
3954 #[test]
gsub_context2_simple_003()3955 fn gsub_context2_simple_003() {
3956 assert_eq!(
3957 shape(
3958 "tests/fonts/aots/gsub_context2_simple_f2.otf",
3959 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3960 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3961 ),
3962 "0|\
3963 20|\
3964 60|\
3965 20|\
3966 20|\
3967 20|\
3968 0"
3969 );
3970 }
3971
3972 #[test]
gsub_context2_successive_001()3973 fn gsub_context2_successive_001() {
3974 assert_eq!(
3975 shape(
3976 "tests/fonts/aots/gsub_context2_successive_f1.otf",
3977 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
3978 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3979 ),
3980 "0|\
3981 20|\
3982 61|\
3983 63|\
3984 0"
3985 );
3986 }
3987
3988 #[test]
gsub_context3_boundary_001()3989 fn gsub_context3_boundary_001() {
3990 assert_eq!(
3991 shape(
3992 "tests/fonts/aots/gsub_context3_boundary_f1.otf",
3993 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
3994 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
3995 ),
3996 "0|\
3997 20|\
3998 20|\
3999 20|\
4000 20|\
4001 20|\
4002 0"
4003 );
4004 }
4005
4006 #[test]
gsub_context3_boundary_002()4007 fn gsub_context3_boundary_002() {
4008 assert_eq!(
4009 shape(
4010 "tests/fonts/aots/gsub_context3_boundary_f2.otf",
4011 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
4012 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4013 ),
4014 "0|\
4015 60|\
4016 60|\
4017 60|\
4018 60|\
4019 60|\
4020 0"
4021 );
4022 }
4023
4024 #[test]
gsub_context3_lookupflag_001()4025 fn gsub_context3_lookupflag_001() {
4026 assert_eq!(
4027 shape(
4028 "tests/fonts/aots/gsub_context3_lookupflag_f1.otf",
4029 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{005C}\u{0016}\u{0000}",
4030 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4031 ),
4032 "0|\
4033 60|\
4034 90|\
4035 61|\
4036 91|\
4037 92|\
4038 62|\
4039 0"
4040 );
4041 }
4042
4043 #[test]
gsub_context3_lookupflag_002()4044 fn gsub_context3_lookupflag_002() {
4045 assert_eq!(
4046 shape(
4047 "tests/fonts/aots/gsub_context3_lookupflag_f2.otf",
4048 "\u{0000}\u{0014}\u{005A}\u{0015}\u{005B}\u{005C}\u{0016}\u{0000}",
4049 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4050 ),
4051 "0|\
4052 20|\
4053 90|\
4054 61|\
4055 91|\
4056 92|\
4057 0"
4058 );
4059 }
4060
4061 #[test]
gsub_context3_next_glyph_001()4062 fn gsub_context3_next_glyph_001() {
4063 assert_eq!(
4064 shape(
4065 "tests/fonts/aots/gsub_context3_next_glyph_f1.otf",
4066 "\u{0000}\u{0014}\u{0014}\u{0014}\u{0014}\u{0014}\u{0000}",
4067 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4068 ),
4069 "0|\
4070 60|\
4071 20|\
4072 60|\
4073 20|\
4074 20|\
4075 0"
4076 );
4077 }
4078
4079 #[test]
gsub_context3_simple_001()4080 fn gsub_context3_simple_001() {
4081 assert_eq!(
4082 shape(
4083 "tests/fonts/aots/gsub_context3_simple_f1.otf",
4084 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
4085 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4086 ),
4087 "0|\
4088 60|\
4089 61|\
4090 62|\
4091 0"
4092 );
4093 }
4094
4095 #[test]
gsub_context3_simple_002()4096 fn gsub_context3_simple_002() {
4097 assert_eq!(
4098 shape(
4099 "tests/fonts/aots/gsub_context3_simple_f1.otf",
4100 "\u{0000}\u{0014}\u{0000}\u{0014}\u{0015}\u{0000}\u{0014}\u{0015}\u{0016}\u{0000}",
4101 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4102 ),
4103 "0|\
4104 20|\
4105 0|\
4106 20|\
4107 21|\
4108 0|\
4109 60|\
4110 61|\
4111 62|\
4112 0"
4113 );
4114 }
4115
4116 #[test]
gsub_context3_successive_001()4117 fn gsub_context3_successive_001() {
4118 assert_eq!(
4119 shape(
4120 "tests/fonts/aots/gsub_context3_successive_f1.otf",
4121 "\u{0000}\u{0014}\u{0015}\u{0016}\u{0017}\u{0000}",
4122 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4123 ),
4124 "0|\
4125 20|\
4126 61|\
4127 63|\
4128 0"
4129 );
4130 }
4131
4132 #[test]
lookupflag_ignore_base_001()4133 fn lookupflag_ignore_base_001() {
4134 assert_eq!(
4135 shape(
4136 "tests/fonts/aots/lookupflag_ignore_base_f1.otf",
4137 "\u{0011}\u{0012}\u{0013}\u{0014}\u{0015}",
4138 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4139 ),
4140 "17|\
4141 23|\
4142 21"
4143 );
4144 }
4145
4146 #[test]
lookupflag_ignore_base_002()4147 fn lookupflag_ignore_base_002() {
4148 assert_eq!(
4149 shape(
4150 "tests/fonts/aots/lookupflag_ignore_base_f1.otf",
4151 "\u{0011}\u{0012}\u{0018}\u{0018}\u{0013}\u{0019}\u{0014}\u{0015}",
4152 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4153 ),
4154 "17|\
4155 23|\
4156 24|\
4157 24|\
4158 25|\
4159 21"
4160 );
4161 }
4162
4163 #[test]
lookupflag_ignore_combination_001()4164 fn lookupflag_ignore_combination_001() {
4165 assert_eq!(
4166 shape(
4167 "tests/fonts/aots/lookupflag_ignore_combination_f1.otf",
4168 "\u{0011}\u{0012}\u{001A}\u{0013}\u{0014}\u{0015}",
4169 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4170 ),
4171 "17|\
4172 23|\
4173 26|\
4174 21"
4175 );
4176 }
4177
4178 #[test]
lookupflag_ignore_combination_002()4179 fn lookupflag_ignore_combination_002() {
4180 assert_eq!(
4181 shape(
4182 "tests/fonts/aots/lookupflag_ignore_combination_f1.otf",
4183 "\u{0011}\u{0012}\u{001A}\u{0013}\u{0018}\u{001E}\u{001F}\u{0014}\u{0015}",
4184 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4185 ),
4186 "17|\
4187 23|\
4188 26|\
4189 24|\
4190 30|\
4191 31|\
4192 21"
4193 );
4194 }
4195
4196 #[test]
lookupflag_ignore_combination_003()4197 fn lookupflag_ignore_combination_003() {
4198 assert_eq!(
4199 shape(
4200 "tests/fonts/aots/lookupflag_ignore_combination_f1.otf",
4201 "\u{0011}\u{0012}\u{001A}\u{0013}\u{0018}\u{001E}\u{0020}\u{0014}\u{0015}",
4202 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4203 ),
4204 "17|\
4205 18|\
4206 26|\
4207 19|\
4208 24|\
4209 30|\
4210 32|\
4211 20|\
4212 21"
4213 );
4214 }
4215
4216 #[test]
lookupflag_ignore_ligatures_001()4217 fn lookupflag_ignore_ligatures_001() {
4218 assert_eq!(
4219 shape(
4220 "tests/fonts/aots/lookupflag_ignore_ligatures_f1.otf",
4221 "\u{0011}\u{0012}\u{001A}\u{001B}\u{0013}\u{001B}\u{0014}\u{0015}",
4222 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4223 ),
4224 "17|\
4225 23|\
4226 26|\
4227 27|\
4228 27|\
4229 21"
4230 );
4231 }
4232
4233 #[test]
lookupflag_ignore_ligatures_002()4234 fn lookupflag_ignore_ligatures_002() {
4235 assert_eq!(
4236 shape(
4237 "tests/fonts/aots/lookupflag_ignore_ligatures_f1.otf",
4238 "\u{0011}\u{0012}\u{001A}\u{0018}\u{0013}\u{001B}\u{0014}\u{0015}",
4239 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4240 ),
4241 "17|\
4242 18|\
4243 26|\
4244 24|\
4245 19|\
4246 27|\
4247 20|\
4248 21"
4249 );
4250 }
4251
4252 #[test]
lookupflag_ignore_ligatures_003()4253 fn lookupflag_ignore_ligatures_003() {
4254 assert_eq!(
4255 shape(
4256 "tests/fonts/aots/lookupflag_ignore_ligatures_f1.otf",
4257 "\u{0011}\u{0012}\u{001A}\u{002A}\u{0013}\u{001B}\u{0014}\u{0015}",
4258 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4259 ),
4260 "17|\
4261 18|\
4262 26|\
4263 42|\
4264 19|\
4265 27|\
4266 20|\
4267 21"
4268 );
4269 }
4270
4271 #[test]
lookupflag_ignore_marks_001()4272 fn lookupflag_ignore_marks_001() {
4273 assert_eq!(
4274 shape(
4275 "tests/fonts/aots/lookupflag_ignore_marks_f1.otf",
4276 "\u{0011}\u{0012}\u{001C}\u{001D}\u{0013}\u{001D}\u{0014}\u{0015}",
4277 "--features=\"test\" --no-clusters --no-glyph-names --no-positions",
4278 ),
4279 "17|\
4280 23|\
4281 28|\
4282 29|\
4283 29|\
4284 21"
4285 );
4286 }
4287
4288