@@ -430,22 +430,21 @@ def f(p1,p2):
430
430
SINK (rl [0 ][0 ]) #$ MISSING: flow="SOURCE, l:-10 -> rl[0][0]"
431
431
SINK_F (rl [0 ][1 ])
432
432
433
- @expects (6 )
433
+ @expects (4 )
434
434
def test_map_multi_list ():
435
435
l1 = [SOURCE ]
436
436
l2 = [SOURCE ]
437
437
438
438
def f (p1 ,p2 ):
439
439
SINK (p1 ) #$ flow="SOURCE, l:-4 -> p1"
440
440
SINK (p2 ) #$ flow="SOURCE, l:-4 -> p2"
441
-
442
441
return p1 ,p2
443
442
444
443
rl = list (map (f , l1 , l2 ))
445
- SINK (rl [0 ][0 ]) #$ flow="SOURCE, l:-10 -> rl[0][0]"
446
- SINK (rl [0 ][1 ]) #$ flow="SOURCE, l:-10 -> rl[0][1]"
444
+ SINK (rl [0 ][0 ]) #$ flow="SOURCE, l:-9 -> rl[0][0]"
445
+ SINK (rl [0 ][1 ]) #$ flow="SOURCE, l:-9 -> rl[0][1]"
447
446
448
- @expects (6 )
447
+ @expects (4 )
449
448
def test_map_multi_tuple ():
450
449
l1 = (SOURCE ,)
451
450
l2 = (SOURCE ,)
@@ -456,8 +455,8 @@ def f(p1,p2):
456
455
return p1 ,p2
457
456
458
457
rl = list (map (f , l1 , l2 ))
459
- SINK (rl [0 ][0 ]) #$ flow="SOURCE, l:-10 -> rl[0][0]"
460
- SINK (rl [0 ][1 ]) #$ MISSING: flow="SOURCE, l:-10 -> rl[0][1]"
458
+ SINK (rl [0 ][0 ]) #$ flow="SOURCE, l:-9 -> rl[0][0]"
459
+ SINK (rl [0 ][1 ]) #$ MISSING: flow="SOURCE, l:-9 -> rl[0][1]"
461
460
462
461
### filter
463
462
@@ -505,10 +504,108 @@ def f(p):
505
504
rl = list (filter (f ,d ))
506
505
SINK (rl [0 ]) #$ MISSING: flow="SOURCE, l:-7 -> rl[0]"
507
506
507
+ @expects (1 )
508
508
def test_enumerate_list ():
509
- # TODO
510
- pass
509
+ l = [SOURCE ]
510
+
511
+ e = list (enumerate (l ))
512
+
513
+ SINK (e [0 ][1 ]) #$ flow="SOURCE, l:-4 -> e[0][1]"
514
+
515
+ @expects (1 )
516
+ def test_enumerate_set ():
517
+ s = {SOURCE }
518
+
519
+ e = list (enumerate (s ))
520
+
521
+ SINK (e [0 ][1 ]) #$ flow="SOURCE, l:-4 -> e[0][1]"
522
+
523
+ @expects (1 )
524
+ def test_enumerate_tuple ():
525
+ t = (SOURCE ,)
526
+
527
+ e = list (enumerate (t ))
511
528
529
+ SINK (e [0 ][1 ]) #$ flow="SOURCE, l:-4 -> e[0][1]"
530
+
531
+ @expects (2 )
532
+ def test_enumerate_list_for ():
533
+ l = [SOURCE ]
534
+
535
+ for i , x in enumerate (l ):
536
+ SINK (x ) #$ flow="SOURCE, l:-3 -> x"
537
+
538
+ for t in enumerate (l ):
539
+ SINK (t [1 ]) #$ flow="SOURCE, l:-6 -> t[1]"
540
+
541
+ @expects (1 )
542
+ def test_enumerate_dict ():
543
+ d = {SOURCE :"v" }
544
+
545
+ e = list (enumerate (d ))
546
+
547
+ SINK (e [0 ][1 ]) # $ MISSING: flow="SOURCE, l:-4 -> e[0][1]"
548
+
549
+ @expects (8 )
512
550
def test_zip_list ():
513
- # TODO
514
- pass
551
+ l1 = [SOURCE , SOURCE ]
552
+ l2 = [SOURCE , NONSOURCE ]
553
+ l3 = [NONSOURCE , SOURCE ]
554
+ l4 = [NONSOURCE , NONSOURCE ]
555
+
556
+ z = list (zip (l1 ,l2 ,l3 ,l4 ))
557
+
558
+ SINK (z [0 ][0 ]) #$ flow="SOURCE, l:-7 -> z[0][0]"
559
+ SINK (z [0 ][1 ]) #$ flow="SOURCE, l:-7 -> z[0][1]"
560
+ SINK_F (z [0 ][2 ]) #$ SPURIOUS: flow="SOURCE, l:-7 -> z[0][2]"
561
+ SINK_F (z [0 ][3 ])
562
+ SINK (z [1 ][0 ]) #$ flow="SOURCE, l:-11 -> z[1][0]"
563
+ SINK_F (z [1 ][1 ]) #$ SPURIOUS: flow="SOURCE, l:-11 -> z[1][1]"
564
+ SINK (z [1 ][2 ]) #$ flow="SOURCE, l:-11 -> z[1][2]"
565
+ SINK_F (z [1 ][3 ])
566
+
567
+ @expects (4 )
568
+ def test_zip_set ():
569
+ s1 = {SOURCE }
570
+ s2 = {NONSOURCE }
571
+ s3 = {SOURCE }
572
+ s4 = {NONSOURCE }
573
+
574
+ z = list (zip (s1 ,s2 ,s3 ,s4 ))
575
+
576
+ SINK (z [0 ][0 ]) #$ flow="SOURCE, l:-11 -> z[0][0]"
577
+ SINK_F (z [0 ][1 ])
578
+ SINK (z [0 ][2 ]) #$ flow="SOURCE, l:-11 -> z[0][2]"
579
+ SINK_F (z [0 ][3 ])
580
+
581
+ @expects (8 )
582
+ def test_zip_tuple ():
583
+ t1 = (SOURCE , SOURCE )
584
+ t2 = (SOURCE , NONSOURCE )
585
+ t3 = (NONSOURCE , SOURCE )
586
+ t4 = (NONSOURCE , NONSOURCE )
587
+
588
+ z = list (zip (t1 ,t2 ,t3 ,t4 ))
589
+
590
+ SINK (z [0 ][0 ]) #$ flow="SOURCE, l:-7 -> z[0][0]"
591
+ SINK (z [0 ][1 ]) #$ flow="SOURCE, l:-7 -> z[0][1]"
592
+ SINK_F (z [0 ][2 ])
593
+ SINK_F (z [0 ][3 ])
594
+ SINK (z [1 ][0 ]) #$ flow="SOURCE, l:-11 -> z[1][0]"
595
+ SINK_F (z [1 ][1 ]) #$ SPURIOUS: flow="SOURCE, l:-11 -> z[1][1]"
596
+ SINK (z [1 ][2 ]) #$ MISSING: flow="SOURCE, l:-11 -> z[1][2]" # Tuple contents are not tracked beyond the first two arguments for performance.
597
+ SINK_F (z [1 ][3 ])
598
+
599
+ @expects (4 )
600
+ def test_zip_dict ():
601
+ d1 = {SOURCE : "v" }
602
+ d2 = {NONSOURCE : "v" }
603
+ d3 = {SOURCE : "v" }
604
+ d4 = {NONSOURCE : "v" }
605
+
606
+ z = list (zip (d1 ,d2 ,d3 ,d4 ))
607
+
608
+ SINK (z [0 ][0 ]) #$ MISSING: flow="SOURCE, l:-11 -> z[0][0]"
609
+ SINK_F (z [0 ][1 ])
610
+ SINK (z [0 ][2 ]) #$ MISSING: flow="SOURCE, l:-11 -> z[0][2]"
611
+ SINK_F (z [0 ][3 ])
0 commit comments