annotate +blockmatrix/fromMatrixTest.m @ 577:e45c9b56d50d feature/grids

Add an Empty grid class The need turned up for the flexural code when we may or may not have a grid for the open water and want to plot that solution. In case there is no open water we need an empty grid to plot the empty gridfunction against to avoid errors.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 07 Sep 2017 09:16:12 +0200
parents 40dda96c8c9c
children a5f1b0267dba
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
208
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = fromMatrixTest()
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function testErrorNonMatchingDim(testCase)
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 in = {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 {magic(5), {[1 2 3], [4]}},
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 {magic(5), {[1 1 1 1 1 1], [5]}},
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 {magic(5), {[5], [1 1 1 1 1 1]}},
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 {ones(4,2),{[2 3],[2]}},
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 {ones(4,2),{[2 2],[3]}},
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 };
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 for i = 1:length(in)
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 testCase.verifyError(@()blockmatrix.fromMatrix(in{i}{:}),'blockmatrix:fromMatrix:NonMatchingDim');
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 function testFromMatrix(testCase)
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 cases = {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 {[],{[],[]}},
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 {}
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 magic(3),
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 {[3],[3]}
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 {magic(3)}
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 magic(3),
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 {[1 1 1],[1 1 1]}
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 mat2cell(magic(3),[1 1 1],[1 1 1])
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 [17 24 1 8 15; 23 5 7 14 16; 4 6 13 20 22; 10 12 19 21 3; 11 18 25 2 9],
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 {[1 4],[2 3]}
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 {
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 [17 24], [1 8 15];
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 [23 5; 4 6; 10 12; 11 18], [7 14 16; 13 20 22; 19 21 3; 25 2 9];
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 };
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 },
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 };
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 for i = 1:length(cases)
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 out = convertToFull(blockmatrix.fromMatrix(cases{i}{1}{:}));
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 expected = cases{i}{2};
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 testCase.verifyEqual(out,expected);
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 function C = convertToFull(C)
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 [N,M] = size(C);
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 for i = 1:N
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 for j = 1:M
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 C{i,j} = full(C{i,j});
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 end
40dda96c8c9c blockmatrix: Added function to convert regular matrix to blockmatrix.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 end