|
| 1 | +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file |
| 2 | +// for details. All rights reserved. Use of this source code is governed by a |
| 3 | +// BSD-style license that can be found in the LICENSE file. |
| 4 | + |
| 5 | +import 'package:test/test.dart'; |
| 6 | +import 'package:web_app/src/widget/downloads_chart/computations.dart'; |
| 7 | +// import 'package:web_app/src/widget/downloads_chart/widget.dart'; |
| 8 | + |
| 9 | +void main() { |
| 10 | + test('week lists - simpler', () { |
| 11 | + final List<int> l1 = List.from(List.filled(10, 10)) |
| 12 | + ..addAll(List.filled(10, 20)) |
| 13 | + ..add(2) |
| 14 | + ..addAll(List.filled(31, 0)); |
| 15 | + |
| 16 | + final List<int> l2 = List.from(List.filled(10, 20)) |
| 17 | + ..addAll(List.filled(10, 40)) |
| 18 | + ..add(4) |
| 19 | + ..addAll(List.filled(31, 0)); |
| 20 | + |
| 21 | + final List<int> l3 = List.from(List.filled(10, 70)) |
| 22 | + ..addAll(List.filled(10, 140)) |
| 23 | + ..add(14) |
| 24 | + ..addAll(List.filled(31, 0)); |
| 25 | + |
| 26 | + final totals = List<int>.from(List.filled(10, 110)) |
| 27 | + ..addAll(List.filled(10, 220)) |
| 28 | + ..add(22) |
| 29 | + ..addAll(List.filled(31, 0)); |
| 30 | + |
| 31 | + final patchRangeDownloads = [ |
| 32 | + (counts: l1, versionRange: '>=6.2.0-0 <6.2.1'), |
| 33 | + (counts: l1, versionRange: '>=6.2.1-0 <6.2.2'), |
| 34 | + (counts: l1, versionRange: '>=6.3.1-0 <6.3.2'), |
| 35 | + (counts: l1, versionRange: '>=6.4.0-0 <6.4.1'), |
| 36 | + (counts: l1, versionRange: '>=6.6.1-0 <6.6.2'), |
| 37 | + ]; |
| 38 | + |
| 39 | + final minorRangeDownloads = [ |
| 40 | + (counts: l1, versionRange: '>=6.1.0-0 <6.2.0'), |
| 41 | + (counts: l2, versionRange: '>=6.2.0-0 <6.3.0'), |
| 42 | + (counts: l1, versionRange: '>=6.3.0-0 <6.4.0'), |
| 43 | + (counts: l1, versionRange: '>=6.4.0-0 <6.5.0'), |
| 44 | + (counts: l1, versionRange: '>=6.6.0-0 <6.7.0') |
| 45 | + ]; |
| 46 | + |
| 47 | + final majorRangeDownloads = [ |
| 48 | + (counts: l1, versionRange: '>=1.0.0-0 <2.0.0'), |
| 49 | + (counts: l1, versionRange: '>=2.0.0-0 <3.0.0'), |
| 50 | + (counts: l1, versionRange: '>=3.0.0-0 <4.0.0'), |
| 51 | + (counts: l1, versionRange: '>=4.0.0-0 <5.0.0'), |
| 52 | + (counts: l3, versionRange: '>=6.0.0-0 <7.0.0') |
| 53 | + ]; |
| 54 | + |
| 55 | + final w1 = prepareWeekLists(totals, majorRangeDownloads, 52).toList(); |
| 56 | + final w2 = prepareWeekLists(totals, minorRangeDownloads, 52).toList(); |
| 57 | + final w3 = prepareWeekLists(totals, patchRangeDownloads, 52).toList(); |
| 58 | + |
| 59 | + for (int i = 42; i < 52; i++) { |
| 60 | + expect(w1[i], [10, 10, 10, 10, 70]); |
| 61 | + expect(w2[i], [50, 10, 20, 10, 10, 10]); |
| 62 | + expect(w3[i], [60, 10, 10, 10, 10, 10]); |
| 63 | + } |
| 64 | + |
| 65 | + for (int i = 32; i < 42; i++) { |
| 66 | + expect(w1[i], [20, 20, 20, 20, 140]); |
| 67 | + expect(w2[i], [100, 20, 40, 20, 20, 20]); |
| 68 | + expect(w3[i], [120, 20, 20, 20, 20, 20]); |
| 69 | + } |
| 70 | + |
| 71 | + expect(w1[31], [2, 2, 2, 2, 14]); |
| 72 | + expect(w2[31], [10, 2, 4, 2, 2, 2]); |
| 73 | + expect(w3[31], [12, 2, 2, 2, 2, 2]); |
| 74 | + |
| 75 | + for (int i = 0; i < 31; i++) { |
| 76 | + expect(w1[i], [0, 0, 0, 0, 0]); |
| 77 | + expect(w2[i], [0, 0, 0, 0, 0, 0]); |
| 78 | + expect(w3[i], [0, 0, 0, 0, 0, 0]); |
| 79 | + } |
| 80 | + }); |
| 81 | +} |
0 commit comments