@@ -13,64 +13,70 @@ oneton(T::Type, sz...) = reshape(T.(1:prod(sz)), sz)
1313oneton (sz... ) =  oneton (Float64, sz... )
1414
1515@testset  " fill array constructors and convert" begin 
16-     for  (Typ, funcs) in  ((:Zeros , :zeros ), (:Ones , :ones ))
17-         @eval  begin 
18-             @test  $ Typ ((- 1 ,5 )) ==  $ Typ ((0 ,5 ))
19-             @test  $ Typ (5 ) isa  AbstractVector{Float64}
20-             @test  $ Typ (5 ,5 ) isa  AbstractMatrix{Float64}
21-             @test  $ Typ (5 ) ==  $ Typ ((5 ,))
22-             @test  $ Typ (5 ,5 ) ==  $ Typ ((5 ,5 ))
23-             @test  eltype ($ Typ (5 ,5 )) ==  Float64
24- 
25-             for  T in  (Int, Float64)
26-                 Z =  $ Typ {T} (5 )
27-                 @test  $ Typ (T, 5 ) ≡  Z
28-                 @test  eltype (Z) ==  T
29-                 @test  Array (Z) ==  $ funcs (T,5 )
30-                 @test  Array {T} (Z) ==  $ funcs (T,5 )
31-                 @test  Array {T,1} (Z) ==  $ funcs (T,5 )
32- 
33-                 @test  convert (AbstractArray,Z) ≡  Z
34-                 @test  convert (AbstractArray{T},Z) ≡  AbstractArray {T} (Z) ≡  Z
35-                 @test  convert (AbstractVector{T},Z) ≡  AbstractVector {T} (Z) ≡  Z
36-                 @test  convert (AbstractFill{T},Z) ≡  AbstractFill {T} (Z) ≡  Z
37- 
38-                 @test  $ Typ {T,1} (2 ones (T,5 )) ==  Z
39-                 @test  $ Typ {T} (2 ones (T,5 )) ==  Z
40-                 @test  $ Typ (2 ones (T,5 )) ==  Z
41- 
42-                 Z =  $ Typ {T} (5 , 5 )
43-                 @test  $ Typ (T, 5 , 5 ) ≡  Z
44-                 @test  eltype (Z) ==  T
45-                 @test  Array (Z) ==  $ funcs (T,5 ,5 )
46-                 @test  Array {T} (Z) ==  $ funcs (T,5 ,5 )
47-                 @test  Array {T,2} (Z) ==  $ funcs (T,5 ,5 )
48- 
49-                 @test  convert (AbstractArray,Z) ≡  convert (AbstractFill,Z) ≡  Z
50-                 @test  convert (AbstractArray{T},Z) ≡  convert (AbstractFill{T},Z) ≡  AbstractArray {T} (Z) ≡  Z
51-                 @test  convert (AbstractMatrix{T},Z) ≡  convert (AbstractFill{T,2 },Z) ≡  AbstractMatrix {T} (Z) ≡  Z
52- 
53-                 @test_throws  Exception convert (Fill{Float64}, [1 ,1 ,2 ])
54-                 @test_throws  Exception convert (Fill, [])
55-                 @test  convert (Fill{Float64}, [1 ,1 ,1 ]) ≡  Fill (1.0 , 3 )
56-                 @test  convert (Fill, Float64[1 ,1 ,1 ]) ≡  Fill (1.0 , 3 )
57-                 @test  convert (Fill{Float64}, Fill (1.0 ,2 )) ≡  Fill (1.0 , 2 ) #  was ambiguous
58-                 @test  convert (Fill{Int}, Ones (20 )) ≡  Fill (1 , 20 )
59-                 @test  convert (Fill{Int,1 }, Ones (20 )) ≡  Fill (1 , 20 )
60-                 @test  convert (Fill{Int,1 ,Tuple{Base. OneTo{Int}}}, Ones (20 )) ≡  Fill (1 , 20 )
61-                 @test  convert (AbstractFill{Int}, Ones (20 )) ≡  AbstractFill {Int} (Ones (20 )) ≡  Ones {Int} (20 )
62-                 @test  convert (AbstractFill{Int,1 }, Ones (20 )) ≡  AbstractFill {Int,1} (Ones (20 )) ≡  Ones {Int} (20 )
63-                 @test  convert (AbstractFill{Int,1 ,Tuple{Base. OneTo{Int}}}, Ones (20 )) ≡  AbstractFill {Int,1,Tuple{Base.OneTo{Int}}} (Ones (20 )) ≡  Ones {Int} (20 )
64- 
65-                 @test  $ Typ {T,2} (2 ones (T,5 ,5 )) ≡  $ Typ {T} (5 ,5 )
66-                 @test  $ Typ {T} (2 ones (T,5 ,5 )) ≡  $ Typ {T} (5 ,5 )
67-                 @test  $ Typ (2 ones (T,5 ,5 )) ≡  $ Typ {T} (5 ,5 )
68- 
69-                 @test  $ Typ (Z) ≡  $ Typ {T} (Z) ≡  $ Typ {T,2} (Z) ≡  typeof (Z)(Z) ≡  Z
70- 
71-                 @test  AbstractArray {Float32} (Z) ≡  $ Typ {Float32} (5 ,5 )
72-                 @test  AbstractArray {Float32,2} (Z) ≡  $ Typ {Float32} (5 ,5 )
73-             end 
16+     for  (Typ, funcs) in  ((Zeros, zeros), (Ones, ones))
17+         @test  Typ ((- 1 ,5 )) ==  Typ ((0 ,5 ))
18+         @test  Typ (5 ) isa  AbstractVector{Float64}
19+         @test  Typ (5 ,5 ) isa  AbstractMatrix{Float64}
20+         @test  Typ (5 ) ==  Typ ((5 ,))
21+         @test  Typ (5 ,5 ) ==  Typ ((5 ,5 ))
22+         @test  eltype (Typ (5 ,5 )) ==  Float64
23+ 
24+         for  T in  (Int, Float64)
25+             Z =  Typ {T} (5 )
26+             @test  Typ (T, 5 ) ≡  Z
27+             @test  eltype (Z) ==  T
28+             @test  Array (Z) ==  funcs (T,5 )
29+             @test  Array {T} (Z) ==  funcs (T,5 )
30+             @test  Array {T,1} (Z) ==  funcs (T,5 )
31+ 
32+             @test  convert (AbstractArray,Z) ≡  Z
33+             @test  convert (AbstractArray{T},Z) ≡  AbstractArray {T} (Z) ≡  Z
34+             @test  convert (AbstractVector{T},Z) ≡  AbstractVector {T} (Z) ≡  Z
35+             @test  convert (AbstractFill{T},Z) ≡  AbstractFill {T} (Z) ≡  Z
36+ 
37+             @test  Typ {T,1} (2 ones (T,5 )) ==  Z
38+             @test  Typ {T} (2 ones (T,5 )) ==  Z
39+             @test  Typ (2 ones (T,5 )) ==  Z
40+ 
41+             Z =  Typ {T} (5 , 5 )
42+             @test  Typ (T, 5 , 5 ) ≡  Z
43+             @test  eltype (Z) ==  T
44+             @test  Array (Z) ==  funcs (T,5 ,5 )
45+             @test  Array {T} (Z) ==  funcs (T,5 ,5 )
46+             @test  Array {T,2} (Z) ==  funcs (T,5 ,5 )
47+ 
48+             @test  convert (AbstractArray,Z) ≡  convert (AbstractFill,Z) ≡  Z
49+             @test  convert (AbstractArray{T},Z) ≡  convert (AbstractFill{T},Z) ≡  AbstractArray {T} (Z) ≡  Z
50+             @test  convert (AbstractMatrix{T},Z) ≡  convert (AbstractFill{T,2 },Z) ≡  AbstractMatrix {T} (Z) ≡  Z
51+ 
52+             @test_throws  Exception convert (Fill{Float64}, [1 ,1 ,2 ])
53+             @test_throws  Exception convert (Fill, [])
54+             @test  convert (Fill{Float64}, [1 ,1 ,1 ]) ≡  Fill (1.0 , 3 )
55+             @test  convert (Fill, Float64[1 ,1 ,1 ]) ≡  Fill (1.0 , 3 )
56+             @test  convert (Fill{Float64}, Fill (1.0 ,2 )) ≡  Fill (1.0 , 2 ) #  was ambiguous
57+             @test  convert (Fill{Int}, Ones (20 )) ≡  Fill (1 , 20 )
58+             @test  convert (Fill{Int,1 }, Ones (20 )) ≡  Fill (1 , 20 )
59+             @test  convert (Fill{Int,1 ,Tuple{Base. OneTo{Int}}}, Ones (20 )) ≡  Fill (1 , 20 )
60+             @test  convert (AbstractFill{Int}, Ones (20 )) ≡  AbstractFill {Int} (Ones (20 )) ≡  Ones {Int} (20 )
61+             @test  convert (AbstractFill{Int,1 }, Ones (20 )) ≡  AbstractFill {Int,1} (Ones (20 )) ≡  Ones {Int} (20 )
62+             @test  convert (AbstractFill{Int,1 ,Tuple{Base. OneTo{Int}}}, Ones (20 )) ≡  AbstractFill {Int,1,Tuple{Base.OneTo{Int}}} (Ones (20 )) ≡  Ones {Int} (20 )
63+ 
64+             @test  Typ {T,2} (2 ones (T,5 ,5 )) ≡  Typ {T} (5 ,5 )
65+             @test  Typ {T} (2 ones (T,5 ,5 )) ≡  Typ {T} (5 ,5 )
66+             @test  Typ (2 ones (T,5 ,5 )) ≡  Typ {T} (5 ,5 )
67+ 
68+             z =  Typ {T} ()[]
69+             @test  convert (Typ, Fill (z,2 )) ===  Typ {T} (2 )
70+             z =  Typ {Int8} ()[]
71+             @test  convert (Typ{T}, Fill (z,2 )) ===  Typ {T} (2 )
72+             @test  convert (Typ{T,1 }, Fill (z,2 )) ===  Typ {T} (2 )
73+             @test  convert (Typ{T,1 ,Tuple{Base. OneTo{Int}}}, Fill (z,2 )) ===  Typ {T} (2 )
74+             @test_throws  ArgumentError convert (Typ, Fill (2 ,2 ))
75+ 
76+             @test  Typ (Z) ≡  Typ {T} (Z) ≡  Typ {T,2} (Z) ≡  typeof (Z)(Z) ≡  Z
77+ 
78+             @test  AbstractArray {Float32} (Z) ≡  Typ {Float32} (5 ,5 )
79+             @test  AbstractArray {Float32,2} (Z) ≡  Typ {Float32} (5 ,5 )
7480        end 
7581    end 
7682
0 commit comments