Skip to content

Commit 79edb40

Browse files
committed
katex test [nfc]: Cut redundant group on KaTeX widget tests
This whole test file will be about KatexWidget and its associated private widgets, whether reached via MathBlock or via InlineContent. So a MathBlock group is no longer helpful, unlike when these tests lived in content_test.dart.
1 parent 8ca68d4 commit 79edb40

File tree

1 file changed

+81
-83
lines changed

1 file changed

+81
-83
lines changed

test/widgets/katex_test.dart

Lines changed: 81 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -11,95 +11,93 @@ import 'content_test.dart';
1111
void 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

Comments
 (0)