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