comparison LazyTensors/test/runtests.jl @ 276:e3611c2181bc boundary_conditions

Add 2D test
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 06 Jan 2020 11:46:21 +0100
parents 591609cdcd9b
children 21e5c1dd6794
comparison
equal deleted inserted replaced
275:591609cdcd9b 276:e3611c2181bc
61 @test (m*m*v)[Index{Lower}(6)] == (:apply,m*v,(Index{Lower}(6),)) 61 @test (m*m*v)[Index{Lower}(6)] == (:apply,m*v,(Index{Lower}(6),))
62 @test (m*m*v)[6] == (:apply,m*v,(Index{Unknown}(6),)) 62 @test (m*m*v)[6] == (:apply,m*v,(Index{Unknown}(6),))
63 @test_broken BoundsError == (m*m*v)[0] 63 @test_broken BoundsError == (m*m*v)[0]
64 @test_broken BoundsError == (m*m*v)[7] 64 @test_broken BoundsError == (m*m*v)[7]
65 65
66 A = DummyMapping{Int, 2, 1}() 66 m = DummyMapping{Int, 2, 1}()
67 @test_throws MethodError m*ones(Int,2,2)
68 @test_throws MethodError m*m*v
67 69
68 @test_throws MethodError A*ones(Int,2,2) 70 m = DummyMapping{Float64, 2, 2}()
69 @test_throws MethodError A*A*v 71 v = ones(3,3)
72 I = (Index{Lower}(1),Index{Interior}(2));
73 @test size(m*v) == 2 .*size(v)
74 @test (m*v)[I...] == (:apply,v,I)
70 75
71 struct ScalingOperator{T,D} <: TensorOperator{T,D} 76 struct ScalingOperator{T,D} <: TensorOperator{T,D}
72 λ::T 77 λ::T
73 end 78 end
74 79
75 LazyTensors.apply(m::ScalingOperator{T,D}, v, I::Tuple{Index{<:Region}}) where {T,D} = m.λ*v[I...] 80 LazyTensors.apply(m::ScalingOperator{T,D}, v, I::Tuple{Index{<:Region}}) where {T,D} = m.λ*v[I...]
76 81
77 A = ScalingOperator{Int,1}(2) 82 m = ScalingOperator{Int,1}(2)
78 83
79 @test A*[1,2,3] isa AbstractVector 84 @test m*[1,2,3] isa AbstractVector
80 @test A*[1,2,3] == [2,4,6] 85 @test m*[1,2,3] == [2,4,6]
81 end 86 end
82 87
83 @testset "TensorMapping binary operations" begin 88 @testset "TensorMapping binary operations" begin
84 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D} 89 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D}
85 λ::T 90 λ::T