OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Dart test program testing string interpolation. | 4 // Dart test program testing string interpolation. |
5 | 5 |
6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
7 | 7 |
8 | |
9 class WhatchamaCallIt { | 8 class WhatchamaCallIt { |
10 WhatchamaCallIt() { } | 9 WhatchamaCallIt() {} |
11 | 10 |
12 String foo() { | 11 String foo() { |
13 // Test $this and Field name is defined in subclass. | 12 // Test $this and Field name is defined in subclass. |
14 return "$this and $name"; | 13 return "$this and $name"; |
15 } | 14 } |
16 } | 15 } |
17 | 16 |
18 class ThingamaBob extends WhatchamaCallIt { | 17 class ThingamaBob extends WhatchamaCallIt { |
19 ThingamaBob(String s) : super(), name = s { } | 18 ThingamaBob(String s) |
| 19 : super(), |
| 20 name = s {} |
20 String name; | 21 String name; |
21 toString() => "Hansel"; | 22 toString() => "Hansel"; |
22 } | 23 } |
23 | 24 |
24 const String A = "svin"; | 25 const String A = "svin"; |
25 const String B = "hest"; | 26 const String B = "hest"; |
26 const int N = 1 + 1; | 27 const int N = 1 + 1; |
27 String Printers; | 28 String Printers; |
28 String AAR_Printers; | 29 String AAR_Printers; |
29 | 30 |
30 main() { | 31 main() { |
31 Printers = "Printers: $A and $B"; | 32 Printers = "Printers: $A and $B"; |
32 AAR_Printers = "AAR has $N $Printers."; | 33 AAR_Printers = "AAR has $N $Printers."; |
33 | 34 |
34 var x = 1; | 35 var x = 1; |
35 var s = "eins und \$x macht zwei."; | 36 var s = "eins und \$x macht zwei."; |
36 print(s); | 37 print(s); |
37 Expect.equals(r"eins und $x macht zwei.", s); | 38 Expect.equals(r"eins und $x macht zwei.", s); |
38 | 39 |
39 s = "eins und $x macht zwei."; | 40 s = "eins und $x macht zwei."; |
40 print(s); | 41 print(s); |
41 Expect.equals(r"eins und 1 macht zwei.", s); | 42 Expect.equals(r"eins und 1 macht zwei.", s); |
42 | 43 |
43 print(AAR_Printers); | 44 print(AAR_Printers); |
44 Expect.equals(r"AAR has 2 Printers: svin and hest.", AAR_Printers); | 45 Expect.equals(r"AAR has 2 Printers: svin and hest.", AAR_Printers); |
45 | 46 |
46 var s$eins = "eins"; | 47 var s$eins = "eins"; |
47 var $1 = 1; | 48 var $1 = 1; |
48 var zw = "zw"; | 49 var zw = "zw"; |
49 var ei = "ei"; | 50 var ei = "ei"; |
50 var zw$ei = "\"Martini, dry? Nai zwai.\""; | 51 var zw$ei = "\"Martini, dry? Nai zwai.\""; |
51 s = "${s$eins} und ${$1} macht $zw$ei."; | 52 s = "${s$eins} und ${$1} macht $zw$ei."; |
52 print(s); | 53 print(s); |
53 Expect.equals(r"eins und 1 macht zwei.", s); | 54 Expect.equals(r"eins und 1 macht zwei.", s); |
54 | 55 |
55 var t = new ThingamaBob("Gretel"); | 56 var t = new ThingamaBob("Gretel"); |
56 print(t.foo()); | 57 print(t.foo()); |
57 Expect.equals(t.foo(), "Hansel and Gretel"); | 58 Expect.equals(t.foo(), "Hansel and Gretel"); |
58 | 59 |
59 testStringVariants(); | 60 testStringVariants(); |
60 } | 61 } |
61 | 62 |
62 | |
63 class Stringable { | 63 class Stringable { |
64 final String value; | 64 final String value; |
65 Stringable(this.value); | 65 Stringable(this.value); |
66 String toString() => value; | 66 String toString() => value; |
67 operator *(int count) => new Stringable(value * count); | 67 operator *(int count) => new Stringable(value * count); |
68 } | 68 } |
69 | 69 |
70 void testStringVariants() { | 70 void testStringVariants() { |
71 String latin = "ab\x00\xff"; | 71 String latin = "ab\x00\xff"; |
72 String nonLatin = "\u2000\u{10000}\ufeff"; | 72 String nonLatin = "\u2000\u{10000}\ufeff"; |
73 Object oLatin = new Stringable(latin); | 73 Object oLatin = new Stringable(latin); |
74 Object oNonLatin = new Stringable(nonLatin); | 74 Object oNonLatin = new Stringable(nonLatin); |
75 | 75 |
76 // ASCII. | 76 // ASCII. |
77 Expect.equals(latin * 3, "$latin$latin$latin"); | 77 Expect.equals(latin * 3, "$latin$latin$latin"); |
78 Expect.equals(latin * 64, "$latin$latin$latin$latin$latin$latin$latin$latin" | 78 Expect.equals( |
79 "$latin$latin$latin$latin$latin$latin$latin$latin" | 79 latin * 64, |
80 "$latin$latin$latin$latin$latin$latin$latin$latin" | 80 "$latin$latin$latin$latin$latin$latin$latin$latin" |
81 "$latin$latin$latin$latin$latin$latin$latin$latin" | 81 "$latin$latin$latin$latin$latin$latin$latin$latin" |
82 "$latin$latin$latin$latin$latin$latin$latin$latin" | 82 "$latin$latin$latin$latin$latin$latin$latin$latin" |
83 "$latin$latin$latin$latin$latin$latin$latin$latin" | 83 "$latin$latin$latin$latin$latin$latin$latin$latin" |
84 "$latin$latin$latin$latin$latin$latin$latin$latin" | 84 "$latin$latin$latin$latin$latin$latin$latin$latin" |
85 "$latin$latin$latin$latin$latin$latin$latin$latin"); | 85 "$latin$latin$latin$latin$latin$latin$latin$latin" |
86 Expect.equals(latin * 64, "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 86 "$latin$latin$latin$latin$latin$latin$latin$latin" |
87 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 87 "$latin$latin$latin$latin$latin$latin$latin$latin"); |
88 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 88 Expect.equals( |
89 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"); | 89 latin * 64, |
| 90 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
| 91 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
| 92 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
| 93 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"); |
90 // Non-ASCII. | 94 // Non-ASCII. |
91 Expect.equals(nonLatin * 3, "$nonLatin$nonLatin$nonLatin"); | 95 Expect.equals(nonLatin * 3, "$nonLatin$nonLatin$nonLatin"); |
92 Expect.equals(nonLatin * 64, "$nonLatin$nonLatin$nonLatin$nonLatin" | 96 Expect.equals( |
93 "$nonLatin$nonLatin$nonLatin$nonLatin" | 97 nonLatin * 64, |
94 "$nonLatin$nonLatin$nonLatin$nonLatin" | 98 "$nonLatin$nonLatin$nonLatin$nonLatin" |
95 "$nonLatin$nonLatin$nonLatin$nonLatin" | 99 "$nonLatin$nonLatin$nonLatin$nonLatin" |
96 "$nonLatin$nonLatin$nonLatin$nonLatin" | 100 "$nonLatin$nonLatin$nonLatin$nonLatin" |
97 "$nonLatin$nonLatin$nonLatin$nonLatin" | 101 "$nonLatin$nonLatin$nonLatin$nonLatin" |
98 "$nonLatin$nonLatin$nonLatin$nonLatin" | 102 "$nonLatin$nonLatin$nonLatin$nonLatin" |
99 "$nonLatin$nonLatin$nonLatin$nonLatin" | 103 "$nonLatin$nonLatin$nonLatin$nonLatin" |
100 "$nonLatin$nonLatin$nonLatin$nonLatin" | 104 "$nonLatin$nonLatin$nonLatin$nonLatin" |
101 "$nonLatin$nonLatin$nonLatin$nonLatin" | 105 "$nonLatin$nonLatin$nonLatin$nonLatin" |
102 "$nonLatin$nonLatin$nonLatin$nonLatin" | 106 "$nonLatin$nonLatin$nonLatin$nonLatin" |
103 "$nonLatin$nonLatin$nonLatin$nonLatin" | 107 "$nonLatin$nonLatin$nonLatin$nonLatin" |
104 "$nonLatin$nonLatin$nonLatin$nonLatin" | 108 "$nonLatin$nonLatin$nonLatin$nonLatin" |
105 "$nonLatin$nonLatin$nonLatin$nonLatin" | 109 "$nonLatin$nonLatin$nonLatin$nonLatin" |
106 "$nonLatin$nonLatin$nonLatin$nonLatin" | 110 "$nonLatin$nonLatin$nonLatin$nonLatin" |
107 "$nonLatin$nonLatin$nonLatin$nonLatin"); | 111 "$nonLatin$nonLatin$nonLatin$nonLatin" |
108 Expect.equals(nonLatin * 64, "${nonLatin * 4}${nonLatin * 4}" | 112 "$nonLatin$nonLatin$nonLatin$nonLatin" |
109 "${nonLatin * 4}${nonLatin * 4}" | 113 "$nonLatin$nonLatin$nonLatin$nonLatin"); |
110 "${nonLatin * 4}${nonLatin * 4}" | 114 Expect.equals( |
111 "${nonLatin * 4}${nonLatin * 4}" | 115 nonLatin * 64, |
112 "${nonLatin * 4}${nonLatin * 4}" | 116 "${nonLatin * 4}${nonLatin * 4}" |
113 "${nonLatin * 4}${nonLatin * 4}" | 117 "${nonLatin * 4}${nonLatin * 4}" |
114 "${nonLatin * 4}${nonLatin * 4}" | 118 "${nonLatin * 4}${nonLatin * 4}" |
115 "${nonLatin * 4}${nonLatin * 4}"); | 119 "${nonLatin * 4}${nonLatin * 4}" |
| 120 "${nonLatin * 4}${nonLatin * 4}" |
| 121 "${nonLatin * 4}${nonLatin * 4}" |
| 122 "${nonLatin * 4}${nonLatin * 4}" |
| 123 "${nonLatin * 4}${nonLatin * 4}"); |
116 // Mixed. | 124 // Mixed. |
117 Expect.equals(latin * 3 + nonLatin, "$latin$latin$latin$nonLatin"); | 125 Expect.equals(latin * 3 + nonLatin, "$latin$latin$latin$nonLatin"); |
118 Expect.equals(nonLatin + latin * 3, "$nonLatin$latin$latin$latin"); | 126 Expect.equals(nonLatin + latin * 3, "$nonLatin$latin$latin$latin"); |
119 Expect.equals(latin * 60 + nonLatin * 4, | 127 Expect.equals( |
120 "$latin$latin$latin$latin$latin$latin$latin$latin" | 128 latin * 60 + nonLatin * 4, |
121 "$latin$latin$latin$latin$latin$latin$latin$latin" | 129 "$latin$latin$latin$latin$latin$latin$latin$latin" |
122 "$latin$latin$latin$latin$latin$latin$latin$latin" | 130 "$latin$latin$latin$latin$latin$latin$latin$latin" |
123 "$latin$latin$latin$latin$latin$latin$latin$latin" | 131 "$latin$latin$latin$latin$latin$latin$latin$latin" |
124 "$latin$latin$latin$latin$latin$latin$latin$latin" | 132 "$latin$latin$latin$latin$latin$latin$latin$latin" |
125 "$latin$latin$latin$latin$latin$latin$latin$latin" | 133 "$latin$latin$latin$latin$latin$latin$latin$latin" |
126 "$latin$latin$latin$latin$latin$latin$latin$latin" | 134 "$latin$latin$latin$latin$latin$latin$latin$latin" |
127 "$latin$latin$latin$latin" | 135 "$latin$latin$latin$latin$latin$latin$latin$latin" |
128 "$nonLatin$nonLatin$nonLatin$nonLatin"); | 136 "$latin$latin$latin$latin" |
129 Expect.equals(nonLatin * 4 + latin * 60, | 137 "$nonLatin$nonLatin$nonLatin$nonLatin"); |
130 "$nonLatin$nonLatin$nonLatin$nonLatin" | 138 Expect.equals( |
131 "$latin$latin$latin$latin$latin$latin$latin$latin" | 139 nonLatin * 4 + latin * 60, |
132 "$latin$latin$latin$latin$latin$latin$latin$latin" | 140 "$nonLatin$nonLatin$nonLatin$nonLatin" |
133 "$latin$latin$latin$latin$latin$latin$latin$latin" | 141 "$latin$latin$latin$latin$latin$latin$latin$latin" |
134 "$latin$latin$latin$latin$latin$latin$latin$latin" | 142 "$latin$latin$latin$latin$latin$latin$latin$latin" |
135 "$latin$latin$latin$latin$latin$latin$latin$latin" | 143 "$latin$latin$latin$latin$latin$latin$latin$latin" |
136 "$latin$latin$latin$latin$latin$latin$latin$latin" | 144 "$latin$latin$latin$latin$latin$latin$latin$latin" |
137 "$latin$latin$latin$latin$latin$latin$latin$latin" | 145 "$latin$latin$latin$latin$latin$latin$latin$latin" |
138 "$latin$latin$latin$latin"); | 146 "$latin$latin$latin$latin$latin$latin$latin$latin" |
139 Expect.equals(latin * 60 + nonLatin * 4, | 147 "$latin$latin$latin$latin$latin$latin$latin$latin" |
140 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 148 "$latin$latin$latin$latin"); |
141 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 149 Expect.equals( |
142 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 150 latin * 60 + nonLatin * 4, |
143 "${latin * 4}${latin * 4}${latin * 4}${nonLatin * 4}"); | 151 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
144 Expect.equals(nonLatin * 4 + latin * 60, | 152 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
145 "${nonLatin * 4}${latin * 4}${latin * 4}${latin * 4}" | 153 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
146 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 154 "${latin * 4}${latin * 4}${latin * 4}${nonLatin * 4}"); |
147 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" | 155 Expect.equals( |
148 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"); | 156 nonLatin * 4 + latin * 60, |
| 157 "${nonLatin * 4}${latin * 4}${latin * 4}${latin * 4}" |
| 158 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
| 159 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}" |
| 160 "${latin * 4}${latin * 4}${latin * 4}${latin * 4}"); |
149 // With objects. | 161 // With objects. |
150 Expect.equals(latin * 3, "$latin$oLatin$latin"); | 162 Expect.equals(latin * 3, "$latin$oLatin$latin"); |
151 Expect.equals(latin * 64, "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 163 Expect.equals( |
152 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 164 latin * 64, |
153 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 165 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
154 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 166 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
155 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 167 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
156 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 168 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
157 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 169 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
158 "$latin$latin$latin$latin$latin$latin$latin$oLatin" | 170 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
159 ); | 171 "$latin$latin$latin$latin$latin$latin$latin$oLatin" |
160 Expect.equals(latin * 64, "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" | 172 "$latin$latin$latin$latin$latin$latin$latin$oLatin"); |
161 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" | 173 Expect.equals( |
162 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" | 174 latin * 64, |
163 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" | 175 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" |
164 ); | 176 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" |
| 177 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}" |
| 178 "${latin * 4}${latin * 4}${latin * 4}${oLatin * 4}"); |
165 // Non-ASCII. | 179 // Non-ASCII. |
166 Expect.equals(nonLatin * 3, "$nonLatin$oNonLatin$nonLatin"); | 180 Expect.equals(nonLatin * 3, "$nonLatin$oNonLatin$nonLatin"); |
167 Expect.equals(nonLatin * 64, "$nonLatin$nonLatin$nonLatin$oNonLatin" | 181 Expect.equals( |
168 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 182 nonLatin * 64, |
169 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 183 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
170 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 184 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
171 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 185 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
172 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 186 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
173 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 187 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
174 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 188 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
175 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 189 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
176 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 190 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
177 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 191 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
178 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 192 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
179 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 193 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
180 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 194 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
181 "$nonLatin$nonLatin$nonLatin$oNonLatin" | 195 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
182 "$nonLatin$nonLatin$nonLatin$oNonLatin"); | 196 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
183 Expect.equals(nonLatin * 64, "${nonLatin * 4}${oNonLatin * 4}" | 197 "$nonLatin$nonLatin$nonLatin$oNonLatin" |
184 "${nonLatin * 4}${oNonLatin * 4}" | 198 "$nonLatin$nonLatin$nonLatin$oNonLatin"); |
185 "${nonLatin * 4}${oNonLatin * 4}" | 199 Expect.equals( |
186 "${nonLatin * 4}${oNonLatin * 4}" | 200 nonLatin * 64, |
187 "${nonLatin * 4}${oNonLatin * 4}" | 201 "${nonLatin * 4}${oNonLatin * 4}" |
188 "${nonLatin * 4}${oNonLatin * 4}" | 202 "${nonLatin * 4}${oNonLatin * 4}" |
189 "${nonLatin * 4}${oNonLatin * 4}" | 203 "${nonLatin * 4}${oNonLatin * 4}" |
190 "${nonLatin * 4}${oNonLatin * 4}"); | 204 "${nonLatin * 4}${oNonLatin * 4}" |
| 205 "${nonLatin * 4}${oNonLatin * 4}" |
| 206 "${nonLatin * 4}${oNonLatin * 4}" |
| 207 "${nonLatin * 4}${oNonLatin * 4}" |
| 208 "${nonLatin * 4}${oNonLatin * 4}"); |
191 // Mixed. | 209 // Mixed. |
192 Expect.equals(latin * 2 + nonLatin * 2, "$latin$oLatin$nonLatin$oNonLatin"); | 210 Expect.equals(latin * 2 + nonLatin * 2, "$latin$oLatin$nonLatin$oNonLatin"); |
193 Expect.equals(nonLatin * 2 + latin * 2, "$nonLatin$oNonLatin$latin$oLatin"); | 211 Expect.equals(nonLatin * 2 + latin * 2, "$nonLatin$oNonLatin$latin$oLatin"); |
194 Expect.equals((latin * 2 + nonLatin * 2) * 8, | 212 Expect.equals( |
195 "$latin$oLatin$nonLatin$oNonLatin" | 213 (latin * 2 + nonLatin * 2) * 8, |
196 "$latin$oLatin$nonLatin$oNonLatin" | 214 "$latin$oLatin$nonLatin$oNonLatin" |
197 "$latin$oLatin$nonLatin$oNonLatin" | 215 "$latin$oLatin$nonLatin$oNonLatin" |
198 "$latin$oLatin$nonLatin$oNonLatin" | 216 "$latin$oLatin$nonLatin$oNonLatin" |
199 "$latin$oLatin$nonLatin$oNonLatin" | 217 "$latin$oLatin$nonLatin$oNonLatin" |
200 "$latin$oLatin$nonLatin$oNonLatin" | 218 "$latin$oLatin$nonLatin$oNonLatin" |
201 "$latin$oLatin$nonLatin$oNonLatin" | 219 "$latin$oLatin$nonLatin$oNonLatin" |
202 "$latin$oLatin$nonLatin$oNonLatin"); | 220 "$latin$oLatin$nonLatin$oNonLatin" |
203 Expect.equals((nonLatin * 2 + latin * 2) * 8, | 221 "$latin$oLatin$nonLatin$oNonLatin"); |
204 "$nonLatin$oNonLatin$latin$oLatin" | 222 Expect.equals( |
205 "$nonLatin$oNonLatin$latin$oLatin" | 223 (nonLatin * 2 + latin * 2) * 8, |
206 "$nonLatin$oNonLatin$latin$oLatin" | 224 "$nonLatin$oNonLatin$latin$oLatin" |
207 "$nonLatin$oNonLatin$latin$oLatin" | 225 "$nonLatin$oNonLatin$latin$oLatin" |
208 "$nonLatin$oNonLatin$latin$oLatin" | 226 "$nonLatin$oNonLatin$latin$oLatin" |
209 "$nonLatin$oNonLatin$latin$oLatin" | 227 "$nonLatin$oNonLatin$latin$oLatin" |
210 "$nonLatin$oNonLatin$latin$oLatin" | 228 "$nonLatin$oNonLatin$latin$oLatin" |
211 "$nonLatin$oNonLatin$latin$oLatin"); | 229 "$nonLatin$oNonLatin$latin$oLatin" |
| 230 "$nonLatin$oNonLatin$latin$oLatin" |
| 231 "$nonLatin$oNonLatin$latin$oLatin"); |
212 | 232 |
213 // All combinations | 233 // All combinations |
214 var o1 = new Stringable("x"); | 234 var o1 = new Stringable("x"); |
215 var o2 = new Stringable("\ufeff"); | 235 var o2 = new Stringable("\ufeff"); |
216 | 236 |
217 Expect.equals("a\u2000x\ufeff", "${"a"}${"\u2000"}${o1}${o2}"); | 237 Expect.equals("a\u2000x\ufeff", "${"a"}${"\u2000"}${o1}${o2}"); |
218 Expect.equals("a\u2000\ufeffx", "${"a"}${"\u2000"}${o2}${o1}"); | 238 Expect.equals("a\u2000\ufeffx", "${"a"}${"\u2000"}${o2}${o1}"); |
219 Expect.equals("ax\u2000\ufeff", "${"a"}${o1}${"\u2000"}${o2}"); | 239 Expect.equals("ax\u2000\ufeff", "${"a"}${o1}${"\u2000"}${o2}"); |
220 Expect.equals("ax\ufeff\u2000", "${"a"}${o1}${o2}${"\u2000"}"); | 240 Expect.equals("ax\ufeff\u2000", "${"a"}${o1}${o2}${"\u2000"}"); |
221 Expect.equals("a\ufeffx\u2000", "${"a"}${o2}${o1}${"\u2000"}"); | 241 Expect.equals("a\ufeffx\u2000", "${"a"}${o2}${o1}${"\u2000"}"); |
(...skipping 13 matching lines...) Expand all Loading... |
235 Expect.equals("\ufeffxa\u2000", "${o2}${o1}${"a"}${"\u2000"}"); | 255 Expect.equals("\ufeffxa\u2000", "${o2}${o1}${"a"}${"\u2000"}"); |
236 Expect.equals("\ufeff\u2000ax", "${o2}${"\u2000"}${"a"}${o1}"); | 256 Expect.equals("\ufeff\u2000ax", "${o2}${"\u2000"}${"a"}${o1}"); |
237 | 257 |
238 Expect.equals("\u2000x\ufeffa", "${"\u2000"}${o1}${o2}${"a"}"); | 258 Expect.equals("\u2000x\ufeffa", "${"\u2000"}${o1}${o2}${"a"}"); |
239 Expect.equals("\u2000\ufeffxa", "${"\u2000"}${o2}${o1}${"a"}"); | 259 Expect.equals("\u2000\ufeffxa", "${"\u2000"}${o2}${o1}${"a"}"); |
240 Expect.equals("x\u2000\ufeffa", "${o1}${"\u2000"}${o2}${"a"}"); | 260 Expect.equals("x\u2000\ufeffa", "${o1}${"\u2000"}${o2}${"a"}"); |
241 Expect.equals("x\ufeff\u2000a", "${o1}${o2}${"\u2000"}${"a"}"); | 261 Expect.equals("x\ufeff\u2000a", "${o1}${o2}${"\u2000"}${"a"}"); |
242 Expect.equals("\ufeffx\u2000a", "${o2}${o1}${"\u2000"}${"a"}"); | 262 Expect.equals("\ufeffx\u2000a", "${o2}${o1}${"\u2000"}${"a"}"); |
243 Expect.equals("\ufeff\u2000xa", "${o2}${"\u2000"}${o1}${"a"}"); | 263 Expect.equals("\ufeff\u2000xa", "${o2}${"\u2000"}${o1}${"a"}"); |
244 } | 264 } |
OLD | NEW |