annotate MapTest.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 effd75b113ba
children a6c5e73ff44e
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
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 function testSetAndGet(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 map = Map();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 % Insert
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 for i = 1:length(keyValuePairs)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 map(keyValuePairs{i,1}) = keyValuePairs{i,2};
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 % Validate output
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 for i = 1:length(keyValuePairs)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 v = map(keyValuePairs{i,1});
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 testCase.verifyEqual(v, keyValuePairs{i,2});
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 function map = exampleMap()
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 keyValuePairs = getKeyValuePairs();
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 map = Map();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 % Insert
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 for i = 1:length(keyValuePairs)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 map(keyValuePairs{i,1}) = keyValuePairs{i,2};
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43 function testLength(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 map = Map();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 testCase.verifyEqual(map.length, 0);
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 map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 testCase.verifyEqual(map.length, 5)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50
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 function testIsKey(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 keys = keyValuePairs(:,1);
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 for i = 1:length(keys)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 testCase.verifyTrue(map.isKey(keys{i}));
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 end
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 notKeys = {
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 'hej',
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 [],
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 1,
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 {2,5},
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 };
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69 for i = 1:length(notKeys)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 testCase.verifyFalse(map.isKey(notKeys{i}));
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 function testRemove(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
76 map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
77
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78 remove(map, struct());
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 testCase.verifyFalse(map.isKey(struct()));
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81 end
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 % function testValues(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 % keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 % map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 % testCase.verifyEqual(values(map), keyValuePairs(:,2)');
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 % end
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 % function testKeys(testCase)
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92 % keyValuePairs = getKeyValuePairs();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 % map = exampleMap();
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96 % testCase.verifyEqual(keys(map), keyValuePairs(:,1)');
effd75b113ba Add tests and fix a bunch of bugs.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97 % end