annotate MapTest.m @ 1031:2ef20d00b386 feature/advectionRV

For easier comparison, return both the first order and residual viscosity when evaluating the residual. Add the first order and residual viscosity to the state of the RungekuttaRV time steppers
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Thu, 17 Jan 2019 10:25:06 +0100
parents a6c5e73ff44e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
417
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 function tests = MatTest()
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 tests = functiontests(localfunctions);
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function kvp = getKeyValuePairs()
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 kvp = {
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 {1,3},1;
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 struct(), [1; 3; 4];
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 [1,2; 4 3], struct();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 'Hej', struct('lol', 6);
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 0, 'Nej';
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 };
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14
951
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
15 function testMultiKey(testCase)
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
16 map = Map
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
17
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
18 function setMultiKey()
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
19 map(1,2) = 1;
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
20 end
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
21
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
22 function getMultiKey()
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
23 v = map(1,2);
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
24 end
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
25
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
26 testCase.verifyError(@setMultiKey,'sbplib:Map:multipleKeys')
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
27 testCase.verifyError(@getMultiKey,'sbplib:Map:multipleKeys')
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
28 end
a6c5e73ff44e Better errors in Map()
Jonatan Werpers <jonatan@werpers.com>
parents: 417
diff changeset
29
417
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 function testSetAndGet(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 map = Map();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 % Insert
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 for i = 1:length(keyValuePairs)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 map(keyValuePairs{i,1}) = keyValuePairs{i,2};
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 % Validate output
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 for i = 1:length(keyValuePairs)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 v = map(keyValuePairs{i,1});
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 testCase.verifyEqual(v, keyValuePairs{i,2});
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 function map = exampleMap()
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 map = Map();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 % Insert
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 for i = 1:length(keyValuePairs)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 map(keyValuePairs{i,1}) = keyValuePairs{i,2};
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 function testLength(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 map = Map();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 testCase.verifyEqual(map.length, 0);
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62 map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 testCase.verifyEqual(map.length, 5)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 function testIsKey(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 keys = keyValuePairs(:,1);
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73 for i = 1:length(keys)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74 testCase.verifyTrue(map.isKey(keys{i}));
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77 notKeys = {
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 'hej',
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79 [],
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
80 1,
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 {2,5},
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 };
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 for i = 1:length(notKeys)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 testCase.verifyFalse(map.isKey(notKeys{i}));
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90 function testRemove(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93 remove(map, struct());
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95 testCase.verifyFalse(map.isKey(struct()));
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 % function testValues(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99 % keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
100
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101 % map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103 % testCase.verifyEqual(values(map), keyValuePairs(:,2)');
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 % end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 % function testKeys(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 % keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109 % map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111 % testCase.verifyEqual(keys(map), keyValuePairs(:,1)');
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 % end