annotate +grid/CartesianTest.m @ 163:51aaf67a7df5 feature/grids

Fixed naming and added functions for converting vectors to matrices for structured grid.
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 22 Feb 2016 13:55:19 +0100
parents c7b2f645101f
children ba1ae5b2c45e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
154
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = CartesianTest()
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 function testWarningEmptyGrid(testCase)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 in = {
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 {[]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 {[],[1]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 {[1],[2], []},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 };
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 for i = 1:length(in)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 testCase.verifyError(@()grid.Cartesian(in{i}{:}),'grid:Cartesian:EmptyGrid');
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 function testN(testCase)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 in = {
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 {[1 2 3]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 {[1 2 3],[1 2]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 {[1 2 3],[1 2 3]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 {[1 2 3],[1 2 3], [1]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 {[1 2 3],[1 2 3], [1 3 4]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 };
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 out = [3,6,9,9,27];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 for i = 1:length(in)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 g = grid.Cartesian(in{i}{:});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 testCase.verifyEqual(g.N(),out(i));
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 function testD(testCase)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 in = {
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 {[1 2 3]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 {[1 2 3],[1 2]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 {[1 2 3],[1 2 3]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 {[1 2 3],[1 2 3], [1]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 {[1 2 3],[1 2 3], [1 3 4]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 };
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 out = [1,2,2,3,3];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 for i = 1:length(in)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 g = grid.Cartesian(in{i}{:});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 testCase.verifyEqual(g.D(),out(i));
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 function testPoints(testCase)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 in = {
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 {[1 2]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 {[1 2],[3 4]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 {[1 2],[3 4], [5 6]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 };
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 out = {
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 [[1; 2]],
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 [[1; 1; 2; 2],[3; 4; 3; 4]],
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 [[1; 1; 1; 1; 2; 2; 2; 2],[3; 3; 4; 4; 3; 3; 4; 4],[ 5; 6; 5; 6; 5; 6; 5; 6]],
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 };
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 for i = 1:length(in)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 g = grid.Cartesian(in{i}{:});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 testCase.verifyEqual(g.points(),out{i});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 function testMatrices(testCase)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 in = {
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 {[1 2]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 {[1 2],[3 4]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 {[1 2],[3 4], [5 6]},
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 };
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 out{1}{1} = [1; 2];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 out{2}{1} = [1, 1; 2, 2];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 out{2}{2} = [3, 4; 3, 4];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 out{3}{1}(:,:,1) = [1, 1; 2, 2];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 out{3}{1}(:,:,2) = [1, 1; 2, 2];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 out{3}{2}(:,:,1) = [3, 4; 3, 4];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 out{3}{2}(:,:,2) = [3, 4; 3, 4];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 out{3}{3}(:,:,1) = [5, 5; 5, 5];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92 out{3}{3}(:,:,2) = [6, 6; 6, 6];
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 for i = 1:length(in)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95 g = grid.Cartesian(in{i}{:});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96 testCase.verifyEqual(g.matrices(),out{i});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 end