|
637 | 637 | @test foo == [X, X]
|
638 | 638 | end
|
639 | 639 |
|
| 640 | + # Test as an assignment's left hand side |
| 641 | + let x = [1,2,3,4] |
| 642 | + @test Meta.@lower(@view(x[1]) = 1).head == :error |
| 643 | + @test Meta.@lower(@view(x[1]) += 1).head == :error |
| 644 | + @test Meta.@lower(@view(x[end]) = 1).head == :error |
| 645 | + @test Meta.@lower(@view(x[end]) += 1).head == :error |
| 646 | + @test Meta.@lower(@view(f(x)[end]) = 1).head == :error |
| 647 | + @test Meta.@lower(@view(f(x)[end]) += 1).head == :error |
| 648 | + @test (@view(x[1]) .+= 1) == fill(2) |
| 649 | + @test x == [2,2,3,4] |
| 650 | + @test (@view(reshape(x,2,2)[1,1]) .+= 10) == fill(12) |
| 651 | + @test x == [12,2,3,4] |
| 652 | + @test (@view(x[end]) .+= 1) == fill(5) |
| 653 | + @test x == [12,2,3,5] |
| 654 | + @test (@view(reshape(x,2,2)[end]) .+= 10) == fill(15) |
| 655 | + @test x == [12,2,3,15] |
| 656 | + @test (@view(reshape(x,2,2)[[begin],[begin,end]])::AbstractMatrix{Int} .+= [2]) == [14 5] |
| 657 | + @test x == [14,2,5,15] |
| 658 | + |
| 659 | + x = [1,2,3,4] |
| 660 | + @test Meta.@lower(@views(x[[1]]) = 1).head == :error |
| 661 | + @test Meta.@lower(@views(x[[1]]) += 1).head == :error |
| 662 | + @test Meta.@lower(@views(x[[end]]) = 1).head == :error |
| 663 | + @test Meta.@lower(@views(x[[end]]) += 1).head == :error |
| 664 | + @test Meta.@lower(@views(f(x)[end]) = 1).head == :error |
| 665 | + @test Meta.@lower(@views(f(x)[end]) += 1).head == :error |
| 666 | + @test (@views(x[[1]]) .+= 1) == [2] |
| 667 | + @test x == [2,2,3,4] |
| 668 | + @test (@views(reshape(x,2,2)[[1],1]) .+= 10) == [12] |
| 669 | + @test x == [12,2,3,4] |
| 670 | + @test (@views(x[[end]]) .+= 1) == [5] |
| 671 | + @test x == [12,2,3,5] |
| 672 | + @test (@views(reshape(x,2,2)[[end]]) .+= 10) == [15] |
| 673 | + @test x == [12,2,3,15] |
| 674 | + @test (@views(reshape(x,2,2)[[begin],[begin,end]])::AbstractMatrix{Int} .+= [2]) == [14 5] |
| 675 | + @test x == [14,2,5,15] |
| 676 | + end |
| 677 | + |
640 | 678 | # test @views macro
|
641 | 679 | @views let f!(x) = x[begin:end-1] .+= x[begin+1:end].^2
|
642 | 680 | x = [1,2,3,4]
|
|
663 | 701 | @test x == [5,8,12,9] && i == [4,3]
|
664 | 702 | @. x[3:end] = 0 # make sure @. works with end expressions in @views
|
665 | 703 | @test x == [5,8,0,0]
|
| 704 | + x[begin:end] .+= 1 |
| 705 | + @test x == [6,9,1,1] |
| 706 | + x[[begin,2,end]] .-= [1,2,3] |
| 707 | + @test x == [5,7,1,-2] |
| 708 | + @. x[[begin,2,end]] .+= [1,2,3] |
| 709 | + @test x == [6,9,1,1] |
666 | 710 | end
|
667 | 711 | @views @test isa(X[1:3], SubArray)
|
668 | 712 | @test X[begin:end] == @views X[begin:end]
|
|
0 commit comments