blob: 158d325bc830c2e47947e199c250ed9aa9628e8b [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. 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:test/test.dart';
import 'test_utils.dart';
void main() {
group('preserves original yaml: ', () {
test('number', expectLoadPreservesYAML('2'));
test('number with leading and trailing lines', expectLoadPreservesYAML('''
2
'''));
test('octal numbers', expectLoadPreservesYAML('0o14'));
test('negative numbers', expectLoadPreservesYAML('-345'));
test('hexadecimal numbers', expectLoadPreservesYAML('0x123abc'));
test('floating point numbers', expectLoadPreservesYAML('345.678'));
test('exponential numbers', expectLoadPreservesYAML('12.3015e+02'));
test('string', expectLoadPreservesYAML('a string'));
test('string with control characters',
expectLoadPreservesYAML('a string \\n'));
test('string with control characters',
expectLoadPreservesYAML('a string \n\r'));
test('string with hex escapes',
expectLoadPreservesYAML('\\x0d\\x0a is \\r\\n'));
test('flow map', expectLoadPreservesYAML('{a: 2}'));
test('flow list', expectLoadPreservesYAML('[1, 2]'));
test('flow list with different types of elements',
expectLoadPreservesYAML('[1, a]'));
test('flow list with weird spaces',
expectLoadPreservesYAML('[ 1 , 2]'));
test('multiline string', expectLoadPreservesYAML('''
Mark set a major league
home run record in 1998.'''));
test('tilde', expectLoadPreservesYAML('~'));
test('false', expectLoadPreservesYAML('false'));
test('block map', expectLoadPreservesYAML('''a:
b: 1
'''));
test('block list', expectLoadPreservesYAML('''a:
- 1
'''));
test('complicated example', () {
expectLoadPreservesYAML('''verb: RecommendCafes
map:
a:
b: 1
recipe:
- verb: Score
outputs: ["DishOffering[]/Scored", "Suggestions"]
name: Hotpot
- verb: Rate
inputs: Dish
''');
});
});
}