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 |