Mercurial > repos > public > sbplib_julia
comparison test/testLazyTensors.jl @ 458:41f9cb6ee5a7 feature/inflated_tensormapping
Moar tests and moar type stableness
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 21 Oct 2020 20:57:38 +0200 |
parents | 8fb6a5611c7a |
children | 6eb3f7eb08d6 a52f38e72258 |
comparison
equal
deleted
inserted
replaced
457:8fb6a5611c7a | 458:41f9cb6ee5a7 |
---|---|
347 @tullio IAIv[a,b,c,d] := Ã[c,i]*v[a,b,i,d] | 347 @tullio IAIv[a,b,c,d] := Ã[c,i]*v[a,b,i,d] |
348 @test tm*v ≈ IAIv rtol=1e-14 | 348 @test tm*v ≈ IAIv rtol=1e-14 |
349 | 349 |
350 @inferred LazyTensors.split_index(tm,1,1,1,1) | 350 @inferred LazyTensors.split_index(tm,1,1,1,1) |
351 | 351 |
352 @inferred (tm*v)[1,1,1,1] | 352 struct ScalingOperator{T,D} <: TensorMapping{T,D,D} |
353 λ::T | |
354 size::NTuple{D,Int} | |
355 end | |
356 | |
357 LazyTensors.apply(m::ScalingOperator{T,D}, v, I::Vararg{Index,D}) where {T,D} = m.λ*v[I] | |
358 LazyTensors.range_size(m::ScalingOperator) = m.size | |
359 LazyTensors.domain_size(m::ScalingOperator) = m.size | |
360 | |
361 tm = InflatedTensorMapping(I(2,3),ScalingOperator(2.0, (3,2)),I(3,4)) | |
362 v = rand(domain_size(tm)...) | |
363 | |
364 @inferred LazyTensors.split_index(tm,1,2,3,2,2,4) | |
365 @inferred apply(tm,v,Index{Unknown}.((1,2,3,2,2,4))...) | |
366 @inferred (tm*v)[1,2,3,2,2,4] | |
353 | 367 |
354 end | 368 end |
355 | 369 |
356 @testset "slice_tuple" begin | 370 @testset "slice_tuple" begin |
357 @test LazyTensors.slice_tuple((1,2,3),Val(1), Val(3)) == (1,2,3) | 371 @test LazyTensors.slice_tuple((1,2,3),Val(1), Val(3)) == (1,2,3) |