Mercurial > repos > public > sbplib_julia
comparison LazyTensors/test/runtests.jl @ 210:2aa33d0eef90 boundary_conditions
Add ability to add and subtract TensorMappings
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Tue, 25 Jun 2019 17:26:39 +0200 |
| parents | 992969237359 |
| children | a20bb4fac23d |
comparison
equal
deleted
inserted
replaced
| 209:7db145ce6e4d | 210:2aa33d0eef90 |
|---|---|
| 55 @test (m*m*v)[6] == (:apply,m*v,6) | 55 @test (m*m*v)[6] == (:apply,m*v,6) |
| 56 @test_broken BoundsError == (m*m*v)[0] | 56 @test_broken BoundsError == (m*m*v)[0] |
| 57 @test_broken BoundsError == (m*m*v)[7] | 57 @test_broken BoundsError == (m*m*v)[7] |
| 58 end | 58 end |
| 59 | 59 |
| 60 @testset "TensorMapping binary operations" begin | |
| 61 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D} | |
| 62 λ::T | |
| 63 end | |
| 64 | |
| 65 LazyTensors.apply(m::ScalarMapping{T,R,D}, v, i) where {T,R,D} = m.λ*v[i] | |
| 66 LazyTensors.range_size(m::ScalarMapping, domain_size) = domain_size | |
| 67 LazyTensors.domain_size(m::ScalarMapping, range_sizes) = range_sizes | |
| 68 | |
| 69 A = ScalarMapping{Float64,1,1}(2.0) | |
| 70 B = ScalarMapping{Float64,1,1}(3.0) | |
| 71 | |
| 72 v = [1.1,1.2,1.3] | |
| 73 | |
| 74 for i ∈ eachindex(v) | |
| 75 @test ((A+B)*v)[i] == 2*v[i] + 3*v[i] | |
| 76 end | |
| 77 | |
| 78 for i ∈ eachindex(v) | |
| 79 @test ((A-B)*v)[i] == 2*v[i] - 3*v[i] | |
| 80 end | |
| 81 | |
| 82 @test range_size(A+B, (3,)) == range_size(A, (3,)) == range_size(B,(3,)) | |
| 83 @test domain_size(A+B, (3,)) == domain_size(A, (3,)) == domain_size(B,(3,)) | |
| 84 end | |
| 85 | |
| 60 @testset "LazyArray" begin | 86 @testset "LazyArray" begin |
| 61 struct DummyArray{T,D, T1<:AbstractArray{T,D}} <: LazyArray{T,D} | 87 struct DummyArray{T,D, T1<:AbstractArray{T,D}} <: LazyArray{T,D} |
| 62 data::T1 | 88 data::T1 |
| 63 end | 89 end |
| 64 Base.size(v::DummyArray) = size(v.data) | 90 Base.size(v::DummyArray) = size(v.data) |
