Mercurial > repos > public > sbplib_julia
changeset 1887:24590890e124 allocation_testing
Refactor a little bit
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 07 Apr 2022 17:02:51 +0200 |
parents | 9ce6d939dfae |
children | eb70a0941cd6 |
files | test/SbpOperators/allocations_test.jl |
diffstat | 1 files changed, 100 insertions(+), 206 deletions(-) [+] |
line wrap: on
line diff
--- a/test/SbpOperators/allocations_test.jl Thu Apr 07 07:37:02 2022 +0200 +++ b/test/SbpOperators/allocations_test.jl Thu Apr 07 17:02:51 2022 +0200 @@ -24,72 +24,33 @@ dᵣ = normal_derivative(g₁, stencil_set, CartesianBoundary{1,Upper}()) + indices = [1, 6, 15] - @testset "Derivative operator" begin - v = rand(size(g₁)...) - @test (@ballocated LazyTensors.apply($D₂, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($D₂, $v, 6)) == 0 - @test (@ballocated LazyTensors.apply($D₂, $v, 15)) == 0 - end + v = rand(size(g₁)...) + u = fill(1.) - @testset "inner_product operator" begin - v = rand(size(g₁)...) + neumannSATₗ = H⁻¹∘eₗ'∘dₗ # TODO: Remove + neumannSATᵣ = H⁻¹∘eᵣ'∘dᵣ # TODO: Remove - @test (@ballocated LazyTensors.apply($H, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 6)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 15)) == 0 - - @test (@ballocated LazyTensors.apply($(H∘H), $v, 5)) == 0 - end - - @testset "inverse_inner_product operator" begin - v = rand(size(g₁)...) - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 6)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 15)) == 0 + @testset for i ∈ indices + @test (@ballocated LazyTensors.apply($D₂, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($H, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($(H∘H), $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($H⁻¹, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($eₗ', $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($eᵣ', $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($dₗ', $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($dᵣ', $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($neumannSATₗ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($neumannSATᵣ, $v, $i)) == 0 end @testset "boundary operators" begin - v = rand(size(g₁)...) @test (@ballocated LazyTensors.apply($eₗ, $v)) == 0 @test (@ballocated LazyTensors.apply($eᵣ, $v)) == 0 @test (@ballocated LazyTensors.apply($dₗ, $v)) == 0 @test (@ballocated LazyTensors.apply($dᵣ, $v)) == 0 end - - @testset "boundary operator transposes" begin - v = fill(1.) - @test (@ballocated LazyTensors.apply($eₗ', $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($eₗ', $v, 7)) == 0 - @test (@ballocated LazyTensors.apply($eₗ', $v, 15)) == 0 - - @test (@ballocated LazyTensors.apply($eᵣ', $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($eᵣ', $v, 7)) == 0 - @test (@ballocated LazyTensors.apply($eᵣ', $v, 15)) == 0 - - @test (@ballocated LazyTensors.apply($dₗ', $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($dₗ', $v, 7)) == 0 - @test (@ballocated LazyTensors.apply($dₗ', $v, 15)) == 0 - - @test (@ballocated LazyTensors.apply($dᵣ', $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($dᵣ', $v, 7)) == 0 - @test (@ballocated LazyTensors.apply($dᵣ', $v, 15)) == 0 - end - - @testset "sat terms" begin - v = rand(size(g₁)...) - neumannSATₗ = H⁻¹∘eₗ'∘dₗ - neumannSATᵣ = H⁻¹∘eᵣ'∘dᵣ - - - @test (@ballocated LazyTensors.apply($neumannSATₗ, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSATₗ, $v, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSATₗ, $v, 15)) == 0 - - @test (@ballocated LazyTensors.apply($neumannSATᵣ, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSATᵣ, $v, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSATᵣ, $v, 15)) == 0 - end end @@ -117,171 +78,104 @@ H₂ᵤ = inner_product(boundary_grid(g₂, CartesianBoundary{2,Upper}()), stencil_set) - @testset "Derivative operator" begin - v = rand(size(g₂)...) - @test (@ballocated LazyTensors.apply($D₂x, $v, 1, 7)) == 0 - @test (@ballocated LazyTensors.apply($D₂x, $v, 6, 7)) == 0 - @test (@ballocated LazyTensors.apply($D₂x, $v, 15, 7)) == 0 + # neumannSAT₁ₗ = H⁻¹∘e₁ₗ'∘H₁ₗ∘d₁ₗ + # neumannSAT₂ᵤ = H⁻¹∘e₂ᵤ'∘H₂ᵤ∘d₂ᵤ - @test (@ballocated LazyTensors.apply($D₂y, $v, 7, 1)) == 0 - @test (@ballocated LazyTensors.apply($D₂y, $v, 7, 6)) == 0 - @test (@ballocated LazyTensors.apply($D₂y, $v, 7, 15)) == 0 + neumannSAT₁ₗ = e₁ₗ'∘d₁ₗ # TODO: Remove + neumannSAT₂ᵤ = e₂ᵤ'∘d₂ᵤ # TODO: Remove + + indices = [1,6,15] + + v = rand(size(g₂)...) + u = rand(first(size(g₂))) - @test (@ballocated LazyTensors.apply($(D₂x∘D₂y), $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($(D₂x∘D₂y), $v, 7, 6)) == 0 - @test (@ballocated LazyTensors.apply($(D₂x∘D₂y), $v, 15, 15)) == 0 - end + @testset for i ∈ indices + @testset for j ∈ indices + @test (@ballocated LazyTensors.apply($D₂x, $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($D₂y, $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(D₂x∘D₂y), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($H, $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H∘H), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($H⁻¹, $v, $i, $j)) == 0 - @testset "inner_product operator" begin - v = rand(size(g₂)...) - @test (@ballocated LazyTensors.apply($H, $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 1, 6)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 1, 15)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 6, 1)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 6, 6)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 6, 15)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 15, 1)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 15, 6)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, 15, 15)) == 0 + @test (@ballocated LazyTensors.apply($e₁ₗ', $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($e₁ᵤ', $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($e₂ₗ', $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($e₂ᵤ', $u, $i, $j)) == 0 + + @test (@ballocated LazyTensors.apply($d₁ₗ', $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($d₁ᵤ', $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($d₂ₗ', $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($d₂ᵤ', $u, $i, $j)) == 0 + + @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, $i, $j)) == 0 + - @test (@ballocated LazyTensors.apply($(H∘H), $v, 5, 5)) == 0 - end - - @testset "inverse_inner_product operator" begin - v = rand(size(g₂)...) - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 1, 6)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 1, 15)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 6, 1)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 6, 6)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 6, 15)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 15, 1)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 15, 6)) == 0 - @test (@ballocated LazyTensors.apply($H⁻¹, $v, 15, 15)) == 0 - end - - @testset "boundary operators" begin - v = rand(size(g₂)...) - @test (@ballocated LazyTensors.apply($e₁ₗ, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($e₁ᵤ, $v, 5)) == 0 - @test (@ballocated LazyTensors.apply($e₂ₗ, $v, 15)) == 0 - @test (@ballocated LazyTensors.apply($e₂ᵤ, $v, 3)) == 0 - - @test (@ballocated LazyTensors.apply($d₁ₗ, $v, 5)) == 0 - @test (@ballocated LazyTensors.apply($d₁ᵤ, $v, 15)) == 0 - @test (@ballocated LazyTensors.apply($d₂ₗ, $v, 1)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ, $v, 5)) == 0 - end - - @testset "boundary operator transposes" begin - v = rand(first(size(g₂))) - - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 1, 6)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 1, 15)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 6, 1)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 6, 6)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 6, 15)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 15, 1)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 15, 6)) == 0 - @test (@ballocated LazyTensors.apply($e₁ₗ', $v, 15, 15)) == 0 + ## Experiments + @test (@ballocated LazyTensors.apply($(e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(d₁ₗ'∘e₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 1, 6)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 1, 15)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 6, 1)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 6, 6)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 6, 15)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 15, 1)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 15, 6)) == 0 - @test (@ballocated LazyTensors.apply($d₂ᵤ', $v, 15, 15)) == 0 - end - - @testset "sat terms" begin - v = rand(size(g₂)...) - u = rand(size(g₂)[1]) - # neumannSAT₁ₗ = H⁻¹∘e₁ₗ'∘H₁ₗ∘d₁ₗ - # neumannSAT₂ᵤ = H⁻¹∘e₂ᵤ'∘H₂ᵤ∘d₂ᵤ - - neumannSAT₁ₗ = e₁ₗ'∘d₁ₗ - neumannSAT₂ᵤ = e₂ᵤ'∘d₂ᵤ - - # indices = [1,6,15] - indices = [1] + @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(e₁ₗ'∘H₁ₗ∘d₁ₗ∘H⁻¹), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H⁻¹∘D₂x), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H⁻¹∘D₂y), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘D₂x∘D₂y), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(D₂x∘e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(D₂y∘e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(D₂x∘e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(D₂y∘e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 - @testset for i ∈ indices - @testset for j ∈ indices - @test (@ballocated LazyTensors.apply($(e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(d₁ₗ'∘e₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'), $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(e₁ₗ'∘H₁ₗ), $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ), $v, $i)) == 0 - @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(e₁ₗ'∘H₁ₗ∘d₁ₗ∘H⁻¹), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(H⁻¹∘D₂x), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(H⁻¹∘D₂y), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘D₂x∘D₂y), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(D₂x∘e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(D₂y∘e₁ₗ'∘H₁ₗ∘d₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(D₂x∘e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(D₂y∘e₁ₗ'∘d₁ₗ), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'∘H₁ₗ), $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H₁ₗ∘e₁ₗ∘H⁻¹), $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ∘H⁻¹), $v, $i)) == 0 - @test (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'), $u, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ'∘H₁ₗ), $u, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ), $v, $i)) == 0 - - @test_broken (@ballocated LazyTensors.apply($(H⁻¹∘e₁ₗ'∘H₁ₗ), $u, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(H₁ₗ∘e₁ₗ∘H⁻¹), $v, $i)) == 0 - @test (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ∘H⁻¹), $v, $i)) == 0 - - @test_broken (@ballocated LazyTensors.apply($(e₁ₗ'∘e₁ₗ∘e₁ₗ'∘e₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ'∘e₁ₗ∘e₁ₗ'), $u, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ∘e₁ₗ'∘e₁ₗ), $v, $i)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ'∘e₁ₗ), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ∘e₁ₗ'), $u, $i)) == 0 + @test_broken (@ballocated LazyTensors.apply($(e₁ₗ'∘e₁ₗ∘e₁ₗ'∘e₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(e₁ₗ'∘e₁ₗ∘e₁ₗ'), $u, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(e₁ₗ∘e₁ₗ'∘e₁ₗ), $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($(e₁ₗ'∘e₁ₗ), $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(e₁ₗ∘e₁ₗ'), $u, $i)) == 0 - @test (@ballocated LazyTensors.apply($H, $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(H∘H), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(H∘H∘H), $v, $i, $j)) == 0 - @test_broken (@ballocated LazyTensors.apply($(H∘H∘H∘H), $v, $i, $j)) == 0 - end - @test (@ballocated LazyTensors.apply($(e₁ₗ∘d₁ₗ'), $u, $i)) == 0 - @test (@ballocated LazyTensors.apply($(d₁ₗ∘e₁ₗ'), $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($H, $v, $i, $j)) == 0 + @test (@ballocated LazyTensors.apply($(H∘H), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(H∘H∘H), $v, $i, $j)) == 0 + @test_broken (@ballocated LazyTensors.apply($(H∘H∘H∘H), $v, $i, $j)) == 0 - @test (@ballocated LazyTensors.apply($(e₁ₗ∘H∘d₁ₗ'), $u, $i)) == 0 - @test (@ballocated LazyTensors.apply($(d₁ₗ∘H∘e₁ₗ'), $u, $i)) == 0 - - @test (@ballocated LazyTensors.apply($(H₁ₗ∘e₁ₗ∘d₁ₗ'), $u, $i)) == 0 - @test (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ∘e₁ₗ'), $u, $i)) == 0 - - @test_broken (@ballocated LazyTensors.apply($(H₁ₗ∘e₁ₗ∘H∘d₁ₗ'), $u, $i)) == 0 - @test_broken (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ∘H∘e₁ₗ'), $u, $i)) == 0 - - @test_broken (@ballocated LazyTensors.apply($(e₁ₗ∘H∘d₁ₗ'∘H₁ₗ), $u, $i)) == 0 - @test_broken (@ballocated LazyTensors.apply($(d₁ₗ∘H∘e₁ₗ'∘H₁ₗ), $u, $i)) == 0 end - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 1, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 1, 15)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 6, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 6, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 6, 15)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 15, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 15, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₁ₗ, $v, 15, 15)) == 0 + + @test (@ballocated LazyTensors.apply($e₁ₗ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($e₁ᵤ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($e₂ₗ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($e₂ᵤ, $v, $i)) == 0 + + @test (@ballocated LazyTensors.apply($d₁ₗ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($d₁ᵤ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($d₂ₗ, $v, $i)) == 0 + @test (@ballocated LazyTensors.apply($d₂ᵤ, $v, $i)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 1, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 1, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 1, 15)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 6, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 6, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 6, 15)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 15, 1)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 15, 6)) == 0 - @test (@ballocated LazyTensors.apply($neumannSAT₂ᵤ, $v, 15, 15)) == 0 + ## Experiments + @test (@ballocated LazyTensors.apply($(e₁ₗ∘d₁ₗ'), $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($(d₁ₗ∘e₁ₗ'), $u, $i)) == 0 + + @test (@ballocated LazyTensors.apply($(e₁ₗ∘H∘d₁ₗ'), $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($(d₁ₗ∘H∘e₁ₗ'), $u, $i)) == 0 + + @test (@ballocated LazyTensors.apply($(H₁ₗ∘e₁ₗ∘d₁ₗ'), $u, $i)) == 0 + @test (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ∘e₁ₗ'), $u, $i)) == 0 + + @test_broken (@ballocated LazyTensors.apply($(H₁ₗ∘e₁ₗ∘H∘d₁ₗ'), $u, $i)) == 0 + @test_broken (@ballocated LazyTensors.apply($(H₁ₗ∘d₁ₗ∘H∘e₁ₗ'), $u, $i)) == 0 + + @test_broken (@ballocated LazyTensors.apply($(e₁ₗ∘H∘d₁ₗ'∘H₁ₗ), $u, $i)) == 0 + @test_broken (@ballocated LazyTensors.apply($(d₁ₗ∘H∘e₁ₗ'∘H₁ₗ), $u, $i)) == 0 end - end end