From 2ac047b8c196149b09aa160df0a71cd0556725be Mon Sep 17 00:00:00 2001 From: mtfishman Date: Thu, 27 Feb 2025 12:18:40 -0500 Subject: [PATCH] Update to NamedDimsArrays.jl v0.5 --- Project.toml | 4 ++-- src/abstractitensor.jl | 5 +++-- test/test_basics.jl | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/Project.toml b/Project.toml index bb8971b..c035dfc 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ITensorBase" uuid = "4795dd04-0d67-49bb-8f44-b89c448a1dc7" authors = ["ITensor developers and contributors"] -version = "0.1.18" +version = "0.1.19" [deps] Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" @@ -32,7 +32,7 @@ FillArrays = "1.13.0" GradedUnitRanges = "0.1.4" LinearAlgebra = "1.10" MapBroadcast = "0.1.5" -NamedDimsArrays = "0.4.5" +NamedDimsArrays = "0.5.0" SparseArraysBase = "0.2.11" UnallocatedArrays = "0.1.1" UnspecifiedTypes = "0.1.1" diff --git a/src/abstractitensor.jl b/src/abstractitensor.jl index 8a7060f..e24e346 100644 --- a/src/abstractitensor.jl +++ b/src/abstractitensor.jl @@ -86,8 +86,9 @@ mutable struct ITensor <: AbstractITensor return new(parent, nameddimsindices) end end -Base.parent(a::ITensor) = a.parent -NamedDimsArrays.nameddimsindices(a::ITensor) = a.nameddimsindices +Base.parent(a::ITensor) = getfield(a, :parent) +NamedDimsArrays.nameddimsindices(a::ITensor) = getfield(a, :nameddimsindices) +NamedDimsArrays.dename(a::ITensor) = parent(a) function ITensor(parent::AbstractArray, i1::Index, i_rest::Index...) return ITensor(parent, (i1, i_rest...)) diff --git a/test/test_basics.jl b/test/test_basics.jl index 9b5dd11..b2a18fd 100644 --- a/test/test_basics.jl +++ b/test/test_basics.jl @@ -39,6 +39,29 @@ using Test: @test, @test_broken, @test_throws, @testset @test_throws ErrorException ITensor(randn(elt, 2, 2), Index.((2, 3))) @test_throws ErrorException ITensor(randn(elt, 4), Index.((2, 2))) + i, j = Index.((3, 4)) + a = randn(elt, i, j) + a′ = Array(a) + @test eltype(a′) === elt + @test a′ isa Matrix{elt} + @test a′ == dename(a) + + i, j = Index.((3, 4)) + a = randn(elt, i, j) + for a′ in (Array{Float32}(a), Matrix{Float32}(a)) + @test eltype(a′) === Float32 + @test a′ isa Matrix{Float32} + @test a′ == Float32.(dename(a)) + end + + i, j, k = Index.((2, 2, 2)) + a = randn(elt, i, j, k) + b = randn(elt, k, i, j) + copyto!(a, b) + @test a == b + @test dename(a) == dename(b, (i, j, k)) + @test dename(a) == permutedims(dename(b), (2, 3, 1)) + i = Index(2) @test plev(i) == 0 i = setprime(i, 2)