| Index: recipes/test/core/strings/calculating_the_length_test.dart
|
| diff --git a/recipes/test/core/strings/calculating_the_length_test.dart b/recipes/test/core/strings/calculating_the_length_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..81210294a4956a7cbb4b2930fcb5d52d58a160df
|
| --- /dev/null
|
| +++ b/recipes/test/core/strings/calculating_the_length_test.dart
|
| @@ -0,0 +1,39 @@
|
| +library calculating_the_length_test;
|
| +
|
| +import 'package:unittest/unittest.dart';
|
| +
|
| +print(obj) {
|
| + return obj;
|
| +}
|
| +
|
| +void main() {
|
| + group('calculating the length of a string', () {
|
| +
|
| + var hearts = '\u2661';
|
| +
|
| + test('that contains only BMP symbols', () {
|
| + expect('I love music'.length, equals(12));
|
| + expect('I love music'.runes.length, equals(12));
|
| +
|
| + expect(hearts.length, equals(1));
|
| + expect(hearts.runes.length, equals(1));
|
| + });
|
| +
|
| + test('that contains non-BMP symbols', () {
|
| + var clef = '\u{1F3BC}';
|
| + expect(clef.length, equals(2));
|
| + expect(clef.runes.length, equals(1));
|
| +
|
| + var music = 'I $hearts $clef';
|
| + expect(music.length, equals(6));
|
| + expect(music.runes.length, equals(5));
|
| + });
|
| +
|
| + test('that has superimposed characters', () {
|
| + var name = 'Ameli\u00E9'; // 'AmeliƩ'
|
| + var anotherName = 'Ameli\u0065\u0301'; // 'AmeliƩ'
|
| + expect(print(name.length), equals(6));
|
| + expect(print(anotherName.length), equals(7));
|
| + });
|
| + });
|
| +}
|
|
|