Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Side by Side Diff: packages/collection/test/comparators_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import "package:collection/collection.dart"; 5 import "package:collection/collection.dart";
6 import "package:test/test.dart"; 6 import "package:test/test.dart";
7 7
8 void main() { 8 void main() {
9 List<String> strings = [ 9 List<String> strings = [
10 "", 10 "",
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 "a0a", 50 "a0a",
51 "a1a", 51 "a1a",
52 "aa", 52 "aa",
53 "aab", 53 "aab",
54 "ab", 54 "ab",
55 "z", 55 "z",
56 "{", 56 "{",
57 "~" 57 "~"
58 ]; 58 ];
59 59
60 sortedBy(compare) => strings.toList()..shuffle()..sort(compare); 60 sortedBy(compare) => strings.toList()
61 ..shuffle()
62 ..sort(compare);
61 63
62 test("String.compareTo", () { 64 test("String.compareTo", () {
63 expect(sortedBy(null), strings); 65 expect(sortedBy(null), strings);
64 }); 66 });
65 test("compareAsciiLowerCase", () { 67 test("compareAsciiLowerCase", () {
66 expect(sortedBy(compareAsciiLowerCase), 68 expect(sortedBy(compareAsciiLowerCase), sortedBy((a, b) {
67 sortedBy((a, b) { 69 int delta = a.toLowerCase().compareTo(b.toLowerCase());
68 int delta = a.toLowerCase().compareTo(b.toLowerCase()); 70 if (delta != 0) return delta;
69 if (delta != 0) return delta; 71 if (a == b) return 0;
70 if (a == b) return 0; 72 return a.compareTo(b);
71 return a.compareTo(b); 73 }));
72 }));
73 }); 74 });
74 test("compareAsciiUpperCase", () { 75 test("compareAsciiUpperCase", () {
75 expect(sortedBy(compareAsciiUpperCase), 76 expect(sortedBy(compareAsciiUpperCase), sortedBy((a, b) {
76 sortedBy((a, b) { 77 int delta = a.toUpperCase().compareTo(b.toUpperCase());
77 int delta = a.toUpperCase().compareTo(b.toUpperCase()); 78 if (delta != 0) return delta;
78 if (delta != 0) return delta; 79 if (a == b) return 0;
79 if (a == b) return 0; 80 return a.compareTo(b);
80 return a.compareTo(b); 81 }));
81 }));
82 }); 82 });
83 83
84 // Replace any digit sequence by ("0", value, length) as char codes. 84 // Replace any digit sequence by ("0", value, length) as char codes.
85 // This will sort alphabetically (by charcode) the way digits sort 85 // This will sort alphabetically (by charcode) the way digits sort
86 // numerically, and the leading 0 means it sorts like a digit 86 // numerically, and the leading 0 means it sorts like a digit
87 // compared to non-digits. 87 // compared to non-digits.
88 replaceNumbers(string) => string.replaceAllMapped(new RegExp(r"\d+"), (m) { 88 replaceNumbers(String string) =>
89 var digits = m[0]; 89 string.replaceAllMapped(new RegExp(r"\d+"), (m) {
90 return new String.fromCharCodes([0x30, int.parse(digits), digits.length]); 90 var digits = m[0];
91 }); 91 return new String.fromCharCodes(
92 [0x30, int.parse(digits), digits.length]);
93 });
92 94
93 test("compareNatural", () { 95 test("compareNatural", () {
94 expect(sortedBy(compareNatural), 96 expect(sortedBy(compareNatural),
95 sortedBy((a, b) => replaceNumbers(a).compareTo(replaceNumbers(b)))); 97 sortedBy((a, b) => replaceNumbers(a).compareTo(replaceNumbers(b))));
96 }); 98 });
97 99
98 test("compareAsciiLowerCaseNatural", () { 100 test("compareAsciiLowerCaseNatural", () {
99 expect(sortedBy(compareAsciiLowerCaseNatural), 101 expect(sortedBy(compareAsciiLowerCaseNatural), sortedBy((a, b) {
100 sortedBy((a, b) { 102 int delta = replaceNumbers(a.toLowerCase())
101 int delta = replaceNumbers(a.toLowerCase()).compareTo( 103 .compareTo(replaceNumbers(b.toLowerCase()));
102 replaceNumbers(b.toLowerCase())); 104 if (delta != 0) return delta;
103 if (delta != 0) return delta; 105 if (a == b) return 0;
104 if (a == b) return 0; 106 return a.compareTo(b);
105 return a.compareTo(b); 107 }));
106 }));
107 }); 108 });
108 109
109 test("compareAsciiUpperCaseNatural", () { 110 test("compareAsciiUpperCaseNatural", () {
110 expect(sortedBy(compareAsciiUpperCaseNatural), 111 expect(sortedBy(compareAsciiUpperCaseNatural), sortedBy((a, b) {
111 sortedBy((a, b) { 112 int delta = replaceNumbers(a.toUpperCase())
112 int delta = replaceNumbers(a.toUpperCase()).compareTo( 113 .compareTo(replaceNumbers(b.toUpperCase()));
113 replaceNumbers(b.toUpperCase())); 114 if (delta != 0) return delta;
114 if (delta != 0) return delta; 115 if (a == b) return 0;
115 if (a == b) return 0; 116 return a.compareTo(b);
116 return a.compareTo(b); 117 }));
117 }));
118 }); 118 });
119 } 119 }
OLDNEW
« no previous file with comments | « packages/collection/test/combined_wrapper/map_test.dart ('k') | packages/collection/test/equality_map_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698