Mercurial > repos > public > sbplib
annotate MapTest.m @ 1325:1b0f2415237f feature/D2_boundary_opt
Add variable coefficient boundary-optimized second derivatives.
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Sun, 13 Feb 2022 19:32:34 +0100 |
parents | a6c5e73ff44e |
children |
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 |