flutter/examples/api/test/widgets/scroll_view/grid_view.0_test.dart
Michael Goderbauer 5491c8c146
Auto-format Framework (#160545)
This auto-formats all *.dart files in the repository outside of the
`engine` subdirectory and enforces that these files stay formatted with
a presubmit check.

**Reviewers:** Please carefully review all the commits except for the
one titled "formatted". The "formatted" commit was auto-generated by
running `dev/tools/format.sh -a -f`. The other commits were hand-crafted
to prepare the repo for the formatting change. I recommend reviewing the
commits one-by-one via the "Commits" tab and avoiding Github's "Files
changed" tab as it will likely slow down your browser because of the
size of this PR.

---------

Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
2024-12-19 20:06:21 +00:00

56 lines
1.6 KiB
Dart

// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/rendering.dart';
import 'package:flutter_api_samples/widgets/scroll_view/grid_view.0.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('$CustomGridLayout', (WidgetTester tester) async {
const CustomGridLayout layout = CustomGridLayout(
crossAxisCount: 2,
fullRowPeriod: 3,
dimension: 100,
);
final List<double> scrollOffsets = List<double>.generate(
10,
(int i) => layout.computeMaxScrollOffset(i),
);
expect(scrollOffsets, <double>[
0.0,
0.0,
100.0,
100.0,
200.0,
300.0,
300.0,
400.0,
400.0,
500.0,
]);
final List<int> minOffsets = List<int>.generate(
10,
(int i) => layout.getMinChildIndexForScrollOffset(i * 80.0),
);
expect(minOffsets, <int>[0, 0, 2, 4, 5, 7, 7, 9, 10, 12]);
final List<int> maxOffsets = List<int>.generate(
10,
(int i) => layout.getMaxChildIndexForScrollOffset(i * 80.0),
);
expect(maxOffsets, <double>[1, 1, 3, 4, 6, 8, 8, 9, 11, 13]);
final List<SliverGridGeometry> offsets = List<SliverGridGeometry>.generate(
20,
(int i) => layout.getGeometryForChildIndex(i),
);
offsets.reduce((SliverGridGeometry a, SliverGridGeometry b) {
if (a.scrollOffset == b.scrollOffset) {
expect(a.crossAxisOffset, lessThan(b.crossAxisOffset));
} else {
expect(a.scrollOffset, lessThan(b.scrollOffset));
}
return b;
});
});
}