@@ -244,61 +244,46 @@ assert String.replaceAll("/", "\/", "/test/test/test/")
244244assert String.replaceAll(",", "|", "test,test,test") == "test|test|test"
245245
246246assert String.replaceAll("MeowMeow", "Meow", "MeowMeowMeowMeow") == "MeowMeow"
247- let processBytes = b => {
248- let ret = Array.make(Bytes.length(b), 0us)
249- for (let mut i = 0; i < Bytes.length(b); i += 1) {
250- ret[i] = Bytes.getUint8(i, b)
251- }
252- ret
253- }
254247
255248// Simple cases
256- // formatter-ignore
257- assert processBytes(String.encode("ab", String.UTF8)) == [> 0x61us, 0x62us]
258- // formatter-ignore
259- assert processBytes(String.encode("ab", String.UTF16_BE)) == [> 0x00us, 0x61us, 0x00us, 0x62us]
260- // formatter-ignore
261- assert processBytes(String.encode("ab", String.UTF16_LE)) == [> 0x61us, 0x00us, 0x62us, 0x00us]
262- // formatter-ignore
263- assert processBytes(String.encode("ab", String.UTF32_BE)) == [> 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x62us]
264- // formatter-ignore
265- assert processBytes(String.encode("ab", String.UTF32_LE)) == [> 0x61us, 0x00us, 0x00us, 0x00us, 0x62us, 0x00us, 0x00us, 0x00us]
249+ assert String.encode("ab", String.UTF8) == b"\x61\x62"
250+ assert String.encode("ab", String.UTF16_BE) == b"\x00\x61\x00\x62"
251+ assert String.encode("ab", String.UTF16_LE) == b"\x61\x00\x62\x00"
252+ assert String.encode("ab", String.UTF32_BE)
253+ == b"\x00\x00\x00\x61\x00\x00\x00\x62"
254+ assert String.encode("ab", String.UTF32_LE)
255+ == b"\x61\x00\x00\x00\x62\x00\x00\x00"
266256
267257// Surrogate pairs
268- // formatter-ignore
269- assert processBytes(String.encode("𐐷", String.UTF8)) == [> 0xF0us, 0x90us, 0x90us, 0xB7us]
270- // formatter-ignore
271- assert processBytes(String.encode("𐐷", String.UTF16_BE)) == [> 0xD8us, 0x01us, 0xDCus, 0x37us]
272- // formatter-ignore
273- assert processBytes(String.encode("𐐷", String.UTF16_LE)) == [> 0x01us, 0xD8us, 0x37us, 0xDCus]
274- // formatter-ignore
275- assert processBytes(String.encode("𐐷", String.UTF32_BE)) == [> 0x00us, 0x01us, 0x04us, 0x37us]
276- // formatter-ignore
277- assert processBytes(String.encode("𐐷", String.UTF32_LE)) == [> 0x37us, 0x04us, 0x01us, 0x00us]
278-
279- // formatter-ignore
280- assert processBytes(String.encodeAt("𐐷", String.UTF16_BE, Bytes.make(12), 5)) == [> 0x00us, 0x00us, 0x00us, 0x00us, 0x00us, 0xD8us, 0x01us, 0xDCus, 0x37us, 0x00us, 0x00us, 0x00us]
258+ assert String.encode("𐐷", String.UTF8) == b"\xF0\x90\x90\xB7"
259+ assert String.encode("𐐷", String.UTF16_BE) == b"\xD8\x01\xDC\x37"
260+ assert String.encode("𐐷", String.UTF16_LE) == b"\x01\xD8\x37\xDC"
261+ assert String.encode("𐐷", String.UTF32_BE) == b"\x00\x01\x04\x37"
262+ assert String.encode("𐐷", String.UTF32_LE) == b"\x37\x04\x01\x00"
263+
264+ assert String.encodeAt("𐐷", String.UTF16_BE, Bytes.make(12), 5)
265+ == b"\x00\x00\x00\x00\x00\xD8\x01\xDC\x37\x00\x00\x00"
281266// test that BOM is prepended:
282- // formatter-ignore
283- assert processBytes(String.encode("𐐷", String.UTF8, includeBom=true)) == [> 0xEFus, 0xBBus, 0xBFus, 0xF0us, 0x90us, 0x90us, 0xB7us]
284- // formatter-ignore
285- assert processBytes(String.encode("𐐷", String.UTF16_BE, includeBom=true)) == [> 0xFEus, 0xFFus, 0xD8us, 0x01us, 0xDCus, 0x37us]
286- // formatter-ignore
287- assert processBytes(String.encode("𐐷", String.UTF16_LE, includeBom=true)) == [> 0xFFus, 0xFEus, 0x01us, 0xD8us, 0x37us, 0xDCus]
288- // formatter-ignore
289- assert processBytes(String.encode("𐐷", String.UTF32_BE, includeBom=true)) == [> 0x00us, 0x00us, 0xFEus, 0xFFus, 0x00us, 0x01us, 0x04us, 0x37us]
290- // formatter-ignore
291- assert processBytes(String.encode("𐐷", String.UTF32_LE, includeBom=true)) == [> 0xFFus, 0xFEus, 0x00us, 0x00us, 0x37us, 0x04us, 0x01us, 0x00us]
292-
293- // formatter-ignore
294- assert processBytes(String.encode(emojis, String.UTF16_BE)) == [> 0x00us, 0x77us, 0x00us, 0x65us, 0x00us, 0x20us, 0x00us, 0x66us, 0x00us, 0x6fus, 0x00us, 0x75us, 0x00us, 0x6eus, 0x00us, 0x64us, 0x00us, 0x20us, 0x00us, 0x61us, 0x00us, 0x20us, 0x00us, 0x70us, 0x00us, 0x61us, 0x00us, 0x74us, 0x00us, 0x68us, 0xd8us, 0x3dus, 0xdeus, 0x80us, 0x00us, 0x20us, 0x00us, 0x74us, 0x00us, 0x6fus, 0x00us, 0x20us, 0x00us, 0x67us, 0x00us, 0x72us, 0x00us, 0x65us, 0x00us, 0x61us, 0x00us, 0x74us, 0x00us, 0x6eus, 0x00us, 0x65us, 0x00us, 0x73us, 0x00us, 0x73us, 0xd8us, 0x3cus, 0xdfus, 0xc5us, 0x00us, 0x62us, 0x00us, 0x75us, 0x00us, 0x74us, 0x00us, 0x20us, 0x00us, 0x74us, 0x00us, 0x68us, 0x00us, 0x65us, 0x00us, 0x20us, 0x00us, 0x67us, 0x00us, 0x72us, 0x00us, 0x69us, 0x00us, 0x6eus, 0x00us, 0x64us, 0x00us, 0x20us, 0x00us, 0x6eus, 0x00us, 0x65us, 0x00us, 0x76us, 0x00us, 0x65us, 0x00us, 0x72us, 0x00us, 0x20us, 0x00us, 0x71us, 0x00us, 0x75us, 0x00us, 0x69us, 0x00us, 0x74us, 0x00us, 0x73us, 0xd8us, 0x3dus, 0xdeus, 0x24us, 0xd8us, 0x3dus, 0xdcus, 0xaaus, 0xd8us, 0x3cus, 0xdfus, 0xfcus, 0x00us, 0x20us, 0x00us, 0x6bus, 0x00us, 0x65us, 0x00us, 0x65us, 0x00us, 0x70us, 0x00us, 0x20us, 0x00us, 0x6dus, 0x00us, 0x69us, 0x00us, 0x6cus, 0x00us, 0x6cus, 0x00us, 0x69us, 0x00us, 0x6eus, 0x00us, 0x67us, 0xd8us, 0x3dus, 0xdcus, 0xafus, 0xd8us, 0x3dus, 0xddus, 0x25us, 0xd8us, 0x3dus, 0xdeus, 0x08us]
295- // formatter-ignore
296- assert processBytes(String.encode(emojis, String.UTF16_LE)) == [> 0x77us, 0x00us, 0x65us, 0x00us, 0x20us, 0x00us, 0x66us, 0x00us, 0x6fus, 0x00us, 0x75us, 0x00us, 0x6eus, 0x00us, 0x64us, 0x00us, 0x20us, 0x00us, 0x61us, 0x00us, 0x20us, 0x00us, 0x70us, 0x00us, 0x61us, 0x00us, 0x74us, 0x00us, 0x68us, 0x00us, 0x3dus, 0xd8us, 0x80us, 0xdeus, 0x20us, 0x00us, 0x74us, 0x00us, 0x6fus, 0x00us, 0x20us, 0x00us, 0x67us, 0x00us, 0x72us, 0x00us, 0x65us, 0x00us, 0x61us, 0x00us, 0x74us, 0x00us, 0x6eus, 0x00us, 0x65us, 0x00us, 0x73us, 0x00us, 0x73us, 0x00us, 0x3cus, 0xd8us, 0xc5us, 0xdfus, 0x62us, 0x00us, 0x75us, 0x00us, 0x74us, 0x00us, 0x20us, 0x00us, 0x74us, 0x00us, 0x68us, 0x00us, 0x65us, 0x00us, 0x20us, 0x00us, 0x67us, 0x00us, 0x72us, 0x00us, 0x69us, 0x00us, 0x6eus, 0x00us, 0x64us, 0x00us, 0x20us, 0x00us, 0x6eus, 0x00us, 0x65us, 0x00us, 0x76us, 0x00us, 0x65us, 0x00us, 0x72us, 0x00us, 0x20us, 0x00us, 0x71us, 0x00us, 0x75us, 0x00us, 0x69us, 0x00us, 0x74us, 0x00us, 0x73us, 0x00us, 0x3dus, 0xd8us, 0x24us, 0xdeus, 0x3dus, 0xd8us, 0xaaus, 0xdcus, 0x3cus, 0xd8us, 0xfcus, 0xdfus, 0x20us, 0x00us, 0x6bus, 0x00us, 0x65us, 0x00us, 0x65us, 0x00us, 0x70us, 0x00us, 0x20us, 0x00us, 0x6dus, 0x00us, 0x69us, 0x00us, 0x6cus, 0x00us, 0x6cus, 0x00us, 0x69us, 0x00us, 0x6eus, 0x00us, 0x67us, 0x00us, 0x3dus, 0xd8us, 0xafus, 0xdcus, 0x3dus, 0xd8us, 0x25us, 0xddus, 0x3dus, 0xd8us, 0x08us, 0xdeus]
297-
298- // formatter-ignore
299- assert processBytes(String.encode(emojis, String.UTF32_BE)) == [> 0x00us, 0x00us, 0x00us, 0x77us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x66us, 0x00us, 0x00us, 0x00us, 0x6fus, 0x00us, 0x00us, 0x00us, 0x75us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x64us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x70us, 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x68us, 0x00us, 0x01us, 0xf6us, 0x80us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x6fus, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x67us, 0x00us, 0x00us, 0x00us, 0x72us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x73us, 0x00us, 0x00us, 0x00us, 0x73us, 0x00us, 0x01us, 0xf3us, 0xc5us, 0x00us, 0x00us, 0x00us, 0x62us, 0x00us, 0x00us, 0x00us, 0x75us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x68us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x67us, 0x00us, 0x00us, 0x00us, 0x72us, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x64us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x76us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x72us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x71us, 0x00us, 0x00us, 0x00us, 0x75us, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x73us, 0x00us, 0x01us, 0xf6us, 0x24us, 0x00us, 0x01us, 0xf4us, 0xaaus, 0x00us, 0x01us, 0xf3us, 0xfcus, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x6bus, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x70us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x6dus, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x6cus, 0x00us, 0x00us, 0x00us, 0x6cus, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x67us, 0x00us, 0x01us, 0xf4us, 0xafus, 0x00us, 0x01us, 0xf5us, 0x25us, 0x00us, 0x01us, 0xf6us, 0x08us]
300- // formatter-ignore
301- assert processBytes(String.encode(emojis, String.UTF32_LE)) == [> 0x77us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x66us, 0x00us, 0x00us, 0x00us, 0x6fus, 0x00us, 0x00us, 0x00us, 0x75us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x64us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x70us, 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x68us, 0x00us, 0x00us, 0x00us, 0x80us, 0xf6us, 0x01us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x6fus, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x67us, 0x00us, 0x00us, 0x00us, 0x72us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x61us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x73us, 0x00us, 0x00us, 0x00us, 0x73us, 0x00us, 0x00us, 0x00us, 0xc5us, 0xf3us, 0x01us, 0x00us, 0x62us, 0x00us, 0x00us, 0x00us, 0x75us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x68us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x67us, 0x00us, 0x00us, 0x00us, 0x72us, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x64us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x76us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x72us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x71us, 0x00us, 0x00us, 0x00us, 0x75us, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x74us, 0x00us, 0x00us, 0x00us, 0x73us, 0x00us, 0x00us, 0x00us, 0x24us, 0xf6us, 0x01us, 0x00us, 0xaaus, 0xf4us, 0x01us, 0x00us, 0xfcus, 0xf3us, 0x01us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x6bus, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x65us, 0x00us, 0x00us, 0x00us, 0x70us, 0x00us, 0x00us, 0x00us, 0x20us, 0x00us, 0x00us, 0x00us, 0x6dus, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x6cus, 0x00us, 0x00us, 0x00us, 0x6cus, 0x00us, 0x00us, 0x00us, 0x69us, 0x00us, 0x00us, 0x00us, 0x6eus, 0x00us, 0x00us, 0x00us, 0x67us, 0x00us, 0x00us, 0x00us, 0xafus, 0xf4us, 0x01us, 0x00us, 0x25us, 0xf5us, 0x01us, 0x00us, 0x08us, 0xf6us, 0x01us, 0x00us]
267+ assert String.encode("𐐷", String.UTF8, includeBom=true)
268+ == b"\xEF\xBB\xBF\xF0\x90\x90\xB7"
269+ assert String.encode("𐐷", String.UTF16_BE, includeBom=true)
270+ == b"\xFE\xFF\xD8\x01\xDC\x37"
271+ assert String.encode("𐐷", String.UTF16_LE, includeBom=true)
272+ == b"\xFF\xFE\x01\xD8\x37\xDC"
273+ assert String.encode("𐐷", String.UTF32_BE, includeBom=true)
274+ == b"\x00\x00\xFE\xFF\x00\x01\x04\x37"
275+ assert String.encode("𐐷", String.UTF32_LE, includeBom=true)
276+ == b"\xFF\xFE\x00\x00\x37\x04\x01\x00"
277+
278+ assert String.encode(emojis, String.UTF16_BE)
279+ == b"\x00\x77\x00\x65\x00\x20\x00\x66\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x20\x00\x61\x00\x20\x00\x70\x00\x61\x00\x74\x00\x68\xd8\x3d\xde\x80\x00\x20\x00\x74\x00\x6f\x00\x20\x00\x67\x00\x72\x00\x65\x00\x61\x00\x74\x00\x6e\x00\x65\x00\x73\x00\x73\xd8\x3c\xdf\xc5\x00\x62\x00\x75\x00\x74\x00\x20\x00\x74\x00\x68\x00\x65\x00\x20\x00\x67\x00\x72\x00\x69\x00\x6e\x00\x64\x00\x20\x00\x6e\x00\x65\x00\x76\x00\x65\x00\x72\x00\x20\x00\x71\x00\x75\x00\x69\x00\x74\x00\x73\xd8\x3d\xde\x24\xd8\x3d\xdc\xaa\xd8\x3c\xdf\xfc\x00\x20\x00\x6b\x00\x65\x00\x65\x00\x70\x00\x20\x00\x6d\x00\x69\x00\x6c\x00\x6c\x00\x69\x00\x6e\x00\x67\xd8\x3d\xdc\xaf\xd8\x3d\xdd\x25\xd8\x3d\xde\x08"
280+ assert String.encode(emojis, String.UTF16_LE)
281+ == b"\x77\x00\x65\x00\x20\x00\x66\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x20\x00\x61\x00\x20\x00\x70\x00\x61\x00\x74\x00\x68\x00\x3d\xd8\x80\xde\x20\x00\x74\x00\x6f\x00\x20\x00\x67\x00\x72\x00\x65\x00\x61\x00\x74\x00\x6e\x00\x65\x00\x73\x00\x73\x00\x3c\xd8\xc5\xdf\x62\x00\x75\x00\x74\x00\x20\x00\x74\x00\x68\x00\x65\x00\x20\x00\x67\x00\x72\x00\x69\x00\x6e\x00\x64\x00\x20\x00\x6e\x00\x65\x00\x76\x00\x65\x00\x72\x00\x20\x00\x71\x00\x75\x00\x69\x00\x74\x00\x73\x00\x3d\xd8\x24\xde\x3d\xd8\xaa\xdc\x3c\xd8\xfc\xdf\x20\x00\x6b\x00\x65\x00\x65\x00\x70\x00\x20\x00\x6d\x00\x69\x00\x6c\x00\x6c\x00\x69\x00\x6e\x00\x67\x00\x3d\xd8\xaf\xdc\x3d\xd8\x25\xdd\x3d\xd8\x08\xde"
282+
283+ assert String.encode(emojis, String.UTF32_BE)
284+ == b"\x00\x00\x00\x77\x00\x00\x00\x65\x00\x00\x00\x20\x00\x00\x00\x66\x00\x00\x00\x6f\x00\x00\x00\x75\x00\x00\x00\x6e\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x61\x00\x00\x00\x20\x00\x00\x00\x70\x00\x00\x00\x61\x00\x00\x00\x74\x00\x00\x00\x68\x00\x01\xf6\x80\x00\x00\x00\x20\x00\x00\x00\x74\x00\x00\x00\x6f\x00\x00\x00\x20\x00\x00\x00\x67\x00\x00\x00\x72\x00\x00\x00\x65\x00\x00\x00\x61\x00\x00\x00\x74\x00\x00\x00\x6e\x00\x00\x00\x65\x00\x00\x00\x73\x00\x00\x00\x73\x00\x01\xf3\xc5\x00\x00\x00\x62\x00\x00\x00\x75\x00\x00\x00\x74\x00\x00\x00\x20\x00\x00\x00\x74\x00\x00\x00\x68\x00\x00\x00\x65\x00\x00\x00\x20\x00\x00\x00\x67\x00\x00\x00\x72\x00\x00\x00\x69\x00\x00\x00\x6e\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x6e\x00\x00\x00\x65\x00\x00\x00\x76\x00\x00\x00\x65\x00\x00\x00\x72\x00\x00\x00\x20\x00\x00\x00\x71\x00\x00\x00\x75\x00\x00\x00\x69\x00\x00\x00\x74\x00\x00\x00\x73\x00\x01\xf6\x24\x00\x01\xf4\xaa\x00\x01\xf3\xfc\x00\x00\x00\x20\x00\x00\x00\x6b\x00\x00\x00\x65\x00\x00\x00\x65\x00\x00\x00\x70\x00\x00\x00\x20\x00\x00\x00\x6d\x00\x00\x00\x69\x00\x00\x00\x6c\x00\x00\x00\x6c\x00\x00\x00\x69\x00\x00\x00\x6e\x00\x00\x00\x67\x00\x01\xf4\xaf\x00\x01\xf5\x25\x00\x01\xf6\x08"
285+ assert String.encode(emojis, String.UTF32_LE)
286+ == b"\x77\x00\x00\x00\x65\x00\x00\x00\x20\x00\x00\x00\x66\x00\x00\x00\x6f\x00\x00\x00\x75\x00\x00\x00\x6e\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x61\x00\x00\x00\x20\x00\x00\x00\x70\x00\x00\x00\x61\x00\x00\x00\x74\x00\x00\x00\x68\x00\x00\x00\x80\xf6\x01\x00\x20\x00\x00\x00\x74\x00\x00\x00\x6f\x00\x00\x00\x20\x00\x00\x00\x67\x00\x00\x00\x72\x00\x00\x00\x65\x00\x00\x00\x61\x00\x00\x00\x74\x00\x00\x00\x6e\x00\x00\x00\x65\x00\x00\x00\x73\x00\x00\x00\x73\x00\x00\x00\xc5\xf3\x01\x00\x62\x00\x00\x00\x75\x00\x00\x00\x74\x00\x00\x00\x20\x00\x00\x00\x74\x00\x00\x00\x68\x00\x00\x00\x65\x00\x00\x00\x20\x00\x00\x00\x67\x00\x00\x00\x72\x00\x00\x00\x69\x00\x00\x00\x6e\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x6e\x00\x00\x00\x65\x00\x00\x00\x76\x00\x00\x00\x65\x00\x00\x00\x72\x00\x00\x00\x20\x00\x00\x00\x71\x00\x00\x00\x75\x00\x00\x00\x69\x00\x00\x00\x74\x00\x00\x00\x73\x00\x00\x00\x24\xf6\x01\x00\xaa\xf4\x01\x00\xfc\xf3\x01\x00\x20\x00\x00\x00\x6b\x00\x00\x00\x65\x00\x00\x00\x65\x00\x00\x00\x70\x00\x00\x00\x20\x00\x00\x00\x6d\x00\x00\x00\x69\x00\x00\x00\x6c\x00\x00\x00\x6c\x00\x00\x00\x69\x00\x00\x00\x6e\x00\x00\x00\x67\x00\x00\x00\xaf\xf4\x01\x00\x25\xf5\x01\x00\x08\xf6\x01\x00"
302287
303288// round-trip tests
304289assert String.decode(String.encode("foo", String.UTF8), String.UTF8) == "foo"
0 commit comments