@@ -376,6 +376,27 @@ def test_vector():
376
376
1.4 , kw .keyword ("a" ), "string"
377
377
)
378
378
379
+ assert read_str_first ("[\n ]" ) == vec .Vector .empty ()
380
+ assert read_str_first ("[ :a\n :b\n ]" ) == vec .v (
381
+ kw .keyword ("a" ), kw .keyword ("b" )
382
+ )
383
+ assert read_str_first ("[:a :b\n ]" ) == vec .v (kw .keyword ("a" ), kw .keyword ("b" ))
384
+ assert read_str_first ("[:a :b ]" ) == vec .v (kw .keyword ("a" ), kw .keyword ("b" ))
385
+ assert read_str_first ("[\n ;;comment\n ]" ) == vec .Vector .empty ()
386
+ assert read_str_first ("[:a :b\n ;;comment\n ]" ) == vec .v (
387
+ kw .keyword ("a" ), kw .keyword ("b" )
388
+ )
389
+ assert read_str_first ("[:a \n ;;comment\n :b]" ) == vec .v (
390
+ kw .keyword ("a" ), kw .keyword ("b" )
391
+ )
392
+ assert read_str_first ("[\n #_[:a :b]\n ]" ) == vec .Vector .empty ()
393
+ assert read_str_first ("[:a :b\n #_[:a :b]\n ]" ) == vec .v (
394
+ kw .keyword ("a" ), kw .keyword ("b" )
395
+ )
396
+ assert read_str_first ("[:a \n #_[:a :b]\n :b]" ) == vec .v (
397
+ kw .keyword ("a" ), kw .keyword ("b" )
398
+ )
399
+
379
400
380
401
def test_list ():
381
402
with pytest .raises (reader .SyntaxError ):
@@ -393,6 +414,27 @@ def test_list():
393
414
)
394
415
assert read_str_first ("(- -1 2)" ) == llist .l (sym .symbol ("-" ), - 1 , 2 )
395
416
417
+ assert read_str_first ("(\n )" ) == llist .List .empty ()
418
+ assert read_str_first ("( :a\n :b\n )" ) == llist .l (
419
+ kw .keyword ("a" ), kw .keyword ("b" )
420
+ )
421
+ assert read_str_first ("(:a :b\n )" ) == llist .l (kw .keyword ("a" ), kw .keyword ("b" ))
422
+ assert read_str_first ("(:a :b )" ) == llist .l (kw .keyword ("a" ), kw .keyword ("b" ))
423
+ assert read_str_first ("(\n ;;comment\n )" ) == llist .List .empty ()
424
+ assert read_str_first ("(:a :b\n ;;comment\n )" ) == llist .l (
425
+ kw .keyword ("a" ), kw .keyword ("b" )
426
+ )
427
+ assert read_str_first ("(:a \n ;;comment\n :b)" ) == llist .l (
428
+ kw .keyword ("a" ), kw .keyword ("b" )
429
+ )
430
+ assert read_str_first ("(\n #_[:a :b]\n )" ) == llist .List .empty ()
431
+ assert read_str_first ("(:a :b\n #_[:a :b]\n )" ) == llist .l (
432
+ kw .keyword ("a" ), kw .keyword ("b" )
433
+ )
434
+ assert read_str_first ("(:a \n #_[:a :b]\n :b)" ) == llist .l (
435
+ kw .keyword ("a" ), kw .keyword ("b" )
436
+ )
437
+
396
438
397
439
def test_set ():
398
440
with pytest .raises (reader .SyntaxError ):
@@ -408,6 +450,27 @@ def test_set():
408
450
kw .keyword ("a" ), 1 , "some string"
409
451
)
410
452
453
+ assert read_str_first ("#{\n }" ) == lset .Set .empty ()
454
+ assert read_str_first ("#{ :a\n :b\n }" ) == lset .s (
455
+ kw .keyword ("a" ), kw .keyword ("b" )
456
+ )
457
+ assert read_str_first ("#{:a :b\n }" ) == lset .s (kw .keyword ("a" ), kw .keyword ("b" ))
458
+ assert read_str_first ("#{:a :b }" ) == lset .s (kw .keyword ("a" ), kw .keyword ("b" ))
459
+ assert read_str_first ("#{\n ;;comment\n }" ) == lset .Set .empty ()
460
+ assert read_str_first ("#{:a :b\n ;;comment\n }" ) == lset .s (
461
+ kw .keyword ("a" ), kw .keyword ("b" )
462
+ )
463
+ assert read_str_first ("#{:a \n ;;comment\n :b}" ) == lset .s (
464
+ kw .keyword ("a" ), kw .keyword ("b" )
465
+ )
466
+ assert read_str_first ("#{\n #_[:a :b]\n }" ) == lset .Set .empty ()
467
+ assert read_str_first ("#{:a :b\n #_[:a :b]\n }" ) == lset .s (
468
+ kw .keyword ("a" ), kw .keyword ("b" )
469
+ )
470
+ assert read_str_first ("#{:a \n #_[:a :b]\n :b}" ) == lset .s (
471
+ kw .keyword ("a" ), kw .keyword ("b" )
472
+ )
473
+
411
474
with pytest .raises (reader .SyntaxError ):
412
475
read_str_first ("#{:a :b :b}" )
413
476
@@ -422,6 +485,29 @@ def test_map():
422
485
{kw .keyword ("a" ): 1 , kw .keyword ("b" ): "string" }
423
486
)
424
487
488
+ assert read_str_first ("{\n }" ) == lmap .Map .empty ()
489
+ assert read_str_first ("{ :a\n :b\n }" ) == lmap .map (
490
+ {kw .keyword ("a" ): kw .keyword ("b" )}
491
+ )
492
+ assert read_str_first ("{:a :b\n }" ) == lmap .map ({kw .keyword ("a" ): kw .keyword ("b" )})
493
+ assert read_str_first ("{:a :b }" ) == lmap .map (
494
+ {kw .keyword ("a" ): kw .keyword ("b" )}
495
+ )
496
+ assert read_str_first ("{\n ;;comment\n }" ) == lmap .Map .empty ()
497
+ assert read_str_first ("{:a :b\n ;;comment\n }" ) == lmap .map (
498
+ {kw .keyword ("a" ): kw .keyword ("b" )}
499
+ )
500
+ assert read_str_first ("{:a \n ;;comment\n :b}" ) == lmap .map (
501
+ {kw .keyword ("a" ): kw .keyword ("b" )}
502
+ )
503
+ assert read_str_first ("{\n #_[:a :b]\n }" ) == lmap .Map .empty ()
504
+ assert read_str_first ("{:a :b\n #_[:a :b]\n }" ) == lmap .map (
505
+ {kw .keyword ("a" ): kw .keyword ("b" )}
506
+ )
507
+ assert read_str_first ("{:a \n #_[:a :b]\n :b}" ) == lmap .map (
508
+ {kw .keyword ("a" ): kw .keyword ("b" )}
509
+ )
510
+
425
511
with pytest .raises (reader .SyntaxError ):
426
512
read_str_first ("{:a 1 :b 2 :a 3}" )
427
513
0 commit comments