Mercurial > repos > public > sbplib
annotate +blockmatrix/getDivisionTest.m @ 846:c6fcee3fcf1b feature/burgers1d
Add generalized RungeKutta and RungeKuttaRV class which extracts its coefficients from a butcher tableau, specified on the scheme.
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 20 Sep 2018 17:51:19 +0200 |
parents | a5f1b0267dba |
children |
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 |