Mercurial > repos > public > sbplib_julia
comparison LazyTensors/test/runtests.jl @ 278:d6edd37551ea boundary_conditions
Extend 2D test
| author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
|---|---|
| date | Tue, 07 Jan 2020 23:48:20 +0100 |
| parents | 21e5c1dd6794 |
| children | 277dff5b071a |
comparison
equal
deleted
inserted
replaced
| 277:21e5c1dd6794 | 278:d6edd37551ea |
|---|---|
| 39 | 39 |
| 40 @testset "TensorApplication" begin | 40 @testset "TensorApplication" begin |
| 41 struct DummyMapping{T,R,D} <: TensorMapping{T,R,D} end | 41 struct DummyMapping{T,R,D} <: TensorMapping{T,R,D} end |
| 42 | 42 |
| 43 LazyTensors.apply(m::DummyMapping{T,R,D}, v, i::NTuple{R,Index{<:Region}}) where {T,R,D} = (:apply,v,i) | 43 LazyTensors.apply(m::DummyMapping{T,R,D}, v, i::NTuple{R,Index{<:Region}}) where {T,R,D} = (:apply,v,i) |
| 44 LazyTensors.apply_transpose(m::DummyMapping{T,R,D}, v, i::NTuple{D,Int}) where {T,R,D} = :apply_transpose | |
| 45 | |
| 46 LazyTensors.range_size(m::DummyMapping{T,R,D}, domain_size::NTuple{D,Integer}) where {T,R,D} = 2 .* domain_size | 44 LazyTensors.range_size(m::DummyMapping{T,R,D}, domain_size::NTuple{D,Integer}) where {T,R,D} = 2 .* domain_size |
| 47 LazyTensors.domain_size(m::DummyMapping{T,R,D}, range_size::NTuple{R,Integer}) where {T,R,D} = range_size.÷2 | 45 LazyTensors.domain_size(m::DummyMapping{T,R,D}, range_size::NTuple{R,Integer}) where {T,R,D} = range_size.÷2 |
| 48 | 46 |
| 49 | 47 |
| 50 m = DummyMapping{Int, 1, 1}() | 48 m = DummyMapping{Int, 1, 1}() |
| 75 | 73 |
| 76 struct ScalingOperator{T,D} <: TensorOperator{T,D} | 74 struct ScalingOperator{T,D} <: TensorOperator{T,D} |
| 77 λ::T | 75 λ::T |
| 78 end | 76 end |
| 79 | 77 |
| 80 LazyTensors.apply(m::ScalingOperator{T,D}, v, I::Tuple{Index{<:Region}}) where {T,D} = m.λ*v[I...] | 78 LazyTensors.apply(m::ScalingOperator{T,D}, v, I::NTuple{D, Index}) where {T,D} = m.λ*v[I] |
| 81 | 79 |
| 82 m = ScalingOperator{Int,1}(2) | 80 m = ScalingOperator{Int,1}(2) |
| 81 v = [1,2,3] | |
| 82 @test m*v isa AbstractVector | |
| 83 @test m*v == [2,4,6] | |
| 83 | 84 |
| 84 @test m*[1,2,3] isa AbstractVector | 85 m = ScalingOperator{Int,2}(2) |
| 85 @test m*[1,2,3] == [2,4,6] | 86 v = [[1 2];[3 4]] |
| 87 @test m*v == [[2 4];[6 8]] | |
| 88 I = (Index{Upper}(2),Index{Lower}(1)) | |
| 89 @test (m*v)[I] == 6 | |
| 86 end | 90 end |
| 87 | 91 |
| 88 @testset "TensorMapping binary operations" begin | 92 @testset "TensorMapping binary operations" begin |
| 89 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D} | 93 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D} |
| 90 λ::T | 94 λ::T |
