1 USING: accessors compiler.cfg.loop-detection
2 compiler.cfg.loop-detection.private compiler.cfg.utilities
3 compiler.test kernel namespaces sequences sets tools.test ;
4 IN: compiler.cfg.loop-detection.tests
7 V{ } 0 insns>block V{ } 1 insns>block [ connect-bbs ] keep
8 f f <natural-loop> [ process-loop-block ] keep
10 [ [ number>> ] map ] bi@
15 f f <natural-loop> process-loop-ends
26 : test-loop-detection ( -- )
27 0 get block>cfg needs-loops ;
29 { } [ test-loop-detection ] unit-test
31 { 1 } [ 0 get loop-nesting-at ] unit-test
32 { 0 } [ 1 get loop-nesting-at ] unit-test
33 { 1 } [ 2 get loop-nesting-at ] unit-test