annotate +blockmatrix/getDivisionTest.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents a5f1b0267dba
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
205
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = getDivisionTest()
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function testError(testCase)
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 cases = {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 magic(3),
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 {[2 2 2];{1,2}},
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 {[2 2 2];[1 2]},
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 {[2; 2; 2], [1; 2]},
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 };
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 for i =1:length(cases)
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 testCase.verifyError(@()blockmatrix.getDivision(cases{i}), 'blockmatrix:getDivision:NotABlockmatrix')
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 function testGetDivision(testCase)
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 cases = {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 {},
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 {[],[]};
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 [2 2; 2 1], [1; 2];
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 [2 2], [1]
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 {[2 1], [2 1]}
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 [2 2; 2 1], [];
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 [2 2], [1]
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 {[2 1], [2 1]}
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 [2 2; 2 1], [];
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 [2 2], []
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 {[2 1], [2 0]}
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 [2 2; 2 1], [1; 2];
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 [], []
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 {[2 0], [2 1]}
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 {
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 [2 2; 2 1];
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 [2 2]
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 },
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 {[2 1], 2}
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 },
579
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
59 {
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
60 {zeros(3,0)},
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
61 {3, 0},
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
62 },
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
63 {
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
64 {zeros(3,0), zeros(3,0)},
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
65 {3, [0, 0]},
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
66 },
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
67 {
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
68 {zeros(3,0); zeros(2,0)},
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
69 {[3 2],0},
a5f1b0267dba Be less strict about what is considered a block matrix
Jonatan Werpers <jonatan@werpers.com>
parents: 205
diff changeset
70 },
205
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 };
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 for i = 1:length(cases)
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 in = cases{i}{1};
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 out = blockmatrix.getDivision(in);
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 expected = cases{i}{2};
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 testCase.verifyEqual(out, expected);
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 end
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 end
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80
f0ef314e2070 blockmatrix: added function to calculate the block division for a given blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81