comparison LazyTensors/test/runtests.jl @ 204:9d9f7b0e514b boundary_conditions

Modify the implementation of elementwise operations to be more direct and add a few tests
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 24 Jun 2019 14:04:38 +0200
parents b5c9be7f391c
children 70e1f3401d82
comparison
equal deleted inserted replaced
198:b5c9be7f391c 204:9d9f7b0e514b
54 @test (m*m*v)[3] == (:apply,m*v,3) 54 @test (m*m*v)[3] == (:apply,m*v,3)
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
60
61 @testset "Lazy elementwise operations" begin
62 struct DummyLazyArray{D} <: LazyArray{Int,D}
63 size::NTuple{D,Int}
64 end
65 Base.size(a::DummyLazyArray) = a.size
66 Base.getindex(a::DummyLazyArray, I...) = prod(I)
67
68
69 a = DummyLazyArray((3,))
70
71 @test (a+a)[3] == 6
72 @test (a-a)[3] == 0
73 @test (a*a)[3] == 9
74
75 a = DummyLazyArray((4,))
76 b = [3,2,1,2]
77
78 @test (a+b)[4] == 6
79 @test (a-b)[4] == 2
80 @test (a*b)[4] == 8
81
82 @test (b+a)[4] == 6
83 @test (b-a)[4] == -2
84 @test (b*a)[4] == 8
85 end