Mercurial > repos > public > sbplib_julia
changeset 524:41c1760a7770 feature/inflated_tensormapping_transpose
Merge refactor/inflated_tensormapping_tests
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 25 Nov 2020 15:10:46 +0100 |
parents | fe86ac896377 (current diff) 390901860b0a (diff) |
children | 7e6250c51eb2 |
files | test/testLazyTensors.jl |
diffstat | 2 files changed, 45 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Grids/Grids.jl Mon Nov 23 21:30:11 2020 +0100 +++ b/src/Grids/Grids.jl Wed Nov 25 15:10:46 2020 +0100 @@ -7,7 +7,7 @@ abstract type BoundaryIdentifier end struct CartesianBoundary{Dim, R<:Region} <: BoundaryIdentifier end dim(::CartesianBoundary{Dim, R}) where {Dim, R} = Dim -region(::CartesianBoundary{Dim, R}) where {Dim, R} = R +region(::CartesianBoundary{Dim, R}) where {Dim, R} = R #TODO: Should return R() export dim, region
--- a/test/testLazyTensors.jl Mon Nov 23 21:30:11 2020 +0100 +++ b/test/testLazyTensors.jl Wed Nov 25 15:10:46 2020 +0100 @@ -364,23 +364,51 @@ end @testset "Application" begin - # Test InflatedTensorMapping mapping w. before and after - tm = InflatedTensorMapping(I(3,2), A, I(4)) - v = rand(domain_size(tm)...) - @tullio IAIv[a,b,c,d] := Ã[c,i]*v[a,b,i,d] - @test tm*v ≈ IAIv rtol=1e-14 + tests = [ + ( + InflatedTensorMapping(I(3,2), A, I(4)), + (v-> @tullio res[a,b,c,d] := Ã[c,i]*v[a,b,i,d]), + ), + ( + InflatedTensorMapping(I(3,2), B, I(4)), + (v-> @tullio res[a,b,c,d,e] := B̃[c,d,i]*v[a,b,i,e]), + ), + ( + InflatedTensorMapping(I(3,2), C, I(4)), + (v-> @tullio res[a,b,c,d] := C̃[c,i,j]*v[a,b,i,j,d]), + ), + ( + InflatedTensorMapping(I(3,2), A), + (v-> @tullio res[a,b,c] := Ã[c,i]*v[a,b,i]), + ), + ( + InflatedTensorMapping(I(3,2), B), + (v-> @tullio res[a,b,c,d] := B̃[c,d,i]*v[a,b,i]), + ), + ( + InflatedTensorMapping(I(3,2), C), + (v-> @tullio res[a,b,c] := C̃[c,i,j]*v[a,b,i,j]), + ), + ( + InflatedTensorMapping(A,I(4)), + (v-> @tullio res[a,b] := Ã[a,i]*v[i,b]), + ), + ( + InflatedTensorMapping(B,I(4)), + (v-> @tullio res[a,b,c] := B̃[a,b,i]*v[i,c]), + ), + ( + InflatedTensorMapping(C,I(4)), + (v-> @tullio res[a,b] := C̃[a,i,j]*v[i,j,b]), + ), + ] - # Test InflatedTensorMapping mapping w. before - tm = InflatedTensorMapping(I(3,2), A) - v = rand(domain_size(tm)...) - @tullio IAIv[a,b,c] := Ã[c,i]*v[a,b,i] - @test tm*v ≈ IAIv rtol=1e-14 - - # Test InflatedTensorMapping mapping w. after - tm = InflatedTensorMapping(A,I(4)) - v = rand(domain_size(tm)...) - @tullio IAIv[c,d] := Ã[c,i]*v[i,d] - @test tm*v ≈ IAIv rtol=1e-14 + for i ∈ 1:length(tests) + tm = tests[i][1] + v = rand(domain_size(tm)...) + true_value = tests[i][2](v) + @test tm*v ≈ true_value rtol=1e-14 + end @testset "Inference of application" begin struct ScalingOperator{T,D} <: TensorMapping{T,D,D}