blob: bb49ba519d51965ba494ceaa8315e8d22812ec43 [file] [log] [blame]
 // Copyright (c) 2011, 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. // Dart test program testing string interpolation of expressions. import "package:expect/expect.dart"; class StringInterpolate2Test { static var F1; static void testMain() { F1 = "1 + 5 = \${1+5}"; Expect.equals("1 + 5 = 6", F1); var fib = [1, 1, 2, 3, 5, 8, 13, 21]; var i = 5; var s = "\${i}"; Expect.equals("5", s); s = "fib(\${i}) = \${fib[i]}"; Expect.equals("fib(5) = 8", s); i = 5; s = "\$i squared is \${((x) => x*x)(i)}"; Expect.equals("5 squared is 25", s); Expect.equals("8", "\${fib.length}"); // test single quote Expect.equals("8", '\${fib.length}'); // test multi-line Expect.equals( "8", '\${fib. length}'); var map = {"red": 1, "green": 2, "blue": 3}; s = "green has value \${map["green"]}"; Expect.equals("green has value 2", s); i = 0; b() => "\${++i}"; s = "aaa \${"bbb \${b()} bbb"} aaa \${b()}"; Expect.equals("aaa bbb 1 bbb aaa 2", s); // test multiple levels of nesting, including changing quotes and // multiline string types s = "a \${(){ return 'b \${(){ return """ c""";}()}'; }()} d"; Expect.equals("a b c d", s); } } main() { StringInterpolate2Test.testMain(); }