@@ -376,14 +376,15 @@ module DynamoToStructTest {
376
376
// = type=test
377
377
// # Entries in a String Set MUST be ordered in ascending [UTF-16 binary order](./string-ordering.md#utf-16-binary-order).
378
378
method {:test} TestSortSSAttr () {
379
+ // "\ud800\udc02" <-> "𐀂"
379
380
var stringSetValue := AttributeValue. SS (["&","。","\ud800\udc02"]);
380
381
// Note that string values are UTF-8 encoded, but sorted by UTF-16 encoding.
381
382
var encodedStringSetData := StructuredDataTerminal (value := [
382
383
0,0,0,3, // 3 entries in set
383
384
0,0,0,1, // 1st entry is 1 byte
384
385
0x26, // "&" in UTF-8 encoding
385
386
0,0,0,4, // 2nd entry is 4 bytes
386
- 0xF0,0x90,0x80,0x82, // "\ud800\udc02 " in UTF-8 encoding
387
+ 0xF0,0x90,0x80,0x82, // "𐀂 " in UTF-8 encoding
387
388
0,0,0,3, // 3rd entry is 3 bytes
388
389
0xEF,0xBD,0xA1 // "。" in UTF-8 encoding
389
390
],
@@ -395,6 +396,7 @@ module DynamoToStructTest {
395
396
396
397
var newStringSetValue := StructuredToAttr (encodedStringSetData);
397
398
expect newStringSetValue. Success?;
399
+ // "\ud800\udc02" <-> "𐀂"
398
400
expect newStringSetValue. value == AttributeValue. SS (["&","\ud800\udc02","。"]);
399
401
}
400
402
@@ -415,10 +417,12 @@ module DynamoToStructTest {
415
417
416
418
method {:test} TestSetsInListAreSorted () {
417
419
var nSetValue := AttributeValue. NS (["2","1","10"]);
420
+ // "\ud800\udc02" <-> "𐀂"
418
421
var sSetValue := AttributeValue. SS (["&","。","\ud800\udc02"]);
419
422
var bSetValue := AttributeValue. BS ([[1,0],[1],[2]]);
420
423
421
424
var sortedNSetValue := AttributeValue. NS (["1","10","2"]);
425
+ // "\ud800\udc02" <-> "𐀂"
422
426
var sortedSSetValue := AttributeValue. SS (["&","\ud800\udc02","。"]);
423
427
var sortedBSetValue := AttributeValue. BS ([[1],[1,0],[2]]);
424
428
@@ -444,10 +448,12 @@ module DynamoToStructTest {
444
448
445
449
method {:test} TestSetsInMapAreSorted () {
446
450
var nSetValue := AttributeValue. NS (["2","1","10"]);
451
+ // "\ud800\udc02" <-> "𐀂"
447
452
var sSetValue := AttributeValue. SS (["&","。","\ud800\udc02"]);
448
453
var bSetValue := AttributeValue. BS ([[1,0],[1],[2]]);
449
454
450
455
var sortedNSetValue := AttributeValue. NS (["1","10","2"]);
456
+ // "\ud800\udc02" <-> "𐀂"
451
457
var sortedSSetValue := AttributeValue. SS (["&","\ud800\udc02","。"]);
452
458
var sortedBSetValue := AttributeValue. BS ([[1],[1,0],[2]]);
453
459
@@ -490,6 +496,7 @@ module DynamoToStructTest {
490
496
method {:test} TestSortMapKeys () {
491
497
var nullValue := AttributeValue. NULL (true);
492
498
499
+ // "\ud800\udc02" <-> "𐀂"
493
500
var mapValue := AttributeValue. M (map["&" := nullValue, "。" := nullValue, "\ud800\udc02" := nullValue]);
494
501
495
502
// Note that the string values are encoded as UTF-8, but are sorted according to UTF-16 encoding.
@@ -500,7 +507,7 @@ module DynamoToStructTest {
500
507
0x26, // "&" UTF-8 encoded
501
508
0,0, 0,0,0,0, // null value
502
509
0,1, 0,0,0,4, // 2nd key is a string 4 bytes long
503
- 0xF0, 0x90, 0x80, 0x82, // "\ud800\udc02 " UTF-8 encoded
510
+ 0xF0, 0x90, 0x80, 0x82, // "𐀂 " UTF-8 encoded
504
511
0,0, 0,0,0,0, // null value
505
512
0,1, 0,0,0,3, // 3rd key is a string 3 bytes long
506
513
0xEF, 0xBD, 0xA1, // "。"
0 commit comments