@@ -518,6 +518,52 @@ function test_rewrite_init_symbol()
518518 return
519519end
520520
521+ function test_issue_343 ()
522+ x = [1 , 3 , 5 , 7 , 8 , 2 ]
523+ y = sum (x)
524+ @test MA. @rewrite (sum (x[:]), move_factors_into_sums = false ) == y
525+ @test MA. @rewrite (sum (x[i] for i in 1 : 6 ), move_factors_into_sums = false ) ==
526+ y
527+ @test MA. @rewrite (
528+ sum (x[i+ j] for i in 1 : 2 : 6 for j in 0 : 1 ),
529+ move_factors_into_sums = false
530+ ) == y
531+ @test MA. @rewrite (
532+ sum (x[i+ j] for i in 1 : 2 : 6 , j in 0 : 1 ),
533+ move_factors_into_sums = false
534+ ) == y
535+ # Turn formatting off here so we preserve `init = 0`
536+ # !format:off
537+ @test MA. @rewrite (sum (x[:], init = 0 ), move_factors_into_sums = false ) == y
538+ @test MA. @rewrite (
539+ sum (x[i] for i in 1 : 6 , init = 0 ),
540+ move_factors_into_sums = false
541+ ) == y
542+ @test MA. @rewrite (
543+ sum (x[i+ j] for i in 1 : 2 : 6 for j in 0 : 1 , init = 0 ),
544+ move_factors_into_sums = false
545+ ) == y
546+ @test MA. @rewrite (
547+ sum (x[i+ j] for i in 1 : 2 : 6 , j in 0 : 1 , init = 0 ),
548+ move_factors_into_sums = false
549+ ) == y
550+ # !format:on
551+ @test MA. @rewrite (sum (x[:]; init = 0 ), move_factors_into_sums = false ) == y
552+ @test MA. @rewrite (
553+ sum (x[i] for i in 1 : 6 ; init = 0 ),
554+ move_factors_into_sums = false
555+ ) == y
556+ @test MA. @rewrite (
557+ sum (x[i+ j] for i in 1 : 2 : 6 for j in 0 : 1 ; init = 0 ),
558+ move_factors_into_sums = false
559+ ) == y
560+ @test MA. @rewrite (
561+ sum (x[i+ j] for i in 1 : 2 : 6 , j in 0 : 1 ; init = 0 ),
562+ move_factors_into_sums = false
563+ ) == y
564+ return
565+ end
566+
521567end # module
522568
523569TestRewriteGeneric. runtests ()
0 commit comments