| Index: recipes/test/core/strings/processing_a_string_one_character_test.dart
|
| diff --git a/recipes/test/core/strings/processing_a_string_one_character_test.dart b/recipes/test/core/strings/processing_a_string_one_character_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ac000d04717fec9ea16d19a706519af47a040236
|
| --- /dev/null
|
| +++ b/recipes/test/core/strings/processing_a_string_one_character_test.dart
|
| @@ -0,0 +1,62 @@
|
| +library processing_a_string_one_character_test;
|
| +
|
| +import 'package:unittest/unittest.dart';
|
| +
|
| +print(obj) {
|
| + return obj;
|
| +}
|
| +
|
| +void main() {
|
| +
|
| + group('processing a string one character at a time', () {
|
| + var clef = '\u{1F3BC}';
|
| + var lang= 'Dart';
|
| +
|
| + group('using split', () {
|
| + test('on code-unit boundary', () {
|
| + expect(lang.split('').map((char) => '*${char}*').toList(),
|
| + equals(['*D*', '*a*', '*r*', '*t*']));
|
| +
|
| + var smileyFace = '\u263A';
|
| + var happy = 'I am $smileyFace';
|
| + expect(print(happy.split('')), equals(['I', ' ', 'a', 'm', ' ', '☺']));
|
| + expect(clef.split('').length, equals(2));
|
| + });
|
| + });
|
| +
|
| + group('indexing the string in a loop', () {
|
| + test('', () {
|
| + var list = [];
|
| + for(var i = 0; i < lang.length; i++) {
|
| + list.add('*${lang[i]}*');
|
| + }
|
| + expect(list, equals(['*D*', '*a*', '*r*', '*t*']));
|
| + });
|
| +
|
| + test('with an extended character', () {
|
| + var list = [];
|
| + for(var i = 0; i < clef.length; i++) {
|
| + list.add([clef[i], clef[i].runes.first]);
|
| + }
|
| + // Because we are dealing with invalid strings, this test can never pass.
|
| + // expect(print(list.last), equals([[?, 55356], [?, 57276]]));
|
| + });
|
| + });
|
| +
|
| + group('mapping runes', () {
|
| + test('', () {
|
| + expect(lang.runes.map((rune) => '*${new String.fromCharCode(rune)}*').toList(),
|
| + equals(['*D*', '*a*', '*r*', '*t*']));
|
| +
|
| + var smileyFace = '\u263A';
|
| + var happy = 'I am $smileyFace';
|
| + expect(happy.runes.map((rune) => [rune, new String.fromCharCode(rune)]).toList(),
|
| + equals([ [73, 'I'], [32, ' '], [97, 'a'], [109, 'm'], [32, ' '], [9786, '☺'] ]));
|
| +
|
| + var subject = '$clef list:';
|
| + expect(subject.runes.map((rune) => new String.fromCharCode(rune)).toList(),
|
| + equals(['🎼', ' ', 'l', 'i', 's', 't', ':']));
|
| + });
|
| + });
|
| + });
|
| +}
|
|
|