@@ -4,20 +4,31 @@ using ArrayLayouts, Test
4
4
5
5
include (" infinitearrays.jl" )
6
6
7
+ cmpop (p) = isinteger (real (first (p))) && isinteger (real (step (p))) ? (== ) : (≈ )
8
+
7
9
@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
+
10
16
r = RangeCumsum (p)
11
17
@test parent (r) == p
12
18
@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))
13
24
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 )
16
27
@test r[Base. OneTo (3 )] == r[1 : 3 ]
17
28
@test @view (r[Base. OneTo (3 )]) === r[Base. OneTo (3 )] == r[1 : 3 ]
18
29
@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) )
21
32
end
22
33
@test diff (r) == p[firstindex (p)+ 1 : end ]
23
34
@test last (r) == r[end ] == sum (p)
@@ -48,7 +59,7 @@ include("infinitearrays.jl")
48
59
@test r * n isa RangeCumsum
49
60
@test r * n ≈ w * n
50
61
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 )
52
63
r = RangeCumsum (p)
53
64
test_broadcast (3 , r)
54
65
test_broadcast (3.5 , r)
0 commit comments