// 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.

import "package:expect/expect.dart";

class WhatchamaCallIt {
  WhatchamaCallIt() {}

  String foo() {
    // Test $this and Field name is defined in subclass.
    dynamic self = this;
    dynamic name = self.name;
    return "$this and $name";
  }
}

class ThingamaBob extends WhatchamaCallIt {
  ThingamaBob(String s) : name = s, super();
  String name;
  toString() => "Hansel";
}

const String A = "svin";
const String B = "hest";
const int N = 1 + 1;
late String Printers;
late String AAR_Printers;

main() {
  Printers = "Printers: $A and $B";
  AAR_Printers = "AAR has $N $Printers.";

  var x = 1;
  var s = "eins und \$x macht zwei.";
  print(s);
  Expect.equals(r"eins und $x macht zwei.", s);

  s = "eins und $x macht zwei.";
  print(s);
  Expect.equals(r"eins und 1 macht zwei.", s);

  print(AAR_Printers);
  Expect.equals(r"AAR has 2 Printers: svin and hest.", AAR_Printers);

  var s$eins = "eins";
  var $1 = 1;
  var zw = "zw";
  var ei = "ei";
  var zw$ei = "\"Martini, dry? Nai zwai.\"";
  s = "${s$eins} und ${$1} macht $zw$ei.";
  print(s);
  Expect.equals(r"eins und 1 macht zwei.", s);

  dynamic t = new ThingamaBob("Gretel");
  print(t.foo());
  Expect.equals(t.foo(), "Hansel and Gretel");

  testStringVariants();
}

class Stringable {
  final String value;
  Stringable(this.value);
  String toString() => value;
  operator *(int count) => new Stringable(value * count);
}

void testStringVariants() {
  String latin = "ab\x00\xff";
  String nonLatin = "\u2000\u{10000}\ufeff";
  dynamic oLatin = new Stringable(latin);
  dynamic oNonLatin = new Stringable(nonLatin);

  // ASCII.
  Expect.equals(latin * 3, "$latin$latin$latin");
  Expect.equals(
    latin * 64,
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin",
  );
  Expect.equals(
    latin * 64,
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}",
  );
  // Non-ASCII.
  Expect.equals(nonLatin * 3, "$nonLatin$nonLatin$nonLatin");
  Expect.equals(
    nonLatin * 64,
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$nonLatin$nonLatin$nonLatin$nonLatin",
  );
  Expect.equals(
    nonLatin * 64,
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}"
    "${nonLatin * 4}${nonLatin * 4}",
  );
  // Mixed.
  Expect.equals(latin * 3 + nonLatin, "$latin$latin$latin$nonLatin");
  Expect.equals(nonLatin + latin * 3, "$nonLatin$latin$latin$latin");
  Expect.equals(
    latin * 60 + nonLatin * 4,
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin"
    "$nonLatin$nonLatin$nonLatin$nonLatin",
  );
  Expect.equals(
    nonLatin * 4 + latin * 60,
    "$nonLatin$nonLatin$nonLatin$nonLatin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin$latin$latin$latin$latin"
    "$latin$latin$latin$latin",
  );
  Expect.equals(
    latin * 60 + nonLatin * 4,
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${nonLatin * 4}",
  );
  Expect.equals(
    nonLatin * 4 + latin * 60,
    "${nonLatin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${latin * 4}",
  );
  // With objects.
  Expect.equals(latin * 3, "$latin$oLatin$latin");
  Expect.equals(
    latin * 64,
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin"
    "$latin$latin$latin$latin$latin$latin$latin$oLatin",
  );
  Expect.equals(
    latin * 64,
    "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}"
    "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}",
  );
  // Non-ASCII.
  Expect.equals(nonLatin * 3, "$nonLatin$oNonLatin$nonLatin");
  Expect.equals(
    nonLatin * 64,
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin"
    "$nonLatin$nonLatin$nonLatin$oNonLatin",
  );
  Expect.equals(
    nonLatin * 64,
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}"
    "${nonLatin * 4}${oNonLatin * 4}",
  );
  // Mixed.
  Expect.equals(latin * 2 + nonLatin * 2, "$latin$oLatin$nonLatin$oNonLatin");
  Expect.equals(nonLatin * 2 + latin * 2, "$nonLatin$oNonLatin$latin$oLatin");
  Expect.equals(
    (latin * 2 + nonLatin * 2) * 8,
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin"
    "$latin$oLatin$nonLatin$oNonLatin",
  );
  Expect.equals(
    (nonLatin * 2 + latin * 2) * 8,
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin"
    "$nonLatin$oNonLatin$latin$oLatin",
  );

  // All combinations
  var o1 = new Stringable("x");
  var o2 = new Stringable("\ufeff");

  Expect.equals("a\u2000x\ufeff", "${"a"}${"\u2000"}${o1}${o2}");
  Expect.equals("a\u2000\ufeffx", "${"a"}${"\u2000"}${o2}${o1}");
  Expect.equals("ax\u2000\ufeff", "${"a"}${o1}${"\u2000"}${o2}");
  Expect.equals("ax\ufeff\u2000", "${"a"}${o1}${o2}${"\u2000"}");
  Expect.equals("a\ufeffx\u2000", "${"a"}${o2}${o1}${"\u2000"}");
  Expect.equals("a\ufeff\u2000x", "${"a"}${o2}${"\u2000"}${o1}");

  Expect.equals("\u2000ax\ufeff", "${"\u2000"}${"a"}${o1}${o2}");
  Expect.equals("\u2000a\ufeffx", "${"\u2000"}${"a"}${o2}${o1}");
  Expect.equals("xa\u2000\ufeff", "${o1}${"a"}${"\u2000"}${o2}");
  Expect.equals("xa\ufeff\u2000", "${o1}${"a"}${o2}${"\u2000"}");
  Expect.equals("\ufeffax\u2000", "${o2}${"a"}${o1}${"\u2000"}");
  Expect.equals("\ufeffa\u2000x", "${o2}${"a"}${"\u2000"}${o1}");

  Expect.equals("\u2000xa\ufeff", "${"\u2000"}${o1}${"a"}${o2}");
  Expect.equals("\u2000\ufeffax", "${"\u2000"}${o2}${"a"}${o1}");
  Expect.equals("x\u2000a\ufeff", "${o1}${"\u2000"}${"a"}${o2}");
  Expect.equals("x\ufeffa\u2000", "${o1}${o2}${"a"}${"\u2000"}");
  Expect.equals("\ufeffxa\u2000", "${o2}${o1}${"a"}${"\u2000"}");
  Expect.equals("\ufeff\u2000ax", "${o2}${"\u2000"}${"a"}${o1}");

  Expect.equals("\u2000x\ufeffa", "${"\u2000"}${o1}${o2}${"a"}");
  Expect.equals("\u2000\ufeffxa", "${"\u2000"}${o2}${o1}${"a"}");
  Expect.equals("x\u2000\ufeffa", "${o1}${"\u2000"}${o2}${"a"}");
  Expect.equals("x\ufeff\u2000a", "${o1}${o2}${"\u2000"}${"a"}");
  Expect.equals("\ufeffx\u2000a", "${o2}${o1}${"\u2000"}${"a"}");
  Expect.equals("\ufeff\u2000xa", "${o2}${"\u2000"}${o1}${"a"}");
}
