Mercurial > repos > public > sbplib_julia
comparison LazyTensors/test/runtests.jl @ 257:d4cd4882ee9f boundary_conditions
Improve error messages when multiblying with TensorMappings and add some tests for TensorOperators
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Fri, 28 Jun 2019 14:10:35 +0200 |
| parents | 1c6afdcfd657 |
| children | b577b5f64530 |
comparison
equal
deleted
inserted
replaced
| 256:d8f42733f392 | 257:d4cd4882ee9f |
|---|---|
| 54 @test (m*m*v)[1] == (:apply,m*v,(1,)) | 54 @test (m*m*v)[1] == (:apply,m*v,(1,)) |
| 55 @test (m*m*v)[3] == (:apply,m*v,(3,)) | 55 @test (m*m*v)[3] == (:apply,m*v,(3,)) |
| 56 @test (m*m*v)[6] == (:apply,m*v,(6,)) | 56 @test (m*m*v)[6] == (:apply,m*v,(6,)) |
| 57 @test_broken BoundsError == (m*m*v)[0] | 57 @test_broken BoundsError == (m*m*v)[0] |
| 58 @test_broken BoundsError == (m*m*v)[7] | 58 @test_broken BoundsError == (m*m*v)[7] |
| 59 | |
| 60 A = DummyMapping{Int, 2, 1}() | |
| 61 | |
| 62 @test_throws MethodError A*ones(Int,2,2) | |
| 63 @test_throws MethodError A*A*v | |
| 64 | |
| 65 struct ScalingOperator{T,D} <: TensorOperator{T,D} | |
| 66 λ::T | |
| 67 end | |
| 68 | |
| 69 LazyTensors.apply(m::ScalingOperator{T,D}, v, I::Tuple{Int}) where {T,D} = m.λ*v[I...] | |
| 70 | |
| 71 A = ScalingOperator{Int,1}(2) | |
| 72 | |
| 73 @test A*[1,2,3] isa AbstractVector | |
| 74 @test A*[1,2,3] == [2,4,6] | |
| 59 end | 75 end |
| 60 | 76 |
| 61 @testset "TensorMapping binary operations" begin | 77 @testset "TensorMapping binary operations" begin |
| 62 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D} | 78 struct ScalarMapping{T,R,D} <: TensorMapping{T,R,D} |
| 63 λ::T | 79 λ::T |
