@@ -11,95 +11,93 @@ import 'content_test.dart';
1111void main () {
1212 TestZulipBinding .ensureInitialized ();
1313
14- group ('MathBlock' , () {
15- group ('characters render at specific offsets with specific size' , () {
16- final testCases = < (KatexExample , List <(String , Offset , Size )>, {bool ? skip})> [
17- (KatexExample .sizing, skip: false , [
18- ('1' , Offset (0.00 , 2.24 ), Size (25.59 , 61.00 )),
19- ('2' , Offset (25.59 , 10.04 ), Size (21.33 , 51.00 )),
20- ('3' , Offset (46.91 , 16.55 ), Size (17.77 , 43.00 )),
21- ('4' , Offset (64.68 , 21.98 ), Size (14.80 , 36.00 )),
22- ('5' , Offset (79.48 , 26.50 ), Size (12.34 , 30.00 )),
23- ('6' , Offset (91.82 , 30.26 ), Size (10.28 , 25.00 )),
24- ('7' , Offset (102.10 , 32.15 ), Size (9.25 , 22.00 )),
25- ('8' , Offset (111.35 , 34.03 ), Size (8.23 , 20.00 )),
26- ('9' , Offset (119.58 , 35.91 ), Size (7.20 , 17.00 )),
27- ('0' , Offset (126.77 , 39.68 ), Size (5.14 , 12.00 )),
28- ]),
29- (KatexExample .nestedSizing, skip: false , [
30- ('1' , Offset (0.00 , 40.24 ), Size (5.14 , 12.00 )),
31- ('2' , Offset (5.14 , 2.80 ), Size (25.59 , 61.00 )),
32- ]),
33- (KatexExample .delimsizing, skip: false , [
34- ('(' , Offset (8.00 , 20.14 ), Size (9.42 , 25.00 )),
35- ('[' , Offset (17.42 , 20.14 ), Size (9.71 , 25.00 )),
36- ('⌈' , Offset (27.12 , 20.14 ), Size (11.99 , 25.00 )),
37- ('⌊' , Offset (39.11 , 20.14 ), Size (13.14 , 25.00 )),
38- ]),
39- (KatexExample .spacing, skip: false , [
40- ('1' , Offset (0.00 , 2.24 ), Size (10.28 , 25.00 )),
41- (':' , Offset (16.00 , 2.24 ), Size (5.72 , 25.00 )),
42- ('2' , Offset (27.43 , 2.24 ), Size (10.28 , 25.00 )),
43- ]),
44- (KatexExample .vlistSuperscript, skip: false , [
45- ('a' , Offset (0.00 , 5.28 ), Size (10.88 , 25.00 )),
46- ('′' , Offset (10.88 , 1.13 ), Size (3.96 , 17.00 )),
47- ]),
48- (KatexExample .vlistSubscript, skip: false , [
49- ('x' , Offset (0.00 , 5.28 ), Size (11.76 , 25.00 )),
50- ('n' , Offset (11.76 , 13.65 ), Size (8.63 , 17.00 )),
51- ]),
52- (KatexExample .vlistSubAndSuperscript, skip: false , [
53- ('u' , Offset (0.00 , 15.65 ), Size (8.23 , 17.00 )),
54- ('o' , Offset (0.00 , 2.07 ), Size (6.98 , 17.00 )),
55- ]),
56- (KatexExample .vlistRaisebox, skip: false , [
57- ('a' , Offset (0.00 , 4.16 ), Size (10.88 , 25.00 )),
58- ('b' , Offset (10.88 , - 0.66 ), Size (8.82 , 25.00 )),
59- ('c' , Offset (19.70 , 4.16 ), Size (8.90 , 25.00 )),
60- ]),
61- (KatexExample .negativeMargin, skip: false , [
62- ('1' , Offset (0.00 , 3.12 ), Size (10.28 , 25.00 )),
63- ('2' , Offset (6.85 , 3.36 ), Size (10.28 , 25.00 )),
64- ]),
65- (KatexExample .katexLogo, skip: false , [
66- ('K' , Offset (0.0 , 8.64 ), Size (16.0 , 25.0 )),
67- ('A' , Offset (12.50 , 10.85 ), Size (10.79 , 17.0 )),
68- ('T' , Offset (20.21 , 9.36 ), Size (14.85 , 25.0 )),
69- ('E' , Offset (31.63 , 14.52 ), Size (14.0 , 25.0 )),
70- ('X' , Offset (43.06 , 9.85 ), Size (15.42 , 25.0 )),
71- ]),
72- (KatexExample .vlistNegativeMargin, skip: false , [
73- ('X' , Offset (0.00 , 7.04 ), Size (17.03 , 25.00 )),
74- ('n' , Offset (17.03 , 15.90 ), Size (8.63 , 17.00 )),
75- ]),
76- ];
14+ group ('snapshot per-character rects' , () {
15+ final testCases = < (KatexExample , List <(String , Offset , Size )>, {bool ? skip})> [
16+ (KatexExample .sizing, skip: false , [
17+ ('1' , Offset (0.00 , 2.24 ), Size (25.59 , 61.00 )),
18+ ('2' , Offset (25.59 , 10.04 ), Size (21.33 , 51.00 )),
19+ ('3' , Offset (46.91 , 16.55 ), Size (17.77 , 43.00 )),
20+ ('4' , Offset (64.68 , 21.98 ), Size (14.80 , 36.00 )),
21+ ('5' , Offset (79.48 , 26.50 ), Size (12.34 , 30.00 )),
22+ ('6' , Offset (91.82 , 30.26 ), Size (10.28 , 25.00 )),
23+ ('7' , Offset (102.10 , 32.15 ), Size (9.25 , 22.00 )),
24+ ('8' , Offset (111.35 , 34.03 ), Size (8.23 , 20.00 )),
25+ ('9' , Offset (119.58 , 35.91 ), Size (7.20 , 17.00 )),
26+ ('0' , Offset (126.77 , 39.68 ), Size (5.14 , 12.00 )),
27+ ]),
28+ (KatexExample .nestedSizing, skip: false , [
29+ ('1' , Offset (0.00 , 40.24 ), Size (5.14 , 12.00 )),
30+ ('2' , Offset (5.14 , 2.80 ), Size (25.59 , 61.00 )),
31+ ]),
32+ (KatexExample .delimsizing, skip: false , [
33+ ('(' , Offset (8.00 , 20.14 ), Size (9.42 , 25.00 )),
34+ ('[' , Offset (17.42 , 20.14 ), Size (9.71 , 25.00 )),
35+ ('⌈' , Offset (27.12 , 20.14 ), Size (11.99 , 25.00 )),
36+ ('⌊' , Offset (39.11 , 20.14 ), Size (13.14 , 25.00 )),
37+ ]),
38+ (KatexExample .spacing, skip: false , [
39+ ('1' , Offset (0.00 , 2.24 ), Size (10.28 , 25.00 )),
40+ (':' , Offset (16.00 , 2.24 ), Size (5.72 , 25.00 )),
41+ ('2' , Offset (27.43 , 2.24 ), Size (10.28 , 25.00 )),
42+ ]),
43+ (KatexExample .vlistSuperscript, skip: false , [
44+ ('a' , Offset (0.00 , 5.28 ), Size (10.88 , 25.00 )),
45+ ('′' , Offset (10.88 , 1.13 ), Size (3.96 , 17.00 )),
46+ ]),
47+ (KatexExample .vlistSubscript, skip: false , [
48+ ('x' , Offset (0.00 , 5.28 ), Size (11.76 , 25.00 )),
49+ ('n' , Offset (11.76 , 13.65 ), Size (8.63 , 17.00 )),
50+ ]),
51+ (KatexExample .vlistSubAndSuperscript, skip: false , [
52+ ('u' , Offset (0.00 , 15.65 ), Size (8.23 , 17.00 )),
53+ ('o' , Offset (0.00 , 2.07 ), Size (6.98 , 17.00 )),
54+ ]),
55+ (KatexExample .vlistRaisebox, skip: false , [
56+ ('a' , Offset (0.00 , 4.16 ), Size (10.88 , 25.00 )),
57+ ('b' , Offset (10.88 , - 0.66 ), Size (8.82 , 25.00 )),
58+ ('c' , Offset (19.70 , 4.16 ), Size (8.90 , 25.00 )),
59+ ]),
60+ (KatexExample .negativeMargin, skip: false , [
61+ ('1' , Offset (0.00 , 3.12 ), Size (10.28 , 25.00 )),
62+ ('2' , Offset (6.85 , 3.36 ), Size (10.28 , 25.00 )),
63+ ]),
64+ (KatexExample .katexLogo, skip: false , [
65+ ('K' , Offset (0.0 , 8.64 ), Size (16.0 , 25.0 )),
66+ ('A' , Offset (12.50 , 10.85 ), Size (10.79 , 17.0 )),
67+ ('T' , Offset (20.21 , 9.36 ), Size (14.85 , 25.0 )),
68+ ('E' , Offset (31.63 , 14.52 ), Size (14.0 , 25.0 )),
69+ ('X' , Offset (43.06 , 9.85 ), Size (15.42 , 25.0 )),
70+ ]),
71+ (KatexExample .vlistNegativeMargin, skip: false , [
72+ ('X' , Offset (0.00 , 7.04 ), Size (17.03 , 25.00 )),
73+ ('n' , Offset (17.03 , 15.90 ), Size (8.63 , 17.00 )),
74+ ]),
75+ ];
7776
78- for (final testCase in testCases) {
79- testWidgets (testCase.$1.description, (tester) async {
80- await _loadKatexFonts ();
77+ for (final testCase in testCases) {
78+ testWidgets (testCase.$1.description, (tester) async {
79+ await _loadKatexFonts ();
8180
82- await prepareContent (tester, plainContent (testCase.$1.html));
81+ await prepareContent (tester, plainContent (testCase.$1.html));
8382
84- final baseRect = tester.getRect (find.byType (KatexWidget ));
83+ final baseRect = tester.getRect (find.byType (KatexWidget ));
8584
86- for (final characterData in testCase.$2) {
87- final character = characterData.$1;
88- final expectedTopLeftOffset = characterData.$2;
89- final expectedSize = characterData.$3;
85+ for (final characterData in testCase.$2) {
86+ final character = characterData.$1;
87+ final expectedTopLeftOffset = characterData.$2;
88+ final expectedSize = characterData.$3;
9089
91- final rect = tester.getRect (find.text (character));
92- final topLeftOffset = rect.topLeft - baseRect.topLeft;
93- final size = rect.size;
90+ final rect = tester.getRect (find.text (character));
91+ final topLeftOffset = rect.topLeft - baseRect.topLeft;
92+ final size = rect.size;
9493
95- check (topLeftOffset)
96- .within (distance: 0.05 , from: expectedTopLeftOffset);
97- check (size)
98- .within (distance: 0.05 , from: expectedSize);
99- }
100- }, skip: testCase.skip);
101- }
102- });
94+ check (topLeftOffset)
95+ .within (distance: 0.05 , from: expectedTopLeftOffset);
96+ check (size)
97+ .within (distance: 0.05 , from: expectedSize);
98+ }
99+ }, skip: testCase.skip);
100+ }
103101 });
104102}
105103
0 commit comments