Mercurial > repos > public > sbplib_julia
comparison LazyTensors/test/runtests.jl @ 263:b577b5f64530 boundary_conditions
Add lazy elementwise operations for array with scalar
| author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
|---|---|
| date | Wed, 04 Dec 2019 19:02:18 +0100 |
| parents | d4cd4882ee9f |
| children | 11010bb74260 |
comparison
equal
deleted
inserted
replaced
| 262:f1e90a92ad74 | 263:b577b5f64530 |
|---|---|
| 108 Base.getindex(v::DummyArray{T,D}, I::Vararg{Int,D}) where {T,D} = v.data[I...] | 108 Base.getindex(v::DummyArray{T,D}, I::Vararg{Int,D}) where {T,D} = v.data[I...] |
| 109 | 109 |
| 110 # Test lazy operations | 110 # Test lazy operations |
| 111 v1 = [1, 2.3, 4] | 111 v1 = [1, 2.3, 4] |
| 112 v2 = [1., 2, 3] | 112 v2 = [1., 2, 3] |
| 113 r_add = v1 .+ v2 | 113 s = 3.4 |
| 114 r_sub = v1 .- v2 | 114 r_add_v = v1 .+ v2 |
| 115 r_times = v1 .* v2 | 115 r_sub_v = v1 .- v2 |
| 116 r_div = v1 ./ v2 | 116 r_times_v = v1 .* v2 |
| 117 r_div_v = v1 ./ v2 | |
| 118 r_add_s = v1 .+ s | |
| 119 r_sub_s = v1 .- s | |
| 120 r_times_s = v1 .* s | |
| 121 r_div_s = v1 ./ s | |
| 117 @test isa(v1 +̃ v2, LazyArray) | 122 @test isa(v1 +̃ v2, LazyArray) |
| 118 @test isa(v1 -̃ v2, LazyArray) | 123 @test isa(v1 -̃ v2, LazyArray) |
| 119 @test isa(v1 *̃ v2, LazyArray) | 124 @test isa(v1 *̃ v2, LazyArray) |
| 120 @test isa(v1 /̃ v2, LazyArray) | 125 @test isa(v1 /̃ v2, LazyArray) |
| 126 @test isa(v1 +̃ s, LazyArray) | |
| 127 @test isa(v1 -̃ s, LazyArray) | |
| 128 @test isa(v1 *̃ s, LazyArray) | |
| 129 @test isa(v1 /̃ s, LazyArray) | |
| 130 @test isa(s +̃ v1, LazyArray) | |
| 131 @test isa(s -̃ v1, LazyArray) | |
| 132 @test isa(s *̃ v1, LazyArray) | |
| 133 @test isa(s /̃ v1, LazyArray) | |
| 121 for i ∈ eachindex(v1) | 134 for i ∈ eachindex(v1) |
| 122 @test (v1 +̃ v2)[i] == r_add[i] | 135 @test (v1 +̃ v2)[i] == r_add_v[i] |
| 123 @test (v1 -̃ v2)[i] == r_sub[i] | 136 @test (v1 -̃ v2)[i] == r_sub_v[i] |
| 124 @test (v1 *̃ v2)[i] == r_times[i] | 137 @test (v1 *̃ v2)[i] == r_times_v[i] |
| 125 @test (v1 /̃ v2)[i] == r_div[i] | 138 @test (v1 /̃ v2)[i] == r_div_v[i] |
| 139 @test (v1 +̃ s)[i] == r_add_s[i] | |
| 140 @test (v1 -̃ s)[i] == r_sub_s[i] | |
| 141 @test (v1 *̃ s)[i] == r_times_s[i] | |
| 142 @test (v1 /̃ s)[i] == r_div_s[i] | |
| 143 @test (s +̃ v1)[i] == r_add_s[i] | |
| 144 @test (s -̃ v1)[i] == -r_sub_s[i] | |
| 145 @test (s *̃ v1)[i] == r_times_s[i] | |
| 146 @test (s /̃ v1)[i] == 1/r_div_s[i] | |
| 126 end | 147 end |
| 127 @test_throws BoundsError (v1 +̃ v2)[4] | 148 @test_throws BoundsError (v1 +̃ v2)[4] |
| 128 v2 = [1., 2, 3, 4] | 149 v2 = [1., 2, 3, 4] |
| 129 # Test that size of arrays is asserted when not specified inbounds | 150 # Test that size of arrays is asserted when not specified inbounds |
| 130 @test_throws DimensionMismatch v1 +̃ v2 | 151 @test_throws DimensionMismatch v1 +̃ v2 |
| 135 @test isa(v1 + v2, LazyArray) | 156 @test isa(v1 + v2, LazyArray) |
| 136 @test isa(v2 + v1, LazyArray) | 157 @test isa(v2 + v1, LazyArray) |
| 137 @test isa(v1 - v2, LazyArray) | 158 @test isa(v1 - v2, LazyArray) |
| 138 @test isa(v2 - v1, LazyArray) | 159 @test isa(v2 - v1, LazyArray) |
| 139 for i ∈ eachindex(v2) | 160 for i ∈ eachindex(v2) |
| 140 @test (v1 + v2)[i] == (v2 + v1)[i] == r_add[i] | 161 @test (v1 + v2)[i] == (v2 + v1)[i] == r_add_v[i] |
| 141 @test (v1 - v2)[i] == -(v2 - v1)[i] == r_sub[i] | 162 @test (v1 - v2)[i] == -(v2 - v1)[i] == r_sub_v[i] |
| 142 end | 163 end |
| 143 @test_throws BoundsError (v1 + v2)[4] | 164 @test_throws BoundsError (v1 + v2)[4] |
| 144 v2 = [1., 2, 3, 4] | 165 v2 = [1., 2, 3, 4] |
| 145 # Test that size of arrays is asserted when not specified inbounds | 166 # Test that size of arrays is asserted when not specified inbounds |
| 146 @test_throws DimensionMismatch v1 + v2 | 167 @test_throws DimensionMismatch v1 + v2 |
