Mercurial > repos > public > sbplib_julia
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 |