Skip to content

Commit 94f0a5e

Browse files
authored
Update to TypeParameterAccessors v0.2 (#10)
1 parent 7edaf5f commit 94f0a5e

6 files changed

Lines changed: 51 additions & 41 deletions

File tree

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "UnallocatedArrays"
22
uuid = "43c9e47c-e622-40fb-bf18-a09fc8c466b6"
33
authors = ["ITensor developers <support@itensor.org> and contributors"]
4-
version = "0.1.0"
4+
version = "0.1.1"
55

66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
@@ -12,6 +12,6 @@ UnspecifiedTypes = "42b3faec-625b-4613-8ddc-352bf9672b8d"
1212
[compat]
1313
Adapt = "4.1.1"
1414
FillArrays = "1.13.0"
15-
TypeParameterAccessors = "0.1"
15+
TypeParameterAccessors = "0.2.1"
1616
UnspecifiedTypes = "0.1.0"
1717
julia = "1.10"

src/UnallocatedArrays.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ using TypeParameterAccessors:
55
Position,
66
set_eltype,
77
set_ndims,
8-
set_type_parameter,
9-
type_parameter
8+
set_type_parameters,
9+
type_parameters
1010
using FillArrays:
1111
AbstractFill,
1212
FillArrays,

src/abstractfill/abstractfill.jl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,3 @@ end
1212

1313
axestype(T::Type{<:AbstractArray}) = type_parameter(axestype)
1414
set_axestype(T::Type{<:AbstractFill}, ax::Type) = s(T, axestype, ax)
15-
16-
# TODO: fix piracy by migrating this
17-
TypeParameterAccessors.position(::Type{<:AbstractFill}, ::typeof(alloctype)) = Position(4)
18-
TypeParameterAccessors.position(::Type{<:AbstractFill}, ::typeof(axestype)) = Position(3)
19-
function TypeParameterAccessors.default_type_parameters(::Type{<:AbstractFill})
20-
return (Float64, 0, Tuple{})
21-
end

src/abstractunallocatedarray.jl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,24 @@ function Base.adjoint(a::UnallocatedArray)
2121
end
2222

2323
function set_alloctype(T::Type{<:UnallocatedArray}, alloc::Type{<:AbstractArray})
24-
return set_type_parameter(T, alloctype, alloc)
24+
return set_type_parameters(T, alloctype, alloc)
25+
end
26+
27+
## TypeParameterAccessors
28+
29+
for T in (:UnallocatedFill, :UnallocatedZeros)
30+
@eval begin
31+
TypeParameterAccessors.position(::Type{<:$T}, ::typeof(eltype)) = Position(1)
32+
TypeParameterAccessors.position(::Type{<:$T}, ::typeof(ndims)) = Position(2)
33+
TypeParameterAccessors.position(::Type{<:$T}, ::typeof(axes)) = Position(3)
34+
function TypeParameterAccessors.position(::Type{<:$T}, ::typeof(alloctype))
35+
return Position(4)
36+
end
37+
38+
function TypeParameterAccessors.default_type_parameters(::Type{<:$T})
39+
return (Float64, 1, Tuple{Base.OneTo{Int}}, Vector{Float64})
40+
end
41+
end
2542
end
2643

2744
## This overloads the definition defined in `FillArrays.jl`

test/test_aqua.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ using Aqua: Aqua
33
using Test: @testset
44

55
@testset "Code quality (Aqua.jl)" begin
6-
Aqua.test_all(UnallocatedArrays; piracies=false)
6+
Aqua.test_all(UnallocatedArrays)
77
end

test/test_defaults.jl

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,72 +5,72 @@
55
using FillArrays: Fill, Zeros
66
using UnallocatedArrays: UnallocatedFill, UnallocatedZeros
77
using TypeParameterAccessors:
8-
Position, default_type_parameter, nparameters, set_type_parameter, type_parameter
8+
Position, default_type_parameters, nparameters, set_type_parameters, type_parameters
99
using Test: @test, @testset
1010

1111
#@testset "SetParameters" begin
1212
@testset "Testing $typ" for typ in (Fill, Zeros)
13-
t1 = default_type_parameter(typ, Position{1}())
14-
t2 = default_type_parameter(typ, Position{2}())
15-
t3 = default_type_parameter(typ, Position{3}())
13+
t1 = default_type_parameters(typ, Position(1))
14+
t2 = default_type_parameters(typ, Position(2))
15+
t3 = default_type_parameters(typ, Position(3))
1616
t4 = Any
1717
ft1 = typ{t1}
1818
ft2 = typ{t1,t2}
1919
ft3 = typ{t1,t2,t3}
2020

2121
## check 1 parameter specified
22-
ftn1 = set_type_parameter(ft1, Position{1}(), t4)
23-
ftn2 = set_type_parameter(ft1, Position{2}(), t4)
24-
ftn3 = set_type_parameter(ft1, Position{3}(), t4)
22+
ftn1 = set_type_parameters(ft1, Position{1}(), t4)
23+
ftn2 = set_type_parameters(ft1, Position{2}(), t4)
24+
ftn3 = set_type_parameters(ft1, Position{3}(), t4)
2525
@test ftn1 == typ{t4}
2626
@test ftn2 == typ{t1,t4}
2727
@test ftn3 == typ{t1,<:Any,t4}
2828

2929
## check 2 parameters specified
30-
ftn1 = set_type_parameter(ft2, Position{1}(), t4)
31-
ftn2 = set_type_parameter(ft2, Position{2}(), t4)
32-
ftn3 = set_type_parameter(ft2, Position{3}(), t4)
30+
ftn1 = set_type_parameters(ft2, Position{1}(), t4)
31+
ftn2 = set_type_parameters(ft2, Position{2}(), t4)
32+
ftn3 = set_type_parameters(ft2, Position{3}(), t4)
3333
@test ftn1 == typ{t4,t2}
3434
@test ftn2 == typ{t1,t4}
3535
@test ftn3 == typ{t1,t2,t4}
3636

3737
## check 3 parameters specified
38-
ftn1 = set_type_parameter(ft3, Position{1}(), t4)
39-
ftn2 = set_type_parameter(ft3, Position{2}(), t4)
40-
ftn3 = set_type_parameter(ft3, Position{3}(), t4)
38+
ftn1 = set_type_parameters(ft3, Position{1}(), t4)
39+
ftn2 = set_type_parameters(ft3, Position{2}(), t4)
40+
ftn3 = set_type_parameters(ft3, Position{3}(), t4)
4141
@test ftn1 == typ{t4,t2,t3}
4242
@test ftn2 == typ{t1,t4,t3}
4343
@test ftn3 == typ{t1,t2,t4}
4444

45-
@test type_parameter(ft3, Position{1}()) == t1
46-
@test type_parameter(ft3, Position{2}()) == t2
47-
@test type_parameter(ft3, Position{3}()) == t3
45+
@test type_parameters(ft3, Position{1}()) == t1
46+
@test type_parameters(ft3, Position{2}()) == t2
47+
@test type_parameters(ft3, Position{3}()) == t3
4848

4949
@test nparameters(ft3) == 3
5050
end
5151

5252
@testset "Testing $typ" for typ in (UnallocatedFill, UnallocatedZeros)
53-
t1 = default_type_parameter(typ, Position{1}())
54-
t2 = default_type_parameter(typ, Position{2}())
55-
t3 = default_type_parameter(typ, Position{3}())
56-
t4 = default_type_parameter(typ, Position{4}())
53+
t1 = default_type_parameters(typ, Position(1))
54+
t2 = default_type_parameters(typ, Position(2))
55+
t3 = default_type_parameters(typ, Position(3))
56+
t4 = default_type_parameters(typ, Position(4))
5757
t5 = Any
5858
ft = typ{t1,t2,t3,t4}
5959

6060
## check 4 parameters specified
61-
ftn1 = set_type_parameter(ft, Position{1}(), t5)
62-
ftn2 = set_type_parameter(ft, Position{2}(), t5)
63-
ftn3 = set_type_parameter(ft, Position{3}(), t5)
64-
ftn4 = set_type_parameter(ft, Position{4}(), t5)
61+
ftn1 = set_type_parameters(ft, Position{1}(), t5)
62+
ftn2 = set_type_parameters(ft, Position{2}(), t5)
63+
ftn3 = set_type_parameters(ft, Position{3}(), t5)
64+
ftn4 = set_type_parameters(ft, Position{4}(), t5)
6565
@test ftn1 == typ{t5,t2,t3,t4}
6666
@test ftn2 == typ{t1,t5,t3,t4}
6767
@test ftn3 == typ{t1,t2,t5,t4}
6868
@test ftn4 == typ{t1,t2,t3,t5}
6969

70-
@test type_parameter(ft, Position{1}()) == t1
71-
@test type_parameter(ft, Position{2}()) == t2
72-
@test type_parameter(ft, Position{3}()) == t3
73-
@test type_parameter(ft, Position{4}()) == t4
70+
@test type_parameters(ft, Position{1}()) == t1
71+
@test type_parameters(ft, Position{2}()) == t2
72+
@test type_parameters(ft, Position{3}()) == t3
73+
@test type_parameters(ft, Position{4}()) == t4
7474

7575
@test nparameters(ft) == 4
7676
end

0 commit comments

Comments
 (0)