@@ -11,95 +11,93 @@ import 'content_test.dart';
11
11
void main () {
12
12
TestZulipBinding .ensureInitialized ();
13
13
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
+ ];
77
76
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 ();
81
80
82
- await prepareContent (tester, plainContent (testCase.$1.html));
81
+ await prepareContent (tester, plainContent (testCase.$1.html));
83
82
84
- final baseRect = tester.getRect (find.byType (KatexWidget ));
83
+ final baseRect = tester.getRect (find.byType (KatexWidget ));
85
84
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;
90
89
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;
94
93
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
+ }
103
101
});
104
102
}
105
103
0 commit comments