@@ -4,20 +4,31 @@ using ArrayLayouts, Test
44
55include (" infinitearrays.jl" )
66
7+ cmpop (p) = isinteger (real (first (p))) && isinteger (real (step (p))) ? (== ) : (≈ )
8+
79@testset " RangeCumsum" begin
8- @testset for p in (Base. OneTo (5 ), 2 : 5 , 2 : 2 : 6 , 6 : - 2 : 1 , - 1.0 : 3.0 : 5.0 , (- 1.0 : 3.0 : 5.0 )* im,
9- Base. IdentityUnitRange (4 : 6 ))
10+ @testset for p in Any[Base. OneTo (5 ), 2 : 5 , 2 : 2 : 6 , 6 : - 2 : 1 , Int8 (2 ): Int8 (5 ),
11+ UnitRange (2.5 , 8.5 ),
12+ - 1.0 : 1.0 : 10.0 , - 1.2 : 1.5 : 10.0 ,
13+ (2 : 5 )* im, (- 1 : 3 : 5 )* im, (- 1.0 : 3.0 : 5.0 )* im, (- 1.2 : 3.0 : 5.2 )* (1 + im),
14+ Base. IdentityUnitRange (4 : 6 )]
15+
1016 r = RangeCumsum (p)
1117 @test parent (r) == p
1218 @test r == r
19+ cmp = cmpop (p)
20+ if eltype (r) <: Complex
21+ @test sum (r) isa Complex{promote_type (Int, real (eltype (r)))}
22+ end
23+ @test cmp (sum (r), sum (i for i in r))
1324 if axes (r,1 ) isa Base. OneTo
14- @test r == cumsum (p)
15- @test r .+ 1 == cumsum (p) .+ 1
25+ @test cmp (r, cumsum (p) )
26+ @test cmp ( r .+ 1 , cumsum (p) .+ 1 )
1627 @test r[Base. OneTo (3 )] == r[1 : 3 ]
1728 @test @view (r[Base. OneTo (3 )]) === r[Base. OneTo (3 )] == r[1 : 3 ]
1829 @test @view (r[Base. OneTo (3 )]) isa RangeCumsum
19- @test diff (r) == diff (Vector (r))
20- @test - r == - Vector (r)
30+ @test cmp ( diff (r), diff (Vector (r) ))
31+ @test cmp ( - r, - Vector (r) )
2132 end
2233 @test diff (r) == p[firstindex (p)+ 1 : end ]
2334 @test last (r) == r[end ] == sum (p)
@@ -48,7 +59,7 @@ include("infinitearrays.jl")
4859 @test r * n isa RangeCumsum
4960 @test r * n ≈ w * n
5061 end
51- for p in (Base. OneTo (4 ), - 4 : 4 , - 4 : 2 : 4 , - 1.0 : 3.0 : 5.0 )
62+ @testset for p in (Base. OneTo (4 ), - 4 : 4 , - 4 : 2 : 4 , - 1.0 : 3.0 : 5.0 )
5263 r = RangeCumsum (p)
5364 test_broadcast (3 , r)
5465 test_broadcast (3.5 , r)
0 commit comments