Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "TensorAlgebra"
uuid = "68bd88dc-f39d-4e12-b2ca-f046b68fcc6a"
authors = ["ITensor developers <[email protected]> and contributors"]
version = "0.1.9"
version = "0.1.10"

[deps]
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
Expand Down
6 changes: 6 additions & 0 deletions test/Project.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
[deps]
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
BlockSparseArrays = "2c9a651f-6452-4ace-a6ac-809f4280fbb4"
EllipsisNotation = "da5c29d0-fa7d-589e-88eb-ea29b0a81949"
GradedUnitRanges = "e2de450a-8a67-46c7-b59c-01d5a3d041c5"
JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb"
LabelledNumbers = "f856a3a6-4152-4ec4-b2a7-02c1a55d7993"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
SparseArraysBase = "0d5efcca-f356-4864-8770-e1ed8d78f208"
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
SymmetrySectors = "f8a8ad64-adbc-4fce-92f7-ffe2bb36a86e"
Expand All @@ -18,7 +21,10 @@ TestExtras = "5ed8adda-3752-4e41-b88a-e8b09835ee3a"

[compat]
Aqua = "0.8.9"
BlockSparseArrays = "0.2"
Random = "1.10"
SafeTestsets = "0.1"
SparseArraysBase = "0.2.11"
Suppressor = "0.2"
SymmetrySectors = "0.1"
TensorOperations = "5.1.3"
Expand Down
62 changes: 29 additions & 33 deletions test/test_gradedunitrangesext_contract.jl
Original file line number Diff line number Diff line change
@@ -1,37 +1,33 @@
using Test: @test_skip
# TODO: Add this back once `BlockSparseArrays` is set up.
@test_skip begin
using BlockArrays: Block, blocksize
using BlockSparseArrays: BlockSparseArray
using GradedUnitRanges: gradedrange
using SparseArraysBase: densearray
using SymmetrySectors: U1
using TensorAlgebra: contract
using Random: randn!
using Test: @test, @testset
using BlockArrays: Block, blocksize
using BlockSparseArrays: BlockSparseArray
using GradedUnitRanges: dual, gradedrange
using SparseArraysBase: densearray
using SymmetrySectors: U1
using TensorAlgebra: contract
using Random: randn!
using Test: @test, @testset

function randn_blockdiagonal(elt::Type, axes::Tuple)
a = BlockSparseArray{elt}(axes)
blockdiaglength = minimum(blocksize(a))
for i in 1:blockdiaglength
b = Block(ntuple(Returns(i), ndims(a)))
a[b] = randn!(a[b])
end
return a
function randn_blockdiagonal(elt::Type, axes::Tuple)
a = BlockSparseArray{elt}(axes)
blockdiaglength = minimum(blocksize(a))
for i in 1:blockdiaglength
b = Block(ntuple(Returns(i), ndims(a)))
a[b] = randn!(a[b])
end
return a
end

const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
@testset "`contract` `BlockSparseArray` (eltype=$elt)" for elt in elts
d = gradedrange([U1(0) => 2, U1(1) => 3])
a1 = randn_blockdiagonal(elt, (d, d, d))
a2 = randn_blockdiagonal(elt, (d, d, d))
a_dest, dimnames_dest = contract(a1, (-1, 1, -2), a2, (-1, -2, 2))
a1_dense = densearray(a1)
a2_dense = densearray(a2)
a_dest_dense, dimnames_dest_dense = contract(
a1_dense, (-1, 1, -2), a2_dense, (-1, -2, 2)
)
@test dimnames_dest == dimnames_dest_dense
@test a_dest a_dest_dense
end
const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
@testset "`contract` `BlockSparseArray` (eltype=$elt)" for elt in elts
d = gradedrange([U1(0) => 2, U1(1) => 3])
a1 = randn_blockdiagonal(elt, (d, d, dual(d), dual(d)))
a2 = randn_blockdiagonal(elt, (d, d, dual(d), dual(d)))
a_dest, dimnames_dest = contract(a1, (1, -1, 2, -3), a2, (2, -1, 1, -2))
a1_dense = densearray(a1)
a2_dense = densearray(a2)
a_dest_dense, dimnames_dest_dense = contract(
a1_dense, (1, -1, 2, -3), a2_dense, (2, -1, 1, -2)
)
@test dimnames_dest == dimnames_dest_dense
@test a_dest a_dest_dense
end
Loading