annotate +grid/evalOnTest.m @ 221:3e1d8051e68e feature/beams

Fixed typo.
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 28 Jun 2016 13:19:45 +0200
parents ea8103ad2cc5
children 4c3f55a628c8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
157
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = evalOnTest()
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function testInputConstant(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 0,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 47,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 1,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 [1; 2],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 out = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 [0; 0; 0],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 [47; 47; 47],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 [1; 1; 1],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 [1; 2; 1; 2; 1; 2],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 g = getTestGrid('1d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 gf = grid.evalOn(g,in{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 testCase.verifyEqual(gf, out{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 function testInputScalarFunction1d(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 @(x)1+x*0,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 @(x)x,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 @(x)x.*x,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 out = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 [1; 1; 1],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 [0; 1; 2],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 [0; 1; 4],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 g = getTestGrid('1d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 gf = grid.evalOn(g,in{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 testCase.verifyEqual(gf, out{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 function testInputScalarFunction2d(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 @(x,y)1+x*0,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 @(x,y)x-y,
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 @(x,y)x./(1+y),
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 out = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 [1; 1; 1; 1; 1; 1; 1; 1; 1],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 [0; -1; -2; 1; 0; -1; 2; 1; 0],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 [0; 0; 0; 1; 1/2; 1/3; 2; 1; 2/3],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 g = getTestGrid('2d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 gf = grid.evalOn(g, in{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 testCase.verifyEqual(gf, out{i});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 function testInputVectorFunction(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 g = getTestGrid('1d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 in = @(x)[x; -2*x];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 out = [0; 0; 1; -2; 2; -4];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 gf = grid.evalOn(g,in);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 testCase.verifyEqual(gf, out);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 g = getTestGrid('2d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 in = @(x,y)[x.^2; -2*y];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 out = [
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 0; 0;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 0; -2;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 0; -4;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 1; 0;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 1; -2;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87 1; -4;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 4; 0;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 4; -2;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90 4; -4;
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 ];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93 gf = grid.evalOn(g,in);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 testCase.verifyEqual(gf, out);
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 function testInputErrorVectorValued(testCase)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99 in = {
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
100 [1,2,3],
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101 @(x,y)[x,-y];
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102 };
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 g = getTestGrid('2d');
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 for i = 1:length(in)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 testCase.verifyError(@()grid.evalOn(g, in{i}),'grid:evalOn:VectorValuedWrongDim',sprintf('in(%d) = %s',i,toString(in{i})));
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111 function g = getTestGrid(d)
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 switch d
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 case '1d'
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114 g = grid.equidistant(3,{0,2});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 case '2d'
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
116 g = grid.equidistant([3,3],{0,2},{0,2});
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117 end
ea8103ad2cc5 Added function eval on.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118 end