11using SparseArrays, DiffEqOperators, LinearAlgebra, Random,
2- Test, BandedMatrices, FillArrays, LazyArrays
2+ Test, BandedMatrices, FillArrays, LazyArrays, BlockBandedMatrices
33
44# This test file tests for the correctness of higher dimensional concretization.
55# The tests verify that multiplication in the concretized case agrees with the matrix-free
@@ -15,15 +15,15 @@ using SparseArrays, DiffEqOperators, LinearAlgebra, Random,
1515 L2 = CenteredDifference (1 ,2 ,1.0 ,20 )
1616 L3 = CenteredDifference (3 ,3 ,1.0 ,20 )
1717
18- @test L1* M ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* M ≈ BandedMatrix (L1, size (M))* M
19- @test L2* M ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* M ≈ BandedMatrix (L2, size (M))* M
20- @test L3* M ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* M ≈ BandedMatrix (L3, size (M))* M
18+ @test L1* M ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* M ≈ BandedMatrix (L1, size (M))* M ≈ BandedBlockBandedMatrix (L1, size (M)) * M
19+ @test L2* M ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* M ≈ BandedMatrix (L2, size (M))* M ≈ BandedBlockBandedMatrix (L2, size (M)) * M
20+ @test L3* M ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* M ≈ BandedMatrix (L3, size (M))* M ≈ BandedBlockBandedMatrix (L3, size (M)) * M
2121
2222 M = rand (22 ,2 ,2 ,2 ,2 )
2323
24- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
25- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
26- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
24+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
25+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
26+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
2727
2828end
2929
3535 L2 = CenteredDifference {2} (1 ,2 ,1.0 ,20 )
3636 L3 = CenteredDifference {2} (3 ,3 ,1.0 ,20 )
3737
38- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
39- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
40- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
38+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
39+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
40+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
4141
4242 M = rand (2 ,22 ,2 ,2 )
4343
44- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
45- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
46- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
44+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
45+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
46+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
4747
4848 M = rand (2 ,22 ,2 ,2 ,3 )
4949
50- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
51- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
52- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
50+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
51+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
52+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
5353
5454end
5555
6262 L3 = CenteredDifference {3} (3 ,3 ,1.0 ,20 )
6363
6464
65- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
66- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
67- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
65+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
66+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
67+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
6868
6969 M = rand (3 ,2 ,22 ,2 )
7070
71- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
72- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
73- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
71+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
72+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
73+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
7474
7575 M = rand (3 ,2 ,22 ,2 ,3 )
7676
77- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
78- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
79- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
77+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
78+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
79+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
8080
8181end
8282
8888 L2 = CenteredDifference {5} (1 ,2 ,1.0 ,20 )
8989 L3 = CenteredDifference {5} (3 ,3 ,1.0 ,20 )
9090
91- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
92- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
93- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
91+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
92+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
93+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
9494
9595 M = rand (3 ,2 ,3 ,2 ,22 ,3 )
9696
97- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
98- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
99- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
97+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
98+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
99+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
100100
101101 M = rand (2 ,2 ,2 ,2 ,22 ,3 ,2 )
102102
103- @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M)
104- @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M)
105- @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M)
103+ @test vec (L1* M) ≈ Array (L1, size (M))* vec (M) ≈ sparse (L1,size (M))* vec (M) ≈ BandedMatrix (L1, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L1, size (M)) * vec (M)
104+ @test vec (L2* M) ≈ Array (L2, size (M))* vec (M) ≈ sparse (L2,size (M))* vec (M) ≈ BandedMatrix (L2, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L2, size (M)) * vec (M)
105+ @test vec (L3* M) ≈ Array (L3, size (M))* vec (M) ≈ sparse (L3,size (M))* vec (M) ≈ BandedMatrix (L3, size (M))* vec (M) ≈ BandedBlockBandedMatrix (L3, size (M)) * vec (M)
106106
107107end
0 commit comments